{"version":3,"sources":["webpack:///./src/project/app/client-pages/SearchPage.vue?a421","webpack:///./src/project/app/client-pages/SearchPage.vue","webpack:///./src/project/app/client-pages/SearchPage.vue?a001","webpack:///./src/project/app/client-pages/SearchPage.vue?5c12"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","class","hasNoTerm","attrs","searchResultCallback","zeroResultContent","heading","searchTitle","scopedSlots","_u","key","fn","ref","menuItems","searchResult","length","totalHits","_e","contentBlocks","proxy","staticRenderFns","isFeatureEnabled","ProductListingPageV2","SearchOverlayScrollPositionChanged","newRoute","oldRoute","query","termKey","setTimeout","document","activeElement","tagName","$route","request","term","handleZeroSearchResults","searchTerm","search","zeroSearchResultContent","then","result","searchFallbackExplanation","values","interpolationValues","label","getTerm","router","replace","restrictViewport","resetViewport","setHideBreadcrumb","type","Boolean","default","HTMLElement","components","SearchProductControl","CategoryFacets","component"],"mappings":"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","file":"js/chunk-2d0ceed8.d541632d.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"mt-20 pb-60 md:pb-20 transition-opacity u-trans\",class:{ 'opacity-0 pointer-events-none': _vm.hasNoTerm }},[_c('SearchProductControl',{attrs:{\"search-result-callback\":_vm.searchResultCallback,\"search-no-result-title\":_vm.zeroResultContent && _vm.zeroResultContent.heading,\"search-title\":_vm.searchTitle,\"allow-term\":\"\",\"reactive-categories\":\"\",\"use-flattened-category-tree\":\"\",\"context-key\":\"search\"},scopedSlots:_vm._u([{key:\"navigation\",fn:function(ref){\nvar menuItems = ref.menuItems;\nvar searchResult = ref.searchResult;\nreturn [(menuItems.length > 0)?_c('CategoryFacets',{attrs:{\"menu-items\":menuItems,\"total-hits\":(searchResult && searchResult.totalHits || 0)}}):_vm._e()]}},{key:\"zeroResult\",fn:function(){return [(_vm.zeroResultContent)?_c('BlockList',{staticClass:\"mb-20\",attrs:{\"blocks\":_vm.zeroResultContent.contentBlocks,\"enable-container\":false}}):_vm._e()]},proxy:true}])})],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\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport appStore from '@/core/app/app.store';\r\nimport Api from '@/project/http/Api.service';\r\nimport { SearchBlockViewModel } from '@/types/contentServerContract';\r\nimport serverContextService from '@/core/serverContext.service';\r\nimport { Feature, SearchRequest, SearchViewModel } from '@/types/apiServerContract';\r\nimport urlHelperService from '@/core/urlHelper.service';\r\nimport { router } from '@/router';\r\nimport { Route } from 'vue-router';\r\nimport { UrlQueryKey } from '@/core/urlQueryKey';\r\nimport translateFilter from '@/core/translation/translate.filter';\r\nconst SearchProductControl = () => serverContextService.isFeatureEnabled(Feature.ProductListingPageV2)\r\n ? import('@/project/search/SearchProductControl.vue')\r\n : import('@/project/search/SearchProductControlV1.vue');\r\nconst CategoryFacets = () => serverContextService.isFeatureEnabled(Feature.ProductListingPageV2)\r\n ? import('@/project/search/facets/CategoryFacets.vue')\r\n : import('@/project/search/facets/CategoryFacetsV1.vue');\r\n\r\nexport const SearchOverlayScrollPositionChanged = 'SearchOverlayScrollPositionChanged';\r\n\r\n@Component({\r\n components: { SearchProductControl, CategoryFacets }\r\n})\r\nexport default class SearchPage extends Vue {\r\n zeroResultContent: SearchBlockViewModel | null = null;\r\n searchResult: SearchViewModel | null = null;\r\n hasNoTerm = false;\r\n\r\n @Prop({ type: Boolean, default: false })\r\n show!: boolean;\r\n\r\n @Prop({ type: Boolean, default: false })\r\n typing!: boolean;\r\n\r\n @Prop({ type: HTMLElement })\r\n anchorElement!: HTMLElement;\r\n\r\n @Watch('$route')\r\n onRouteChange(newRoute: Route, oldRoute: Route) {\r\n if (newRoute.query[UrlQueryKey.termKey]) {\r\n this.hasNoTerm = false;\r\n } else {\r\n setTimeout(() => {\r\n this.hasNoTerm = (!(document.activeElement?.tagName === 'INPUT') && !this.$route.query[UrlQueryKey.termKey]);\r\n }, 1000);\r\n }\r\n }\r\n\r\n searchResultCallback(searchResult: SearchViewModel, request?: SearchRequest) {\r\n this.searchResult = searchResult || null;\r\n if (searchResult.totalHits === 0 && request?.term) {\r\n this.handleZeroSearchResults(request.term);\r\n } else {\r\n this.zeroResultContent = null;\r\n }\r\n }\r\n\r\n async handleZeroSearchResults(searchTerm: string) {\r\n Api.search.zeroSearchResultContent(searchTerm).then((result) => {\r\n if (result) {\r\n this.zeroResultContent = result;\r\n }\r\n });\r\n }\r\n\r\n get searchTitle(): null | string {\r\n if (this.searchResult?.searchFallbackExplanation) {\r\n const values = this.searchResult.searchFallbackExplanation.interpolationValues || [];\r\n return translateFilter(this.searchResult.searchFallbackExplanation.label, ...values);\r\n }\r\n return this.zeroResultContent?.heading || null;\r\n }\r\n\r\n created() {\r\n if (!urlHelperService.getTerm()) {\r\n setTimeout(() => {\r\n if (!urlHelperService.getTerm()) {\r\n router.replace('/');\r\n }\r\n }, 2000);\r\n }\r\n this.restrictViewport();\r\n }\r\n\r\n destroyed() {\r\n this.resetViewport();\r\n }\r\n\r\n restrictViewport() {\r\n appStore.setHideBreadcrumb(true);\r\n }\r\n\r\n resetViewport() {\r\n appStore.setHideBreadcrumb(false);\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!./SearchPage.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!./SearchPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchPage.vue?vue&type=template&id=77cbe3d2&\"\nimport script from \"./SearchPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchPage.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":""}