{"version":3,"file":"js/app.eca546fd3def0e56712e.js","mappings":"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","sources":["webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbar.vue?4e64","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbar.vue","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbar.vue?91b1","webpack:///./resources/area/web/default/js/components/catalog/toolbar/ProductListToolbar.vue?d6c5"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Vue, Prop, Watch} from 'vue-property-decorator';\nimport ServiceContainer from '@flashpointbv/solar-service-container';\n\ninterface Filter {\n  code: string;\n  type: string;\n  renderer?: string;\n  is_visible: boolean;\n  is_active: boolean;\n  options?: Array<{\n    active: boolean;\n    url?: string;\n  }>;\n}\n\n@Component({\n  name: 'catalog-product-list-toolbar',\n  components: ServiceContainer().getComponents()\n})\n\nexport default class extends Vue {\n  @Prop({required: false}) readonly blockId: number;\n  @Prop({required: true}) readonly dataSource: string;\n  @Prop({default: 'top'}) readonly type: string;\n\n  private get totalProductCount(): number {\n    return this.$store.getters[`${this.dataSource}/totalItemCount`];\n  }\n\n  private get activeFilterCount(){\n    const priceFilters = (this.$store.getters[`${this.dataSource}/priceFilters`] || []).filter(x=> this.checkPriceFilterActive(x)).length ?? 0;\n    return (this.$store.getters[`${this.dataSource}/activeFilters`] || []).length + priceFilters;\n  }\n\n  private get activeFilters(): Array<Filter> {\n    const filters: Array<Filter> = this.filterList;\n    let activeFilters: Array<Filter> = [];\n    activeFilters = filters.filter(x => x.is_active);\n    const priceFilter = filters.find((f) => f.type === 'price');\n\n    if (this.checkPriceFilterActive(priceFilter)) {\n      activeFilters.unshift(priceFilter);\n    }\n    return activeFilters;\n  }\n\n  private get filterList(): Array<Filter> {\n    const filterList = this.$store.getters[`${this.dataSource}/filterList`] || [];\n\n    return [\n      ...(this.$store.getters[`${this.dataSource}/priceFilters`] || []),\n      ...filterList.filter((f: Filter) => f.is_visible),\n    ];\n  }\n\n  private checkPriceFilterActive(priceFilter: object): boolean {\n    let priceActive: boolean = false;\n    if (priceFilter) {\n      const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\n      const myParam: string | null = urlParams.get(priceFilter['code']);\n\n      const priceVals = myParam?.split('-') ?? '';\n      priceActive = myParam !== '' && (parseInt(priceVals[0]) > priceFilter['minimum_range'] || parseInt(priceVals[1]) < priceFilter['maximum_range']);\n    }\n    return priceActive;\n  }\n\n  private initialCount: number = 0;\n\n\n  private mounted(): void {\n    const placeholder = document.getElementById(`filter-placeholder-${this.type}`)\n    if (placeholder) {\n      placeholder.style.visibility = 'hidden';\n    }\n\n    // Store the initial count\n    this.initialCount = this.totalProductCount;\n  }\n\n  @Watch('totalProductCount')\n  private onTotalProductCountChange(newCount: number, oldCount: number): void {\n    if (newCount !== this.initialCount) {\n      this.updateCategoryName(false);\n    } else {\n      this.updateCategoryName(true);\n    }\n    this.updateProductCount(newCount);\n  }\n\n  private updateCategoryName(includeAll: boolean): void {\n    const categoryNameContainers = document.querySelectorAll('.category-name-container');\n    categoryNameContainers.forEach(container => {\n      const originalName = container.getAttribute('data-original-name');\n      if (originalName) {\n        container.textContent = includeAll ? `Alle ${originalName}` : originalName;\n      }\n    });\n  }\n\n  private updateProductCount(count: number): void {\n    const headerCountElements = document.querySelectorAll('.catalog__header-count');\n    headerCountElements.forEach(element => {\n      element.textContent = `(${count})`;\n    });\n  }\n}\n","import { render, staticRenderFns } from \"./ProductListToolbar.vue?vue&type=template&id=4e22a4a6&\"\nimport script from \"./ProductListToolbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductListToolbar.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!./ProductListToolbar.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!./ProductListToolbar.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.totalProductCount > 0)?_c('section',{staticClass:\"catalog-category__toolbar\",class:(\"--\" + _vm.type)},[(_vm.type=='top')?_c('span',{staticClass:\"category__product-count\"},[_vm._v(_vm._s(_vm.$t('Found products'))+\": \"),_c('b',[_vm._v(_vm._s(_vm.totalProductCount))])]):_vm._e(),_vm._v(\" \"),(_vm.type === 'top')?_c('section',{staticClass:\"show-for-small-only catalog-category__tool\"},[_c('button',{attrs:{\"data-toggle\":\"offCanvas-filter\"}},[_c('span',{staticClass:\"icon--filter\",attrs:{\"data-toggle\":\"offCanvas-filter\"}}),_vm._v(\"\\n      \"+_vm._s(_vm.$t('Filteren'))+\"\\n      \"),(_vm.activeFilters.length > 0)?_c('span',{staticClass:\"filter-count\",attrs:{\"data-toggle\":\"offCanvas-filter\"}},[_vm._v(_vm._s(_vm.activeFilters.length))]):_vm._e()])]):_vm._e(),_vm._v(\" \"),(_vm.type === 'top')?_c('catalog-product-list-toolbar-sort-select',{attrs:{\"data-source\":_vm.dataSource}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'top')?_c('catalog-product-list-toolbar-size-select',{attrs:{\"data-source\":_vm.dataSource}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'bottom')?_c('catalog-product-list-toolbar-paginator',{attrs:{\"data-source\":_vm.dataSource,\"interval\":1}}):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"names":["Vue","initialCount","totalProductCount","this","$store","getters","dataSource","activeFilterCount","priceFilters","filter","x","checkPriceFilterActive","length","activeFilters","filters","filterList","is_active","priceFilter","find","f","type","unshift","is_visible","priceActive","myParam","URLSearchParams","window","location","search","get","priceVals","split","parseInt","mounted","placeholder","document","getElementById","style","visibility","onTotalProductCountChange","newCount","oldCount","updateCategoryName","updateProductCount","includeAll","querySelectorAll","forEach","container","originalName","getAttribute","textContent","count","element","Prop","required","default","Watch","Component","name","components","getComponents","render","_vm","_h","$createElement","_c","_self","staticClass","class","_v","_s","$t","_e","attrs","staticRenderFns"],"sourceRoot":""}