{"version":3,"file":"js/app.0a6318b63be815addc83.js","mappings":"0pBAuCA,IAAqBA,EAArB,MAAqBA,qCAAqC,EAAAC,IAA1D,c,oBAKU,KAAAC,WAAqB,EACrB,KAAAC,eAAyB,IA8DnC,CA5DUC,UACNC,KAAKF,eAAiBE,KAAKC,MAAMC,MAAKC,GAAKA,EAAEC,MAAQC,OAAOL,KAAKM,OAAOC,QAAQ,GAAGP,KAAKQ,0BAGxF,MAAMC,EAAQT,KAEdU,YAAW,K,MACTC,SAASC,iBAAiB,SAAS,SAAUC,GACvCJ,EAAMZ,YACRY,EAAMZ,WAAY,EAEtB,IAC8E,QAA9E,EAAAc,SAASG,iBAAiB,kDAAkD,UAAE,SAAEF,iBAAiB,SAAS,SAAUC,GAC9GJ,EAAMZ,YACRY,EAAMZ,WAAY,EAEtB,GAAE,GACD,IAGL,CAEYI,YAOV,OANcc,OAAOC,OAAgB,QAAqB,kBAAEC,KAAKd,IACxD,CACLC,KAAMD,EACNe,MAAOf,KAIb,CAEYgB,eACV,OAAOd,OAAOL,KAAKM,OAAOC,QAAQ,GAAGP,KAAKQ,uBAC5C,CAEQY,SAASC,GACfA,EAAWH,MAAQG,EAAWjB,OAASJ,KAAKmB,SACxC,GAAGnB,KAAKsB,GAAG,gBAAgBD,EAAWjB,OACtC,GAAGiB,EAAWjB,MACpB,CAEQmB,eACNvB,KAAKH,WAAaG,KAAKH,SACzB,CAEQ2B,eAAeC,GACrB,MAAMrB,EAAOJ,KAAKC,MAAMC,MAAKC,GAAKA,EAAEC,KAAKsB,YAAeD,EAAME,OAA6BC,QACvFxB,IACFJ,KAAKM,OAAOuB,SAAS,GAAG7B,KAAKQ,4BAA6BJ,EAAKA,KAAKsB,YACpE1B,KAAKF,eAAiBM,GAExBJ,KAAKuB,cACP,CAEQO,OAAOC,GACb/B,KAAKM,OAAOuB,SAAS,GAAG7B,KAAKQ,4BAA6BuB,EAAO3B,MACjEJ,KAAKF,eAAiBiC,EACtB/B,KAAKuB,cACP,GAlEwB,IAAvB,IAAAS,MAAK,CAACC,UAAU,I,0DADEtC,EAA4B,IAJhD,IAAAuC,WAAU,CACTC,KAAM,8CAGaxC,G,UAAAA,C,0LCrBrB,SAXgB,E,SAAA,GACd,UACA,IACA,KACA,EACA,KACA,KACA,MAI8B,O,mJClB8N,QAAe,G,6DCA7Q,IAAIyC,OAAS,WAAa,IAAIC,EAAIrC,KAASsC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mDAAmD,CAACF,EAAG,MAAM,CAACA,EAAG,SAAS,CAACE,YAAY,sBAAsBC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,kBAAyBR,EAAId,aAAauB,MAAM,KAAMC,UAAU,IAAI,CAAEV,EAAkB,eAAEG,EAAG,OAAO,CAACA,EAAG,OAAO,CAACE,YAAY,uBAAuB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIf,GAAG,aAAa,QAAQe,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIvC,eAAsB,UAAMuC,EAAIa,OAAOb,EAAIW,GAAG,KAAMX,EAAkB,eAAEG,EAAG,KAAK,CAACE,YAAY,SAASS,MAAM,CAAC,WAAYd,EAAIxC,YAAYwC,EAAIe,GAAIf,EAAS,OAAE,SAASN,GAAQ,OAAOS,EAAG,KAAK,CAACE,YAAY,8BAA8BS,MAAM,CAAE,WAAYpB,EAAa,MAAKM,EAAIvC,eAAqB,OAAK,CAAC0C,EAAG,SAAS,CAACG,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOP,EAAIP,OAAOC,EAAO,IAAI,CAACM,EAAIW,GAAG,eAAeX,EAAIY,GAAGlB,EAAc,OAAG,iBAAiB,IAAG,GAAGM,EAAIa,QAAQ,EACx5BG,EAAkB,E","sources":["webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbarSizeSelect.vue?800b","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbarSizeSelect.vue","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbarSizeSelect.vue?8eee","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbarSizeSelect.vue?6d61"],"sourcesContent":["\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\nimport {Component, Vue, Prop} from 'vue-property-decorator';\nimport VueI18n from 'vue-i18n';\n\ninterface SizeOption {\n  size: number;\n  label: string;\n}\n\n@Component({\n  name: 'catalog-product-list-toolbar-size-select'\n})\n\nexport default class ProductListToolbarSizeSelect extends Vue {\n  @Prop({required: true}) readonly dataSource!: string;\n\n  $t!: VueI18n['t'];\n\n  private openSizes: boolean = false;\n  private selectedOption: object = null;\n\n  private mounted(): void {\n    this.selectedOption = this.sizes.find(x => x.size == Number(this.$store.getters[`${this.dataSource}/pageSize`]));\n\n\n    const $this = this;\n\n    setTimeout(() => {\n      document.addEventListener('click', function (e) {\n        if ($this.openSizes) {\n          $this.openSizes = false;\n        }\n      });\n      document.querySelectorAll('.catalog-category__sorter .sorter__button.sort')[0]?.addEventListener('click', function (e) {\n        if ($this.openSizes) {\n          $this.openSizes = false;\n        }\n      });\n    }, 100);\n\n\n  }\n\n  private get sizes(): Array<SizeOption> {\n    const sizes = window.Config['catalog']['page_size_options'].map((x: number) => {\n      return {\n        size: x,\n        label: x\n      }\n    });\n    return sizes;\n  }\n\n  private get pageSize(): number {\n    return Number(this.$store.getters[`${this.dataSource}/pageSize`]);\n  }\n\n  private setLabel(sizeOption: SizeOption): void {\n    sizeOption.label = sizeOption.size === this.pageSize\n      ? `${this.$t('Per page:')} ${sizeOption.size}`\n      : `${sizeOption.size}`;\n  }\n\n  private toggleSorter(): void {\n    this.openSizes = !this.openSizes;\n  }\n\n  private updatePageSize(event: Event): void {\n    const size = this.sizes.find(x => x.size.toString() == (event.target as HTMLSelectElement).value);\n    if (size) {\n      this.$store.dispatch(`${this.dataSource}/updatePageSize`, size.size.toString());\n      this.selectedOption = size;\n    }\n    this.toggleSorter();\n  }\n\n  private select(option: SizeOption) {\n    this.$store.dispatch(`${this.dataSource}/updatePageSize`, option.size);\n    this.selectedOption = option;\n    this.toggleSorter();\n  }\n}\n","import { render, staticRenderFns } from \"./ProductListToolbarSizeSelect.vue?vue&type=template&id=eeadfb5c&\"\nimport script from \"./ProductListToolbarSizeSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductListToolbarSizeSelect.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","import mod from \"-!../../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListToolbarSizeSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductListToolbarSizeSelect.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"catalog-category__page-size hide-for-small-only\"},[_c('div',[_c('button',{staticClass:\"sorter__button size\",on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleSorter.apply(null, arguments)}}},[(_vm.selectedOption)?_c('span',[_c('span',{staticClass:\"hide-for-small-only\"},[_vm._v(_vm._s(_vm.$t('Per page'))+\": \")]),_vm._v(_vm._s(_vm.selectedOption['label']))]):_vm._e()]),_vm._v(\" \"),(_vm.selectedOption)?_c('ul',{staticClass:\"sorter\",class:{'--active': _vm.openSizes}},_vm._l((_vm.sizes),function(option){return _c('li',{staticClass:\"catalog-category__sort-item\",class:{ '--active': option['size'] == _vm.selectedOption['size'] }},[_c('button',{on:{\"click\":function($event){return _vm.select(option)}}},[_vm._v(\"\\n          \"+_vm._s(option['label'])+\"\\n        \")])])}),0):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"names":["ProductListToolbarSizeSelect","Vue","openSizes","selectedOption","mounted","this","sizes","find","x","size","Number","$store","getters","dataSource","$this","setTimeout","document","addEventListener","e","querySelectorAll","window","Config","map","label","pageSize","setLabel","sizeOption","$t","toggleSorter","updatePageSize","event","toString","target","value","dispatch","select","option","Prop","required","Component","name","render","_vm","_h","$createElement","_c","_self","staticClass","on","$event","stopPropagation","apply","arguments","_v","_s","_e","class","_l","staticRenderFns"],"sourceRoot":""}