{"version":3,"file":"/etc.clientlibs/corp-aem-sherwin/clientlibs/vendors~author~site-alert~site-componentcarousel~site-teasercarousel/vendors~author~site-alert~site-componentcarousel~site-teasercarousel.0c52e9c507ce2d92a0ae.js","mappings":"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","sources":["webpack://aem-maven-archetype/./node_modules/delegated-events/dist/index.umd.js","webpack://aem-maven-archetype/./node_modules/selector-set/selector-set.js"],"sourcesContent":["(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('selector-set')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'selector-set'], factory) :\n  (global = global || self, factory(global['delegated-events'] = {}, global.SelectorSet));\n}(this, (function (exports, SelectorSet) { 'use strict';\n\n  SelectorSet = SelectorSet && Object.prototype.hasOwnProperty.call(SelectorSet, 'default') ? SelectorSet['default'] : SelectorSet;\n\n  var bubbleEvents = {};\n  var captureEvents = {};\n  var propagationStopped = new WeakMap();\n  var immediatePropagationStopped = new WeakMap();\n  var currentTargets = new WeakMap();\n  var currentTargetDesc = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\n\n  function before(subject, verb, fn) {\n    var source = subject[verb];\n\n    subject[verb] = function () {\n      fn.apply(subject, arguments);\n      return source.apply(subject, arguments);\n    };\n\n    return subject;\n  }\n\n  function matches(selectors, target, reverse) {\n    var queue = [];\n    var node = target;\n\n    do {\n      if (node.nodeType !== 1) break;\n\n      var _matches = selectors.matches(node);\n\n      if (_matches.length) {\n        var matched = {\n          node: node,\n          observers: _matches\n        };\n\n        if (reverse) {\n          queue.unshift(matched);\n        } else {\n          queue.push(matched);\n        }\n      }\n    } while (node = node.parentElement);\n\n    return queue;\n  }\n\n  function trackPropagation() {\n    propagationStopped.set(this, true);\n  }\n\n  function trackImmediate() {\n    propagationStopped.set(this, true);\n    immediatePropagationStopped.set(this, true);\n  }\n\n  function getCurrentTarget() {\n    return currentTargets.get(this) || null;\n  }\n\n  function defineCurrentTarget(event, getter) {\n    if (!currentTargetDesc) return;\n    Object.defineProperty(event, 'currentTarget', {\n      configurable: true,\n      enumerable: true,\n      get: getter || currentTargetDesc.get\n    });\n  }\n\n  function canDispatch(event) {\n    try {\n      event.eventPhase;\n      return true;\n    } catch (_) {\n      return false;\n    }\n  }\n\n  function dispatch(event) {\n    if (!canDispatch(event)) return;\n    var events = event.eventPhase === 1 ? captureEvents : bubbleEvents;\n    var selectors = events[event.type];\n    if (!selectors) return;\n    var queue = matches(selectors, event.target, event.eventPhase === 1);\n    if (!queue.length) return;\n    before(event, 'stopPropagation', trackPropagation);\n    before(event, 'stopImmediatePropagation', trackImmediate);\n    defineCurrentTarget(event, getCurrentTarget);\n\n    for (var i = 0, len1 = queue.length; i < len1; i++) {\n      if (propagationStopped.get(event)) break;\n      var matched = queue[i];\n      currentTargets.set(event, matched.node);\n\n      for (var j = 0, len2 = matched.observers.length; j < len2; j++) {\n        if (immediatePropagationStopped.get(event)) break;\n        matched.observers[j].data.call(matched.node, event);\n      }\n    }\n\n    currentTargets[\"delete\"](event);\n    defineCurrentTarget(event);\n  }\n\n  function on(name, selector, fn) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var capture = options.capture ? true : false;\n    var events = capture ? captureEvents : bubbleEvents;\n    var selectors = events[name];\n\n    if (!selectors) {\n      selectors = new SelectorSet();\n      events[name] = selectors;\n      document.addEventListener(name, dispatch, capture);\n    }\n\n    selectors.add(selector, fn);\n  }\n  function off(name, selector, fn) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var capture = options.capture ? true : false;\n    var events = capture ? captureEvents : bubbleEvents;\n    var selectors = events[name];\n    if (!selectors) return;\n    selectors.remove(selector, fn);\n    if (selectors.size) return;\n    delete events[name];\n    document.removeEventListener(name, dispatch, capture);\n  }\n  function fire(target, name, detail) {\n    return target.dispatchEvent(new CustomEvent(name, {\n      bubbles: true,\n      cancelable: true,\n      detail: detail\n    }));\n  }\n\n  exports.fire = fire;\n  exports.off = off;\n  exports.on = on;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function(root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], factory);\n  } else if (typeof exports === 'object') {\n    module.exports = factory();\n  } else {\n    root.SelectorSet = factory();\n  }\n})(this, function() {\n  'use strict';\n\n  // Public: Create a new SelectorSet.\n  function SelectorSet() {\n    // Construct new SelectorSet if called as a function.\n    if (!(this instanceof SelectorSet)) {\n      return new SelectorSet();\n    }\n\n    // Public: Number of selectors added to the set\n    this.size = 0;\n\n    // Internal: Incrementing ID counter\n    this.uid = 0;\n\n    // Internal: Array of String selectors in the set\n    this.selectors = [];\n\n    // Internal: Map of selector ids to objects\n    this.selectorObjects = {};\n\n    // Internal: All Object index String names mapping to Index objects.\n    this.indexes = Object.create(this.indexes);\n\n    // Internal: Used Object index String names mapping to Index objects.\n    this.activeIndexes = [];\n  }\n\n  // Detect prefixed Element#matches function.\n  var docElem = window.document.documentElement;\n  var matches =\n    docElem.matches ||\n    docElem.webkitMatchesSelector ||\n    docElem.mozMatchesSelector ||\n    docElem.oMatchesSelector ||\n    docElem.msMatchesSelector;\n\n  // Public: Check if element matches selector.\n  //\n  // Maybe overridden with custom Element.matches function.\n  //\n  // el       - An Element\n  // selector - String CSS selector\n  //\n  // Returns true or false.\n  SelectorSet.prototype.matchesSelector = function(el, selector) {\n    return matches.call(el, selector);\n  };\n\n  // Public: Find all elements in the context that match the selector.\n  //\n  // Maybe overridden with custom querySelectorAll function.\n  //\n  // selectors - String CSS selectors.\n  // context   - Element context\n  //\n  // Returns non-live list of Elements.\n  SelectorSet.prototype.querySelectorAll = function(selectors, context) {\n    return context.querySelectorAll(selectors);\n  };\n\n  // Public: Array of indexes.\n  //\n  // name     - Unique String name\n  // selector - Function that takes a String selector and returns a String key\n  //            or undefined if it can't be used by the index.\n  // element  - Function that takes an Element and returns an Array of String\n  //            keys that point to indexed values.\n  //\n  SelectorSet.prototype.indexes = [];\n\n  // Index by element id\n  var idRe = /^#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\n  SelectorSet.prototype.indexes.push({\n    name: 'ID',\n    selector: function matchIdSelector(sel) {\n      var m;\n      if ((m = sel.match(idRe))) {\n        return m[0].slice(1);\n      }\n    },\n    element: function getElementId(el) {\n      if (el.id) {\n        return [el.id];\n      }\n    }\n  });\n\n  // Index by all of its class names\n  var classRe = /^\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\n  SelectorSet.prototype.indexes.push({\n    name: 'CLASS',\n    selector: function matchClassSelector(sel) {\n      var m;\n      if ((m = sel.match(classRe))) {\n        return m[0].slice(1);\n      }\n    },\n    element: function getElementClassNames(el) {\n      var className = el.className;\n      if (className) {\n        if (typeof className === 'string') {\n          return className.split(/\\s/);\n        } else if (typeof className === 'object' && 'baseVal' in className) {\n          // className is a SVGAnimatedString\n          // global SVGAnimatedString is not an exposed global in Opera 12\n          return className.baseVal.split(/\\s/);\n        }\n      }\n    }\n  });\n\n  // Index by tag/node name: `DIV`, `FORM`, `A`\n  var tagRe = /^((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\n  SelectorSet.prototype.indexes.push({\n    name: 'TAG',\n    selector: function matchTagSelector(sel) {\n      var m;\n      if ((m = sel.match(tagRe))) {\n        return m[0].toUpperCase();\n      }\n    },\n    element: function getElementTagName(el) {\n      return [el.nodeName.toUpperCase()];\n    }\n  });\n\n  // Default index just contains a single array of elements.\n  SelectorSet.prototype.indexes['default'] = {\n    name: 'UNIVERSAL',\n    selector: function() {\n      return true;\n    },\n    element: function() {\n      return [true];\n    }\n  };\n\n  // Use ES Maps when supported\n  var Map;\n  if (typeof window.Map === 'function') {\n    Map = window.Map;\n  } else {\n    Map = (function() {\n      function Map() {\n        this.map = {};\n      }\n      Map.prototype.get = function(key) {\n        return this.map[key + ' '];\n      };\n      Map.prototype.set = function(key, value) {\n        this.map[key + ' '] = value;\n      };\n      return Map;\n    })();\n  }\n\n  // Regexps adopted from Sizzle\n  //   https://github.com/jquery/sizzle/blob/1.7/sizzle.js\n  //\n  var chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g;\n\n  // Internal: Get indexes for selector.\n  //\n  // selector - String CSS selector\n  //\n  // Returns Array of {index, key}.\n  function parseSelectorIndexes(allIndexes, selector) {\n    allIndexes = allIndexes.slice(0).concat(allIndexes['default']);\n\n    var allIndexesLen = allIndexes.length,\n      i,\n      j,\n      m,\n      dup,\n      rest = selector,\n      key,\n      index,\n      indexes = [];\n\n    do {\n      chunker.exec('');\n      if ((m = chunker.exec(rest))) {\n        rest = m[3];\n        if (m[2] || !rest) {\n          for (i = 0; i < allIndexesLen; i++) {\n            index = allIndexes[i];\n            if ((key = index.selector(m[1]))) {\n              j = indexes.length;\n              dup = false;\n              while (j--) {\n                if (indexes[j].index === index && indexes[j].key === key) {\n                  dup = true;\n                  break;\n                }\n              }\n              if (!dup) {\n                indexes.push({ index: index, key: key });\n              }\n              break;\n            }\n          }\n        }\n      }\n    } while (m);\n\n    return indexes;\n  }\n\n  // Internal: Find first item in Array that is a prototype of `proto`.\n  //\n  // ary   - Array of objects\n  // proto - Prototype of expected item in `ary`\n  //\n  // Returns object from `ary` if found. Otherwise returns undefined.\n  function findByPrototype(ary, proto) {\n    var i, len, item;\n    for (i = 0, len = ary.length; i < len; i++) {\n      item = ary[i];\n      if (proto.isPrototypeOf(item)) {\n        return item;\n      }\n    }\n  }\n\n  // Public: Log when added selector falls under the default index.\n  //\n  // This API should not be considered stable. May change between\n  // minor versions.\n  //\n  // obj - {selector, data} Object\n  //\n  //   SelectorSet.prototype.logDefaultIndexUsed = function(obj) {\n  //     console.warn(obj.selector, \"could not be indexed\");\n  //   };\n  //\n  // Returns nothing.\n  SelectorSet.prototype.logDefaultIndexUsed = function() {};\n\n  // Public: Add selector to set.\n  //\n  // selector - String CSS selector\n  // data     - Optional data Object (default: undefined)\n  //\n  // Returns nothing.\n  SelectorSet.prototype.add = function(selector, data) {\n    var obj,\n      i,\n      indexProto,\n      key,\n      index,\n      objs,\n      selectorIndexes,\n      selectorIndex,\n      indexes = this.activeIndexes,\n      selectors = this.selectors,\n      selectorObjects = this.selectorObjects;\n\n    if (typeof selector !== 'string') {\n      return;\n    }\n\n    obj = {\n      id: this.uid++,\n      selector: selector,\n      data: data\n    };\n    selectorObjects[obj.id] = obj;\n\n    selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n    for (i = 0; i < selectorIndexes.length; i++) {\n      selectorIndex = selectorIndexes[i];\n      key = selectorIndex.key;\n      indexProto = selectorIndex.index;\n\n      index = findByPrototype(indexes, indexProto);\n      if (!index) {\n        index = Object.create(indexProto);\n        index.map = new Map();\n        indexes.push(index);\n      }\n\n      if (indexProto === this.indexes['default']) {\n        this.logDefaultIndexUsed(obj);\n      }\n      objs = index.map.get(key);\n      if (!objs) {\n        objs = [];\n        index.map.set(key, objs);\n      }\n      objs.push(obj);\n    }\n\n    this.size++;\n    selectors.push(selector);\n  };\n\n  // Public: Remove selector from set.\n  //\n  // selector - String CSS selector\n  // data     - Optional data Object (default: undefined)\n  //\n  // Returns nothing.\n  SelectorSet.prototype.remove = function(selector, data) {\n    if (typeof selector !== 'string') {\n      return;\n    }\n\n    var selectorIndexes,\n      selectorIndex,\n      i,\n      j,\n      k,\n      selIndex,\n      objs,\n      obj,\n      indexes = this.activeIndexes,\n      selectors = (this.selectors = []),\n      selectorObjects = this.selectorObjects,\n      removedIds = {},\n      removeAll = arguments.length === 1;\n\n    selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n    for (i = 0; i < selectorIndexes.length; i++) {\n      selectorIndex = selectorIndexes[i];\n\n      j = indexes.length;\n      while (j--) {\n        selIndex = indexes[j];\n        if (selectorIndex.index.isPrototypeOf(selIndex)) {\n          objs = selIndex.map.get(selectorIndex.key);\n          if (objs) {\n            k = objs.length;\n            while (k--) {\n              obj = objs[k];\n              if (\n                obj.selector === selector &&\n                (removeAll || obj.data === data)\n              ) {\n                objs.splice(k, 1);\n                removedIds[obj.id] = true;\n              }\n            }\n          }\n          break;\n        }\n      }\n    }\n\n    for (i in removedIds) {\n      delete selectorObjects[i];\n      this.size--;\n    }\n\n    for (i in selectorObjects) {\n      selectors.push(selectorObjects[i].selector);\n    }\n  };\n\n  // Sort by id property handler.\n  //\n  // a - Selector obj.\n  // b - Selector obj.\n  //\n  // Returns Number.\n  function sortById(a, b) {\n    return a.id - b.id;\n  }\n\n  // Public: Find all matching decendants of the context element.\n  //\n  // context - An Element\n  //\n  // Returns Array of {selector, data, elements} matches.\n  SelectorSet.prototype.queryAll = function(context) {\n    if (!this.selectors.length) {\n      return [];\n    }\n\n    var matches = {},\n      results = [];\n    var els = this.querySelectorAll(this.selectors.join(', '), context);\n\n    var i, j, len, len2, el, m, match, obj;\n    for (i = 0, len = els.length; i < len; i++) {\n      el = els[i];\n      m = this.matches(el);\n      for (j = 0, len2 = m.length; j < len2; j++) {\n        obj = m[j];\n        if (!matches[obj.id]) {\n          match = {\n            id: obj.id,\n            selector: obj.selector,\n            data: obj.data,\n            elements: []\n          };\n          matches[obj.id] = match;\n          results.push(match);\n        } else {\n          match = matches[obj.id];\n        }\n        match.elements.push(el);\n      }\n    }\n\n    return results.sort(sortById);\n  };\n\n  // Public: Match element against all selectors in set.\n  //\n  // el - An Element\n  //\n  // Returns Array of {selector, data} matches.\n  SelectorSet.prototype.matches = function(el) {\n    if (!el) {\n      return [];\n    }\n\n    var i, j, k, len, len2, len3, index, keys, objs, obj, id;\n    var indexes = this.activeIndexes,\n      matchedIds = {},\n      matches = [];\n\n    for (i = 0, len = indexes.length; i < len; i++) {\n      index = indexes[i];\n      keys = index.element(el);\n      if (keys) {\n        for (j = 0, len2 = keys.length; j < len2; j++) {\n          if ((objs = index.map.get(keys[j]))) {\n            for (k = 0, len3 = objs.length; k < len3; k++) {\n              obj = objs[k];\n              id = obj.id;\n              if (!matchedIds[id] && this.matchesSelector(el, obj.selector)) {\n                matchedIds[id] = true;\n                matches.push(obj);\n              }\n            }\n          }\n        }\n      }\n    }\n\n    return matches.sort(sortById);\n  };\n\n  // Public: Export SelectorSet\n  return SelectorSet;\n});\n"],"names":["exports","SelectorSet","Object","prototype","hasOwnProperty","call","bubbleEvents","captureEvents","propagationStopped","WeakMap","immediatePropagationStopped","currentTargets","currentTargetDesc","getOwnPropertyDescriptor","Event","before","subject","verb","fn","source","apply","arguments","matches","selectors","target","reverse","queue","node","nodeType","_matches","length","matched","observers","unshift","push","parentElement","trackPropagation","set","this","trackImmediate","getCurrentTarget","get","defineCurrentTarget","event","getter","defineProperty","configurable","enumerable","canDispatch","eventPhase","_","dispatch","type","i","len1","j","len2","data","on","name","selector","capture","undefined","events","document","addEventListener","add","off","remove","size","removeEventListener","fire","detail","dispatchEvent","CustomEvent","bubbles","cancelable","value","factory","uid","selectorObjects","indexes","create","activeIndexes","docElem","window","documentElement","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","matchesSelector","el","querySelectorAll","context","idRe","sel","m","match","slice","element","id","classRe","className","split","baseVal","Map","tagRe","toUpperCase","nodeName","map","key","chunker","parseSelectorIndexes","allIndexes","dup","index","allIndexesLen","concat","rest","exec","findByPrototype","ary","proto","len","item","isPrototypeOf","sortById","a","b","logDefaultIndexUsed","obj","indexProto","objs","selectorIndexes","selectorIndex","k","selIndex","removedIds","removeAll","splice","queryAll","results","els","join","elements","sort","len3","keys","matchedIds"],"sourceRoot":""}