PageSourceSearch

https://www.izabel.com/cdn/shop/t/392/assets/mobile-menu.js?v=2510436958983534781783600250

js izabel.com collected 2026-10-03 21:32:32 UTC 74,317 bytes, 2 lines download raw bytes

1(function(){"use strict";var __webpack_modules__={
1"./js/helpers/debounce.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   debounce: function() { return /* binding */ debounce; }\n/* harmony export */ });\n/**\r\n * \r\n * @param {Function} callback \r\n * @param {Number} wait \r\n * @returns callback if wait time has passed since last call\r\n */\n\nfunction debounce(callback, wait) {\n  var timeoutId = null;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    window.clearTimeout(timeoutId);\n    timeoutId = window.setTimeout(function () {\n      callback.apply(null, args);\n    }, wait);\n  };\n}\n\n\n//# sourceURL=webpack://theme-name/./js/helpers/debounce.js?")}),
1"./js/helpers/getClosest.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/**\r\n * Returns closes parent matching the provided selector\r\n *\r\n * @param {object} elem The element to start the search from.\r\n * @param {string} selector The html selector to search for.\r\n * @return {object} The parent element with the selector.\r\n */\nvar getClosest = function getClosest(elem, selector) {\n  // Element.matches() polyfill\n  if (!Element.prototype.matches) {\n    Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {\n      var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n        i = matches.length;\n      while (--i >= 0 && matches.item(i) !== this) {}\n      return i > -1;\n    };\n  }\n  // Get the closest matching element\n  for (; elem && elem !== document; elem = elem.parentNode) {\n    if (elem.matches(selector)) return elem;\n  }\n  return null;\n};\n/* harmony default export */ __webpack_exports__["default"] = (getClosest);\n\n//# sourceURL=webpack://theme-name/./js/helpers/getClosest.js?')}),
1"./js/sections/mobile-menu.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var bootstrap_js_src_offcanvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap/js/src/offcanvas */ \"./node_modules/bootstrap/js/src/offcanvas.js\");\n/* harmony import */ var _helpers_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/debounce */ \"./js/helpers/debounce.js\");\n/* harmony import */ var _helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/getClosest */ \"./js/helpers/getClosest.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; } catch (e) { return typeof fn === \"function\"; } }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
1\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar MobileMenu = /*#__PURE__*/function (_HTMLElement) {\n  function MobileMenu() {\n    var _this;\n    _classCallCheck(this, MobileMenu);\n    _this = _callSuper(this, MobileMenu);\n    _this.onLoad();\n    return _this;\n  }\n  _inherits(MobileMenu, _HTMLElement);\n  return _createClass(MobileMenu, [{\n    key: \"_addListeners\",\n    value: function _addListeners() {\n      var self = this;\n      self.open_trigger.addEventListener('click', function () {\n        self._openDrawer(self);\n      });\n      self.close_triger.addEventListener('click', function () {\n        self._closeDrawer(self);\n      });\n      self.page_open_triggers.forEach(function (trigger) {\n        trigger.addEventListener('click', function (e) {\n          e.stopImmediatePropagation();\n          var pageContainer = e.currentTarget.classList.contains('has-page') ? e.currentTarget : e.currentTarget.parentElement;\n          // console.log('page container', pageContainer);\n          self._openPage(pageContainer, self.drawerHeader);\n        });\n      });\n      self.close_page_trigger.addEventListener('click', function () {\n        (0,_helpers_debounce__WEBPACK_IMPORTED_MODULE_1__.debounce)(self._closePage(self.drawerHeader), 200);\n      });\n      document.addEventListener('hide.bs.offcanvas', self._handleMenuClose);\n    }\n  }, {\n    key: \"_openDrawer\",\n    value: function _openDrawer(container) {\n      var self = this;\n      // container.classList.add('opened');\n      // document.getElementsByTagName('body')[0].classList.add('overlay', 'fixed')\n      document.getElementsByTagName('body')[0].classList.add('height');\n      self.offcanvas.show();\n    }\n  }, {\n    key: \"_closeDrawer\",\n    value: function _closeDrawer(container) {\n      var self = this;\n      // container.classList.remove('opened');\n      // document.getElementsByTagName('body')[0].classList.remove('overlay', 'fixed');\n      self.offcanvas.hide();\n    }\n  }, {\n    key: \"_handleMenuClose\",\n    value: function _handleMenuClose() {\n      var self = this;\n      // console.log('pages', self.openPages);
1\n      self.openPages.forEach(function (page) {\n        page.classList.remove('shown');\n        var firstLevel = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(page, '.mobile-image-list');\n        firstLevel.classList.remove('page-open');\n      });\n      self.drawerHeader.classList.remove('page-open');\n      document.querySelector('.first-level').classList.remove('page-open');\n      document.querySelector('.first-level').style.height = 'auto';\n      // document.querySelector('.offcanvas-body').style.overflowY = 'scroll';\n      document.querySelector('.offcanvas-body').scrollTop = 0;\n      document.getElementsByTagName('body')[0].classList.remove('height');\n      self.bodyScroll = [];\n    }\n  }, {\n    key: \"_openPage\",\n    value: function _openPage(pageContainer, header) {\n      var _this2 = this;\n      this.openPages.push(pageContainer);\n      var currentScroll = {};\n      if ((0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.drawer-page') !== null && (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.drawer-page').scrollTop > 0) {\n        currentScroll['page'] = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.drawer-page').scrollTop;\n      } else {\n        currentScroll['page'] = 0;\n      }\n      currentScroll['body'] = document.querySelector('.offcanvas-body').scrollTop;\n      this.bodyScroll.push(currentScroll);\n      if (this.openPages.length) {\n        this.openPages.forEac
1h(function (page) {\n          // console.log('page', getClosest(page, '.drawer-page'));\n          var pageElem = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(page, '.drawer-page');\n          if (pageElem !== null) {\n            _this2.pageScroll = pageElem.scrollTop;\n            pageElem.scrollTop = 0;\n            pageElem.style.overflowY = 'hidden';\n          }\n        });\n      }\n      // document.querySelector('.offcanvas-body').style.overflowY = 'hidden';\n      var firstLevel = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.mobile-image-list');\n      firstLevel.classList.add('page-open');\n      // console.log('bodyScroll', this.bodyScroll);\n      document.querySelector('.offcanvas-body').scrollTop = 0;\n      this.menuHeight = pageContainer.querySelector('.drawer-page > .mobile-image-list').offsetHeight;\n      this.firstLevelHeight = firstLevel.offsetHeight;\n      if (this.menuHeight !== this.firstLevelHeight && this.menuHeight > this.firstLevelHeight) {\n        document.querySelector('.first-level').style.height = \"\".concat(this.menuHeight, \"px\");\n      } else {\n        document.querySelector('.first-level').style.height = \"auto\";\n      }\n      pageContainer.querySelector('.drawer-page').style.top = \"0px\";\n      pageContainer.querySelector('.drawer-page').scrollTop = 0;\n      pageContainer.classList.add('shown');\n      header.classList.add('page-open');\n    }\n  }, {\n    key: \"_closePage\",\n    value: function _closePage(header) {\n      var pageContainer = this.openPages.length ? this.openPages.pop() : false;\n      if (pageContainer) {\n        pageContainer.classList.remove('shown');\n        var pageElem = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.drawer-page');\n        var firstLevel = (0,_helpers_getClosest__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pageContainer, '.mobile-image-list');\n        firstLevel.classList.remove('page-open');\n        var scrollTo = this.bodyScroll.pop();\n        if (pageElem != null) {\n          this.menuHeight = pageElem.querySelector('.mobile-image-list').offsetHeight;\n          if (this.menuHeight !== this.firstLevelHeight) {\n            document.querySelector('.first-level').style.height = \"\".concat(this.menuHeight, \"px\");\n          } else {\n            document.querySelector('.first-level').style.height = \"auto\";\n          }\n          pageElem.scrollTop = scrollTo['page'];\n          pageElem.style.overflowY = 'scroll';\n        }\n        document.querySelector('.offcanvas-body').scrollTop = scrollTo['body'];\n        if (!this.openPages.length) {\n          header.classList.remove('page-open');\n          document.querySelector('.first-level').classList.remove('page-open');\n          document.querySelector('.first-level').style.height = 'auto';\n          // document.querySelector('.offcanvas-body').style.overflowY = 'scroll';\n          document.querySelector('.offcanvas-body').scrollTop = scrollTo['body'];\n        }\n      }\n    }\n  }, {\n    key: \"init\",\n    value: function init() {\n      var self = this;\n      self.open_trigger = document.querySelector('[data-open-mobile-menu]');\n      self.close_triger = document.querySelector('[data-close-mobile-menu]');\n      self.page_open_triggers = self.querySelectorAll('.has-page');\n      self.close_page_trigger = self.querySelector('[data-close-drawer-page]');\n      this.openPages = [];\n      this.bodyScroll = [];\n      self._openPage = self._openPage.bind(this);\n      self._closePage = self._closePage.bind(this);\n      self._handleMenuClose = self._handleMenuClose.bind(this);\n      self.drawerHeader = self.querySelector('.offcanvas-header');\n      self.offcanvas = new bootstrap_js_src_offcanvas__WEBPACK_IMPORTED_MODULE_0__[\"default\"](self);\n      // console.log('offcanvas ', self.offcanvas);\n      self._addListeners();\n    }\n  }, {\n    key: \"onLoad\",\n    value: function onLoad() {\n      this.id = this.dataset.sectionId;\n      this.container = document.querySelector(\"[data-section-id=\\\"\".concat(this.id, \"\\\"]\"));\n      // const drawerHeaderHeight = this.querySelector('.drawer-header').offsetHeight;\n      // console.log('set drawer header height', drawerHeaderHeight);\n      // document.documentElement.style.setProperty('--drawer-header-height', `${drawerHeaderHeight}px`);\n      this.init();\n    }\n  }]);\n}( /*#__PURE__*/_wrapNativeSuper(HTMLElement));\n;\nif (!customElements.get(\"mobile-menu\")) {\n  customElements.define(\"mobile-menu\", MobileMenu);\n}\n\n//# sourceURL=webpack://theme-name/./js/sections/mobile-menu.js?")}),
vendor: 3,221 bytes, line 1
1"./node_modules/bootstrap/js/src/base-component.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom/data.js */ "./node_modules/bootstrap/js/src/dom/data.js");\n/* harmony import */ var _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom/event-handler.js */ "./node_modules/bootstrap/js/src/dom/event-handler.js");\n/* harmony import */ var _util_config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/config.js */ "./node_modules/bootstrap/js/src/util/config.js");\n/* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/index.js */ "./node_modules/bootstrap/js/src/util/index.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\n\n/**\n * Constants\n */\n\nconst VERSION = \'5.3.3\'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends _util_config_js__WEBPACK_IMPORTED_MODULE_2__["default"] {\n  constructor(element, config) {\n    super()\n\n    element = (0,_util_index_js__WEBPACK_IMPORTED_MODULE_3__.getElement)(element)\n    if (!element) {\n      return\n    }\n\n    this._element = element\n    this._config = this._getConfig(config)\n\n    _dom_data_js__WEBPACK_IMPORTED_MODULE_0__["default"].set(this._element, this.constructor.DATA_KEY, this)\n  }\n\n  // Public\n  dispose() {\n    _dom_data_js__WEBPACK_IMPORTED_MODULE_0__["default"].remove(this._element, this.constructor.DATA_KEY)\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].off(this._element, this.constructor.EVENT_KEY)\n\n    for (const propertyName of Object.getOwnPropertyNames(this)) {\n      this[propertyName] = null\n    }\n  }\n\n  _queueCallback(callback, element, isAnimated = true) {\n    (0,_util_index_js__WEBPACK_IMPORTED_MODULE_3__.executeAfterTransition)(callback, element, isAnimated)\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config, this._element)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  // Static\n  static getInstance(element) {\n    return _dom_data_js__WEBPACK_IMPORTED_MODULE_0__["default"].get((0,_util_index_js__WEBPACK_IMPORTED_MODULE_3__.getElement)(element), this.DATA_KEY)\n  }\n\n  static getOrCreateInstance(element, config = {}) {\n    return this.getInstance(element) || new this(element, typeof config === \'object\' ? config : null)\n  }\n\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get DATA_KEY() {\n    return `bs.${this.NAME}`\n  }\n\n  static get EVENT_KEY() {\n    return `.${this.DATA_KEY}`\n  }\n\n  static eventName(name) {\n    return `${name}${this.EVENT_KEY}`\n  }\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (BaseComponent);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/base-component.js?')}),
vendor: 1,761 bytes, line 1
1"./node_modules/bootstrap/js/src/dom/data.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\n/* harmony default export */ __webpack_exports__["default"] = ({\n  set(element, key, instance) {\n    if (!elementMap.has(element)) {\n      elementMap.set(element, new Map())\n    }\n\n    const instanceMap = elementMap.get(element)\n\n    // make it clear we only want one instance per element\n    // can be removed later when multiple key/instances are fine to be used\n    if (!instanceMap.has(key) && instanceMap.size !== 0) {\n      // eslint-disable-next-line no-console\n      console.error(`Bootstrap doesn\'t allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n      return\n    }\n\n    instanceMap.set(key, instance)\n  },\n\n  get(element, key) {\n    if (elementMap.has(element)) {\n      return elementMap.get(element).get(key) || null\n    }\n\n    return null\n  },\n\n  remove(element, key) {\n    if (!elementMap.has(element)) {\n      return\n    }\n\n    const instanceMap = elementMap.get(element)\n\n    instanceMap.delete(key)\n\n    // free up element references if there are no instances left for an element\n    if (instanceMap.size === 0) {\n      elementMap.delete(element)\n    }\n  }\n});\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/dom/data.js?')}),
vendor: 9,174 bytes, line 1
1"./node_modules/bootstrap/js/src/dom/event-handler.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/index.js */ \"./node_modules/bootstrap/js/src/util/index.js\");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n  mouseenter: 'mouseover',\n  mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n  'click',\n  'dblclick',\n  'mouseup',\n  'mousedown',\n  'contextmenu',\n  'mousewheel',\n  'DOMMouseScroll',\n  'mouseover',\n  'mouseout',\n  'mousemove',\n  'selectstart',\n  'selectend',\n  'keydown',\n  'keypress',\n  'keyup',\n  'orientationchange',\n  'touchstart',\n  'touchmove',\n  'touchend',\n  'touchcancel',\n  'pointerdown',\n  'pointermove',\n  'pointerup',\n  'pointerleave',\n  'pointercancel',\n  'gesturestart',\n  'gesturechange',\n  'gestureend',\n  'focus',\n  'blur',\n  'change',\n  'reset',\n  'select',\n  'submit',\n  'focusin',\n  'focusout',\n  'load',\n  'unload',\n  'beforeunload',\n  'resize',\n  'move',\n  'DOMContentLoaded',\n  'readystatechange',\n  'error',\n  'abort',\n  'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n  return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n  const uid = makeEventUid(element)\n\n  element.uidEvent = uid\n  eventRegistry[uid] = eventRegistry[uid] || {}\n\n  return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n  return function handler(event) {\n    hydrateObj(event, { delegateTarget: element })\n\n    if (handler.oneOff) {\n      EventHandler.off(element, event.type, fn)\n    }\n\n    return fn.apply(element, [event])\n  }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n  return function handler(event) {\n    const domElements = element.querySelectorAll(selector)\n\n    for (let { target } = event; target && target !== this; target = target.parentNode) {\n      for (const domElement of domElements) {\n        if (domElement !== target) {\n          continue\n        }\n\n        hydrateObj(event, { delegateTarget: target })\n\n        if (handler.oneOff) {\n          EventHandler.off(element, event.type, selector, fn)\n        }\n\n        return fn.apply(target, [event])\n      }\n    }\n  }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n  return Object.values(events)\n    .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n  const isDelegated = typeof handler === 'string'\n  // TODO: tooltip passes `false` instead of selector, so we need to check\n  const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n  let typeEvent = getTypeEvent(originalTypeEvent)\n\n  if (!nativeEvents.has(typeEvent)) {\n    typeEvent = originalTypeEvent\n  }\n\n  return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n  if (typeof originalTypeEvent !== 'string' || !element) {\n    return\n  }\n\n  let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n  // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n  // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n  if (originalTypeEvent in customEvents) {\n    const wrapFunction = fn => {\n      return function (event) {\n        if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n          return fn.call(this, event)\n        }\n      }\n    }\n\n    callable = wrapFunction(callable)\n  }\n\n  const events = getElementEvents(element)\n  const handlers = events[typeEvent] || (events[typeEvent] = {})\n  const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n  if (previousFunction) {\n    previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n    return\n  }\n\n  const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n  const fn = isDelegated ?\n    bootstrapDelegationHandler(element, handler, callable) :\n    bootstrapHandler(element, callable)\n\n  fn.delegationSelector = isDelegated ? handler : null\n  fn.callable = callable\n  fn.oneOff = oneOff\n  fn.uidEvent = uid\n  handlers[uid] = fn\n\n  element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n  const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n  if (!fn) {\n    return\n  }\n\n  element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n  delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n  const storeElementEvent = events[typeEvent] || {}\n\n  for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n    if (handlerKey.includes(namespace)) {\n      removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n    }\n  }\n}\n\nfunction getTypeEvent(event) {\n  // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n  event = event.replace(stripNameRegex, '')\n  return customEvents[event] || event\n}\n\nconst EventHandler = {\n  on(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, false)\n  },\n\n  one(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, true)\n  },\n\n  off(element, originalTypeEvent, handler, delegationFunction) {\n    if (typeof originalTypeEvent !== 'string' || !element) {\n      return\n    }\n\n    const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n    const inNamespace = typeEvent !== originalTypeEvent\n    const events = getElementEvents(element)\n    const storeElementEvent = events[typeEvent] || {}\n    const isNamespace = originalTypeEvent.startsWith('.')\n\n    if (typeof callable !== 'undefined') {\n      // Simplest case: handler is passed, remove that listener ONLY.\n      if (!Object.keys(storeElementEvent).length) {\n        return\n      }\n\n      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n      return\n    }\n\n    if (isNamespace) {\n      for (const elementEvent of Object.keys(events)) {\n        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n      }\n    }\n\n    for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n      const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n      }\n    }\n  },\n\n  trigger(element, event, args) {\n    if (typeof event !== 'string' || !element) {\n      return null\n    }\n\n    const $ = (0,_util_index_js__WEBPACK_IMPORTED_MODULE_0__.getjQuery)()\n    const typeEvent = getTypeEvent(event)\n    const inNamespace = event !== typeEvent\n\n    let jQueryEvent = null\n    let bubbles = true\n    let nativeDispatch = true\n    let defaultPrevented = false\n\n    if (inNamespace && $) {\n      jQueryEvent = $.Event(event, args)\n\n      $(element).trigger(jQueryEvent)\n      bubbles = !jQueryEvent.isPropagationStopped()\n      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n      defaultPrevented = jQueryEvent.isDefaultPrevented()\n    }\n\n    const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n    if (defaultPrevented) {\n      evt.preventDefault()\n    }\n\n    if (nativeDispatch) {\n      element.dispatchEvent(evt)\n    }\n\n    if (evt.defaultPrevented && jQueryEvent) {\n      jQueryEvent.preventDefault()\n    }\n\n    return evt\n  }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n  for (const [key, value] of Object.entries(meta)) {\n    try {\n      obj[key] = value\n    } catch {\n      Object.defineProperty(obj, key, {\n        configurable: true,\n        get() {\n          return value\n        }\n      })\n    }\n  }\n\n  return obj\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (EventHandler);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/dom/event-handler.js?")}),
vendor: 2,055 bytes, line 1
1"./node_modules/bootstrap/js/src/dom/manipulator.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n  if (value === 'true') {\n    return true\n  }\n\n  if (value === 'false') {\n    return false\n  }\n\n  if (value === Number(value).toString()) {\n    return Number(value)\n  }\n\n  if (value === '' || value === 'null') {\n    return null\n  }\n\n  if (typeof value !== 'string') {\n    return value\n  }\n\n  try {\n    return JSON.parse(decodeURIComponent(value))\n  } catch {\n    return value\n  }\n}\n\nfunction normalizeDataKey(key) {\n  return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n  setDataAttribute(element, key, value) {\n    element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n  },\n\n  removeDataAttribute(element, key) {\n    element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n  },\n\n  getDataAttributes(element) {\n    if (!element) {\n      return {}\n    }\n\n    const attributes = {}\n    const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n    for (const key of bsKeys) {\n      let pureKey = key.replace(/^bs/, '')\n      pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n      attributes[pureKey] = normalizeData(element.dataset[key])\n    }\n\n    return attributes\n  },\n\n  getDataAttribute(element, key) {\n    return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Manipulator);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/dom/manipulator.js?")}),
vendor: 4,143 bytes, line 1
1"./node_modules/bootstrap/js/src/dom/selector-engine.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/index.js */ \"./node_modules/bootstrap/js/src/util/index.js\");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-bs-target')\n\n  if (!selector || selector === '#') {\n    let hrefAttribute = element.getAttribute('href')\n\n    // The only valid content that could double as a selector are IDs or classes,\n    // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n    // `document.querySelector` will rightfully complain it is invalid.\n    // See https://github.com/twbs/bootstrap/issues/32273\n    if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n      return null\n    }\n\n    // Just in case some CMS puts out a full URL with the anchor appended\n    if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n      hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n    }\n\n    selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n  }\n\n  return selector ? selector.split(',').map(sel => (0,_util_index_js__WEBPACK_IMPORTED_MODULE_0__.parseSelector)(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n  find(selector, element = document.documentElement) {\n    return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n  },\n\n  findOne(selector, element = document.documentElement) {\n    return Element.prototype.querySelector.call(element, selector)\n  },\n\n  children(element, selector) {\n    return [].concat(...element.children).filter(child => child.matches(selector))\n  },\n\n  parents(element, selector) {\n    const parents = []\n    let ancestor = element.parentNode.closest(selector)\n\n    while (ancestor) {\n      parents.push(ancestor)\n      ancestor = ancestor.parentNode.closest(selector)\n    }\n\n    return parents\n  },\n\n  prev(element, selector) {\n    let previous = element.previousElementSibling\n\n    while (previous) {\n      if (previous.matches(selector)) {\n        return [previous]\n      }\n\n      previous = previous.previousElementSibling\n    }\n\n    return []\n  },\n  // TODO: this is now unused; remove later along with prev()\n  next(element, selector) {\n    let next = element.nextElementSibling\n\n    while (next) {\n      if (next.matches(selector)) {\n        return [next]\n      }\n\n      next = next.nextElementSibling\n    }\n\n    return []\n  },\n\n  focusableChildren(element) {\n    const focusables = [\n      'a',\n      'button',\n      'input',\n      'textarea',\n      'select',\n      'details',\n      '[tabindex]',\n      '[contenteditable=\"true\"]'\n    ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n    return this.find(focusables, element).filter(el => !(0,_util_index_js__WEBPACK_IMPORTED_MODULE_0__.isDisabled)(el) && (0,_util_index_js__WEBPACK_IMPORTED_MODULE_0__.isVisible)(el))\n  },\n\n  getSelectorFromElement(element) {\n    const selector = getSelector(element)\n\n    if (selector) {\n      return SelectorEngine.findOne(selector) ? selector : null\n    }\n\n    return null\n  },\n\n  getElementFromSelector(element) {\n    const selector = getSelector(element)\n\n    return selector ? SelectorEngine.findOne(selector) : null\n  },\n\n  getMultipleElementsFromSelector(element) {\n    const selector = getSelector(element)\n\n    return selector ? SelectorEngine.find(selector) : []\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SelectorEngine);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/dom/selector-engine.js?")}),
vendor: 9,646 bytes, line 1
1"./node_modules/bootstrap/js/src/offcanvas.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-component.js */ "./node_modules/bootstrap/js/src/base-component.js");\n/* harmony import */ var _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom/event-handler.js */ "./node_modules/bootstrap/js/src/dom/event-handler.js");\n/* harmony import */ var _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom/selector-engine.js */ "./node_modules/bootstrap/js/src/dom/selector-engine.js");\n/* harmony import */ var _util_backdrop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/backdrop.js */ "./node_modules/bootstrap/js/src/util/backdrop.js");\n/* harmony import */ var _util_component_functions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/component-functions.js */ "./node_modules/bootstrap/js/src/util/component-functions.js");\n/* harmony import */ var _util_focustrap_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/focustrap.js */ "./node_modules/bootstrap/js/src/util/focustrap.js");\n/* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/index.js */ "./node_modules/bootstrap/js/src/util/index.js");\n/* harmony import */ var _util_scrollbar_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util/scrollbar.js */ "./node_modules/bootstrap/js/src/util/scrollbar.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Constants\n */\n\nconst NAME = \'offcanvas\'\nconst DATA_KEY = \'bs.offcanvas\'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = \'.data-api\'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = \'Escape\'\n\nconst CLASS_NAME_SHOW = \'show\'\nconst CLASS_NAME_SHOWING = \'showing\'\nconst CLASS_NAME_HIDING = \'hiding\'\nconst CLASS_NAME_BACKDROP = \'offcanvas-backdrop\'\nconst OPEN_SELECTOR = \'.offcanvas.show\'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = \'[data-bs-toggle="offcanvas"]\'\n\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  scroll: false\n}\n\nconst DefaultType = {\n  backdrop: \'(boolean|string)\',\n  keyboard: \'boolean\',\n  scroll: \'boolean\'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends _base_component_js__WEBPACK_IMPORTED_MODULE_0__["default"] {\n  constructor(element, config) {\n    super(element, config)\n\n    this._isShown = false\n    this._backdrop = this._initializeBackDrop()\n    this._focustrap = this._initializeFocusTrap()\n    this._addEventListeners()\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown) {\n      return\n    }\n\n    const showEvent = _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    this._isShown = true\n    this._backdrop.show()\n\n    if (!this._config.scroll) {\n      new _util_scrollbar_js__WEBPACK_IMPORTED_MODULE_7__["default"]().hide()\n    }\n\n    this._element.setAttribute(\'aria-modal\', true)\n    this._element.setAttribute(\'role\', \'dialog\')\n    this._element.classList.add(CLASS_NAME_SHOWING)\n\n    const completeCallBack = () => {\n      if (!this._config.scroll || this._config.backdrop) {\n        this._focustrap.activate()\n      }\n\n      this._element.classList.add(CLASS_NAME_SHOW)\n      this._element.classList.remove(CLASS_NAME_SHOWING)\n      _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_SHOWN, { relatedTarget })\n    }\n\n    this._queueCallback(completeCallBack, this._element, true)\n  }\n\n  hide() {\n    if (!this._isShown) {\n      return\n    }\n\n    const hideEvent = _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_HIDE)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    this._focustrap.deactivate()\n    this._element.blur()\n    this._isShown = false\n    this._element.classList.add(CLASS_NAME_HIDING)\n    this._backdrop.hide()\n\n    const completeCallback = () => {\n      this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n      this._element.removeAttribute(\'aria-modal\')\n      this._element.removeAttribute(\'role\')\n\n      if (!this._config.scroll) {\n        new _util_scrollbar_js__WEBPACK_IMPORTED_MODULE_7__["default"]().reset()\n      }\n\n      _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_HIDDEN)\n    }\n\n    this._queueCallback(completeCallback, this._element, true)\n  }\n\n  dispose() {\n    this._backdrop.dispose()\n    this._focustrap.deactivate()\n    super.dispose()\n  }\n\n  // Private\n  _initializeBackDrop() {\n    const clickCallback = () => {\n      if (this._config.backdrop === \'static\') {\n        _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_HIDE_PREVENTED)\n        return\n      }\n\n      this.hide()\n    }\n\n    // \'static\' option will be translated to true, and booleans will keep their value\n    const isVisible = Boolean(this._config.backdrop)\n\n    return new _util_backdrop_js__WEBPACK_IMPORTED_MODULE_3__["default"]({\n      className: CLASS_NAME_BACKDROP,\n      isVisible,\n      isAnimated: true,\n      rootElement: this._element.parentNode,\n      clickCallback: isVisible ? clickCallback : null\n    })\n  }\n\n  _initializeFocusTrap() {\n    return new _util_focustrap_js__WEBPACK_IMPORTED_MODULE_5__["default"]({\n      trapElement: this._element\n    })\n  }\n\n  _addEventListeners() {\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n      if (event.key !== ESCAPE_KEY) {\n        return\n      }\n\n      if (this._config.keyboard) {\n        this.hide()\n        return\n      }\n\n      _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].trigger(this._element, EVENT_HIDE_PREVENTED)\n    })\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Offcanvas.getOrCreateInstance(this, config)\n\n      if (typeof config !== \'string\') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith(\'_\') || config === \'constructor\') {\n        throw new TypeError(`No method named "${config}"`)\n      }\n\n      data[config](this)\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\n_dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_2__["default"].getElementFromSelector(this)\n\n  if ([\'A\', \'AREA\'].includes(this.tagName)) {\n    event.preventDefault()\n  }\n\n  if ((0,_util_index_js__WEBPACK_IMPORTED_MODULE_6__.isDisabled)(this)) {\n    return\n  }\n\n  _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].one(target, EVENT_HIDDEN, () => {\n    // focus on trigger when it is closed\n    if ((0,_util_index_js__WEBPACK_IMPORTED_MODULE_6__.isVisible)(this)) {\n      this.focus()\n    }\n  })\n\n  // avoid conflict when clicking a toggler of an offcanvas, while another is open\n  const alreadyOpen = _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_2__["default"].findOne(OPEN_SELECTOR)\n  if (alreadyOpen && alreadyOpen !== target) {\n    Offcanvas.getInstance(alreadyOpen).hide()\n  }\n\n  const data = Offcanvas.getOrCreateInstance(target)\n  data.toggle(this)\n})\n\n_dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].on(window, EVENT_LOAD_DATA_API, () => {\n  for (const selector of _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_2__["default"].find(OPEN_SELECTOR)) {\n    Offcanvas.getOrCreateInstance(selector).show()\n  }\n})\n\n_dom_event_handler_js__WEBPACK_IMPORTED_MODULE_1__["default"].on(window, EVENT_RESIZE, () => {\n  for (const element of _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_2__["default"].find(\'[aria-modal][class*=show][class*=offcanvas-]\')) {\n    if (getComputedStyle(element).position !== \'fixed\') {\n      Offcanvas.getOrCreateInstance(element).hide()\n    }\n  }\n})\n\n;(0,_util_component_functions_js__WEBPACK_IMPORTED_MODULE_4__.enableDismissTrigger)(Offcanvas)\n\n/**\n * jQuery\n */\n\n;(0,_util_index_js__WEBPACK_IMPORTED_MODULE_6__.defineJQueryPlugin)(Offcanvas)\n\n/* harmony default export */ __webpack_exports__["default"] = (Offcanvas);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/offcanvas.js?')}),
vendor: 4,437 bytes, line 1
1"./node_modules/bootstrap/js/src/util/backdrop.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/event-handler.js */ \"./node_modules/bootstrap/js/src/dom/event-handler.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./config.js */ \"./node_modules/bootstrap/js/src/util/config.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/bootstrap/js/src/util/index.js\");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n  className: 'modal-backdrop',\n  clickCallback: null,\n  isAnimated: false,\n  isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n  rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n  className: 'string',\n  clickCallback: '(function|null)',\n  isAnimated: 'boolean',\n  isVisible: 'boolean',\n  rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends _config_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isAppended = false\n    this._element = null\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  show(callback) {\n    if (!this._config.isVisible) {\n      (0,_index_js__WEBPACK_IMPORTED_MODULE_2__.execute)(callback)\n      return\n    }\n\n    this._append()\n\n    const element = this._getElement()\n    if (this._config.isAnimated) {\n      (0,_index_js__WEBPACK_IMPORTED_MODULE_2__.reflow)(element)\n    }\n\n    element.classList.add(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      ;(0,_index_js__WEBPACK_IMPORTED_MODULE_2__.execute)(callback)\n    })\n  }\n\n  hide(callback) {\n    if (!this._config.isVisible) {\n      (0,_index_js__WEBPACK_IMPORTED_MODULE_2__.execute)(callback)\n      return\n    }\n\n    this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n    this._emulateAnimation(() => {\n      this.dispose()\n      ;(0,_index_js__WEBPACK_IMPORTED_MODULE_2__.execute)(callback)\n    })\n  }\n\n  dispose() {\n    if (!this._isAppended) {\n      return\n    }\n\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].off(this._element, EVENT_MOUSEDOWN)\n\n    this._element.remove()\n    this._isAppended = false\n  }\n\n  // Private\n  _getElement() {\n    if (!this._element) {\n      const backdrop = document.createElement('div')\n      backdrop.className = this._config.className\n      if (this._config.isAnimated) {\n        backdrop.classList.add(CLASS_NAME_FADE)\n      }\n\n      this._element = backdrop\n    }\n\n    return this._element\n  }\n\n  _configAfterMerge(config) {\n    // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n    config.rootElement = (0,_index_js__WEBPACK_IMPORTED_MODULE_2__.getElement)(config.rootElement)\n    return config\n  }\n\n  _append() {\n    if (this._isAppended) {\n      return\n    }\n\n    const element = this._getElement()\n    this._config.rootElement.append(element)\n\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].on(element, EVENT_MOUSEDOWN, () => {\n      ;(0,_index_js__WEBPACK_IMPORTED_MODULE_2__.execute)(this._config.clickCallback)\n    })\n\n    this._isAppended = true\n  }\n\n  _emulateAnimation(callback) {\n    (0,_index_js__WEBPACK_IMPORTED_MODULE_2__.executeAfterTransition)(callback, this._getElement(), this._config.isAnimated)\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Backdrop);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/backdrop.js?")}),
vendor: 2,145 bytes, line 1
1"./node_modules/bootstrap/js/src/util/component-functions.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   enableDismissTrigger: function() { return /* binding */ enableDismissTrigger; }\n/* harmony export */ });\n/* harmony import */ var _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/event-handler.js */ "./node_modules/bootstrap/js/src/dom/event-handler.js");\n/* harmony import */ var _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom/selector-engine.js */ "./node_modules/bootstrap/js/src/dom/selector-engine.js");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/bootstrap/js/src/util/index.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\nconst enableDismissTrigger = (component, method = \'hide\') => {\n  const clickEvent = `click.dismiss${component.EVENT_KEY}`\n  const name = component.NAME\n\n  _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__["default"].on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {\n    if ([\'A\', \'AREA\'].includes(this.tagName)) {\n      event.preventDefault()\n    }\n\n    if ((0,_index_js__WEBPACK_IMPORTED_MODULE_2__.isDisabled)(this)) {\n      return\n    }\n\n    const target = _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__["default"].getElementFromSelector(this) || this.closest(`.${name}`)\n    const instance = component.getOrCreateInstance(target)\n\n    // Method argument is left, for Alert and only, as it doesn\'t implement the \'hide\' method\n    instance[method]()\n  })\n}\n\n\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/component-functions.js?')}),
vendor: 2,686 bytes, line 1
1"./node_modules/bootstrap/js/src/util/config.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/manipulator.js */ "./node_modules/bootstrap/js/src/dom/manipulator.js");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/bootstrap/js/src/util/index.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n/**\n * Class definition\n */\n\nclass Config {\n  // Getters\n  static get Default() {\n    return {}\n  }\n\n  static get DefaultType() {\n    return {}\n  }\n\n  static get NAME() {\n    throw new Error(\'You have to implement the static method "NAME", for each component!\')\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    return config\n  }\n\n  _mergeConfigObj(config, element) {\n    const jsonConfig = (0,_index_js__WEBPACK_IMPORTED_MODULE_1__.isElement)(element) ? _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__["default"].getDataAttribute(element, \'config\') : {} // try to parse\n\n    return {\n      ...this.constructor.Default,\n      ...(typeof jsonConfig === \'object\' ? jsonConfig : {}),\n      ...((0,_index_js__WEBPACK_IMPORTED_MODULE_1__.isElement)(element) ? _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__["default"].getDataAttributes(element) : {}),\n      ...(typeof config === \'object\' ? config : {})\n    }\n  }\n\n  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n    for (const [property, expectedTypes] of Object.entries(configTypes)) {\n      const value = config[property]\n      const valueType = (0,_index_js__WEBPACK_IMPORTED_MODULE_1__.isElement)(value) ? \'element\' : (0,_index_js__WEBPACK_IMPORTED_MODULE_1__.toType)(value)\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        throw new TypeError(\n          `${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`\n        )\n      }\n    }\n  }\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (Config);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/config.js?')}),
vendor: 3,660 bytes, line 1
1"./node_modules/bootstrap/js/src/util/focustrap.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/event-handler.js */ "./node_modules/bootstrap/js/src/dom/event-handler.js");\n/* harmony import */ var _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom/selector-engine.js */ "./node_modules/bootstrap/js/src/dom/selector-engine.js");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./config.js */ "./node_modules/bootstrap/js/src/util/config.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\n/**\n * Constants\n */\n\nconst NAME = \'focustrap\'\nconst DATA_KEY = \'bs.focustrap\'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = \'Tab\'\nconst TAB_NAV_FORWARD = \'forward\'\nconst TAB_NAV_BACKWARD = \'backward\'\n\nconst Default = {\n  autofocus: true,\n  trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n  autofocus: \'boolean\',\n  trapElement: \'element\'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends _config_js__WEBPACK_IMPORTED_MODULE_2__["default"] {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isActive = false\n    this._lastTabNavDirection = null\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  activate() {\n    if (this._isActive) {\n      return\n    }\n\n    if (this._config.autofocus) {\n      this._config.trapElement.focus()\n    }\n\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__["default"].off(document, EVENT_KEY) // guard against infinite focus loop\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__["default"].on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__["default"].on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n    this._isActive = true\n  }\n\n  deactivate() {\n    if (!this._isActive) {\n      return\n    }\n\n    this._isActive = false\n    _dom_event_handler_js__WEBPACK_IMPORTED_MODULE_0__["default"].off(document, EVENT_KEY)\n  }\n\n  // Private\n  _handleFocusin(event) {\n    const { trapElement } = this._config\n\n    if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n      return\n    }\n\n    const elements = _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__["default"].focusableChildren(trapElement)\n\n    if (elements.length === 0) {\n      trapElement.focus()\n    } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n      elements[elements.length - 1].focus()\n    } else {\n      elements[0].focus()\n    }\n  }\n\n  _handleKeydown(event) {\n    if (event.key !== TAB_KEY) {\n      return\n    }\n\n    this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n  }\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (FocusTrap);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/focustrap.js?')}),
vendor: 9,673 bytes, line 1
1"./node_modules/bootstrap/js/src/util/index.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   defineJQueryPlugin: function() { return /* binding */ defineJQueryPlugin; },\n/* harmony export */   execute: function() { return /* binding */ execute; },\n/* harmony export */   executeAfterTransition: function() { return /* binding */ executeAfterTransition; },\n/* harmony export */   findShadowRoot: function() { return /* binding */ findShadowRoot; },\n/* harmony export */   getElement: function() { return /* binding */ getElement; },\n/* harmony export */   getNextActiveElement: function() { return /* binding */ getNextActiveElement; },\n/* harmony export */   getTransitionDurationFromElement: function() { return /* binding */ getTransitionDurationFromElement; },\n/* harmony export */   getUID: function() { return /* binding */ getUID; },\n/* harmony export */   getjQuery: function() { return /* binding */ getjQuery; },\n/* harmony export */   isDisabled: function() { return /* binding */ isDisabled; },\n/* harmony export */   isElement: function() { return /* binding */ isElement; },\n/* harmony export */   isRTL: function() { return /* binding */ isRTL; },\n/* harmony export */   isVisible: function() { return /* binding */ isVisible; },\n/* harmony export */   noop: function() { return /* binding */ noop; },\n/* harmony export */   onDOMContentLoaded: function() { return /* binding */ onDOMContentLoaded; },\n/* harmony export */   parseSelector: function() { return /* binding */ parseSelector; },\n/* harmony export */   reflow: function() { return /* binding */ reflow; },\n/* harmony export */   toType: function() { return /* binding */ toType; },\n/* harmony export */   triggerTransitionEnd: function() { return /* binding */ triggerTransitionEnd; }\n/* harmony export */ });\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n  if (selector && window.CSS && window.CSS.escape) {\n    // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n    selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n  }\n\n  return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n  if (object === null || object === undefined) {\n    return `${object}`\n  }\n\n  return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n  do {\n    prefix += Math.floor(Math.random() * MAX_UID)\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n  if (!element) {\n    return 0\n  }\n\n  // Get transition-duration of the element\n  let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n  const floatTransitionDuration = Number.parseFloat(transitionDuration)\n  const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n  // Return 0 if element or transition duration is not found\n  if (!floatTransitionDuration && !floatTransitionDelay) {\n    return 0\n  }\n\n  // If multiple durations are defined, take the first\n  transitionDuration = transitionDuration.split(',')[0]\n  transitionDelay = transitionDelay.split(',')[0]\n\n  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n  element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n  if (!object || typeof object !== 'object') {\n    return false\n  }\n\n  if (typeof object.jquery !== 'undefined') {\n    object = object[0]\n  }\n\n  return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n  // it's a jQuery object or a node element\n  if (isElement(object)) {\n    return object.jquery ? object[0] : object\n  }\n\n  if (typeof object === 'string' && object.length > 0) {\n    return document.querySelector(parseSelector(object))\n  }\n\n  return null\n}\n\nconst isVisible = element => {\n  if (!isElement(element) || element.getClientRects().length === 0) {\n    return false\n  }\n\n  const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n  // Handle `details` element as its content may falsie appear visible when it is closed\n  const closedDetails = element.closest('details:not([open])')\n\n  if (!closedDetails) {\n    return elementIsVisible\n  }\n\n  if (closedDetails !== element) {\n    const summary = element.closest('summary')\n    if (summary && summary.parentNode !== closedDetails) {\n      return false\n    }\n\n    if (summary === null) {\n      return false\n    }\n  }\n\n  return elementIsVisible\n}\n\nconst isDisabled = element => {\n  if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n    return true\n  }\n\n  if (element.classList.contains('disabled')) {\n    return true\n  }\n\n  if (typeof element.disabled !== 'undefined') {\n    return element.disabled\n  }\n\n  return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n  if (!document.documentElement.attachShadow) {\n    return null\n  }\n\n  // Can find the shadow root otherwise it'll return the document\n  if (typeof element.getRootNode === 'function') {\n    const root = element.getRootNode()\n    return root instanceof ShadowRoot ? root : null\n  }\n\n  if (element instanceof ShadowRoot) {\n    return element\n  }\n\n  // when we don't find a shadow root\n  if (!element.parentNode) {\n    return null\n  }\n\n  return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n  element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n    return window.jQuery\n  }\n\n  return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n  if (document.readyState === 'loading') {\n    // add listener on the first call when the document is in loading state\n    if (!DOMContentLoadedCallbacks.length) {\n      document.addEventListener('DOMContentLoaded', () => {\n        for (const callback of DOMContentLoadedCallbacks) {\n          callback()\n        }\n      })\n    }\n\n    DOMContentLoadedCallbacks.push(callback)\n  } else {\n    callback()\n  }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n  onDOMContentLoaded(() => {\n    const $ = getjQuery()\n    /* istanbul ignore if */\n    if ($) {\n      const name = plugin.NAME\n      const JQUERY_NO_CONFLICT = $.fn[name]\n      $.fn[name] = plugin.jQueryInterface\n      $.fn[name].Constructor = plugin\n      $.fn[name].noConflict = () => {\n        $.fn[name] = JQUERY_NO_CONFLICT\n        return plugin.jQueryInterface\n      }\n    }\n  })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n  return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n  if (!waitForTransition) {\n    execute(callback)\n    return\n  }\n\n  const durationPadding = 5\n  const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n  let called = false\n\n  const handler = ({ target }) => {\n    if (target !== transitionElement) {\n      return\n    }\n\n    called = true\n    transitionElement.removeEventListener(TRANSITION_END, handler)\n    execute(callback)\n  }\n\n  transitionElement.addEventListener(TRANSITION_END, handler)\n  setTimeout(() => {\n    if (!called) {\n      triggerTransitionEnd(transitionElement)\n    }\n  }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list    The list of elements\n * @param activeElement   The active element\n * @param shouldGetNext   Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n  const listLength = list.length\n  let index = list.indexOf(activeElement)\n\n  // if the element does not exist in the list return an element\n  // depending on the direction and if cycle is allowed\n  if (index === -1) {\n    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n  }\n\n  index += shouldGetNext ? 1 : -1\n\n  if (isCycleAllowed) {\n    index = (index + listLength) % listLength\n  }\n\n  return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\n\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/index.js?")}),
vendor: 4,829 bytes, line 1
1"./node_modules/bootstrap/js/src/util/scrollbar.js":(function(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/manipulator.js */ "./node_modules/bootstrap/js/src/dom/manipulator.js");\n/* harmony import */ var _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom/selector-engine.js */ "./node_modules/bootstrap/js/src/dom/selector-engine.js");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/bootstrap/js/src/util/index.js");\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = \'.fixed-top, .fixed-bottom, .is-fixed, .sticky-top\'\nconst SELECTOR_STICKY_CONTENT = \'.sticky-top\'\nconst PROPERTY_PADDING = \'padding-right\'\nconst PROPERTY_MARGIN = \'margin-right\'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n  constructor() {\n    this._element = document.body\n  }\n\n  // Public\n  getWidth() {\n    // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n    const documentWidth = document.documentElement.clientWidth\n    return Math.abs(window.innerWidth - documentWidth)\n  }\n\n  hide() {\n    const width = this.getWidth()\n    this._disableOverFlow()\n    // give padding to element to balance the hidden scrollbar width\n    this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n    // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n    this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n    this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n  }\n\n  reset() {\n    this._resetElementAttributes(this._element, \'overflow\')\n    this._resetElementAttributes(this._element, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n  }\n\n  isOverflowing() {\n    return this.getWidth() > 0\n  }\n\n  // Private\n  _disableOverFlow() {\n    this._saveInitialAttribute(this._element, \'overflow\')\n    this._element.style.overflow = \'hidden\'\n  }\n\n  _setElementAttributes(selector, styleProperty, callback) {\n    const scrollbarWidth = this.getWidth()\n    const manipulationCallBack = element => {\n      if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n        return\n      }\n\n      this._saveInitialAttribute(element, styleProperty)\n      const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n      element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _saveInitialAttribute(element, styleProperty) {\n    const actualValue = element.style.getPropertyValue(styleProperty)\n    if (actualValue) {\n      _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__["default"].setDataAttribute(element, styleProperty, actualValue)\n    }\n  }\n\n  _resetElementAttributes(selector, styleProperty) {\n    const manipulationCallBack = element => {\n      const value = _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__["default"].getDataAttribute(element, styleProperty)\n      // We only want to remove the property if the value is `null`; the value can also be zero\n      if (value === null) {\n        element.style.removeProperty(styleProperty)\n        return\n      }\n\n      _dom_manipulator_js__WEBPACK_IMPORTED_MODULE_0__["default"].removeDataAttribute(element, styleProperty)\n      element.style.setProperty(styleProperty, value)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _applyManipulationCallback(selector, callBack) {\n    if ((0,_index_js__WEBPACK_IMPORTED_MODULE_2__.isElement)(selector)) {\n      callBack(selector)\n      return\n    }\n\n    for (const sel of _dom_selector_engine_js__WEBPACK_IMPORTED_MODULE_1__["default"].find(selector, this._element)) {\n      callBack(sel)\n    }\n  }\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (ScrollBarHelper);\n\n\n//# sourceURL=webpack://theme-name/./node_modules/bootstrap/js/src/util/scrollbar.js?')})
1},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==void 0)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={exports:{}};return __webpack_modules__[moduleId](module,module.exports,__webpack_require__),module.exports}(function(){__webpack_require__.d=function(exports,definition){for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})}})(),(function(){__webpack_require__.o=function(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}})(),(function(){__webpack_require__.r=function(exports){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})}})();var __webpack_exports__=__webpack_require__("./js/sections/mobile-menu.js")})();
2//# sourceMappingURL=/cdn/shop/t/392/assets/mobile-menu.js.map?v=2510436958983534781783600250

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.