{"version":3,"file":"js/app.c18637268cb1900bd407.js","mappings":"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","sources":["webpack:///./resources/area/web/default/js/components/catalog/filter/InlineFilter.vue?5d99","webpack:///./resources/area/web/default/js/components/catalog/filter/InlineFilter.vue","webpack:///./resources/area/web/default/js/components/catalog/filter/InlineFilter.vue?4d2b","webpack:///./resources/area/web/default/js/components/catalog/filter/InlineFilter.vue?e2f9"],"sourcesContent":["\nimport {Component, Vue, Prop} from 'vue-property-decorator';\nimport vToolTip from 'v-tooltip';\n\nVue.use(vToolTip);\n\n@Component({\n name: 'inline-filter',\n components: {\n 'off-canvas': () => import(/* webpackChunkName: \"off-canvas\" */ './../../OffCanvas.vue'),\n }\n})\n\nexport default class extends Vue {\n @Prop() private position: number;\n private filterStartRow: number = 0;\n\n private get currentFilter(): null | object {\n let availableFilters = Object.values(this.inlineFilter).filter(f => f['position'] !== undefined);\n availableFilters.sort((a, b) => a['position'] - b['position']);\n return availableFilters[this.position - this.filterStartRow] || null;\n }\n\n private get inlineFilter(): object {\n return [...this.$store.getters['InlineFilters/getCategoryInlineFilterList']];\n }\n\n private get filterList(): Array<object> {\n return [\n ...(this.$store.getters['CatalogCategory/filterList'] || []).filter(f => f.is_visible),\n ...(this.$store.getters['CatalogCategory/priceFilters'] || [])\n ];\n }\n\n private get activeFilters(): Array<object> {\n return this.$store.getters['CatalogCategory/activeFilters'];\n }\n\n private get filter(): object {\n return (this.filterList || []).filter(f => f['code'] === this.currentFilter['attribute_code'])[0] || [];\n }\n\n private async toggleFilterStatus(option): Promise<void> {\n if(option['url_path']) {\n window.location.href = option['url_path'];\n await this.scrollToTop();\n return;\n }\n\n const filter = this.filterList.filter(f => f['code'] === this.currentFilter['attribute_code'])[0];\n await this.$store.dispatch('CatalogCategory/toggleFilter', {filter: filter, option: option});\n await this.$store.dispatch('InlineFilters/updateInlineFilters', {filter: filter, remove: true});\n await this.scrollToTop();\n\n this.recalculateFilterPositions();\n }\n\n private recalculateFilterPositions(): void {\n let availableFilters = Object.values(this.inlineFilter).filter(f => f['position'] !== undefined);\n availableFilters.forEach((filter, index) => {\n filter['position'] = index;\n });\n }\n\n protected async scrollToTop(): Promise<void> {\n const scrollElement = document.getElementById('listContainer');\n if (scrollElement) {\n const headerOffset = 150;\n const elementPosition = scrollElement.getBoundingClientRect().top;\n const offsetPosition = elementPosition - headerOffset;\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth'\n });\n }\n }\n\n private async created(): Promise<void> {\n if ( ! this.$store.state.CatalogCategory.categoryData) {\n return;\n }\n\n if (this.position !== 0) {\n return;\n }\n\n await this.$store.dispatch(\n 'InlineFilters/fetchInlineFilters',\n this.$store.state.CatalogCategory.categoryData.category_id\n );\n\n if ( ! this.activeFilters.length) {\n return;\n }\n\n this.activeFilters.forEach(af => {\n this.$store.dispatch('InlineFilters/updateInlineFilters', {\n filter: this.filterList.filter(f => f['code'] === af['code'])[0],\n remove: true\n });\n });\n }\n\n private mounted(): void {\n this.setupMutationObserver();\n }\n\n private setupMutationObserver(): void {\n const observer = new MutationObserver(() => {\n const hasQuickLinks = document.querySelector('.category__quick-links') !== null;\n const hasBrandsWidget = document.querySelector('.brands__widget') !== null;\n\n if (hasQuickLinks || hasBrandsWidget) {\n this.filterStartRow = 1;\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n }\n}\n","import { render, staticRenderFns } from \"./InlineFilter.vue?vue&type=template&id=30bd9a34&\"\nimport script from \"./InlineFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./InlineFilter.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-6.use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InlineFilter.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.currentFilter && Object.keys(_vm.filter).length)?_c('div',{staticClass:\"inline__filter-container\",class:{ '_first': _vm.position === 0 }},[_c('span',{staticClass:\"_title\"},[_vm._v(\"\\n \"+_vm._s(_vm.currentFilter['question'])+\"\\n \"),(_vm.filter['description'])?_c('button',{attrs:{\"data-toggle\":`offCanvas-inline-popup-${_vm.filter['code']}`}},[_c('i',{attrs:{\"role\":\"tooltip\",\"data-toggle\":`offCanvas-inline-popup-${_vm.filter['code']}`}},[_vm._v(\"i\")])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"_options\"},_vm._l((_vm.filter['options']),function(option){return _c('label',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleFilterStatus(option)}}},[_vm._v(\"\\n \"+_vm._s(option['label'])+\"\\n \")])}),0),_vm._v(\" \"),_c('portal',{attrs:{\"to\":\"modals\"}},[_c('off-canvas',{attrs:{\"id\":`offCanvas-inline-popup-${_vm.filter['code']}`,\"title\":_vm.filter['label']}},[_c('div',{staticClass:\"--content --table\",domProps:{\"innerHTML\":_vm._s(_vm.filter['description'])}})])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"names":["Vue","use","filterStartRow","currentFilter","availableFilters","Object","values","this","inlineFilter","filter","f","undefined","sort","a","b","position","$store","getters","filterList","is_visible","activeFilters","toggleFilterStatus","option","window","location","href","scrollToTop","dispatch","remove","recalculateFilterPositions","forEach","index","scrollElement","document","getElementById","headerOffset","offsetPosition","getBoundingClientRect","top","scrollTo","behavior","created","state","CatalogCategory","categoryData","category_id","length","af","mounted","setupMutationObserver","observer","MutationObserver","hasQuickLinks","querySelector","hasBrandsWidget","disconnect","observe","body","childList","subtree","Prop","Component","name","components","render","_vm","_c","_self","_setupProxy","keys","staticClass","class","_v","_s","attrs","_e","_l","on","$event","preventDefault","stopPropagation","domProps","staticRenderFns"],"sourceRoot":""}