{"version":3,"sources":["webpack:///./src/project/app/client-pages/SearchPage.vue?0866","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","scopedSlots","_u","key","fn","ref","menuItems","searchResult","length","totalHits","_e","contentBlocks","proxy","staticRenderFns","SearchProductControl","isFeatureEnabled","ProductListingPageV2","CategoryFacets","SearchOverlayScrollPositionChanged","newRoute","oldRoute","query","termKey","setTimeout","document","activeElement","tagName","$route","request","term","handleZeroSearchResults","searchTerm","search","zeroSearchResultContent","then","result","getTerm","router","replace","restrictViewport","resetViewport","setHideBreadcrumb","type","Boolean","default","HTMLElement","components","component"],"mappings":"0LAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,kDAAkDC,MAAM,CAAE,gCAAiCP,EAAIQ,YAAa,CAACJ,EAAG,uBAAuB,CAACK,MAAM,CAAC,yBAAyBT,EAAIU,qBAAqB,yBAAyBV,EAAIW,mBAAqBX,EAAIW,kBAAkBC,QAAQ,aAAa,GAAG,sBAAsB,GAAG,8BAA8B,GAAG,cAAc,UAAUC,YAAYb,EAAIc,GAAG,CAAC,CAACC,IAAI,aAAaC,GAAG,SAASC,GAC/hB,IAAIC,EAAYD,EAAIC,UAChBC,EAAeF,EAAIE,aACvB,MAAO,CAAED,EAAUE,OAAS,EAAGhB,EAAG,iBAAiB,CAACK,MAAM,CAAC,aAAaS,EAAU,aAAcC,GAAgBA,EAAaE,WAAa,KAAMrB,EAAIsB,QAAQ,CAACP,IAAI,aAAaC,GAAG,WAAW,MAAO,CAAEhB,EAAqB,kBAAEI,EAAG,YAAY,CAACE,YAAY,QAAQG,MAAM,CAAC,OAAST,EAAIW,kBAAkBY,cAAc,oBAAmB,KAASvB,EAAIsB,OAAOE,OAAM,QAAW,IACxWC,EAAkB,G,4GC0BtB,MAAMC,EAAuB,IAAM,OAAqBC,iBAAiB,OAAQC,sBAC3E,gDACA,gDACAC,EAAiB,IAAM,OAAqBF,iBAAiB,OAAQC,sBACrE,gDACA,gDAEOE,EAAqC,qCAKlD,IAAqB,EAArB,cAAwC,OAAxC,c,oBACI,KAAAnB,kBAAiD,KACjD,KAAAH,WAAY,EAYZ,cAAcuB,EAAiBC,GACvBD,EAASE,MAAM,OAAYC,SAC3BjC,KAAKO,WAAY,EAEjB2B,WAAW,KAAK,MACZlC,KAAKO,YAAmD,WAApC,UAAA4B,SAASC,qBAAT,eAAwBC,YAAyBrC,KAAKsC,OAAON,MAAM,OAAYC,UACpG,KAIX,qBAAqBf,EAA+BqB,GACjB,IAA3BrB,EAAaE,WAAb,OAAgCmB,QAAhC,IAAgCA,KAASC,KACzCxC,KAAKyC,wBAAwBF,EAAQC,MAErCxC,KAAKU,kBAAoB,KAIJ,8BAACgC,GAC1B,OAAIC,OAAOC,wBAAwBF,GAAYG,KAAMC,IAC7CA,IACA9C,KAAKU,kBAAoBoC,KAKrC,UACS,OAAiBC,WAClBb,WAAW,KACF,OAAiBa,WAClBC,EAAA,KAAOC,QAAQ,MAEpB,KAEPjD,KAAKkD,mBAGT,YACIlD,KAAKmD,gBAGT,mBACI,OAASC,mBAAkB,GAG/B,gBACI,OAASA,mBAAkB,KAvD/B,gBADC,eAAK,CAAEC,KAAMC,QAASC,SAAS,K,2BAIhC,gBADC,eAAK,CAAEF,KAAMC,QAASC,SAAS,K,6BAIhC,gBADC,eAAK,CAAEF,KAAMG,e,oCAId,gBADC,eAAM,W,4BASN,MAtBgB,EAAU,gBAH9B,eAAU,CACPC,WAAY,CAAEhC,uBAAsBG,qBAEnB,WC1CoZ,I,YCOra8B,EAAY,eACd,EACA5D,EACA0B,GACA,EACA,KACA,KACA,MAIa,aAAAkC,E","file":"js/chunk-2d0ceed8.e2703f6b.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,\"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\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\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 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 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 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=76ab8408&\"\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":""}