{"version":3,"sources":["webpack:///./src/client/default/js/components/slotContainerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["slotContainerComponent","element","handleClick","promoClick","elements","this","$el","querySelectorAll","SELECTORS","length","forEach","el","addEventListener","e","dataset","promovalues","data","JSON","parse","stringify","filteredPromoDataset","Object","keys","filter","key","includes","reduce","obj","window","dataLayer","push","event","ecommerce","promotions","ga4TrackingObj","ga4tracking","promo_title","promoTitle","promo_template","promoTemplate","promo_type","promoType","promo_format","promoFormat","BaseComponent","_componentElement","setAttribute","_checkMessages","compOptions","options","entry","optionValue","cleanEntry","cleanOptionKey","replace","convertType","deepFreeze","getAttribute","events","cb","Bean","on","stopPropagation","one","off","fire","container","message","_loading","EMIT","CUSTOM_MESSAGES","LOADER_EVENTS","show","document","body","error","icon","setTimeout","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"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","file":"js/component-slotContainerComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\n\nexport default class slotContainerComponent extends BaseComponent {\n get SELECTORS() {\n return {\n promoClick: '.promoclick'\n };\n }\n constructor(element) {\n super(element);\n this.handleClick();\n }\n\n handleClick() {\n var elements = this.$el.querySelectorAll(this.SELECTORS.promoClick);\n if (elements && elements.length > 0) {\n elements.forEach((el) => {\n el.addEventListener('click', (e) => {\n if (!!el && !!el.dataset) {\n let promovalues = ['id', 'name', 'creative', 'position'];\n let data = JSON.parse(JSON.stringify(el.dataset));\n let filteredPromoDataset = Object.keys(data)\n .filter((key) => promovalues.includes(key))\n .reduce((obj, key) => {\n obj[key] = data[key];\n return obj;\n }, {});\n window.dataLayer.push({\n event: 'promotion click',\n ecommerce: {\n promoClick: {\n promotions: [filteredPromoDataset]\n }\n }\n });\n let ga4TrackingObj = {};\n if (data && data.ga4tracking == 'true') {\n ga4TrackingObj = {\n event: 'promo_click',\n promo_title: data.promoTitle != 'null' ? data.promoTitle : '',\n promo_template: data.promoTemplate != 'null' ? data.promoTemplate : '',\n promo_type: data.promoType != 'null' ? data.promoType : '',\n promo_format: data.promoFormat != 'null' ? data.promoFormat : ''\n };\n }\n if (Object.keys(ga4TrackingObj).length > 0) {\n window.dataLayer.push(ga4TrackingObj);\n }\n }\n });\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":""}