{"version":3,"file":"product-compare-picker.js?v=ee10682558f9282cf7d6","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/element-enumerator.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/widget-initializer.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/models/PickedProductClass.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/stores/picked-products-store.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/components/CompareSlot.vue","webpack://RdoWeb/ResourcePackages/Main/assets/src/scripts/components/CompareSlot.vue","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/components/CompareSlot.vue?4393","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/components/CompareSlot.vue?06f4","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/product-compare-picker.js","webpack://RdoWeb/./node_modules/vue-loader/lib/runtime/componentNormalizer.js"],"sourcesContent":["export var ElementsEnumerator = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\rElementsEnumerator.prototype.getElements = function () {\r var elements = document.getElementsByClassName(this.elementsClass);\r\n var elementIdPrefix = this.elementsClass + \"-\";\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n element.setAttribute(\"id\", (elementIdPrefix + (i + 1)));\r\n }\r return elements;\r};","import { widgetInitialisation } from \"./widget-init\";\r\nimport { ElementsEnumerator } from \"./element-enumerator\";\r\n\r\nconst initializedVueAppAttrName = \"data-vue-initialized\";\r\n\r\nexport var WidgetInitializer = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\r\nWidgetInitializer.prototype.initialize = function (initializationCallback) {\r\n var that = this;\r\n widgetInitialisation(function () {\r\n return innerInitialization.call(that, initializationCallback);\r\n });\r\n};\r\n\r\nfunction innerInitialization(initializationCallback) {\r\n var elementsEnumerator = new ElementsEnumerator(this.elementsClass);\r\n var notInitializedElements = elementsEnumerator.getElements();\r\n for (var i = 0; i < notInitializedElements.length; i++) {\r\n var element = notInitializedElements[i];\r\n if (element.hasAttribute(initializedVueAppAttrName))\r\n return;\r\n\r\n var newElement = initializationCallback(element);\r\n if (newElement)\r\n { element = newElement; }\r\n\r\n element.setAttribute(initializedVueAppAttrName, '');\r\n }\r\n};","export default class PickedProduct {\r\n constructor(id, title, imageUrl, productUrl) {\r\n this.id = id\r\n this.title = title\r\n this.imageUrl = imageUrl\r\n this.productUrl = productUrl\r\n }\r\n\r\n isValid() {\r\n return (this.id && this.title && this.imageUrl && this.productUrl);\r\n }\r\n}","import Vue from \"vue\";\r\nimport PickedProduct from \"../models/PickedProductClass\";\r\nimport { Constants } from \"../functions/constants\";\r\n\r\nexport const store = Vue.observable({\r\n products: new Array(Constants.PRODUCTS_COMPARE.NUMBER_OF_SLOTS),\r\n usedSlots: 0\r\n});\r\n\r\nexport const mutations = {\r\n pickProduct(id, title, imageUrl, productUrl) {\r\n if (store.usedSlots >= Constants.PRODUCTS_COMPARE.NUMBER_OF_SLOTS)\r\n return;\r\n\r\n let productToPick = new PickedProduct(id, title, imageUrl, productUrl);\r\n if (productToPick.isValid() === false)\r\n return;\r\n\r\n let indexOfProduct = store.products.findIndex(p => (p && p.id === productToPick.id));\r\n if (indexOfProduct > -1)\r\n return\r\n\r\n let isProductAdded = false;\r\n let iterator = 0;\r\n while (isProductAdded === false && iterator < Constants.PRODUCTS_COMPARE.NUMBER_OF_SLOTS) {\r\n let product = store.products[iterator];\r\n if (!product || Object.keys(product).length === 0) {\r\n Vue.set(store.products, iterator, productToPick);\r\n store.usedSlots++;\r\n isProductAdded = true;\r\n }\r\n\r\n iterator++;\r\n }\r\n },\r\n unpickProduct(id) {\r\n if (!id || store.usedSlots < 1)\r\n return;\r\n\r\n let indexOfProduct = store.products.findIndex(p => (p && p.id === id));\r\n if (indexOfProduct > -1) {\r\n store.products[indexOfProduct] = {};\r\n store.usedSlots--;\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.COMPARE_PRODUCTS_REMOVED);\r\n }\r\n },\r\n resetPickedProducts() {\r\n store.products = new Array(Constants.PRODUCTS_COMPARE.NUMBER_OF_SLOTS);\r\n store.usedSlots = 0;\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.COMPARE_PRODUCTS_REMOVED);\r\n }\r\n};","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"div\",\n { staticClass: \"compare_item\", class: { empty: _vm.isEmpty } },\n [\n !_vm.isEmpty\n ? [\n _c(\"div\", {\n staticClass: \"image_part\",\n style: _vm.imageBackground,\n }),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"text_part\",\n attrs: { href: _vm.product.productUrl, target: \"_blank\" },\n },\n [_vm._v(_vm._s(_vm.product.title))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"compare_remove\",\n on: {\n click: function ($event) {\n return _vm.remove()\n },\n },\n },\n [_vm._v(\"×\")]\n ),\n ]\n : _vm._e(),\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompareSlot.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!./CompareSlot.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CompareSlot.vue?vue&type=template&id=02878906\"\nimport script from \"./CompareSlot.vue?vue&type=script&lang=js\"\nexport * from \"./CompareSlot.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","import { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { ConfigUtils } from \"../functions/config-utils\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport CompareSlot from \"../components/CompareSlot\";\r\nimport { store, mutations } from \"../stores/picked-products-store\";\r\n\r\nconst widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.PRODUCT_COMPARE_PICKER);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.PRODUCT_COMPARE_PICKER, function () {\r\n widgetInitializer.initialize(initProductCompareApp);\r\n});\r\n\r\nfunction initProductCompareApp(element) {\r\n const config = ConfigUtils.getConfigFor(element);\r\n\r\n let vueApp = new Vue({\r\n el: '#' + element.id,\r\n data: {\r\n initializationReadyHook: GlobalApp.getInitializationReadyHook(),\r\n isExpanded: true\r\n },\r\n computed: {\r\n config: () => config,\r\n pickedProducts: function () {\r\n return store.products;\r\n },\r\n compareText: function () {\r\n let compareText = \"Compare\";\r\n return (store.usedSlots == 0) ? compareText : `${compareText} (${store.usedSlots})`;\r\n },\r\n shouldShowRibbon: function () {\r\n return (store.usedSlots && store.usedSlots > 0);\r\n },\r\n shouldDisableCompare: function(){\r\n return (!store || store.usedSlots < 2);\r\n },\r\n anyProductPicked: function () {\r\n return store && store.usedSlots\r\n }\r\n },\r\n methods: {\r\n clearProducts: function () {\r\n mutations.resetPickedProducts();\r\n },\r\n compare: function () {\r\n if (this.shouldDisableCompare) return;\r\n\r\n const ids = this.pickedProducts.filter(p => (p && p.id)).map(p => p.id);\r\n let params = {};\r\n params[Constants.PRODUCTS_COMPARE.QUERY_STRING_KEY] = ids;\r\n\r\n if (typeof this.config.productsCompareUrl !== \"string\") {\r\n console.error(\"Cannot redirect to compare page\");\r\n return;\r\n }\r\n\r\n const query = new URLSearchParams(params).toString();\r\n window.location.href = `${this.config.productsCompareUrl}?${query}`;\r\n }\r\n },\r\n components: {\r\n CompareSlot\r\n },\r\n created: function () {\r\n this.initializationReadyHook(element.id);\r\n }\r\n });\r\n\r\n return vueApp.$el;\r\n}","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n"],"names":["ElementsEnumerator","elementsClass","this","prototype","getElements","elements","document","getElementsByClassName","elementIdPrefix","i","length","setAttribute","WidgetInitializer","innerInitialization","initializationCallback","notInitializedElements","element","hasAttribute","newElement","initialize","that","widgetInitialisation","call","PickedProduct","constructor","id","title","imageUrl","productUrl","isValid","store","Vue","products","Array","Constants","PRODUCTS_COMPARE","NUMBER_OF_SLOTS","usedSlots","mutations","pickProduct","productToPick","findIndex","p","isProductAdded","iterator","product","Object","keys","unpickProduct","indexOfProduct","GlobalApp","EventHub","raiseEvent","EVENTS","COMPARE_PRODUCTS_REMOVED","resetPickedProducts","render","_vm","_c","_self","staticClass","class","empty","isEmpty","_e","style","imageBackground","_v","attrs","href","target","_s","on","click","$event","remove","_withStripped","name","props","type","default","methods","computed","concat","widgetInitializer","COMPONENTS","PRODUCT_COMPARE_PICKER","initProductCompareApp","config","ConfigUtils","getConfigFor","el","data","initializationReadyHook","getInitializationReadyHook","isExpanded","pickedProducts","compareText","shouldShowRibbon","shouldDisableCompare","anyProductPicked","clearProducts","compare","ids","filter","map","params","QUERY_STRING_KEY","productsCompareUrl","query","URLSearchParams","toString","window","location","console","error","components","CompareSlot","created","$el","registerInitializationHandler","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","exports"],"sourceRoot":""}