{"version":3,"sources":["webpack:///../../../src/mixins/delayable/index.ts","webpack:///./src/modules/helpAndFaqs/views/index.vue","webpack:///./src/modules/helpAndFaqs/views/index.vue?ec20","webpack:///./src/modules/helpAndFaqs/views/index.vue?068b","webpack:///./src/modules/helpAndFaqs/views/index.vue?fadc","webpack:///../../../src/components/VPagination/VPagination.ts","webpack:///./src/mixins/sidebarMixin.ts","webpack:///./src/modules/helpAndFaqs/views/index.vue?a11b","webpack:///../../../src/mixins/toggleable/index.ts"],"names":["Vue","extend","name","props","openDelay","type","Number","String","default","closeDelay","data","openTimeout","undefined","closeTimeout","methods","clearDelay","clearTimeout","this","runDelay","cb","delay","parseInt","setTimeout","isActive","open","close","attrs","on","onSearch","model","value","searchKeyword","callback","expression","filterItems","articleId","_vm","_v","filter","title","_c","key","article","fn","hover","staticClass","id","paginationLength","nextPage","currentPage","_e","staticRenderFns","helpAndFAQsModule","getModule","HelpAndFAQsModule","HelpAndFAQsIndex","LoggedInComponentBase","constructor","articleCategories","articlesPerPage","find","category","currentArticleFilterId","filterByTag","currentFilter","categories","helpArticles","kw","getArticles","pagination","query","limit","start","getArticlesByKeyword","onSearchClear","filters","push","description","articles","articlesPagination","Math","ceil","helpArticlesPagination","total","storesModule","currentBrand","to","from","next","params","getArticleCategories","setCurrentArticleFilterId","vm","filterArticles","created","setArticleCategories","isFilterActive","active","page","fullArticleCategories","Component","mixins","SidebarMixin","cloudinaryImageResize","component","Colorable","Intersectable","onVisible","Themeable","directives","Resize","circle","Boolean","disabled","length","validator","val","nextIcon","prevIcon","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","nextAriaLabel","wrapperAriaLabel","maxButtons","selected","computed","classes","themeClasses","items","isNaN","MAX_SAFE_INTEGER","maxLength","min","max","range","even","left","floor","right","firstItem","lastItem","end","secondItem","beforeLastItem","watch","init","beforeMount","onResize","$nextTick","width","$el","parentElement","clientWidth","window","innerWidth","e","preventDefault","$emit","previous","i","genIcon","h","icon","label","class","click","VIcon","genItem","color","isCurrentPage","ariaLabel","setBackgroundColor","$vuetify","lang","t","toString","genItems","map","index","genList","children","modifiers","quiet","render","rtl","role","routeName","$route","mounted","updateSidebarStates","closeMainNav","uiModule","mainNavigationDrawerOpen","setNavigationDrawer","toLowerCase","includes","breakpoint","mdAndDown","toggleAltDrawer","drawerType","AltDrawerType","CampaignSidebar","UpcomingPostsSidebar","factory","prop","event","required","Toggleable"],"mappings":"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","file":"js/chunk-8a7eb318.c93dbfbd.js","sourcesContent":["import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend().extend({\n name: 'delayable',\n\n props: {\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n openTimeout: undefined as number | undefined,\n closeTimeout: undefined as number | undefined,\n }),\n\n methods: {\n /**\n * Clear any pending delay timers from executing\n */\n clearDelay (): void {\n clearTimeout(this.openTimeout)\n clearTimeout(this.closeTimeout)\n },\n /**\n * Runs callback after a specified delay\n */\n runDelay (type: 'open' | 'close', cb?: () => void): void {\n this.clearDelay()\n\n const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n this.isActive = { open: true, close: false }[type]\n }), delay)\n },\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"l-gutters\"},[_c('div',{staticClass:\"l-container\"},[_c('h1',{staticClass:\"mb-5 mt-11\"},[_vm._v(\"Learn Room\")]),_c('v-row',{staticClass:\"mb-4\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Search in articles\",\"clearable\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"append-icon\":\"mdi-magnify\"},on:{\"click:append\":_vm.onSearch,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onSearch.apply(null, arguments)},\"click:clear\":_vm.onSearchClear},model:{value:(_vm.searchKeyword),callback:function ($$v) {_vm.searchKeyword=$$v},expression:\"searchKeyword\"}})],1)],1),(_vm.filterItems && _vm.filterItems.length)?_c('div',{staticClass:\"filters mb-15\"},_vm._l((_vm.filterItems),function(filter){return _c('router-link',{key:filter.id,class:_vm.isFilterActive(filter),attrs:{\"to\":{\n name: 'helpAndFaqs.category',\n params: { articleId: filter.id ? filter.id : '' },\n }}},[_vm._v(\" \"+_vm._s(filter.title)+\" \")])}),1):_vm._e(),_c('v-row',_vm._l((_vm.filteredArticles),function(article){return _c('v-col',{key:article.id,attrs:{\"cols\":\"\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-card',{staticClass:\"transition-swing\",attrs:{\"to\":{\n name: 'helpAndFaqs.articleDetail',\n params: { id: article.id },\n },\"elevation\":hover ? 6 : 2}},[_c('v-img',{staticClass:\"align-end\",attrs:{\"src\":_vm.cloudinaryImageResize(article.blobUrl, 300),\"height\":\"300\",\"gradient\":\"to bottom, rgba(0,0,0,.1), rgba(0,0,0,.5)\"}},[_c('v-card-title',{staticClass:\"white--text\",staticStyle:{\"word-break\":\"normal\"}},[_vm._v(\" \"+_vm._s(article.description)+\" \")])],1),_c('v-card-actions',[_c('v-card-text',{staticClass:\"text-uppercase font-weight-bold\"},[_vm._v(\" Read more \")]),_c('v-spacer'),_c('v-card-text',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(`${article.readTime} ${ article.readTime === 1 ? 'min' : 'mins' }`)+\" \")])],1)],1)]}}],null,true)})],1)}),1),_c('v-row',[_c('v-col',[(_vm.showPagination)?_c('div',{staticClass:\"text-center my-6\"},[_c('v-pagination',{attrs:{\"length\":_vm.paginationLength},on:{\"input\":_vm.nextPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1):_vm._e()])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport { LoggedInComponentBase } from '@/components/base/loggedInComponentBase';\r\nimport { Route } from 'vue-router';\r\nimport { HelpAndFAQsModule } from '@/store';\r\nimport { getModule } from 'vuex-module-decorators';\r\nimport { Article } from '@/api/contracts/helpAndFAQs/article';\r\nimport { ArticleCategory } from '@/api/contracts/helpAndFAQs/articleCategory';\r\nimport { SidebarMixin } from '@/mixins/sidebarMixin';\r\nimport cloudinaryImageResize from '@/helpers/cloudinary-image-resize';\r\n\r\nconst helpAndFAQsModule = getModule(HelpAndFAQsModule);\r\n\r\n@Component({\r\n mixins: [SidebarMixin],\r\n methods: {\r\n cloudinaryImageResize,\r\n },\r\n})\r\nexport default class HelpAndFAQsIndex extends LoggedInComponentBase {\r\n public articleCategories: ArticleCategory[] = [];\r\n public articlesPerPage: number = 9;\r\n public currentPage: number = 1;\r\n public searchKeyword: string = '';\r\n\r\n public get currentFilter(): ArticleCategory | undefined {\r\n return this.articleCategories.find(\r\n (category) => category.id === helpAndFAQsModule.currentArticleFilterId\r\n );\r\n }\r\n\r\n // article filtering logic\r\n public filterByTag(article: Article) {\r\n if (!this.currentFilter) return true; // return all with no filters\r\n\r\n return article.categories.find(\r\n (category) => category.id === this.currentFilter?.id\r\n );\r\n }\r\n\r\n public get filteredArticles(): Article[] {\r\n return this.helpArticles.filter(this.filterByTag);\r\n }\r\n\r\n public async getArticlesByKeyword(kw: string = '') {\r\n await helpAndFAQsModule.getArticles({\r\n pagination: {\r\n query: kw,\r\n limit: 9,\r\n start: 0,\r\n },\r\n });\r\n }\r\n\r\n public onSearch() {\r\n this.getArticlesByKeyword(this.searchKeyword);\r\n }\r\n public onSearchClear() {\r\n this.getArticlesByKeyword();\r\n }\r\n\r\n public get filterItems(): Array {\r\n const filters: Array = [];\r\n\r\n filters.push({\r\n id: 'all',\r\n title: 'All',\r\n description: '',\r\n });\r\n\r\n return [...filters, ...this.articleCategories];\r\n }\r\n\r\n public get helpArticles(): Article[] {\r\n return helpAndFAQsModule.articles;\r\n }\r\n\r\n public get helpArticlesPagination() {\r\n return helpAndFAQsModule.articlesPagination;\r\n }\r\n\r\n public get paginationLength(): number | null {\r\n return Math.ceil(this.helpArticlesPagination.total / this.articlesPerPage);\r\n }\r\n\r\n public get showPagination() {\r\n return this.helpArticlesPagination.total > this.articlesPerPage;\r\n }\r\n\r\n public get currentBrand() {\r\n return this.storesModule.currentBrand;\r\n }\r\n\r\n async beforeRouteEnter(\r\n to: Route,\r\n from: Route,\r\n next: (arg?: boolean | ((vm: HelpAndFAQsIndex) => void)) => void\r\n ): Promise {\r\n try {\r\n await helpAndFAQsModule.getArticles({\r\n category: to.params.articleId,\r\n pagination: {\r\n limit: 9,\r\n start: 0,\r\n },\r\n });\r\n\r\n await helpAndFAQsModule.getArticleCategories();\r\n helpAndFAQsModule.setCurrentArticleFilterId(to.params.articleId);\r\n next((vm) => (vm.currentPage = 1));\r\n } catch {\r\n next(false);\r\n }\r\n }\r\n\r\n public async beforeRouteUpdate(\r\n to: Route,\r\n from: Route,\r\n next: (arg?: boolean | ((vm: HelpAndFAQsIndex) => void)) => void\r\n ): Promise {\r\n this.currentPage = 1;\r\n try {\r\n helpAndFAQsModule.filterArticles({\r\n category: to.params.articleId,\r\n pagination: {\r\n limit: this.articlesPerPage,\r\n start: 0,\r\n },\r\n });\r\n next();\r\n } catch {\r\n next(false);\r\n }\r\n }\r\n\r\n created() {\r\n this.articleCategories = this.setArticleCategories();\r\n }\r\n\r\n public isFilterActive(filter: ArticleCategory) {\r\n return {\r\n active:\r\n filter.id === this.currentFilter?.id ||\r\n (filter.id === 'all' && !this.currentFilter),\r\n };\r\n }\r\n\r\n async nextPage(page: number) {\r\n await helpAndFAQsModule.getArticles({\r\n category: this.currentFilter?.id || 'all',\r\n pagination: {\r\n limit: this.articlesPerPage,\r\n start: this.articlesPerPage * (page - 1),\r\n },\r\n });\r\n }\r\n\r\n public setArticleCategories(): Array {\r\n return helpAndFAQsModule.fullArticleCategories;\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!./index.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!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=310810d0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=310810d0&prod&lang=scss&scoped=true&\"\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 \"310810d0\",\n null\n \n)\n\nexport default component.exports","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0 || isNaN(this.length) || this.length > Number.MAX_SAFE_INTEGER) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const firstItem = 1\n const lastItem = this.length\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.onResize()\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","import { Component } from 'vue-property-decorator';\r\nimport { LoggedInComponentBase } from '@/components/base/loggedInComponentBase';\r\nimport { AltDrawerType } from '@/constants';\r\n\r\n@Component\r\nexport class SidebarMixin extends LoggedInComponentBase {\r\n private routeName = this.$route.name;\r\n\r\n mounted() {\r\n this.updateSidebarStates();\r\n }\r\n\r\n private closeMainNav() {\r\n /**\r\n * Vuetify will emit an `input` event whenever a navigation drawer changes state,\r\n * and this can interfere with our own commands, so use a timeout to wait a tick.\r\n */\r\n setTimeout(() => {\r\n if (this.uiModule.mainNavigationDrawerOpen) {\r\n this.uiModule.setNavigationDrawer(false);\r\n }\r\n });\r\n }\r\n\r\n public updateSidebarStates() {\r\n if (\r\n this.routeName?.toLowerCase().includes('helpandfaqs') ||\r\n this.routeName?.toLowerCase().includes('settings') ||\r\n this.routeName?.toLowerCase().includes('home')\r\n ) {\r\n if (this.$vuetify.breakpoint.mdAndDown) {\r\n this.closeMainNav();\r\n } else {\r\n this.uiModule.setNavigationDrawer(true);\r\n }\r\n } else if (this.routeName?.toLowerCase().includes('assetlibrary')) {\r\n if (this.$vuetify.breakpoint.mdAndDown) {\r\n this.uiModule.toggleAltDrawer({\r\n drawerType: AltDrawerType.CampaignSidebar,\r\n open: false\r\n });\r\n\r\n this.closeMainNav();\r\n } else {\r\n this.uiModule.toggleAltDrawer({\r\n drawerType: AltDrawerType.CampaignSidebar,\r\n open: true\r\n });\r\n this.uiModule.setNavigationDrawer(true);\r\n }\r\n } else if (\r\n this.routeName?.toLowerCase().includes('calendar') ||\r\n this.routeName?.toLowerCase().includes('creativecentre')\r\n ) {\r\n if (this.$vuetify.breakpoint.mdAndDown) {\r\n this.uiModule.toggleAltDrawer({\r\n drawerType: AltDrawerType.UpcomingPostsSidebar,\r\n open: false\r\n });\r\n\r\n this.closeMainNav();\r\n } else {\r\n this.uiModule.toggleAltDrawer({\r\n drawerType: AltDrawerType.UpcomingPostsSidebar,\r\n open: true\r\n });\r\n this.uiModule.setNavigationDrawer(true);\r\n }\r\n }\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=310810d0&prod&lang=scss&scoped=true&\"","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":""}