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