{"version":3,"sources":["webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/views/seminars/components/SeminarList.vue?8bbc","webpack:///./src/views/seminars/components/SeminarList.vue","webpack:///./src/views/seminars/components/SeminarList.vue?d6a5","webpack:///./src/views/seminars/components/SeminarList.vue?b812"],"names":["mixins","Elevatable","Measurable","Themeable","extend","name","props","boilerplate","Boolean","loading","tile","transition","String","type","types","Object","default","computed","attrs","this","isLoading","role","$attrs","classes","themeClasses","elevationClasses","$scopedSlots","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","methods","genBone","children","$createElement","staticClass","genBones","bone","split","length","generator","genStructure","Array","from","map","indexOf","mapBones","push","genSkeleton","getSlot","on","afterEnter","resetStyles","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","leaveCancelled","bones","replace","el","_initialStyle","display","style","setProperty","render","h","$listeners","class","measurableStyles","undefined","_vm","_h","_c","_self","VSkeletonLoader","staticStyle","_l","s","i","key","VCard","_v","_s","_f","description","createdAt","users","slice","usersLimit","u","j","VTooltip","scopedSlots","_u","fn","ref","_g","pfp","defaultPfp","username","_e","VSpacer","VBtn","$t","selected","id","publishLoading","$event","selectSeminar","publishable","VDialog","model","value","callback","$$v","publishModal","expression","cancelPublish","VIcon","preventDefault","publishSeminar","VTextField","$set","staticRenderFns","SeminarList","title","lecturer","owner","price","p","JSON","parse","stringify","console","log","api","post","m","toString","displaySnackbar","retrieved","getAll","Vue","__decorate","Prop","Getter","Action","Component","component"],"mappings":"+RAwBeA,sBACbC,OACAC,OACAC,QACAC,OAAO,CACPC,KAAM,kBAENC,MAAO,CACLC,YAAaC,QACbC,QAASD,QACTE,KAAMF,QACNG,WAAYC,OACZC,KAAMD,OACNE,MAAO,CACLD,KAAME,OACNC,QAAS,iBAAO,MAIpBC,SAAU,CACRC,MAAK,WACH,OAAKC,KAAKC,UAEFD,KAAKZ,YAKT,GALG,gBACL,aAAa,EACb,YAAa,SACbc,KAAM,SACHF,KAAKG,QANkBH,KAAKG,QASnCC,QAAO,WACL,OAAO,+BACL,iCAAkCJ,KAAKZ,YACvC,gCAAiCY,KAAKC,UACtC,0BAA2BD,KAAKT,MAC7BS,KAAKK,cACLL,KAAKM,mBAGZL,UAAS,WACP,QAAS,YAAaD,KAAKO,eAAiBP,KAAKV,SAEnDkB,UAAS,WACP,OAAO,gBACLC,QAAS,WACTC,QAAS,qBACTC,OAAQ,SACRC,OAAQ,SACRC,KAAM,sBACN,cAAe,0BACf,eAAgB,UAChBC,KAAM,OACN,cAAe,mFACf,sBAAuB,iBACvB,mBAAoB,YACpBC,QAAS,UACTC,MAAO,QACP,YAAa,OACb,mBAAoB,eACpB,qBAAsB,YACtB,4BAA6B,oBAC7B,uBAAwB,YACxB,8BAA+B,oBAC/BC,UAAW,SACXC,UAAW,SACXC,MAAO,uDACP,gBAAiB,gBACjB,cAAe,YACf,cAAe,sBACf,oBAAqB,qBACrB,YAAa,eACb,aAAc,OACd,cAAe,mBACfC,KAAM,QACHpB,KAAKL,SAKd0B,QAAS,CACPC,QAAO,SAAEF,EAAcG,GACrB,OAAOvB,KAAKwB,eAAe,MAAO,CAChCC,YAAa,sBAAF,OAAwBL,EAAI,6BACtCG,IAELG,SAAQ,SAAEC,GAAY,WAEpB,EAAuBA,EAAKC,MAAM,KAAlC,sBAAOlC,EAAD,KAAOmC,EAAP,KACAC,EAAY,WAAH,OAAS,EAAKC,aAAarC,IAI1C,OAAOsC,MAAMC,KAAK,CAAEJ,WAAUK,IAAIJ,IAIpCC,aAAY,SAAErC,GACZ,IAAI6B,EAAW,GACf7B,EAAOA,GAAQM,KAAKN,MAAQ,GAC5B,IAAMiC,EAAO3B,KAAKQ,UAAUd,IAAS,GAIrC,GAAIA,IAASiC,OAER,IAAIjC,EAAKyC,QAAQ,MAAQ,EAAG,OAAOnC,KAAKoC,SAAS1C,GAEjD,GAAIA,EAAKyC,QAAQ,MAAQ,EAAG,OAAOnC,KAAK0B,SAAShC,GAE7CiC,EAAKQ,QAAQ,MAAQ,EAAGZ,EAAWvB,KAAKoC,SAAST,GAEjDA,EAAKQ,QAAQ,MAAQ,EAAGZ,EAAWvB,KAAK0B,SAASC,GAEjDA,GAAMJ,EAASc,KAAKrC,KAAK+B,aAAaJ,IAE/C,MAAO,CAAC3B,KAAKsB,QAAQ5B,EAAM6B,KAE7Be,YAAW,WACT,IAAMf,EAAW,GAMjB,OAJKvB,KAAKC,UACLsB,EAASc,KAAKrC,KAAK+B,gBADHR,EAASc,KAAKE,eAAQvC,OAItCA,KAAKR,WAGHQ,KAAKwB,eAAe,aAAc,CACvCrC,MAAO,CACLD,KAAMc,KAAKR,YAIbgD,GAAI,CACFC,WAAYzC,KAAK0C,YACjBC,YAAa3C,KAAK4C,cAClBC,YAAa7C,KAAK8C,cAClBC,eAAgB/C,KAAK0C,cAEtBnB,GAf0BA,GAiB/Ba,SAAQ,SAAEY,GAER,OAAOA,EAAMC,QAAQ,MAAO,IAAIrB,MAAM,KAAKM,IAAIlC,KAAK+B,eAEtDa,cAAa,SAAEM,GACblD,KAAK0C,YAAYQ,GAEZlD,KAAKC,YAEViD,EAAGC,cAAgB,CACjBC,QAASF,EAAGG,MAAMD,QAClB5D,WAAY0D,EAAGG,MAAM7D,YAGvB0D,EAAGG,MAAMC,YAAY,aAAc,OAAQ,eAE7CR,cAAa,SAAEI,GACbA,EAAGG,MAAMC,YAAY,UAAW,OAAQ,cAE1CZ,YAAW,SAAEQ,GACNA,EAAGC,gBAERD,EAAGG,MAAMD,QAAUF,EAAGC,cAAcC,SAAW,GAC/CF,EAAGG,MAAM7D,WAAa0D,EAAGC,cAAc3D,kBAEhC0D,EAAGC,iBAIdI,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAO,CACd/B,YAAa,oBACb1B,MAAOC,KAAKD,MACZyC,GAAIxC,KAAKyD,WACTC,MAAO1D,KAAKI,QACZiD,MAAOrD,KAAKC,UAAYD,KAAK2D,sBAAmBC,GAC/C,CAAC5D,KAAKsC,oB,2JC7LTiB,EAAS,WAAa,IAAIM,EAAI7D,KAAS8D,EAAGD,EAAIrC,eAAmBuC,EAAGF,EAAIG,MAAMD,IAAID,EAAG,OAAOC,EAAG,MAAM,CAAEF,EAAW,QAAEE,EAAG,MAAM,CAACtC,YAAY,oBAAoB,CAACsC,EAAGE,EAAA,KAAgB,CAACxC,YAAY,OAAO1B,MAAM,CAAC,MAAQ,MAAM,KAAO,UAAUgE,EAAGE,EAAA,KAAgB,CAACxC,YAAY,OAAOyC,YAAY,CAAC,QAAU,QAAQnE,MAAM,CAAC,MAAQ,MAAM,KAAO,UAAUgE,EAAGE,EAAA,KAAgB,CAACC,YAAY,CAAC,QAAU,QAAQnE,MAAM,CAAC,MAAQ,MAAM,KAAO,WAAW,GAAGgE,EAAG,MAAM,CAACtC,YAAY,wCAAwCoC,EAAIM,GAAIN,EAAY,UAAE,SAASO,EAAEC,GAAG,OAAON,EAAG,MAAM,CAACO,IAAID,EAAE5C,YAAY,cAAcyC,YAAY,CAAC,YAAY,UAAU,CAACH,EAAGQ,EAAA,KAAM,CAAC9C,YAAY,iCAAiC1B,MAAM,CAAC,SAAW,KAAK,CAACgE,EAAG,MAAM,CAACtC,YAAY,2CAA2CyC,YAAY,CAAC,cAAc,SAAS,CAACL,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIa,GAAG,WAAPb,CAAmBO,EAAElF,KAAK,KAAK,OAAO6E,EAAG,MAAM,CAACtC,YAAY,QAAQ,CAACoC,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIa,GAAG,WAAPb,CAAmBO,EAAEO,YAAY,SAASZ,EAAG,MAAM,CAACtC,YAAY,oBAAoB,CAACoC,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIa,GAAG,iBAAPb,CAAyBO,EAAEQ,YAAY,OAAOb,EAAG,MAAM,CAACtC,YAAY,0CAA0C,CAACoC,EAAIM,GAAIC,EAAES,MAAMC,MAAM,EAAGjB,EAAIkB,aAAa,SAASC,EAAEC,GAAG,OAAOlB,EAAGmB,EAAA,KAAS,CAACZ,IAAIW,EAAElF,MAAM,CAAC,OAAS,IAAIoF,YAAYtB,EAAIuB,GAAG,CAAC,CAACd,IAAI,YAAYe,GAAG,SAASC,GACvvC,IAAI9C,EAAK8C,EAAI9C,GACb,MAAO,CAACuB,EAAG,MAAMF,EAAI0B,GAAG,CAAC9D,YAAY,gBAAgB4B,MAAQ,aAAee,EAAES,MAAMhD,OAASwC,GAAKtE,MAAM,CAAC,IAAMiF,EAAEQ,KAAO3B,EAAI4B,aAAajD,QAAS,MAAK,IAAO,CAACuB,EAAG,OAAO,CAACtC,YAAY,mBAAmB,CAACoC,EAAIW,GAAGX,EAAIY,GAAGO,EAAEU,kBAAkBtB,EAAES,MAAMhD,OAASgC,EAAIkB,WAAYhB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACtC,YAAY,yDAAyD,CAACsC,EAAG,OAAO,CAACtC,YAAY,oBAAoB,CAACoC,EAAIW,GAAG,KAAKX,EAAIY,GAAGL,EAAES,MAAMhD,OAASgC,EAAIkB,YAAY,WAAWlB,EAAI8B,MAAM,GAAG5B,EAAG,MAAM,CAACtC,YAAY,WAAWsC,EAAG,MAAM,CAACtC,YAAY,eAAe,CAACsC,EAAG6B,EAAA,MAAUxB,EAAS,QAAEL,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,UAAY,IAAI,GAAM,kBAAqBqE,EAAI,KAAK,CAACL,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIiC,GAAG,4BAA4BjC,EAAI8B,KAAMvB,EAAS,QAAEL,EAAG,MAAM,CAACtC,YAAY,SAASoC,EAAI8B,KAAMvB,EAAS,QAAEL,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,QAAU8D,EAAIkC,UAAYlC,EAAIkC,SAASC,KAAO5B,EAAE4B,IAAMnC,EAAIoC,eAAe,SAAWpC,EAAIkC,UAAYlC,EAAIkC,SAASC,KAAO5B,EAAE4B,IAAMnC,EAAIoC,eAAe,UAAY,KAAKzD,GAAG,CAAC,MAAQ,SAAS0D,GAAQ,OAAOrC,EAAIsC,cAAc/B,MAAM,CAACL,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIiC,GAAG,+BAA+BjC,EAAI8B,KAAMvB,EAAS,QAAEL,EAAG,MAAM,CAACtC,YAAY,SAASoC,EAAI8B,KAAK5B,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,UAAY,IAAI,MAAQ,UAAU,GAAM,qBAAwBqE,EAAI,KAAK,CAACL,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIiC,GAAG,6BAA6B,MAAM,MAAK,GAAIjC,EAAIkC,UAAYlC,EAAIuC,YAAarC,EAAGsC,EAAA,KAAQ,CAACtG,MAAM,CAAC,YAAY,SAASuG,MAAM,CAACC,MAAO1C,EAAgB,aAAE2C,SAAS,SAAUC,GAAM5C,EAAI6C,aAAaD,GAAKE,WAAW,iBAAiB,CAAC5C,EAAGQ,EAAA,KAAM,CAACR,EAAG,OAAW,CAACtC,YAAY,iBAAiB,CAACsC,EAAG,MAAM,CAACtC,YAAY,6BAA6B,CAACoC,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIiC,GAAG,0BAA0B,KAAK/B,EAAG,IAAI,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIkC,SAAS7G,WAAW6E,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,KAAO,IAAIyC,GAAG,CAAC,MAAQqB,EAAI+C,gBAAgB,CAAC7C,EAAG8C,EAAA,KAAM,CAAChD,EAAIW,GAAG,gBAAgB,IAAI,GAAGT,EAAG,OAAO,CAACvB,GAAG,CAAC,OAAS,SAAS0D,GAAgC,OAAxBA,EAAOY,iBAAwBjD,EAAIkD,eAAeb,MAAW,CAACnC,EAAG,OAAU,CAACA,EAAGiD,EAAA,KAAW,CAACjH,MAAM,CAAC,MAAQ8D,EAAIiC,GAAG,6BAA6BQ,MAAM,CAACC,MAAO1C,EAAIuC,YAAiB,MAAEI,SAAS,SAAUC,GAAM5C,EAAIoD,KAAKpD,EAAIuC,YAAa,QAASK,IAAME,WAAW,uBAAuB5C,EAAGiD,EAAA,KAAW,CAACjH,MAAM,CAAC,MAAQ8D,EAAIiC,GAAG,mCAAmCQ,MAAM,CAACC,MAAO1C,EAAIuC,YAAuB,YAAEI,SAAS,SAAUC,GAAM5C,EAAIoD,KAAKpD,EAAIuC,YAAa,cAAeK,IAAME,WAAW,6BAA6B5C,EAAGiD,EAAA,KAAW,CAACjH,MAAM,CAAC,MAAQ8D,EAAIiC,GAAG,gCAAgCQ,MAAM,CAACC,MAAO1C,EAAIuC,YAAoB,SAAEI,SAAS,SAAUC,GAAM5C,EAAIoD,KAAKpD,EAAIuC,YAAa,WAAYK,IAAME,WAAW,0BAA0B5C,EAAGiD,EAAA,KAAW,CAACjH,MAAM,CAAC,KAAO,SAAS,MAAQ8D,EAAIiC,GAAG,4BAA4B,OAAS,KAAKQ,MAAM,CAACC,MAAO1C,EAAIuC,YAAiB,MAAEI,SAAS,SAAUC,GAAM5C,EAAIoD,KAAKpD,EAAIuC,YAAa,QAASK,IAAME,WAAW,wBAAwB,GAAG5C,EAAG,OAAa,CAACA,EAAG6B,EAAA,MAAS7B,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,UAAY,KAAKyC,GAAG,CAAC,MAAQqB,EAAI+C,gBAAgB,CAAC7C,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIiC,GAAG,uBAAuB/B,EAAG,MAAM,CAACtC,YAAY,SAASsC,EAAG8B,EAAA,KAAK,CAAC9F,MAAM,CAAC,MAAQ,UAAU,UAAY,IAAI,KAAO,WAAW,CAACgE,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIiC,GAAG,qCAAqC,IAAI,IAAI,IAAI,GAAGjC,EAAI8B,MAAM,IAC/jGuB,EAAkB,G,8MCmLDC,EAAW,wDAAhC,mBAsE0B,OAtE1B,uB,0BAaE,EAAAlB,gBAAiB,EAEjB,EAAAS,cAAe,EAEf,EAAAX,SAA2B,KAE3B,EAAAK,YAAyC,KAkDzC,EAAArB,WAAa,EACb,EAAAU,WAAaA,OAAW,EAGvB,OApDD,6CACA,SAAcrB,GAAU,MACtBpE,KAAK0G,cAAe,EACpB1G,KAAK+F,SAAW3B,EAChBpE,KAAKoG,YAAc,CACjBgB,MAAOhD,EAAElF,KACTyF,YAAaP,EAAEO,YACf0C,UAAiB,QAAP,EAAAjD,EAAEkD,aAAK,aAAP,EAAS5B,WAAY,GAC/B6B,MAAO,MAGX,2BACA,WACEvH,KAAK0G,cAAe,EACpB1G,KAAK+F,SAAW,KAChB/F,KAAKoG,YAAc,OAErB,mFACA,sGAY6B,OAVrBoB,EAAIC,KAAKC,MACbD,KAAKE,UAAU3H,KAAKoG,cAEtBpG,KAAKoG,YAAc,KACnBpG,KAAK0G,cAAe,EACpBkB,QAAQC,IAAI,4BAA6BL,GAKzCxH,KAAKiG,gBAAiB,EAAK,kBAEnB6B,OAAIC,KAAK,uBAAwBP,GAAE,OAEnCQ,EAAIhI,KAAK8F,GAAG,8BAA8BmC,WAChDjI,KAAKkI,gBAAgBF,GAAG,qDAElBA,EAAIhI,KAAK8F,GAAG,2BAA2BmC,WAC7CjI,KAAKkI,gBAAgBF,GAAG,QAE1BhI,KAAKiG,gBAAiB,EAGtBjG,KAAK+F,SAAW,KAAK,0DACtB,qDA3BD,IA2BC,qBAMD,WACO/F,KAAKmI,WAAWnI,KAAKoI,aAC3B,EAzE6B,CAASC,cACPC,gBAA/BC,eAAK,CAAE1I,QAAS,kBAAM,MAAQ,4BACHyI,gBAA3BE,eAAO,qBAAmB,8BACGF,gBAA7BE,eAAO,uBAAqB,gCACAF,gBAA5BE,eAAO,sBAAoB,+BACDF,gBAA1BG,eAAO,oBAAkB,6BAKCH,gBAA1BG,eAAO,oBAAkB,sCAVPtB,EAAW,gBAD/BuB,QACoBvB,WClMqZ,I,YCOtawB,EAAY,eACd,EACApF,EACA2D,GACA,EACA,KACA,KACA,MAIa,aAAAyB,E","file":"assets/js/chunk-7176d6fb.d4315bab.js","sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('div',{staticClass:\"d-flex flex-wrap\"},[_c(VSkeletonLoader,{staticClass:\"mr-4\",attrs:{\"width\":\"300\",\"type\":\"card\"}}),_c(VSkeletonLoader,{staticClass:\"mr-4\",staticStyle:{\"opacity\":\"0.66\"},attrs:{\"width\":\"300\",\"type\":\"card\"}}),_c(VSkeletonLoader,{staticStyle:{\"opacity\":\"0.33\"},attrs:{\"width\":\"300\",\"type\":\"card\"}})],1):_c('div',{staticClass:\"d-flex flex-wrap align-stretch mx-n4\"},_vm._l((_vm.seminars),function(s,i){return _c('div',{key:i,staticClass:\"pa-4 flex-1\",staticStyle:{\"min-width\":\"300px\"}},[_c(VCard,{staticClass:\"pa-4 h-full d-flex flex-column\",attrs:{\"outlined\":\"\"}},[_c('div',{staticClass:\"font-weight-bold text-h5 main--text mb-2\",staticStyle:{\"line-height\":\"30px\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"truncate\")(s.name,80))+\" \")]),_c('div',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm._f(\"truncate\")(s.description,120)))]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatwithtime\")(s.createdAt))+\" \")]),_c('div',{staticClass:\"d-flex align-center justify-start mt-4\"},[_vm._l((s.users.slice(0, _vm.usersLimit)),function(u,j){return _c(VTooltip,{key:j,attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('img',_vm._g({staticClass:\"seminars__pfp\",style:((\"z-index: \" + (s.users.length - i))),attrs:{\"src\":u.pfp || _vm.defaultPfp}},on))]}}],null,true)},[_c('span',{staticClass:\"text-subtitle-2\"},[_vm._v(_vm._s(u.username))])])}),(s.users.length > _vm.usersLimit)?_c('div',[_c('div',{staticClass:\"seminars__pfp d-flex align-center justify-center ml-1\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" +\"+_vm._s(s.users.length - _vm.usersLimit)+\" \")])])]):_vm._e()],2),_c('div',{staticClass:\"flex-1\"}),_c('div',{staticClass:\"mt-4 d-flex\"},[_c(VSpacer),(s.isOwner)?_c(VBtn,{attrs:{\"elevation\":\"0\",\"to\":(\"/seminars/edit/\" + (s.id))}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.dash.edit\")))])]):_vm._e(),(s.isOwner)?_c('div',{staticClass:\"mx-2\"}):_vm._e(),(s.isOwner)?_c(VBtn,{attrs:{\"loading\":_vm.selected && _vm.selected.id === s.id && _vm.publishLoading,\"disabled\":_vm.selected && _vm.selected.id === s.id && _vm.publishLoading,\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.selectSeminar(s)}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.dash.publish\")))])]):_vm._e(),(s.isOwner)?_c('div',{staticClass:\"mx-2\"}):_vm._e(),_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\",\"to\":(\"/seminars/details/\" + (s.id))}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.dash.view\")))])])],1)])],1)}),0),(_vm.selected && _vm.publishable)?_c(VDialog,{attrs:{\"max-width\":\"600px\"},model:{value:(_vm.publishModal),callback:function ($$v) {_vm.publishModal=$$v},expression:\"publishModal\"}},[_c(VCard,[_c(VCardTitle,{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"text-truncate flex-1 mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.dash.publish\"))+\" \"),_c('b',[_vm._v(_vm._s(_vm.selected.name))])]),_c(VBtn,{attrs:{\"icon\":\"\"},on:{\"click\":_vm.cancelPublish}},[_c(VIcon,[_vm._v(\"mdi-close\")])],1)],1),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.publishSeminar($event)}}},[_c(VCardText,[_c(VTextField,{attrs:{\"label\":_vm.$t('seminars.dash.form.title')},model:{value:(_vm.publishable.title),callback:function ($$v) {_vm.$set(_vm.publishable, \"title\", $$v)},expression:\"publishable.title\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('seminars.dash.form.description')},model:{value:(_vm.publishable.description),callback:function ($$v) {_vm.$set(_vm.publishable, \"description\", $$v)},expression:\"publishable.description\"}}),_c(VTextField,{attrs:{\"label\":_vm.$t('seminars.dash.form.lecturer')},model:{value:(_vm.publishable.lecturer),callback:function ($$v) {_vm.$set(_vm.publishable, \"lecturer\", $$v)},expression:\"publishable.lecturer\"}}),_c(VTextField,{attrs:{\"type\":\"number\",\"label\":_vm.$t('seminars.dash.form.price'),\"prefix\":\"€\"},model:{value:(_vm.publishable.price),callback:function ($$v) {_vm.$set(_vm.publishable, \"price\", $$v)},expression:\"publishable.price\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.cancelPublish}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])]),_c('div',{staticClass:\"mx-2\"}),_c(VBtn,{attrs:{\"color\":\"primary\",\"elevation\":\"0\",\"type\":\"submit\"}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.dash.form.publish\")))])])],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\n\r\nimport { Seminar } from \"@/core/models\";\r\nimport { defaultPfp } from \"@/core/utils/constants\";\r\nimport api from \"@/core/utils/api\";\r\n\r\ninterface PublishableSeminar {\r\n title: string;\r\n description: string;\r\n lecturer: string;\r\n price: number;\r\n}\r\n@Component\r\nexport default class SeminarList extends Vue {\r\n @Prop({ default: () => false }) admin!: boolean;\r\n @Getter(\"seminars/loading\") loading!: boolean;\r\n @Getter(\"seminars/retrieved\") retrieved!: boolean;\r\n @Getter(\"seminars/seminars\") seminars!: Seminar[];\r\n @Action(\"seminars/getAll\") getAll!: () => Promise;\r\n\r\n // this allows me to import a function from the vuex store\r\n // here i am importing it so I can use it in any component\r\n // the vuex store allows me to have and mutate the same data in any component, regardless of the component tree structure\r\n @Action(\"displaySnackbar\") displaySnackbar!: (m: string) => void;\r\n\r\n // Indicator that something is loading\r\n publishLoading = false;\r\n // This will control if the popup is shown or not\r\n publishModal = false;\r\n // This will hold the selected seminar, that will later be published\r\n selected: Seminar | null = null;\r\n // This will hold the new object that will be sent to the backend\r\n publishable: PublishableSeminar | null = null;\r\n // This function will be called when the user clicks on the \"Publish button\"\r\n // Set selected seminar, show dialog, setup new publishable object\r\n selectSeminar(s: Seminar) {\r\n this.publishModal = true;\r\n this.selected = s;\r\n this.publishable = {\r\n title: s.name,\r\n description: s.description,\r\n lecturer: s.owner?.username || \"\",\r\n price: 99,\r\n };\r\n }\r\n // This will be called when the user clicks cancel or closes the dialog\r\n cancelPublish() {\r\n this.publishModal = false;\r\n this.selected = null;\r\n this.publishable = null;\r\n }\r\n // This will be called when submitting the form or clicking the \"Publish this seminar button\"\r\n async publishSeminar() {\r\n // copy the publishable seminar\r\n const p = JSON.parse(\r\n JSON.stringify(this.publishable),\r\n ) as PublishableSeminar;\r\n this.publishable = null;\r\n this.publishModal = false;\r\n console.log(\"[publish seminar] data is\", p);\r\n\r\n // let's setup the actions to be sent\r\n // typo - controller is called Seminar not Seminars\r\n // just noticed that the loader is shown on all instances - let's fix that\r\n this.publishLoading = true;\r\n try {\r\n await api.post(\"/api/Seminar/Publish\", p);\r\n // let's translate the messages too\r\n const m = this.$t(\"seminars.dash.form.success\").toString();\r\n this.displaySnackbar(m);\r\n } catch (error) {\r\n const m = this.$t(\"seminars.dash.form.fail\").toString();\r\n this.displaySnackbar(m);\r\n }\r\n this.publishLoading = false;\r\n\r\n // remove the selected seminar after the request is done\r\n this.selected = null;\r\n }\r\n\r\n // Now let's do translations\r\n\r\n usersLimit = 5;\r\n defaultPfp = defaultPfp;\r\n created() {\r\n if (!this.retrieved) this.getAll();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SeminarList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SeminarList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SeminarList.vue?vue&type=template&id=5dbb8475&\"\nimport script from \"./SeminarList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SeminarList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}