{"version":3,"file":"RefApp.foundation-layer.CM.js","mappings":"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","sources":["webpack://$/webpack/universalModuleDefinition","webpack://$/webpack/bootstrap","webpack://$/webpack/runtime/make namespace object","webpack://$/./src/Feature/GoogleAnalytics/code/Scripts/components/v1/productImpressions.js","webpack://$/./src/Feature/GoogleAnalytics/code/Scripts/components/v1/EventDataLayer.js","webpack://$/./src/Feature/GoogleAnalytics/code/Scripts/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"$\"] = factory();\n\telse\n\t\troot[\"$\"] = factory();\n})(self, function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function inViewportAndVisible(node, options, callback) {\r\n  return throttle(() => {\r\n    if (\r\n      (options.checkIsVisible && inViewport(node) && isVisible(node)) ||\r\n      (!options.checkIsVisible && inViewport(node))\r\n    ) {\r\n      callback();\r\n    }\r\n  }, options.delay);\r\n}\r\n\r\nfunction intersectionObserverFallback(node, delay) {\r\n  return new Promise((resolve) => {\r\n    const scrollListener = inViewportAndVisible(node, delay, () => {\r\n      window.removeEventListener(\"scroll\", scrollListener);\r\n      window.removeEventListener(\"resize\", scrollListener);\r\n      resolve();\r\n    });\r\n    window.addEventListener(\"scroll\", scrollListener, false);\r\n    window.addEventListener(\"resize\", scrollListener, false);\r\n    scrollListener();\r\n  });\r\n}\r\n\r\nfunction intersectionViewportObserver(node, options = {}) {\r\n  const { checkIsVisible = true, delay = 500, threshold = [0.006] } = options;\r\n\r\n  /* istanbul ignore else */\r\n  if (\"IntersectionObserver\" in window) {\r\n    return new Promise((resolve) => {\r\n      const observer = new IntersectionObserver(\r\n        (changes) => {\r\n          changes.forEach((change) => {\r\n            if (change.intersectionRatio > 0) {\r\n              resolve();\r\n              observer.unobserve(node);\r\n            }\r\n          });\r\n        },\r\n        {\r\n          threshold,\r\n        }\r\n      );\r\n      observer.observe(node);\r\n    });\r\n  } else {\r\n    return intersectionObserverFallback(node, { delay, checkIsVisible });\r\n  }\r\n}\r\n\r\nfunction getTaggingData(node, taggingData) {\r\n  const { selectorData, attrData, staticData } = taggingData;\r\n  let newTaggingData = {};\r\n  selectorData?.forEach((item) => {\r\n    let nkey = Object.keys(item)?.[0];\r\n    let val = node.querySelector(Object.values(item)?.[0])?.innerText;\r\n    newTaggingData[nkey] = val;\r\n    newTaggingData = {\r\n      ...newTaggingData,\r\n      left: parseInt(node.getBoundingClientRect().left),\r\n      top: parseInt(node.getBoundingClientRect().top),\r\n    };\r\n  });\r\n  attrData?.forEach((item) => {\r\n    if (item.selectorVal && item.attrs) {\r\n      const selectedTag = node.querySelector(item.selectorVal);\r\n      if (selectedTag) {\r\n        Object.keys(item.attrs).forEach((keyValue, index) => {\r\n          newTaggingData[keyValue] = selectedTag.getAttribute(\r\n            Object.values(item.attrs)[index]\r\n          );\r\n        });\r\n      }\r\n    }\r\n  });\r\n  if (staticData) newTaggingData = { ...newTaggingData, ...staticData };\r\n  return newTaggingData;\r\n}\r\n\r\nexport function impressionTagging(selectorClassName, taggingData, eventData) {\r\n  const productList = document.querySelectorAll(selectorClassName);\r\n  if (productList && productList.length) {\r\n    let pushedItemsCounter = 0;\r\n    let impressionsList = [];\r\n    productList.forEach((node) => {\r\n      const newtaggingData = getTaggingData(node, taggingData);\r\n      intersectionViewportObserver(node).then(() => {\r\n        if (!node.getAttribute(\"impressionAdded\")) {\r\n          node.setAttribute(\"impressionAdded\", true);\r\n          pushedItemsCounter++;\r\n          impressionsList.push(newtaggingData);\r\n          if (pushedItemsCounter < 2) {\r\n            setTimeout(() => {\r\n              if (\r\n                impressionsList.length == pushedItemsCounter &&\r\n                impressionsList.length\r\n              ) {\r\n                impressionsList\r\n                  .sort((a, b) => a.top - b.top || a.left - b.left)\r\n                  .forEach((el) => {\r\n                    delete el.left;\r\n                    delete el.top;\r\n                  });\r\n                window.dataLayer.push({\r\n                  ...eventData,\r\n                  ecommerce: {\r\n                    impressions: impressionsList,\r\n                  },\r\n                });\r\n              }\r\n              impressionsList = [];\r\n              pushedItemsCounter = 0;\r\n            }, 500);\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n}\r\n","/**\r\n * @class EventDataLayer\r\n * @property {Object} wsf\r\n * @property {Array} globalLayer\r\n */\r\n\r\nimport { impressionTagging } from \"./productImpressions\";\r\nconst defaultPageDuration = 30;\r\nconst defaultPageScrollRatio = 75;\r\nexport default class EventDataLayer {\r\n  wsf;\r\n\r\n  /**\r\n   * Initial global variable declaration\r\n   */\r\n  static initialiseWsf(window) {\r\n    window.wsf = {\r\n      AnalyticsVariables: [],\r\n      refappStoreFinder: {},\r\n    };\r\n  }\r\n  static initialiseWsfOptions(window) {\r\n    window.wsf.options = {};\r\n  }\r\n\r\n  /**\r\n   * Some analytics variables are directly embedded on attributes on elements\r\n   * in the DOM, so this method parses the DOM to get those values\r\n   */\r\n  getDomAnalyticsVariables(attributeIdentifier) {\r\n    const analyticsElements = document.querySelectorAll(\r\n      `[${attributeIdentifier}]`\r\n    );\r\n    const domAnalyticsVariables = [];\r\n\r\n    for (const element of analyticsElements) {\r\n      const values = JSON.parse(\r\n        element.attributes[attributeIdentifier].nodeValue\r\n      );\r\n      domAnalyticsVariables.push(values);\r\n    }\r\n    return domAnalyticsVariables;\r\n  }\r\n\r\n  static defaultOptions = {\r\n    disabled: false,\r\n    blacklistedLocators: [],\r\n    domAnalyticsIdentifier: null,\r\n  };\r\n\r\n  constructor(options = EventDataLayer.defaultOptions) {\r\n    this.options = options;\r\n  }\r\n\r\n  static eventPropertiesReplacer(eventProperties, matchPatterns) {\r\n    let eventPropertiesAsString = JSON.stringify(eventProperties);\r\n\r\n    for (const [key, replaceValue] of Object.entries(matchPatterns)) {\r\n      eventPropertiesAsString = eventPropertiesAsString.replaceAll(\r\n        key,\r\n        replaceValue\r\n      );\r\n    }\r\n    return JSON.parse(eventPropertiesAsString);\r\n  }\r\n\r\n  getKeyByValue(object, value) {\r\n    return Object.keys(object).find((key) => object[key] === value);\r\n  }\r\n\r\n  pushToDataLayer(eventProperties) {\r\n    const { refappMoreinformation, refappStoreFinder, refappRR, ecommerce } =\r\n      this.wsf;\r\n\r\n    const matchPatterns = {\r\n      \"[product name]\":\r\n        refappMoreinformation?.productName?.toLocaleLowerCase() ?? \"\",\r\n      \"[product id]\": refappMoreinformation?.productId ?? \"\",\r\n      \"[page category]\": refappMoreinformation?.pageCategory ?? \"\",\r\n      \"[retailer name]\":\r\n        refappMoreinformation?.retailerName?.toLocaleLowerCase() ?? \"\",\r\n\r\n      \"[zipcode or city]\":\r\n        refappStoreFinder?.zipcodeOrCity?.toLocaleLowerCase() ?? \"\",\r\n      \"[marker popup location]\": refappStoreFinder?.markerPopupLocation ?? \"\",\r\n      \"[store name]\": refappStoreFinder?.storeName?.toLocaleLowerCase() ?? \"\",\r\n\r\n      \"[write review button text]\":\r\n        refappRR?.writeReviewButtonText?.toLocaleLowerCase() ?? \"\",\r\n      \"[review list sort data]\":\r\n        refappRR?.reviewListSortData?.toLocaleLowerCase() ?? \"\",\r\n      \"[review list filter star]\": refappRR?.reviewListfilterStar ?? \"\",\r\n      \"[review submit overall rating]\":\r\n        refappRR?.reviewSubmitOverallRating ?? \"\",\r\n      \"[url]\": window?.location?.href ?? \"\",\r\n      \"::::\": \"::\",\r\n    };\r\n\r\n    if (this.getKeyByValue(eventProperties, \"[ecommerce]\") !== undefined) {\r\n      eventProperties[this.getKeyByValue(eventProperties, \"[ecommerce]\")] =\r\n        ecommerce ? ecommerce : \"\";\r\n    }\r\n\r\n    if (!window.dataLayer) return false;\r\n\r\n    window.dataLayer.push(\r\n      EventDataLayer.eventPropertiesReplacer(eventProperties, matchPatterns)\r\n    );\r\n    return true;\r\n  }\r\n\r\n  domCssSelector(item, target) {\r\n    if (target.matches(item.locatorQuery)) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domClassName(item, className) {\r\n    if (\r\n      new RegExp(\r\n        \"\\\\b\" + item.locatorQuery.toLocaleLowerCase().trim() + \"\\\\b\"\r\n      ).test(className.toLocaleLowerCase().trim())\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domTextContent(item, textContent) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() ===\r\n      textContent.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domTagName(item, tagName) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() ===\r\n      tagName.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domOuterText(item, outerText) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() ===\r\n      outerText.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domInnerText(item, innerText) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() ===\r\n      innerText.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domInnerHTML(item, innerHTML) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() ===\r\n      innerHTML.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domId(item, ids) {\r\n    if (\r\n      item.locatorQuery.toLocaleLowerCase().trim() === ids.toLocaleLowerCase()\r\n    ) {\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domScrollEvent(item) {\r\n    if (this.wsf.options.countdown != \"done\") {\r\n      this.wsf.options.countdown = \"done\";\r\n      this.pushToDataLayer(item.eventProperties);\r\n    }\r\n  }\r\n\r\n  domFocusEvent() {\r\n    this.pushToDataLayer(item.eventProperties);\r\n  }\r\n\r\n  registerClickEvents(analyticsVariables) {\r\n    this.wsf.options.getLocatorQuery =\r\n      this.wsf?.options?.getLocatorQuery ?? false;\r\n    const elements = document.querySelector(\"body\");\r\n    elements.addEventListener(\"click\", (e) => {\r\n      let parentClasses = [];\r\n      if (e.target.getAttribute(\"data-googletag\") != null) {\r\n        if (!window.wsf) {\r\n          window.wsf = { refappStoreFinder: {} };\r\n        }\r\n        delete window.wsf.refappStoreFinder;\r\n        window.wsf.refappStoreFinder = {\r\n          storeName: e.target.getAttribute(\"data-googletag\"),\r\n        };\r\n      }\r\n      let path = [];\r\n      if (e.path == undefined) {\r\n        path = e.composedPath && e.composedPath();\r\n      } else {\r\n        path = e.path;\r\n      }\r\n      // const path = e.path || (e.composedPath && e.composedPath());\r\n      for (const element of path) {\r\n        parentClasses.push(element.className);\r\n      }\r\n      if (this.wsf.options.getLocatorQuery) {\r\n        console.table({\r\n          ClassName: e.srcElement.className.trim(),\r\n          ClassList: parentClasses,\r\n          textContent: e.srcElement.textContent.trim(),\r\n          tagName: e.srcElement.tagName.trim(),\r\n          outerText: e.srcElement.outerText.trim(),\r\n          innerText: e.srcElement.innerText.trim(),\r\n          innerHTML: e.srcElement.innerHTML.trim(),\r\n          id: e.srcElement.id.trim(),\r\n        });\r\n      }\r\n      analyticsVariables.filter((item) => {\r\n        if (!item.triggerOnExternalApiResponse) {\r\n          switch (item.locatorType) {\r\n            case \"cssSelector\":\r\n              this.domCssSelector(item, e.target);\r\n              break;\r\n            case \"className\":\r\n              const parentNodeList = [item.locatorQuery].filter((element) =>\r\n                parentClasses.includes(element)\r\n              );\r\n              if (\r\n                e.srcElement.hasAttribute(\"class\") &&\r\n                item.locatorQuery != parentNodeList[0]\r\n              ) {\r\n                this.domClassName(item, e.srcElement.className.trim());\r\n              } else {\r\n                if (item.locatorQuery === parentNodeList[0]) {\r\n                  this.domClassName(item, item.locatorQuery.trim());\r\n                }\r\n              }\r\n              break;\r\n            case \"textContent\":\r\n              this.domTextContent(item, e.srcElement.textContent.trim());\r\n              break;\r\n            case \"tagName\":\r\n              this.domTagName(item, e.srcElement.tagName.trim());\r\n              break;\r\n            case \"outerText\":\r\n              this.domOuterText(item, e.srcElement.outerText.trim());\r\n              break;\r\n            case \"innerText\":\r\n              this.domInnerText(item, e.srcElement.innerText.trim());\r\n              break;\r\n            case \"innerHTML\":\r\n              this.domInnerHTML(item, e.srcElement.innerHTML.trim());\r\n              break;\r\n            case \"id\":\r\n              this.domId(item, e.srcElement.id.trim());\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  calculateScrollPercentage(target, childElemHeight) {\r\n    try {\r\n      if (!target) throw \"scrolling element not found\";\r\n\r\n      let bool = target === document;\r\n\r\n      let scrollHeight = (() => {\r\n        if (bool) return childElemHeight;\r\n        return target.scrollHeight;\r\n      })();\r\n\r\n      if (!scrollHeight) throw \"child element not found\";\r\n\r\n      let clientHeight = bool ? window.innerHeight : target.clientHeight;\r\n      let scrollTop = bool ? window.scrollY : target.scrollTop;\r\n\r\n      let gottaScroll = scrollHeight - clientHeight;\r\n      let percentage = Math.ceil((scrollTop / gottaScroll) * 100);\r\n      return percentage;\r\n    } catch (err) {\r\n      console.error(err);\r\n    }\r\n  }\r\n\r\n  countDownTime(eventProperties, self) {\r\n    if (\r\n      this.wsf.options.countDownSecound ===\r\n        parseInt(eventProperties.timeduration) &&\r\n      this.wsf.options.countdown != \"done\"\r\n    ) {\r\n      this.wsf.options.countdown = \"done\";\r\n      self.domScrollEvent(eventProperties);\r\n      window.clearInterval(this.wsf.options.countDownClearTime);\r\n    }\r\n  }\r\n\r\n  countCalculation(eventProperties, self) {\r\n    if (this.wsf.options.countdown != \"done\") {\r\n      let counter = parseInt(eventProperties.timeduration);\r\n      let newYearCountdown = setInterval(function () {\r\n        counter--;\r\n        if (counter === 0 && this.wsf.options.countdown != \"done\") {\r\n          self.domScrollEvent(eventProperties);\r\n          self.wsf.options.countdown = \"done\";\r\n          clearInterval(newYearCountdown);\r\n        }\r\n      }, 1000);\r\n    }\r\n  }\r\n\r\n  isScrollable(element) {\r\n    if (\r\n      (element.style.overflow !== undefined &&\r\n        element.style.overflow !== \"\" &&\r\n        (element.style.overflow == \"scroll\" ||\r\n          element.style.overflow == \"auto\" ||\r\n          element.style.overflowY == \"scroll\" ||\r\n          element.style.overflowY == \"auto\")) ||\r\n      (element.style.height !== undefined &&\r\n        element.style.height !== \"\" &&\r\n        element.style.height != \"none\") ||\r\n      (element.style.maxHeight !== undefined &&\r\n        element.style.maxHeight !== \"\" &&\r\n        element.style.maxHeight != \"none\")\r\n    ) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  registerScrollEvents(analyticsVariables) {\r\n    this.wsf.options.countDownSecound = 0;\r\n    this.wsf.options.countDownClearTime = \"\";\r\n    this.wsf.options.countdown = \"yes\";\r\n    this.wsf.options.countdownSec =\r\n      this.wsf?.options?.countdownSec ?? defaultPageDuration;\r\n    this.wsf.options.pageScrollPercentage =\r\n      this.wsf?.options?.Percentage ?? defaultPageScrollRatio;\r\n    this.wsf.options.scrollRatio = false;\r\n    analyticsVariables.filter((item) => {\r\n      const elements = document.querySelector(item.locatorQuery);\r\n      if (!elements) return;\r\n\r\n      let childElemHeight = elements.clientHeight;\r\n      if (this.isScrollable(elements)) {\r\n        elements.addEventListener(item.domEvent, (e) => {\r\n          let scrollPercentage = this.calculateScrollPercentage(\r\n            e.target,\r\n            childElemHeight\r\n          );\r\n          this.countCalculation(item, this);\r\n          if (\r\n            scrollPercentage >=\r\n              parseInt(\r\n                item.scrollratio && item.scrollratio.length\r\n                  ? item.scrollratio\r\n                  : 75\r\n              ) &&\r\n            this.wsf.options.countdown != \"done\"\r\n          ) {\r\n            this.domScrollEvent(item);\r\n            this.wsf.options.countdown = \"done\";\r\n            window.clearInterval(this.wsf.options.countDownClearTime);\r\n          }\r\n        });\r\n      } else {\r\n        this.trackPageTimeDuration(item, this);\r\n        window.addEventListener(item.domEvent, (e) => {\r\n          if (this.wsf.options.countdown == \"done\") return;\r\n          !this.wsf.options.scrollRatio &&\r\n            this.nonScrollElementCalculation(elements, item, this);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  trackPageTimeDuration(item, self) {\r\n    let time = item.timeduration || defaultPageDuration;\r\n    let duration = parseInt(time);\r\n    let pageCountDown = setInterval(function () {\r\n      if (duration === 0) {\r\n        self.wsf.options.countDownSecound = parseInt(time);\r\n        clearInterval(pageCountDown);\r\n      }\r\n\r\n      duration--;\r\n    }, 1000);\r\n  }\r\n\r\n  nonScrollElementCalculation(element, item, _self) {\r\n    let elementLocator =\r\n      Math.floor(element.getBoundingClientRect().bottom) <=\r\n        (document.documentElement.clientHeight || window.innerHeight) &&\r\n      Math.floor(element.getBoundingClientRect().right) <=\r\n        (document.documentElement.clientWidth || window.innerWidth);\r\n    if (!elementLocator) return;\r\n\r\n    this.wsf.options.scrollRatio = true;\r\n    let time = item.timeduration || defaultPageDuration;\r\n    let triggerEvent = setInterval(() => {\r\n      if (_self.wsf.options.countDownSecound === parseInt(time)) {\r\n        _self.domScrollEvent(item);\r\n        clearInterval(triggerEvent);\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  inViewportAndVisible(node, options, callback) {\r\n    return throttle(() => {\r\n      if (\r\n        (options.checkIsVisible && inViewport(node) && isVisible(node)) ||\r\n        (!options.checkIsVisible && inViewport(node))\r\n      ) {\r\n        callback();\r\n      }\r\n    }, options.delay);\r\n  }\r\n\r\n  registerEvents(analyticsVariables) {\r\n    const clickAnalyticsVariables = [];\r\n    const scrollAnalyticsVariables = [];\r\n    const impressionAnalyticsVariables = [];\r\n    analyticsVariables.filter((item) => {\r\n      switch (item.domEvent) {\r\n        case \"click\":\r\n          clickAnalyticsVariables.push(item);\r\n          break;\r\n        case \"scroll\":\r\n          scrollAnalyticsVariables.push(item);\r\n          break;\r\n        case \"focus\":\r\n          clickAnalyticsVariables.push(item);\r\n          break;\r\n        case \"impression\":\r\n          impressionAnalyticsVariables.push(item);\r\n          window.addEventListener(\"load\", () => {\r\n            var firstChild = document.querySelector(item.childSelector);\r\n            var containerParent = document.querySelector(item.parentSelector);\r\n            if (containerParent && firstChild) {\r\n              var productRowsCount = Array.from(\r\n                document.querySelectorAll(item.childSelector)\r\n              ).length;\r\n              impressionTagging(\r\n                item.childSelector,\r\n                item.taggingData,\r\n                item.eventProperties\r\n              );\r\n              containerParent.addEventListener(\r\n                \"DOMSubtreeModified\",\r\n                (e) => {\r\n                  setTimeout(() => {\r\n                    if (\r\n                      productRowsCount !=\r\n                        Array.from(\r\n                          document.querySelectorAll(item.childSelector)\r\n                        ).length ||\r\n                      firstChild !=\r\n                        document.querySelectorAll(item.childSelector)[0]\r\n                    ) {\r\n                      productRowsCount = Array.from(\r\n                        document.querySelectorAll(item.childSelector)\r\n                      ).length;\r\n                      firstChild = document.querySelector(item.childSelector);\r\n                      impressionTagging(\r\n                        item.childSelector,\r\n                        item.taggingData,\r\n                        item.eventProperties\r\n                      );\r\n                    }\r\n                  }, 500);\r\n                },\r\n                false\r\n              );\r\n            }\r\n          });\r\n      }\r\n    });\r\n    this.registerClickEvents(clickAnalyticsVariables);\r\n    this.registerScrollEvents(scrollAnalyticsVariables);\r\n  }\r\n\r\n  mount(window) {\r\n    if (this.options.disabled) return;\r\n\r\n    if (!window.wsf) {\r\n      EventDataLayer.initialiseWsf(window);\r\n    }\r\n\r\n    if (!window.wsf.options) {\r\n      EventDataLayer.initialiseWsfOptions(window);\r\n    }\r\n\r\n    this.wsf = window.wsf;\r\n    const { AnalyticsVariables } = this.wsf;\r\n\r\n    const domAnalyticsVariables = this.options.domAnalyticsIdentifier\r\n      ? this.getDomAnalyticsVariables(this.options.domAnalyticsIdentifier)\r\n      : [];\r\n\r\n    if (domAnalyticsVariables.length != 0) {\r\n      wsf.AnalyticsVariables.push(...domAnalyticsVariables);\r\n    }\r\n\r\n    const taggingVariables = [...AnalyticsVariables];\r\n\r\n    if (taggingVariables.length <= 0) {\r\n      return;\r\n    }\r\n\r\n    // To assign event\r\n    window.addEventListener(\r\n      \"refapp-ajax-event\",\r\n      (evt) => {\r\n        let locatorQuery = window.wsf.AnalyticsVariables.find(\r\n          (o) => o.locatorQuery === evt.detail\r\n        );\r\n        if (locatorQuery) {\r\n          this.domClassName(locatorQuery, evt.detail);\r\n        }\r\n      },\r\n      false\r\n    );\r\n\r\n    this.registerEvents(AnalyticsVariables);\r\n  }\r\n}\r\n","import EventDataLayer from \"./components/v1/EventDataLayer\";\r\n\r\nconst options = {\r\n  disabled: false,\r\n  domAnalyticsIdentifier: \"data-analytics\",\r\n  domAnalyticsIdentifierClassname: \"class\",\r\n  countDownSecound: 0,\r\n  blacklistedLocators: [\r\n    \"#markerclusterer#\",\r\n    \".rfp-rr-most-ratings-list-unlike-datalayer-or\",\r\n    \".rfp-rr-most-ratings-list-like-datalayer-or\",\r\n  ],\r\n};\r\nconst edl = new EventDataLayer(options);\r\n\r\nedl.mount(window);\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","Symbol","toStringTag","Object","defineProperty","value","intersectionObserverFallback","node","delay","Promise","resolve","scrollListener","options","callback","throttle","checkIsVisible","inViewport","isVisible","inViewportAndVisible","window","removeEventListener","addEventListener","impressionTagging","selectorClassName","taggingData","eventData","productList","document","querySelectorAll","length","pushedItemsCounter","impressionsList","forEach","newtaggingData","selectorData","attrData","staticData","newTaggingData","item","nkey","keys","val","querySelector","values","innerText","left","parseInt","getBoundingClientRect","top","selectorVal","attrs","selectedTag","keyValue","index","getAttribute","getTaggingData","threshold","observer","IntersectionObserver","changes","change","intersectionRatio","unobserve","observe","intersectionViewportObserver","then","setAttribute","push","setTimeout","sort","a","b","el","dataLayer","ecommerce","impressions","EventDataLayer","defaultOptions","this","attributeIdentifier","domAnalyticsVariables","element","JSON","parse","attributes","nodeValue","object","find","key","eventProperties","wsf","refappMoreinformation","refappStoreFinder","refappRR","matchPatterns","productName","toLocaleLowerCase","productId","pageCategory","retailerName","zipcodeOrCity","markerPopupLocation","storeName","writeReviewButtonText","reviewListSortData","reviewListfilterStar","reviewSubmitOverallRating","location","href","undefined","getKeyByValue","eventPropertiesReplacer","target","matches","locatorQuery","pushToDataLayer","className","RegExp","trim","test","textContent","tagName","outerText","innerHTML","ids","countdown","analyticsVariables","getLocatorQuery","e","parentClasses","path","composedPath","console","table","ClassName","srcElement","ClassList","id","filter","triggerOnExternalApiResponse","locatorType","domCssSelector","parentNodeList","includes","hasAttribute","domClassName","domTextContent","domTagName","domOuterText","domInnerText","domInnerHTML","domId","childElemHeight","bool","scrollHeight","clientHeight","innerHeight","scrollTop","scrollY","gottaScroll","Math","ceil","err","error","countDownSecound","timeduration","domScrollEvent","clearInterval","countDownClearTime","counter","newYearCountdown","setInterval","style","overflow","overflowY","height","maxHeight","countdownSec","pageScrollPercentage","Percentage","scrollRatio","elements","isScrollable","domEvent","scrollPercentage","calculateScrollPercentage","countCalculation","scrollratio","trackPageTimeDuration","nonScrollElementCalculation","time","duration","pageCountDown","_self","floor","bottom","documentElement","right","clientWidth","innerWidth","triggerEvent","clickAnalyticsVariables","scrollAnalyticsVariables","impressionAnalyticsVariables","firstChild","childSelector","containerParent","parentSelector","productRowsCount","Array","from","registerClickEvents","registerScrollEvents","disabled","initialiseWsf","initialiseWsfOptions","AnalyticsVariables","domAnalyticsIdentifier","getDomAnalyticsVariables","evt","o","detail","registerEvents","eventPropertiesAsString","stringify","entries","replaceValue","replaceAll","blacklistedLocators","domAnalyticsIdentifierClassname","mount"],"sourceRoot":""}