{"version":3,"file":"results-instantsearch.js?v=02b59530e99ebdc13d91","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/statsInjector.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/results-instantsearch.js","webpack://RdoWeb/ResourcePackages/Main/assets/src/scripts/components/search/QueryRuleCustomDataExtended.vue","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/components/search/QueryRuleCustomDataExtended.vue?a1b7","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/components/search/QueryRuleCustomDataExtended.vue"],"sourcesContent":["import { connectStats } from 'instantsearch.js/es/connectors';\r\nimport { createWidgetMixin } from 'vue-instantsearch';\r\n\r\nexport default {\r\n mixins: [createWidgetMixin({ connector: connectStats })],\r\n props: {\r\n type: {\r\n type: String,\r\n default: 'all'\r\n }\r\n },\r\n computed: {\r\n nbHits() {\r\n return this.state && this.state.nbHits;\r\n }\r\n },\r\n watch: {\r\n nbHits() {\r\n this.$emit(\"nbhitschange\", { hits: this.nbHits, type: this.type });\r\n }\r\n },\r\n render() {\r\n return null;\r\n },\r\n};\r\n","import { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport { ConfigUtils } from \"../functions/config-utils\";\r\nimport algoliasearch from 'algoliasearch/lite';\r\nimport '../../_listing_styles.scss';\r\nimport {\r\n AisInstantSearch, AisConfigure, AisDynamicWidgets, AisHits, AisIndex, AisHighlight, AisSearchBox\r\n , AisHierarchicalMenu, AisPanel, AisNumericMenu, AisStats, AisClearRefinements\r\n , AisCurrentRefinements, AisPagination, AisRangeInput, AisSortBy, AisHitsPerPage, AisQueryRuleCustomData\r\n} from 'vue-instantsearch';\r\nimport { history as historyRouter } from 'instantsearch.js/es/lib/routers';\r\nimport { singleIndex as singleIndexMapping } from 'instantsearch.js/es/lib/stateMappings';\r\nimport statsInjector from \"./statsInjector\";\r\nimport EquipmentResults from \"../components/search/EquipmentResults\";\r\nimport PartsResults from \"../components/search/PartsResults\";\r\nimport Product from \"../components/cards/Product\";\r\nimport ResourceAlgolia from \"../components/cards/ResourceAlgolia\";\r\nimport PartAlgolia from \"../components/cards/PartAlgolia\";\r\nimport PageCard from \"../components/cards/PageCard\";\r\nimport ResultsTop from \"../components/search/InstantsearchResultsTop\";\r\nimport RefinementListExtended from \"../components/search/RefinementListExtended\";\r\nimport QueryRuleCustomDataExtended from \"../components/search/QueryRuleCustomDataExtended\"; \r\nimport { Splide, SplideSlide } from '@splidejs/vue-splide';\r\nimport algoliaResultsMixin from \"../mixins/algolia-results-mixin\";\r\nimport BannerAlgolia from \"../components/search/BannerAlgolia\";\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.RESULTS_INSTANTSEARCH);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.RESULTS_INSTANTSEARCH, function () {\r\n widgetInitializer.initialize(initInstantResultsApp);\r\n});\r\n\r\nfunction initInstantResultsApp(element) {\r\n var config = ConfigUtils.getConfigFor(element);\r\n const algoliaClient = algoliasearch(config.appId, config.apiKey);\r\n\r\n var vueApp = new Vue({\r\n el: '#' + element.id,\r\n mixins: [algoliaResultsMixin],\r\n components: {\r\n AisInstantSearch,\r\n AisHits,\r\n AisIndex,\r\n AisConfigure,\r\n AisSearchBox,\r\n RefinementListExtended,\r\n AisDynamicWidgets,\r\n AisHierarchicalMenu,\r\n AisPanel,\r\n AisHighlight,\r\n AisNumericMenu,\r\n AisStats,\r\n AisCurrentRefinements,\r\n AisClearRefinements,\r\n AisPagination,\r\n AisRangeInput,\r\n AisSortBy,\r\n Part: PartAlgolia,\r\n Product,\r\n Resource: ResourceAlgolia,\r\n PageCard,\r\n statsInjector,\r\n ResultsTop,\r\n AisHitsPerPage,\r\n EquipmentResults,\r\n PartsResults,\r\n QueryRuleCustomDataExtended,\r\n Splide,\r\n SplideSlide,\r\n Banner: BannerAlgolia\r\n },\r\n data () {\r\n return {\r\n initializationReadyHook: GlobalApp.getInitializationReadyHook(),\r\n searchClient: algoliaClient,\r\n middlewares: [],\r\n this_config: config,\r\n default_context: ['main-search'],\r\n total_equipment: 0,\r\n total_parts: 0,\r\n total_pages: 0,\r\n total_resources: 0,\r\n activeIndex: 'all',\r\n filters_shown: false,\r\n currentViewVariant: true,\r\n isMobile: window.matchMedia('(max-width: 1199px)').matches,\r\n overview_slider_options: {\r\n 'padding': { left: 20, right: 50 },\r\n 'gap': 20,\r\n 'perPage': 2,\r\n 'breakpoints': {\r\n 640: {\r\n 'perPage': 1\r\n }\r\n }\r\n },\r\n page_options: [\r\n { label: '12 products / page', value: 12, default: true },\r\n { label: '24 products / page', value: 24 }\r\n ],\r\n routing: {\r\n router: historyRouter(),\r\n stateMapping: singleIndexMapping(config.defaultIndexName)\r\n },\r\n category_attributes: config.categoryHierarchy\r\n }\r\n },\r\n methods: {\r\n alertstats(event) {\r\n if (event.type) {\r\n switch(event.type) {\r\n case 'equipment' : this.total_equipment = event.hits; break;\r\n case 'parts' : this.total_parts = event.hits; break;\r\n case 'pages' : this.total_pages = event.hits; break;\r\n case 'resources' : this.total_resources = event.hits; break;\r\n }\r\n }\r\n },\r\n setActiveIndex: function(index_id) {\r\n this.activeIndex = index_id\r\n if(document.querySelector('.facets_clear')) \r\n { document.querySelector('.facets_clear').click() }\r\n\r\n var container_target = document.getElementById(element.id);\r\n var offset = window.isMobile ? -50 : -100;\r\n\r\n window.scrollTo({\r\n top: this.findOffset(container_target) + offset,\r\n behavior: \"smooth\"\r\n });\r\n\r\n if (window.isMobile) {\r\n this.$nextTick(function(){\r\n const beforeButtons = document.querySelectorAll('.activeTab .results_navigation_button:not(.active):not(.active ~ .results_navigation_button)');\r\n let totalOffset = 0;\r\n for (var button = 0; button < beforeButtons.length && beforeButtons.length > 1; button++) {\r\n totalOffset += beforeButtons[button].clientWidth;\r\n }\r\n const fallbackOffset = index_id === 'pages' ? 338 : index_id === 'resources' ? 407 : 0;\r\n setTimeout(function () {\r\n document.querySelector('.activeTab .results_navigation_wrap').scrollLeft = totalOffset ? totalOffset : fallbackOffset;\r\n }, 500)\r\n })\r\n }\r\n },\r\n checkLayoutReload: function () {\r\n this.isMobile = window.matchMedia('(max-width: 1199px)').matches;\r\n },\r\n findOffset: function (element) {\r\n var currentTop = 0;\r\n if (!element.offsetParent)\r\n return currentTop;\r\n\r\n do {\r\n currentTop += element.offsetTop;\r\n } while (element = element.offsetParent);\r\n return currentTop;\r\n },\r\n refinePagination: function () {\r\n this.$nextTick(function () {\r\n window.scrollTo({\r\n top: document.querySelector('.results_top').offsetTop - 60,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n });\r\n },\r\n checkAnchors: function () {\r\n const anchor = window.location.hash;\r\n const hashPart = anchor.substring(1)\r\n const allowedAnchor = hashPart && \r\n ['equipment', 'parts', 'pages', 'resources'].indexOf(hashPart) > -1;\r\n\r\n if (allowedAnchor) {\r\n this.setActiveIndex(hashPart)\r\n }\r\n },\r\n transformHierachy: function (items) {\r\n //pass through to allow for functionality on landing pages.\r\n return items;\r\n },\r\n transformWidgets: function (items) {\r\n //pass through to allow for functionality on landing pages.\r\n return items;\r\n }\r\n },\r\n computed: {\r\n total_all: function () {\r\n return this.total_equipment + this.total_pages + this.total_parts + this.total_resources\r\n },\r\n categoryRoot: function () {\r\n return '';\r\n },\r\n categoryAttributes: function () {\r\n return this.category_attributes;\r\n },\r\n ruleContext: function () {\r\n return this.default_context;\r\n },\r\n future: function () {\r\n return { preserveSharedStateOnUnmount: true };\r\n }\r\n },\r\n created: function () {\r\n this.initializationReadyHook(element.id);\r\n this.initializeInsights();\r\n window.addEventListener(\"resize\", this.checkLayoutReload, false);\r\n this.checkAnchors()\r\n },\r\n destroyed() {}\r\n });\r\n\r\n return vueApp.$el;\r\n}","<script>\r\n import { AisQueryRuleCustomData } from 'vue-instantsearch';\r\n import { RouteUtils } from \"../../functions/route-utils\";\r\n\r\n export default {\r\n name:\"QueryRuleCustomDataExtended\",\r\n extends: AisQueryRuleCustomData,\r\n mixins: [],\r\n data: function () {\r\n return {\r\n redirectFound: false\r\n }\r\n },\r\n methods: {\r\n transformItems: function (items, { results }) {\r\n if (!this.redirectFound) {\r\n const match = results?.renderingContent?.redirect;\r\n\r\n if (match && match.url) {\r\n this.redirectFound = true;\r\n window.location.href = `${RouteUtils.ensureNoTrailingSlash(match.url)}`;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n },\r\n async created() {\r\n\r\n },\r\n destroyed() {\r\n\r\n }\r\n };\r\n</script>","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QueryRuleCustomDataExtended.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QueryRuleCustomDataExtended.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./QueryRuleCustomDataExtended.vue?vue&type=script&lang=js\"\nexport * from \"./QueryRuleCustomDataExtended.vue?vue&type=script&lang=js\"\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"],"names":["mixins","createWidgetMixin","connector","connectStats","props","type","String","default","computed","nbHits","this","state","watch","$emit","hits","render","widgetInitializer","WidgetInitializer","Constants","COMPONENTS","RESULTS_INSTANTSEARCH","initInstantResultsApp","element","config","ConfigUtils","getConfigFor","algoliaClient","algoliasearch","appId","apiKey","vueApp","Vue","el","id","algoliaResultsMixin","components","AisInstantSearch","AisHits","AisIndex","AisConfigure","AisSearchBox","RefinementListExtended","AisDynamicWidgets","AisHierarchicalMenu","AisPanel","AisHighlight","AisNumericMenu","AisStats","AisCurrentRefinements","AisClearRefinements","AisPagination","AisRangeInput","AisSortBy","Part","PartAlgolia","Product","Resource","ResourceAlgolia","PageCard","statsInjector","ResultsTop","AisHitsPerPage","EquipmentResults","PartsResults","QueryRuleCustomDataExtended","Splide","SplideSlide","Banner","BannerAlgolia","data","initializationReadyHook","GlobalApp","getInitializationReadyHook","searchClient","middlewares","this_config","default_context","total_equipment","total_parts","total_pages","total_resources","activeIndex","filters_shown","currentViewVariant","isMobile","window","matchMedia","matches","overview_slider_options","left","right","page_options","label","value","routing","router","historyRouter","stateMapping","singleIndexMapping","defaultIndexName","category_attributes","categoryHierarchy","methods","alertstats","event","setActiveIndex","index_id","document","querySelector","click","container_target","getElementById","offset","scrollTo","top","findOffset","behavior","$nextTick","beforeButtons","querySelectorAll","totalOffset","button","length","clientWidth","fallbackOffset","setTimeout","scrollLeft","checkLayoutReload","currentTop","offsetParent","offsetTop","refinePagination","checkAnchors","hashPart","location","hash","substring","indexOf","transformHierachy","items","transformWidgets","total_all","categoryRoot","categoryAttributes","ruleContext","future","preserveSharedStateOnUnmount","created","initializeInsights","addEventListener","destroyed","$el","registerInitializationHandler","initialize","name","extends","AisQueryRuleCustomData","redirectFound","transformItems","_ref","_results$renderingCon","match","results","renderingContent","redirect","url","href","concat","RouteUtils","ensureNoTrailingSlash","_asyncToGenerator","staticRenderFns"],"sourceRoot":""}