{"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":""}