{"version":3,"sources":["webpack:///./src/client/default/js/components/minicartDataLayerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["MinicartDataLayerComponent","_BaseComponent","props","_this","_classCallCheck","_callSuper","$on","sendCtaEvent","bind","_inherits","_createClass","key","value","e","this","$options","name","cta","EMIT","CUSTOM_MESSAGES","TRACKING_EVENTS","update","eventCategory","eventAction","eventLabel","BaseComponent","_BaseGiaComponent","element","_componentElement","setAttribute","_checkMessages","get","compOptions","options","_objectSpread","$el","dataset","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","getAttribute","events","cb","arguments","length","undefined","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","document","body","_this2","error","icon","setTimeout","hide","option","optionReturn","str","concat","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"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","file":"js/component-minicartDataLayerComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\n\nexport default class MinicartDataLayerComponent extends BaseComponent {\n constructor(props) {\n super(props);\n this.$on('click.modal', this.sendCtaEvent.bind(this));\n }\n sendCtaEvent(e) {\n if (this.$options.name === 'minicartLayer' && this.$options.cta) {\n this.EMIT(this.CUSTOM_MESSAGES.TRACKING_EVENTS.update, {\n eventCategory: 'Mini-cart',\n eventAction: 'CTA click',\n eventLabel: this.$options.cta\n });\n }\n }\n}\n","/* eslint-disable new-cap */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-underscore-dangle */\n\nimport Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport BaseGiaComponent from './baseGiaComponent';\n\nexport default class BaseComponent extends BaseGiaComponent {\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return /** @type {HTMLElement} */ (this._componentElement);\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super(element);\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this._checkMessages();\n }\n\n static convertType(option) {\n let optionReturn;\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * Activate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n */\n loading(container, message) {\n this._loading = true;\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || document.body,\n message: message ?? null\n });\n }\n\n /**\n *\n * Deactivate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {Boolean} [error=false]\n * @param {String} [icon]\n */\n endLoading(container, message, error = false, icon) {\n this._loading = false;\n setTimeout(() => {\n if (!this._loading) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || document.body,\n message,\n error,\n icon\n });\n }\n }, 400);\n }\n}\n"],"sourceRoot":""}