{"version":3,"sources":["webpack:///./src/client/default/js/components/promoElementInListingComponent.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js"],"names":["PromoElementInListingComponent","_BaseFormComponent","element","_this","_classCallCheck","_callSuper","$options","analyticsEnabled","promoTitle","promoType","promoTemplate","promoFormat","pushDataLayer","handleClick","checkListingLength","window","addEventListener","_inherits","_createClass","key","get","_defineProperty","this","CUSTOM_MESSAGES","UPDATE_LISTING_EVENTS","done","hide","link","value","productItems","document","querySelectorAll","length","hasBoth","isSecond","$el","classList","contains","match","small","medium","large","extralarge","add","CLASSES","remove","_this2","querySelector","SELECTORS","$on","e","eventName","dataLayer","push","event","promo_title","promo_template","promo_type","promo_format","BaseFormComponent","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","Promise","then","module","exports","fn","self","args","arguments","apply","err","undefined","__esModule","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arr","i","Array","isArray","_i","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","TypeError"],"mappings":"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","file":"js/component-promoElementInListingComponent-js.chunks.js","sourcesContent":["import BaseFormComponent from '../base/baseFormComponent';\nimport { match } from '../utilities/resolutionHandler';\n\nexport default class PromoElementInListingComponent extends BaseFormComponent {\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.UPDATE_LISTING_EVENTS.done]: this.checkListingLength\n };\n }\n\n get CLASSES() {\n return {\n hide: 'd-none'\n };\n }\n\n get SELECTORS() {\n return {\n link: 'a.tracking-link'\n };\n }\n\n constructor(element) {\n super(element);\n if (this.$options.analyticsEnabled) {\n this.promoTitle = this.$options.promoTitle;\n this.promoType = this.$options.promoType;\n this.promoTemplate =\n this.$options.promoTemplate && this.$options.promoTemplate == 'no_template' ? '' : this.$options.promoTemplate ? this.$options.promoTemplate : 'product_listing';\n this.promoFormat = this.$options.promoFormat;\n this.pushDataLayer('promo_impression');\n this.handleClick();\n }\n this.checkListingLength();\n window.addEventListener('resize', () => {\n this.checkListingLength();\n });\n }\n\n checkListingLength() {\n const productItems = document.querySelectorAll('.product-grid .product-item:not(.promo)').length;\n const hasBoth =\n document.querySelectorAll('.experience-firstComponent .promo-editorial-component').length != 0 &&\n document.querySelectorAll('.experience-secondComponent .promo-editorial-component').length != 0;\n const isSecond = this.$el.classList.contains('only-products');\n if (\n (match('md', null) && productItems < this.$options.small) ||\n (match('lg', 'md') && productItems <= this.$options.medium - (hasBoth && isSecond ? '2' : 0)) ||\n (match('xl', 'lg') && productItems <= this.$options.large - (hasBoth && isSecond ? '2' : 0)) ||\n (match(null, 'xl') && productItems <= this.$options.extralarge - (hasBoth && isSecond ? '2' : 0))\n ) {\n this.$el.classList.add(this.CLASSES.hide);\n } else {\n this.$el.classList.remove(this.CLASSES.hide);\n }\n }\n\n handleClick() {\n let link = this.$el.querySelector(this.SELECTORS.link);\n if (link) {\n this.$on(\n 'click.promoImpression',\n (e) => {\n this.pushDataLayer('promo_click');\n },\n link\n );\n }\n }\n\n pushDataLayer(eventName) {\n if (window && window.dataLayer) {\n window.dataLayer.push({\n event: eventName,\n promo_title: this.promoTitle,\n promo_template: this.promoTemplate,\n promo_type: this.promoType,\n promo_format: this.promoFormat\n });\n }\n }\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}