PageSourceSearch

https://qualityaging.com.au/site/DefaultSite/skins/QualityAgeing/js/index.js

js qualityaging.com.au collected 2026-09-30 19:53:39 UTC 215,601 bytes, 5,634 lines download raw bytes

1(function polyfill() {
2  const relList = document.createElement("link").relList;
3  if (relList && relList.supports && relList.supports("modulepreload")) {
4    return;
5  }
6  for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
7    processPreload(link);
8  }
9  new MutationObserver((mutations) => {
10    for (const mutation of mutations) {
11      if (mutation.type !== "childList") {
12        continue;
13      }
14      for (const node of mutation.addedNodes) {
15        if (node.tagName === "LINK" && node.rel === "modulepreload")
16          processPreload(node);
17      }
18    }
19  }).observe(document, { childList: true, subtree: true });
20  function getFetchOpts(link) {
21    const fetchOpts = {};
22    if (link.integrity)
23      fetchOpts.integrity = link.integrity;
24    if (link.referrerPolicy)
25      fetchOpts.referrerPolicy = link.referrerPolicy;
26    if (link.crossOrigin === "use-credentials")
27      fetchOpts.credentials = "include";
28    else if (link.crossOrigin === "anonymous")
29      fetchOpts.credentials = "omit";
30    else
31      fetchOpts.credentials = "same-origin";
32    return fetchOpts;
33  }
34  function processPreload(link) {
35    if (link.ep)
36      return;
37    link.ep = true;
38    const fetchOpts = getFetchOpts(link);
39    fetch(link.href, fetchOpts);
40  }
41})();
42const styles = "";
43var top = "top";
44var bottom = "bottom";
45var right = "right";
46var left = "left";
47var auto = "auto";
48var basePlacements = [top, bottom, right, left];
49var start = "start";
50var end = "end";
51var clippingParents = "clippingParents";
52var viewport = "viewport";
53var popper = "popper";
54var reference = "reference";
55var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
56  return acc.concat([placement + "-" + start, placement + "-" + end]);
57}, []);
58var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
59  return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
60}, []);
61var beforeRead = "beforeRead";
62var read = "read";
63var afterRead = "afterRead";
64var beforeMain = "beforeMain";
65var main = "main";
66var afterMain = "afterMain";
67var beforeWrite = "beforeWrite";
68var write = "write";
69var afterWrite = "afterWrite";
70var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
71function getNodeName(element) {
72  return element ? (element.nodeName || "").toLowerCase() : null;
73}
74function getWindow(node) {
75  if (node == null) {
76    return window;
77  }
78  if (node.toString() !== "[object Window]") {
79    var ownerDocument = node.ownerDocument;
80    return ownerDocument ? ownerDocument.defaultView || window : window;
81  }
82  return node;
83}
84function isElement$1(node) {
85  var OwnElement = getWindow(node).Element;
86  return node instanceof OwnElement || node instanceof Element;
87}
88function isHTMLElement(node) {
89  var OwnElement = getWindow(node).HTMLElement;
90  return node instanceof OwnElement || node instanceof HTMLElement;
91}
92function isShadowRoot(node) {
93  if (typeof ShadowRoot === "undefined") {
94    return false;
95  }
96  var OwnElement = getWindow(node).ShadowRoot;
97  return node instanceof OwnElement || node instanceof ShadowRoot;
98}
99function applyStyles(_ref) {
100  var state = _ref.state;
101  Object.keys(state.elements).forEach(function(name) {
102    var style = state.styles[name] || {};
103    var attributes = state.attributes[name] || {};
104    var element = state.elements[name];
105    if (!isHTMLElement(element) || !getNodeName(element)) {
106      return;
107    }
108    Object.assign(element.style, style);
109    Object.keys(attributes).forEach(function(name2) {
110      var value = attributes[name2];
111      if (value === false) {
112        element.removeAttribute(name2);
113      } else {
114        element.setAttribute(name2, value === true ? "" : value);
115      }
116    });
117  });
118}
119function effect$2(_ref2) {
120  var state = _ref2.state;
121  var initialStyles = {
122    popper: {
123      position: state.options.strategy,
124      left: "0",
125      top: "0",
126      margin: "0"
127    },
128    arrow: {
129      position: "absolute"
130    },
131    reference: {}
132  };
133  Object.assign(state.elements.popper.style, initialStyles.popper);
134  state.styles = initialStyles;
135  if (state.elements.arrow) {
136    Object.assign(state.elements.arrow.style, initialStyles.arrow);
137  }
138  return function() {
vendor: 14,659 bytes, lines 139-540
139    Object.keys(state.elements).forEach(function(name) {
140      var element = state.elements[name];
141      var attributes = state.attributes[name] || {};
142      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
143      var style = styleProperties.reduce(function(style2, property) {
144        style2[property] = "";
145        return style2;
146      }, {});
147      if (!isHTMLElement(element) || !getNodeName(element)) {
148        return;
149      }
150      Object.assign(element.style, style);
151      Object.keys(attributes).forEach(function(attribute) {
152        element.removeAttribute(attribute);
153      });
154    });
155  };
156}
157const applyStyles$1 = {
158  name: "applyStyles",
159  enabled: true,
160  phase: "write",
161  fn: applyStyles,
162  effect: effect$2,
163  requires: ["computeStyles"]
164};
165function getBasePlacement(placement) {
166  return placement.split("-")[0];
167}
168var max = Math.max;
169var min = Math.min;
170var round = Math.round;
171function getUAString() {
172  var uaData = navigator.userAgentData;
173  if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
174    return uaData.brands.map(function(item) {
175      return item.brand + "/" + item.version;
176    }).join(" ");
177  }
178  return navigator.userAgent;
179}
180function isLayoutViewport() {
181  return !/^((?!chrome|android).)*safari/i.test(getUAString());
182}
183function getBoundingClientRect(element, includeScale, isFixedStrategy) {
184  if (includeScale === void 0) {
185    includeScale = false;
186  }
187  if (isFixedStrategy === void 0) {
188    isFixedStrategy = false;
189  }
190  var clientRect = element.getBoundingClientRect();
191  var scaleX = 1;
192  var scaleY = 1;
193  if (includeScale && isHTMLElement(element)) {
194    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
195    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
196  }
197  var _ref = isElement$1(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
198  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
199  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
200  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
201  var width = clientRect.width / scaleX;
202  var height = clientRect.height / scaleY;
203  return {
204    width,
205    height,
206    top: y,
207    right: x + width,
208    bottom: y + height,
209    left: x,
210    x,
211    y
212  };
213}
214function getLayoutRect(element) {
215  var clientRect = getBoundingClientRect(element);
216  var width = element.offsetWidth;
217  var height = element.offsetHeight;
218  if (Math.abs(clientRect.width - width) <= 1) {
219    width = clientRect.width;
220  }
221  if (Math.abs(clientRect.height - height) <= 1) {
222    height = clientRect.height;
223  }
224  return {
225    x: element.offsetLeft,
226    y: element.offsetTop,
227    width,
228    height
229  };
230}
231function contains(parent, child) {
232  var rootNode = child.getRootNode && child.getRootNode();
233  if (parent.contains(child)) {
234    return true;
235  } else if (rootNode && isShadowRoot(rootNode)) {
236    var next = child;
237    do {
238      if (next && parent.isSameNode(next)) {
239        return true;
240      }
241      next = next.parentNode || next.host;
242    } while (next);
243  }
244  return false;
245}
246function getComputedStyle$1(element) {
247  return getWindow(element).getComputedStyle(element);
248}
249function isTableElement(element) {
250  return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
251}
252function getDocumentElement(element) {
253  return ((isElement$1(element) ? element.ownerDocument : (
254    // $FlowFixMe[prop-missing]
255    element.document
256  )) || window.document).documentElement;
257}
258function getParentNode(element) {
259  if (getNodeName(element) === "html") {
260    return element;
261  }
262  return (
263    // this is a quicker (but less type safe) way to save quite some bytes from the bundle
264    // $FlowFixMe[incompatible-return]
265    // $FlowFixMe[prop-missing]
266    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
267    element.parentNode || // DOM Element detected
268    (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
269    // $FlowFixMe[incompatible-call]: HTMLElement is a Node
270    getDocumentElement(element)
271  );
272}
273function getTrueOffsetParent(element) {
274  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
275  getComputedStyle$1(element).position === "fixed") {
276    return null;
277  }
278  return element.offsetParent;
279}
280function getContainingBlock(element) {
281  var isFirefox = /firefox/i.test(getUAString());
282  var isIE = /Trident/i.test(getUAString());
283  if (isIE && isHTMLElement(element)) {
284    var elementCss = getComputedStyle$1(element);
285    if (elementCss.position === "fixed") {
286      return null;
287    }
288  }
289  var currentNode = getParentNode(element);
290  if (isShadowRoot(currentNode)) {
291    currentNode = currentNode.host;
292  }
293  while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
294    var css = getComputedStyle$1(currentNode);
295    if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
296      return currentNode;
297    } else {
298      currentNode = currentNode.parentNode;
299    }
300  }
301  return null;
302}
303function getOffsetParent(element) {
304  var window2 = getWindow(element);
305  var offsetParent = getTrueOffsetParent(element);
306  while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === "static") {
307    offsetParent = getTrueOffsetParent(offsetParent);
308  }
309  if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle$1(offsetParent).position === "static")) {
310    return window2;
311  }
312  return offsetParent || getContainingBlock(element) || window2;
313}
314function getMainAxisFromPlacement(placement) {
315  return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
316}
317function within(min$1, value, max$1) {
318  return max(min$1, min(value, max$1));
319}
320function withinMaxClamp(min2, value, max2) {
321  var v = within(min2, value, max2);
322  return v > max2 ? max2 : v;
323}
324function getFreshSideObject() {
325  return {
326    top: 0,
327    right: 0,
328    bottom: 0,
329    left: 0
330  };
331}
332function mergePaddingObject(paddingObject) {
333  return Object.assign({}, getFreshSideObject(), paddingObject);
334}
335function expandToHashMap(value, keys) {
336  return keys.reduce(function(hashMap, key) {
337    hashMap[key] = value;
338    return hashMap;
339  }, {});
340}
341var toPaddingObject = function toPaddingObject2(padding, state) {
342  padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
343    placement: state.placement
344  })) : padding;
345  return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
346};
347function arrow(_ref) {
348  var _state$modifiersData$;
349  var state = _ref.state, name = _ref.name, options = _ref.options;
350  var arrowElement = state.elements.arrow;
351  var popperOffsets2 = state.modifiersData.popperOffsets;
352  var basePlacement = getBasePlacement(state.placement);
353  var axis = getMainAxisFromPlacement(basePlacement);
354  var isVertical = [left, right].indexOf(basePlacement) >= 0;
355  var len = isVertical ? "height" : "width";
356  if (!arrowElement || !popperOffsets2) {
357    return;
358  }
359  var paddingObject = toPaddingObject(options.padding, state);
360  var arrowRect = getLayoutRect(arrowElement);
361  var minProp = axis === "y" ? top : left;
362  var maxProp = axis === "y" ? bottom : right;
363  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
364  var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
365  var arrowOffsetParent = getOffsetParent(arrowElement);
366  var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
367  var centerToReference = endDiff / 2 - startDiff / 2;
368  var min2 = paddingObject[minProp];
369  var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
370  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
371  var offset2 = within(min2, center, max2);
372  var axisProp = axis;
373  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
374}
375function effect$1(_ref2) {
376  var state = _ref2.state, options = _ref2.options;
377  var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
378  if (arrowElement == null) {
379    return;
380  }
381  if (typeof arrowElement === "string") {
382    arrowElement = state.elements.popper.querySelector(arrowElement);
383    if (!arrowElement) {
384      return;
385    }
386  }
387  if (!contains(state.elements.popper, arrowElement)) {
388    return;
389  }
390  state.elements.arrow = arrowElement;
391}
392const arrow$1 = {
393  name: "arrow",
394  enabled: true,
395  phase: "main",
396  fn: arrow,
397  effect: effect$1,
398  requires: ["popperOffsets"],
399  requiresIfExists: ["preventOverflow"]
400};
401function getVariation(placement) {
402  return placement.split("-")[1];
403}
404var unsetSides = {
405  top: "auto",
406  right: "auto",
407  bottom: "auto",
408  left: "auto"
409};
410function roundOffsetsByDPR(_ref, win) {
411  var x = _ref.x, y = _ref.y;
412  var dpr = win.devicePixelRatio || 1;
413  return {
414    x: round(x * dpr) / dpr || 0,
415    y: round(y * dpr) / dpr || 0
416  };
417}
418function mapToStyles(_ref2) {
419  var _Object$assign2;
420  var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
421  var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
422  var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
423    x,
424    y
425  }) : {
426    x,
427    y
428  };
429  x = _ref3.x;
430  y = _ref3.y;
431  var hasX = offsets.hasOwnProperty("x");
432  var hasY = offsets.hasOwnProperty("y");
433  var sideX = left;
434  var sideY = top;
435  var win = window;
436  if (adaptive) {
437    var offsetParent = getOffsetParent(popper2);
438    var heightProp = "clientHeight";
439    var widthProp = "clientWidth";
440    if (offsetParent === getWindow(popper2)) {
441      offsetParent = getDocumentElement(popper2);
442      if (getComputedStyle$1(offsetParent).position !== "static" && position === "absolute") {
443        heightProp = "scrollHeight";
444        widthProp = "scrollWidth";
445      }
446    }
447    offsetParent = offsetParent;
448    if (placement === top || (placement === left || placement === right) && variation === end) {
449      sideY = bottom;
450      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : (
451        // $FlowFixMe[prop-missing]
452        offsetParent[heightProp]
453      );
454      y -= offsetY - popperRect.height;
455      y *= gpuAcceleration ? 1 : -1;
456    }
457    if (placement === left || (placement === top || placement === bottom) && variation === end) {
458      sideX = right;
459      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : (
460        // $FlowFixMe[prop-missing]
461        offsetParent[widthProp]
462      );
463      x -= offsetX - popperRect.width;
464      x *= gpuAcceleration ? 1 : -1;
465    }
466  }
467  var commonStyles = Object.assign({
468    position
469  }, adaptive && unsetSides);
470  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
471    x,
472    y
473  }, getWindow(popper2)) : {
474    x,
475    y
476  };
477  x = _ref4.x;
478  y = _ref4.y;
479  if (gpuAcceleration) {
480    var _Object$assign;
481    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
482  }
483  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
484}
485function computeStyles(_ref5) {
486  var state = _ref5.state, options = _ref5.options;
487  var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
488  var commonStyles = {
489    placement: getBasePlacement(state.placement),
490    variation: getVariation(state.placement),
491    popper: state.elements.popper,
492    popperRect: state.rects.popper,
493    gpuAcceleration,
494    isFixed: state.options.strategy === "fixed"
495  };
496  if (state.modifiersData.popperOffsets != null) {
497    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
498      offsets: state.modifiersData.popperOffsets,
499      position: state.options.strategy,
500      adaptive,
501      roundOffsets
502    })));
503  }
504  if (state.modifiersData.arrow != null) {
505    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
506      offsets: state.modifiersData.arrow,
507      position: "absolute",
508      adaptive: false,
509      roundOffsets
510    })));
511  }
512  state.attributes.popper = Object.assign({}, state.attributes.popper, {
513    "data-popper-placement": state.placement
514  });
515}
516const computeStyles$1 = {
517  name: "computeStyles",
518  enabled: true,
519  phase: "beforeWrite",
520  fn: computeStyles,
521  data: {}
522};
523var passive = {
524  passive: true
525};
526function effect(_ref) {
527  var state = _ref.state, instance = _ref.instance, options = _ref.options;
528  var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
529  var window2 = getWindow(state.elements.popper);
530  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
531  if (scroll) {
532    scrollParents.forEach(function(scrollParent) {
533      scrollParent.addEventListener("scroll", instance.update, passive);
534    });
535  }
536  if (resize) {
537    window2.addEventListener("resize", instance.update, passive);
538  }
539  return function() {
540    if (scroll) {
541      scrollParents.forEach(function(scrollParent) {
542        scrollParent.removeEventListener("scroll", instance.update, passive);
543      });
544    }
545    if (resize) {
546      window2.removeEventListener("resize", instance.update, passive);
547    }
548  };
549}
550const eventListeners = {
551  name: "eventListeners",
552  enabled: true,
553  phase: "write",
554  fn: function fn() {
555  },
556  effect,
557  data: {}
558};
559var hash$1 = {
560  left: "right",
561  right: "left",
562  bottom: "top",
563  top: "bottom"
564};
565function getOppositePlacement(placement) {
566  return placement.replace(/left|right|bottom|top/g, function(matched) {
567    return hash$1[matched];
568  });
569}
570var hash = {
571  start: "end",
572  end: "start"
573};
574function getOppositeVariationPlacement(placement) {
575  return placement.replace(/start|end/g, function(matched) {
576    return hash[matched];
577  });
578}
579function getWindowScroll(node) {
580  var win = getWindow(node);
581  var scrollLeft = win.pageXOffset;
582  var scrollTop = win.pageYOffset;
583  return {
584    scrollLeft,
585    scrollTop
586  };
587}
588function getWindowScrollBarX(element) {
589  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
590}
591function getViewportRect(element, strategy) {
592  var win = getWindow(element);
593  var html = getDocumentElement(element);
594  var visualViewport = win.visualViewport;
595  var width = html.clientWidth;
596  var height = html.clientHeight;
597  var x = 0;
598  var y = 0;
599  if (visualViewport) {
600    width = visualViewport.width;
vendor: 7,269 bytes, lines 601-770
601    height = visualViewport.height;
602    var layoutViewport = isLayoutViewport();
603    if (layoutViewport || !layoutViewport && strategy === "fixed") {
604      x = visualViewport.offsetLeft;
605      y = visualViewport.offsetTop;
606    }
607  }
608  return {
609    width,
610    height,
611    x: x + getWindowScrollBarX(element),
612    y
613  };
614}
615function getDocumentRect(element) {
616  var _element$ownerDocumen;
617  var html = getDocumentElement(element);
618  var winScroll = getWindowScroll(element);
619  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
620  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
621  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
622  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
623  var y = -winScroll.scrollTop;
624  if (getComputedStyle$1(body || html).direction === "rtl") {
625    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
626  }
627  return {
628    width,
629    height,
630    x,
631    y
632  };
633}
634function isScrollParent(element) {
635  var _getComputedStyle = getComputedStyle$1(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
636  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
637}
638function getScrollParent(node) {
639  if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
640    return node.ownerDocument.body;
641  }
642  if (isHTMLElement(node) && isScrollParent(node)) {
643    return node;
644  }
645  return getScrollParent(getParentNode(node));
646}
647function listScrollParents(element, list) {
648  var _element$ownerDocumen;
649  if (list === void 0) {
650    list = [];
651  }
652  var scrollParent = getScrollParent(element);
653  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
654  var win = getWindow(scrollParent);
655  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
656  var updatedList = list.concat(target);
657  return isBody ? updatedList : (
658    // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
659    updatedList.concat(listScrollParents(getParentNode(target)))
660  );
661}
662function rectToClientRect(rect) {
663  return Object.assign({}, rect, {
664    left: rect.x,
665    top: rect.y,
666    right: rect.x + rect.width,
667    bottom: rect.y + rect.height
668  });
669}
670function getInnerBoundingClientRect(element, strategy) {
671  var rect = getBoundingClientRect(element, false, strategy === "fixed");
672  rect.top = rect.top + element.clientTop;
673  rect.left = rect.left + element.clientLeft;
674  rect.bottom = rect.top + element.clientHeight;
675  rect.right = rect.left + element.clientWidth;
676  rect.width = element.clientWidth;
677  rect.height = element.clientHeight;
678  rect.x = rect.left;
679  rect.y = rect.top;
680  return rect;
681}
682function getClientRectFromMixedType(element, clippingParent, strategy) {
683  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement$1(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
684}
685function getClippingParents(element) {
686  var clippingParents2 = listScrollParents(getParentNode(element));
687  var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle$1(element).position) >= 0;
688  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
689  if (!isElement$1(clipperElement)) {
690    return [];
691  }
692  return clippingParents2.filter(function(clippingParent) {
693    return isElement$1(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
694  });
695}
696function getClippingRect(element, boundary, rootBoundary, strategy) {
697  var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
698  var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
699  var firstClippingParent = clippingParents2[0];
700  var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
701    var rect = getClientRectFromMixedType(element, clippingParent, strategy);
702    accRect.top = max(rect.top, accRect.top);
703    accRect.right = min(rect.right, accRect.right);
704    accRect.bottom = min(rect.bottom, accRect.bottom);
705    accRect.left = max(rect.left, accRect.left);
706    return accRect;
707  }, getClientRectFromMixedType(element, firstClippingParent, strategy));
708  clippingRect.width = clippingRect.right - clippingRect.left;
709  clippingRect.height = clippingRect.bottom - clippingRect.top;
710  clippingRect.x = clippingRect.left;
711  clippingRect.y = clippingRect.top;
712  return clippingRect;
713}
714function computeOffsets(_ref) {
715  var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
716  var basePlacement = placement ? getBasePlacement(placement) : null;
717  var variation = placement ? getVariation(placement) : null;
718  var commonX = reference2.x + reference2.width / 2 - element.width / 2;
719  var commonY = reference2.y + reference2.height / 2 - element.height / 2;
720  var offsets;
721  switch (basePlacement) {
722    case top:
723      offsets = {
724        x: commonX,
725        y: reference2.y - element.height
726      };
727      break;
728    case bottom:
729      offsets = {
730        x: commonX,
731        y: reference2.y + reference2.height
732      };
733      break;
734    case right:
735      offsets = {
736        x: reference2.x + reference2.width,
737        y: commonY
738      };
739      break;
740    case left:
741      offsets = {
742        x: reference2.x - element.width,
743        y: commonY
744      };
745      break;
746    default:
747      offsets = {
748        x: reference2.x,
749        y: reference2.y
750      };
751  }
752  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
753  if (mainAxis != null) {
754    var len = mainAxis === "y" ? "height" : "width";
755    switch (variation) {
756      case start:
757        offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
758        break;
759      case end:
760        offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
761        break;
762    }
763  }
764  return offsets;
765}
766function detectOverflow(state, options) {
767  if (options === void 0) {
768    options = {};
769  }
770  var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
771  var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
772  var altContext = elementContext === popper ? reference : popper;
773  var popperRect = state.rects.popper;
774  var element = state.elements[altBoundary ? altContext : elementContext];
775  var clippingClientRect = getClippingRect(isElement$1(element) ? element : element
vendor: 15,433 bytes, lines 775-1133
775.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
776  var referenceClientRect = getBoundingClientRect(state.elements.reference);
777  var popperOffsets2 = computeOffsets({
778    reference: referenceClientRect,
779    element: popperRect,
780    strategy: "absolute",
781    placement
782  });
783  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
784  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
785  var overflowOffsets = {
786    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
787    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
788    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
789    right: elementClientRect.right - clippingClientRect.right + paddingObject.right
790  };
791  var offsetData = state.modifiersData.offset;
792  if (elementContext === popper && offsetData) {
793    var offset2 = offsetData[placement];
794    Object.keys(overflowOffsets).forEach(function(key) {
795      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
796      var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
797      overflowOffsets[key] += offset2[axis] * multiply;
798    });
799  }
800  return overflowOffsets;
801}
802function computeAutoPlacement(state, options) {
803  if (options === void 0) {
804    options = {};
805  }
806  var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
807  var variation = getVariation(placement);
808  var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
809    return getVariation(placement2) === variation;
810  }) : basePlacements;
811  var allowedPlacements = placements$1.filter(function(placement2) {
812    return allowedAutoPlacements.indexOf(placement2) >= 0;
813  });
814  if (allowedPlacements.length === 0) {
815    allowedPlacements = placements$1;
816  }
817  var overflows = allowedPlacements.reduce(function(acc, placement2) {
818    acc[placement2] = detectOverflow(state, {
819      placement: placement2,
820      boundary,
821      rootBoundary,
822      padding
823    })[getBasePlacement(placement2)];
824    return acc;
825  }, {});
826  return Object.keys(overflows).sort(function(a, b) {
827    return overflows[a] - overflows[b];
828  });
829}
830function getExpandedFallbackPlacements(placement) {
831  if (getBasePlacement(placement) === auto) {
832    return [];
833  }
834  var oppositePlacement = getOppositePlacement(placement);
835  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
836}
837function flip(_ref) {
838  var state = _ref.state, options = _ref.options, name = _ref.name;
839  if (state.modifiersData[name]._skip) {
840    return;
841  }
842  var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
843  var preferredPlacement = state.options.placement;
844  var basePlacement = getBasePlacement(preferredPlacement);
845  var isBasePlacement = basePlacement === preferredPlacement;
846  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
847  var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
848    return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
849      placement: placement2,
850      boundary,
851      rootBoundary,
852      padding,
853      flipVariations,
854      allowedAutoPlacements
855    }) : placement2);
856  }, []);
857  var referenceRect = state.rects.reference;
858  var popperRect = state.rects.popper;
859  var checksMap = /* @__PURE__ */ new Map();
860  var makeFallbackChecks = true;
861  var firstFittingPlacement = placements2[0];
862  for (var i = 0; i < placements2.length; i++) {
863    var placement = placements2[i];
864    var _basePlacement = getBasePlacement(placement);
865    var isStartVariation = getVariation(placement) === start;
866    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
867    var len = isVertical ? "width" : "height";
868    var overflow = detectOverflow(state, {
869      placement,
870      boundary,
871      rootBoundary,
872      altBoundary,
873      padding
874    });
875    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
876    if (referenceRect[len] > popperRect[len]) {
877      mainVariationSide = getOppositePlacement(mainVariationSide);
878    }
879    var altVariationSide = getOppositePlacement(mainVariationSide);
880    var checks = [];
881    if (checkMainAxis) {
882      checks.push(overflow[_basePlacement] <= 0);
883    }
884    if (checkAltAxis) {
885      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
886    }
887    if (checks.every(function(check) {
888      return check;
889    })) {
890      firstFittingPlacement = placement;
891      makeFallbackChecks = false;
892      break;
893    }
894    checksMap.set(placement, checks);
895  }
896  if (makeFallbackChecks) {
897    var numberOfChecks = flipVariations ? 3 : 1;
898    var _loop = function _loop2(_i2) {
899      var fittingPlacement = placements2.find(function(placement2) {
900        var checks2 = checksMap.get(placement2);
901        if (checks2) {
902          return checks2.slice(0, _i2).every(function(check) {
903            return check;
904          });
905        }
906      });
907      if (fittingPlacement) {
908        firstFittingPlacement = fittingPlacement;
909        return "break";
910      }
911    };
912    for (var _i = numberOfChecks; _i > 0; _i--) {
913      var _ret = _loop(_i);
914      if (_ret === "break")
915        break;
916    }
917  }
918  if (state.placement !== firstFittingPlacement) {
919    state.modifiersData[name]._skip = true;
920    state.placement = firstFittingPlacement;
921    state.reset = true;
922  }
923}
924const flip$1 = {
925  name: "flip",
926  enabled: true,
927  phase: "main",
928  fn: flip,
929  requiresIfExists: ["offset"],
930  data: {
931    _skip: false
932  }
933};
934function getSideOffsets(overflow, rect, preventedOffsets) {
935  if (preventedOffsets === void 0) {
936    preventedOffsets = {
937      x: 0,
938      y: 0
939    };
940  }
941  return {
942    top: overflow.top - rect.height - preventedOffsets.y,
943    right: overflow.right - rect.width + preventedOffsets.x,
944    bottom: overflow.bottom - rect.height + preventedOffsets.y,
945    left: overflow.left - rect.width - preventedOffsets.x
946  };
947}
948function isAnySideFullyClipped(overflow) {
949  return [top, right, bottom, left].some(function(side) {
950    return overflow[side] >= 0;
951  });
952}
953function hide(_ref) {
954  var state = _ref.state, name = _ref.name;
955  var referenceRect = state.rects.reference;
956  var popperRect = state.rects.popper;
957  var preventedOffsets = state.modifiersData.preventOverflow;
958  var referenceOverflow = detectOverflow(state, {
959    elementContext: "reference"
960  });
961  var popperAltOverflow = detectOverflow(state, {
962    altBoundary: true
963  });
964  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
965  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
966  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
967  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
968  state.modifiersData[name] = {
969    referenceClippingOffsets,
970    popperEscapeOffsets,
971    isReferenceHidden,
972    hasPopperEscaped
973  };
974  state.attributes.popper = Object.assign({}, state.attributes.popper, {
975    "data-popper-reference-hidden": isReferenceHidden,
976    "data-popper-escaped": hasPopperEscaped
977  });
978}
979const hide$1 = {
980  name: "hide",
981  enabled: true,
982  phase: "main",
983  requiresIfExists: ["preventOverflow"],
984  fn: hide
985};
986function distanceAndSkiddingToXY(placement, rects, offset2) {
987  var basePlacement = getBasePlacement(placement);
988  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
989  var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
990    placement
991  })) : offset2, skidding = _ref[0], distance = _ref[1];
992  skidding = skidding || 0;
993  distance = (distance || 0) * invertDistance;
994  return [left, right].indexOf(basePlacement) >= 0 ? {
995    x: distance,
996    y: skidding
997  } : {
998    x: skidding,
999    y: distance
1000  };
1001}
1002function offset(_ref2) {
1003  var state = _ref2.state, options = _ref2.options, name = _ref2.name;
1004  var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
1005  var data = placements.reduce(function(acc, placement) {
1006    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
1007    return acc;
1008  }, {});
1009  var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
1010  if (state.modifiersData.popperOffsets != null) {
1011    state.modifiersData.popperOffsets.x += x;
1012    state.modifiersData.popperOffsets.y += y;
1013  }
1014  state.modifiersData[name] = data;
1015}
1016const offset$1 = {
1017  name: "offset",
1018  enabled: true,
1019  phase: "main",
1020  requires: ["popperOffsets"],
1021  fn: offset
1022};
1023function popperOffsets(_ref) {
1024  var state = _ref.state, name = _ref.name;
1025  state.modifiersData[name] = computeOffsets({
1026    reference: state.rects.reference,
1027    element: state.rects.popper,
1028    strategy: "absolute",
1029    placement: state.placement
1030  });
1031}
1032const popperOffsets$1 = {
1033  name: "popperOffsets",
1034  enabled: true,
1035  phase: "read",
1036  fn: popperOffsets,
1037  data: {}
1038};
1039function getAltAxis(axis) {
1040  return axis === "x" ? "y" : "x";
1041}
1042function preventOverflow(_ref) {
1043  var state = _ref.state, options = _ref.options, name = _ref.name;
1044  var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
1045  var overflow = detectOverflow(state, {
1046    boundary,
1047    rootBoundary,
1048    padding,
1049    altBoundary
1050  });
1051  var basePlacement = getBasePlacement(state.placement);
1052  var variation = getVariation(state.placement);
1053  var isBasePlacement = !variation;
1054  var mainAxis = getMainAxisFromPlacement(basePlacement);
1055  var altAxis = getAltAxis(mainAxis);
1056  var popperOffsets2 = state.modifiersData.popperOffsets;
1057  var referenceRect = state.rects.reference;
1058  var popperRect = state.rects.popper;
1059  var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
1060    placement: state.placement
1061  })) : tetherOffset;
1062  var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
1063    mainAxis: tetherOffsetValue,
1064    altAxis: tetherOffsetValue
1065  } : Object.assign({
1066    mainAxis: 0,
1067    altAxis: 0
1068  }, tetherOffsetValue);
1069  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
1070  var data = {
1071    x: 0,
1072    y: 0
1073  };
1074  if (!popperOffsets2) {
1075    return;
1076  }
1077  if (checkMainAxis) {
1078    var _offsetModifierState$;
1079    var mainSide = mainAxis === "y" ? top : left;
1080    var altSide = mainAxis === "y" ? bottom : right;
1081    var len = mainAxis === "y" ? "height" : "width";
1082    var offset2 = popperOffsets2[mainAxis];
1083    var min$1 = offset2 + overflow[mainSide];
1084    var max$1 = offset2 - overflow[altSide];
1085    var additive = tether ? -popperRect[len] / 2 : 0;
1086    var minLen = variation === start ? referenceRect[len] : popperRect[len];
1087    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
1088    var arrowElement = state.elements.arrow;
1089    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
1090      width: 0,
1091      height: 0
1092    };
1093    var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
1094    var arrowPaddingMin = arrowPaddingObject[mainSide];
1095    var arrowPaddingMax = arrowPaddingObject[altSide];
1096    var arrowLen = within(0, referenceRect[len], arrowRect[len]);
1097    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
1098    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
1099    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
1100    var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
1101    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
1102    var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
1103    var tetherMax = offset2 + maxOffset - offsetModifierValue;
1104    var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1);
1105    popperOffsets2[mainAxis] = preventedOffset;
1106    data[mainAxis] = preventedOffset - offset2;
1107  }
1108  if (checkAltAxis) {
1109    var _offsetModifierState$2;
1110    var _mainSide = mainAxis === "x" ? top : left;
1111    var _altSide = mainAxis === "x" ? bottom : right;
1112    var _offset = popperOffsets2[altAxis];
1113    var _len = altAxis === "y" ? "height" : "width";
1114    var _min = _offset + overflow[_mainSide];
1115    var _max = _offset - overflow[_altSide];
1116    var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
1117    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
1118    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
1119    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
1120    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
1121    popperOffsets2[altAxis] = _preventedOffset;
1122    data[altAxis] = _preventedOffset - _offset;
1123  }
1124  state.modifiersData[name] = data;
1125}
1126const preventOverflow$1 = {
1127  name: "preventOverflow",
1128  enabled: true,
1129  phase: "main",
1130  fn: preventOverflow,
1131  requiresIfExists: ["offset"]
1132};
1133function getHTMLElementScroll(element
vendor: 1,890 bytes, lines 1133-1191
1133) {
1134  return {
1135    scrollLeft: element.scrollLeft,
1136    scrollTop: element.scrollTop
1137  };
1138}
1139function getNodeScroll(node) {
1140  if (node === getWindow(node) || !isHTMLElement(node)) {
1141    return getWindowScroll(node);
1142  } else {
1143    return getHTMLElementScroll(node);
1144  }
1145}
1146function isElementScaled(element) {
1147  var rect = element.getBoundingClientRect();
1148  var scaleX = round(rect.width) / element.offsetWidth || 1;
1149  var scaleY = round(rect.height) / element.offsetHeight || 1;
1150  return scaleX !== 1 || scaleY !== 1;
1151}
1152function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
1153  if (isFixed === void 0) {
1154    isFixed = false;
1155  }
1156  var isOffsetParentAnElement = isHTMLElement(offsetParent);
1157  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
1158  var documentElement = getDocumentElement(offsetParent);
1159  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
1160  var scroll = {
1161    scrollLeft: 0,
1162    scrollTop: 0
1163  };
1164  var offsets = {
1165    x: 0,
1166    y: 0
1167  };
1168  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1169    if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
1170    isScrollParent(documentElement)) {
1171      scroll = getNodeScroll(offsetParent);
1172    }
1173    if (isHTMLElement(offsetParent)) {
1174      offsets = getBoundingClientRect(offsetParent, true);
1175      offsets.x += offsetParent.clientLeft;
1176      offsets.y += offsetParent.clientTop;
1177    } else if (documentElement) {
1178      offsets.x = getWindowScrollBarX(documentElement);
1179    }
1180  }
1181  return {
1182    x: rect.left + scroll.scrollLeft - offsets.x,
1183    y: rect.top + scroll.scrollTop - offsets.y,
1184    width: rect.width,
1185    height: rect.height
1186  };
1187}
1188function order(modifiers) {
1189  var map = /* @__PURE__ */ new Map();
1190  var visited = /* @__PURE__ */ new Set();
1191  var result = [];
vendor: 4,094 bytes, lines 1192-1307
1192  modifiers.forEach(function(modifier) {
1193    map.set(modifier.name, modifier);
1194  });
1195  function sort(modifier) {
1196    visited.add(modifier.name);
1197    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
1198    requires.forEach(function(dep) {
1199      if (!visited.has(dep)) {
1200        var depModifier = map.get(dep);
1201        if (depModifier) {
1202          sort(depModifier);
1203        }
1204      }
1205    });
1206    result.push(modifier);
1207  }
1208  modifiers.forEach(function(modifier) {
1209    if (!visited.has(modifier.name)) {
1210      sort(modifier);
1211    }
1212  });
1213  return result;
1214}
1215function orderModifiers(modifiers) {
1216  var orderedModifiers = order(modifiers);
1217  return modifierPhases.reduce(function(acc, phase) {
1218    return acc.concat(orderedModifiers.filter(function(modifier) {
1219      return modifier.phase === phase;
1220    }));
1221  }, []);
1222}
1223function debounce(fn2) {
1224  var pending;
1225  return function() {
1226    if (!pending) {
1227      pending = new Promise(function(resolve) {
1228        Promise.resolve().then(function() {
1229          pending = void 0;
1230          resolve(fn2());
1231        });
1232      });
1233    }
1234    return pending;
1235  };
1236}
1237function mergeByName(modifiers) {
1238  var merged = modifiers.reduce(function(merged2, current) {
1239    var existing = merged2[current.name];
1240    merged2[current.name] = existing ? Object.assign({}, existing, current, {
1241      options: Object.assign({}, existing.options, current.options),
1242      data: Object.assign({}, existing.data, current.data)
1243    }) : current;
1244    return merged2;
1245  }, {});
1246  return Object.keys(merged).map(function(key) {
1247    return merged[key];
1248  });
1249}
1250var DEFAULT_OPTIONS = {
1251  placement: "bottom",
1252  modifiers: [],
1253  strategy: "absolute"
1254};
1255function areValidElements() {
1256  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1257    args[_key] = arguments[_key];
1258  }
1259  return !args.some(function(element) {
1260    return !(element && typeof element.getBoundingClientRect === "function");
1261  });
1262}
1263function popperGenerator(generatorOptions) {
1264  if (generatorOptions === void 0) {
1265    generatorOptions = {};
1266  }
1267  var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
1268  return function createPopper2(reference2, popper2, options) {
1269    if (options === void 0) {
1270      options = defaultOptions;
1271    }
1272    var state = {
1273      placement: "bottom",
1274      orderedModifiers: [],
1275      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
1276      modifiersData: {},
1277      elements: {
1278        reference: reference2,
1279        popper: popper2
1280      },
1281      attributes: {},
1282      styles: {}
1283    };
1284    var effectCleanupFns = [];
1285    var isDestroyed = false;
1286    var instance = {
1287      state,
1288      setOptions: function setOptions(setOptionsAction) {
1289        var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
1290        cleanupModifierEffects();
1291        state.options = Object.assign({}, defaultOptions, state.options, options2);
1292        state.scrollParents = {
1293          reference: isElement$1(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
1294          popper: listScrollParents(popper2)
1295        };
1296        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
1297        state.orderedModifiers = orderedModifiers.filter(function(m) {
1298          return m.enabled;
1299        });
1300        runModifierEffects();
1301        return instance.update();
1302      },
1303      // Sync update – it will always be executed, even if not necessary. This
1304      // is useful for low frequency updates where sync behavior simplifies the
1305      // logic.
1306      // For high frequency updates (e.g. `resize` and `scroll` events), always
1307      // prefer the async Popper#update method
vendor: 26,781 bytes, lines 1308-2121
1308      forceUpdate: function forceUpdate() {
1309        if (isDestroyed) {
1310          return;
1311        }
1312        var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
1313        if (!areValidElements(reference3, popper3)) {
1314          return;
1315        }
1316        state.rects = {
1317          reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
1318          popper: getLayoutRect(popper3)
1319        };
1320        state.reset = false;
1321        state.placement = state.options.placement;
1322        state.orderedModifiers.forEach(function(modifier) {
1323          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
1324        });
1325        for (var index = 0; index < state.orderedModifiers.length; index++) {
1326          if (state.reset === true) {
1327            state.reset = false;
1328            index = -1;
1329            continue;
1330          }
1331          var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
1332          if (typeof fn2 === "function") {
1333            state = fn2({
1334              state,
1335              options: _options,
1336              name,
1337              instance
1338            }) || state;
1339          }
1340        }
1341      },
1342      // Async and optimistically optimized update – it will not be executed if
1343      // not necessary (debounced to run at most once-per-tick)
1344      update: debounce(function() {
1345        return new Promise(function(resolve) {
1346          instance.forceUpdate();
1347          resolve(state);
1348        });
1349      }),
1350      destroy: function destroy() {
1351        cleanupModifierEffects();
1352        isDestroyed = true;
1353      }
1354    };
1355    if (!areValidElements(reference2, popper2)) {
1356      return instance;
1357    }
1358    instance.setOptions(options).then(function(state2) {
1359      if (!isDestroyed && options.onFirstUpdate) {
1360        options.onFirstUpdate(state2);
1361      }
1362    });
1363    function runModifierEffects() {
1364      state.orderedModifiers.forEach(function(_ref) {
1365        var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect2 = _ref.effect;
1366        if (typeof effect2 === "function") {
1367          var cleanupFn = effect2({
1368            state,
1369            name,
1370            instance,
1371            options: options2
1372          });
1373          var noopFn = function noopFn2() {
1374          };
1375          effectCleanupFns.push(cleanupFn || noopFn);
1376        }
1377      });
1378    }
1379    function cleanupModifierEffects() {
1380      effectCleanupFns.forEach(function(fn2) {
1381        return fn2();
1382      });
1383      effectCleanupFns = [];
1384    }
1385    return instance;
1386  };
1387}
1388var createPopper$2 = /* @__PURE__ */ popperGenerator();
1389var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
1390var createPopper$1 = /* @__PURE__ */ popperGenerator({
1391  defaultModifiers: defaultModifiers$1
1392});
1393var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
1394var createPopper = /* @__PURE__ */ popperGenerator({
1395  defaultModifiers
1396});
1397const Popper = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1398  __proto__: null,
1399  afterMain,
1400  afterRead,
1401  afterWrite,
1402  applyStyles: applyStyles$1,
1403  arrow: arrow$1,
1404  auto,
1405  basePlacements,
1406  beforeMain,
1407  beforeRead,
1408  beforeWrite,
1409  bottom,
1410  clippingParents,
1411  computeStyles: computeStyles$1,
1412  createPopper,
1413  createPopperBase: createPopper$2,
1414  createPopperLite: createPopper$1,
1415  detectOverflow,
1416  end,
1417  eventListeners,
1418  flip: flip$1,
1419  hide: hide$1,
1420  left,
1421  main,
1422  modifierPhases,
1423  offset: offset$1,
1424  placements,
1425  popper,
1426  popperGenerator,
1427  popperOffsets: popperOffsets$1,
1428  preventOverflow: preventOverflow$1,
1429  read,
1430  reference,
1431  right,
1432  start,
1433  top,
1434  variationPlacements,
1435  viewport,
1436  write
1437}, Symbol.toStringTag, { value: "Module" }));
1438/*!
1439  * Bootstrap v5.3.1 (https://getbootstrap.com/)
1440  * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1441  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1442  */
1443const elementMap = /* @__PURE__ */ new Map();
1444const Data = {
1445  set(element, key, instance) {
1446    if (!elementMap.has(element)) {
1447      elementMap.set(element, /* @__PURE__ */ new Map());
1448    }
1449    const instanceMap = elementMap.get(element);
1450    if (!instanceMap.has(key) && instanceMap.size !== 0) {
1451      console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
1452      return;
1453    }
1454    instanceMap.set(key, instance);
1455  },
1456  get(element, key) {
1457    if (elementMap.has(element)) {
1458      return elementMap.get(element).get(key) || null;
1459    }
1460    return null;
1461  },
1462  remove(element, key) {
1463    if (!elementMap.has(element)) {
1464      return;
1465    }
1466    const instanceMap = elementMap.get(element);
1467    instanceMap.delete(key);
1468    if (instanceMap.size === 0) {
1469      elementMap.delete(element);
1470    }
1471  }
1472};
1473const MAX_UID = 1e6;
1474const MILLISECONDS_MULTIPLIER = 1e3;
1475const TRANSITION_END = "transitionend";
1476const parseSelector = (selector) => {
1477  if (selector && window.CSS && window.CSS.escape) {
1478    selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`);
1479  }
1480  return selector;
1481};
1482const toType = (object) => {
1483  if (object === null || object === void 0) {
1484    return `${object}`;
1485  }
1486  return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
1487};
1488const getUID = (prefix) => {
1489  do {
1490    prefix += Math.floor(Math.random() * MAX_UID);
1491  } while (document.getElementById(prefix));
1492  return prefix;
1493};
1494const getTransitionDurationFromElement = (element) => {
1495  if (!element) {
1496    return 0;
1497  }
1498  let {
1499    transitionDuration,
1500    transitionDelay
1501  } = window.getComputedStyle(element);
1502  const floatTransitionDuration = Number.parseFloat(transitionDuration);
1503  const floatTransitionDelay = Number.parseFloat(transitionDelay);
1504  if (!floatTransitionDuration && !floatTransitionDelay) {
1505    return 0;
1506  }
1507  transitionDuration = transitionDuration.split(",")[0];
1508  transitionDelay = transitionDelay.split(",")[0];
1509  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
1510};
1511const triggerTransitionEnd = (element) => {
1512  element.dispatchEvent(new Event(TRANSITION_END));
1513};
1514const isElement = (object) => {
1515  if (!object || typeof object !== "object") {
1516    return false;
1517  }
1518  if (typeof object.jquery !== "undefined") {
1519    object = object[0];
1520  }
1521  return typeof object.nodeType !== "undefined";
1522};
1523const getElement = (object) => {
1524  if (isElement(object)) {
1525    return object.jquery ? object[0] : object;
1526  }
1527  if (typeof object === "string" && object.length > 0) {
1528    return document.querySelector(parseSelector(object));
1529  }
1530  return null;
1531};
1532const isVisible = (element) => {
1533  if (!isElement(element) || element.getClientRects().length === 0) {
1534    return false;
1535  }
1536  const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible";
1537  const closedDetails = element.closest("details:not([open])");
1538  if (!closedDetails) {
1539    return elementIsVisible;
1540  }
1541  if (closedDetails !== element) {
1542    const summary = element.closest("summary");
1543    if (summary && summary.parentNode !== closedDetails) {
1544      return false;
1545    }
1546    if (summary === null) {
1547      return false;
1548    }
1549  }
1550  return elementIsVisible;
1551};
1552const isDisabled = (element) => {
1553  if (!element || element.nodeType !== Node.ELEMENT_NODE) {
1554    return true;
1555  }
1556  if (element.classList.contains("disabled")) {
1557    return true;
1558  }
1559  if (typeof element.disabled !== "undefined") {
1560    return element.disabled;
1561  }
1562  return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false";
1563};
1564const findShadowRoot = (element) => {
1565  if (!document.documentElement.attachShadow) {
1566    return null;
1567  }
1568  if (typeof element.getRootNode === "function") {
1569    const root = element.getRootNode();
1570    return root instanceof ShadowRoot ? root : null;
1571  }
1572  if (element instanceof ShadowRoot) {
1573    return element;
1574  }
1575  if (!element.parentNode) {
1576    return null;
1577  }
1578  return findShadowRoot(element.parentNode);
1579};
1580const noop = () => {
1581};
1582const reflow = (element) => {
1583  element.offsetHeight;
1584};
1585const getjQuery = () => {
1586  if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) {
1587    return window.jQuery;
1588  }
1589  return null;
1590};
1591const DOMContentLoadedCallbacks = [];
1592const onDOMContentLoaded = (callback) => {
1593  if (document.readyState === "loading") {
1594    if (!DOMContentLoadedCallbacks.length) {
1595      document.addEventListener("DOMContentLoaded", () => {
1596        for (const callback2 of DOMContentLoadedCallbacks) {
1597          callback2();
1598        }
1599      });
1600    }
1601    DOMContentLoadedCallbacks.push(callback);
1602  } else {
1603    callback();
1604  }
1605};
1606const isRTL = () => document.documentElement.dir === "rtl";
1607const defineJQueryPlugin = (plugin) => {
1608  onDOMContentLoaded(() => {
1609    const $ = getjQuery();
1610    if ($) {
1611      const name = plugin.NAME;
1612      const JQUERY_NO_CONFLICT = $.fn[name];
1613      $.fn[name] = plugin.jQueryInterface;
1614      $.fn[name].Constructor = plugin;
1615      $.fn[name].noConflict = () => {
1616        $.fn[name] = JQUERY_NO_CONFLICT;
1617        return plugin.jQueryInterface;
1618      };
1619    }
1620  });
1621};
1622const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
1623  return typeof possibleCallback === "function" ? possibleCallback(...args) : defaultValue;
1624};
1625const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
1626  if (!waitForTransition) {
1627    execute(callback);
1628    return;
1629  }
1630  const durationPadding = 5;
1631  const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
1632  let called = false;
1633  const handler = ({
1634    target
1635  }) => {
1636    if (target !== transitionElement) {
1637      return;
1638    }
1639    called = true;
1640    transitionElement.removeEventListener(TRANSITION_END, handler);
1641    execute(callback);
1642  };
1643  transitionElement.addEventListener(TRANSITION_END, handler);
1644  setTimeout(() => {
1645    if (!called) {
1646      triggerTransitionEnd(transitionElement);
1647    }
1648  }, emulatedDuration);
1649};
1650const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
1651  const listLength = list.length;
1652  let index = list.indexOf(activeElement);
1653  if (index === -1) {
1654    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
1655  }
1656  index += shouldGetNext ? 1 : -1;
1657  if (isCycleAllowed) {
1658    index = (index + listLength) % listLength;
1659  }
1660  return list[Math.max(0, Math.min(index, listLength - 1))];
1661};
1662const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
1663const stripNameRegex = /\..*/;
1664const stripUidRegex = /::\d+$/;
1665const eventRegistry = {};
1666let uidEvent = 1;
1667const customEvents = {
1668  mouseenter: "mouseover",
1669  mouseleave: "mouseout"
1670};
1671const nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
1672function makeEventUid(element, uid) {
1673  return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
1674}
1675function getElementEvents(element) {
1676  const uid = makeEventUid(element);
1677  element.uidEvent = uid;
1678  eventRegistry[uid] = eventRegistry[uid] || {};
1679  return eventRegistry[uid];
1680}
1681function bootstrapHandler(element, fn2) {
1682  return function handler(event) {
1683    hydrateObj(event, {
1684      delegateTarget: element
1685    });
1686    if (handler.oneOff) {
1687      EventHandler.off(element, event.type, fn2);
1688    }
1689    return fn2.apply(element, [event]);
1690  };
1691}
1692function bootstrapDelegationHandler(element, selector, fn2) {
1693  return function handler(event) {
1694    const domElements = element.querySelectorAll(selector);
1695    for (let {
1696      target
1697    } = event; target && target !== this; target = target.parentNode) {
1698      for (const domElement of domElements) {
1699        if (domElement !== target) {
1700          continue;
1701        }
1702        hydrateObj(event, {
1703          delegateTarget: target
1704        });
1705        if (handler.oneOff) {
1706          EventHandler.off(element, event.type, selector, fn2);
1707        }
1708        return fn2.apply(target, [event]);
1709      }
1710    }
1711  };
1712}
1713function findHandler(events, callable, delegationSelector = null) {
1714  return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector);
1715}
1716function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
1717  const isDelegated = typeof handler === "string";
1718  const callable = isDelegated ? delegationFunction : handler || delegationFunction;
1719  let typeEvent = getTypeEvent(originalTypeEvent);
1720  if (!nativeEvents.has(typeEvent)) {
1721    typeEvent = originalTypeEvent;
1722  }
1723  return [isDelegated, callable, typeEvent];
1724}
1725function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
1726  if (typeof originalTypeEvent !== "string" || !element) {
1727    return;
1728  }
1729  let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
1730  if (originalTypeEvent in customEvents) {
1731    const wrapFunction = (fn3) => {
1732      return function(event) {
1733        if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
1734          return fn3.call(this, event);
1735        }
1736      };
1737    };
1738    callable = wrapFunction(callable);
1739  }
1740  const events = getElementEvents(element);
1741  const handlers = events[typeEvent] || (events[typeEvent] = {});
1742  const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
1743  if (previousFunction) {
1744    previousFunction.oneOff = previousFunction.oneOff && oneOff;
1745    return;
1746  }
1747  const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ""));
1748  const fn2 = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
1749  fn2.delegationSelector = isDelegated ? handler : null;
1750  fn2.callable = callable;
1751  fn2.oneOff = oneOff;
1752  fn2.uidEvent = uid;
1753  handlers[uid] = fn2;
1754  element.addEventListener(typeEvent, fn2, isDelegated);
1755}
1756function removeHandler(element, events, typeEvent, handler, delegationSelector) {
1757  const fn2 = findHandler(events[typeEvent], handler, delegationSelector);
1758  if (!fn2) {
1759    return;
1760  }
1761  element.removeEventListener(typeEvent, fn2, Boolean(delegationSelector));
1762  delete events[typeEvent][fn2.uidEvent];
1763}
1764function removeNamespacedHandlers(element, events, typeEvent, namespace) {
1765  const storeElementEvent = events[typeEvent] || {};
1766  for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
1767    if (handlerKey.includes(namespace)) {
1768      removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
1769    }
1770  }
1771}
1772function getTypeEvent(event) {
1773  event = event.replace(stripNameRegex, "");
1774  return customEvents[event] || event;
1775}
1776const EventHandler = {
1777  on(element, event, handler, delegationFunction) {
1778    addHandler(element, event, handler, delegationFunction, false);
1779  },
1780  one(element, event, handler, delegationFunction) {
1781    addHandler(element, event, handler, delegationFunction, true);
1782  },
1783  off(element, originalTypeEvent, handler, delegationFunction) {
1784    if (typeof originalTypeEvent !== "string" || !element) {
1785      return;
1786    }
1787    const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
1788    const inNamespace = typeEvent !== originalTypeEvent;
1789    const events = getElementEvents(element);
1790    const storeElementEvent = events[typeEvent] || {};
1791    const isNamespace = originalTypeEvent.startsWith(".");
1792    if (typeof callable !== "undefined") {
1793      if (!Object.keys(storeElementEvent).length) {
1794        return;
1795      }
1796      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
1797      return;
1798    }
1799    if (isNamespace) {
1800      for (const elementEvent of Object.keys(events)) {
1801        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
1802      }
1803    }
1804    for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
1805      const handlerKey = keyHandlers.replace(stripUidRegex, "");
1806      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
1807        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
1808      }
1809    }
1810  },
1811  trigger(element, event, args) {
1812    if (typeof event !== "string" || !element) {
1813      return null;
1814    }
1815    const $ = getjQuery();
1816    const typeEvent = getTypeEvent(event);
1817    const inNamespace = event !== typeEvent;
1818    let jQueryEvent = null;
1819    let bubbles = true;
1820    let nativeDispatch = true;
1821    let defaultPrevented = false;
1822    if (inNamespace && $) {
1823      jQueryEvent = $.Event(event, args);
1824      $(element).trigger(jQueryEvent);
1825      bubbles = !jQueryEvent.isPropagationStopped();
1826      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
1827      defaultPrevented = jQueryEvent.isDefaultPrevented();
1828    }
1829    const evt = hydrateObj(new Event(event, {
1830      bubbles,
1831      cancelable: true
1832    }), args);
1833    if (defaultPrevented) {
1834      evt.preventDefault();
1835    }
1836    if (nativeDispatch) {
1837      element.dispatchEvent(evt);
1838    }
1839    if (evt.defaultPrevented && jQueryEvent) {
1840      jQueryEvent.preventDefault();
1841    }
1842    return evt;
1843  }
1844};
1845function hydrateObj(obj, meta = {}) {
1846  for (const [key, value] of Object.entries(meta)) {
1847    try {
1848      obj[key] = value;
1849    } catch (_unused) {
1850      Object.defineProperty(obj, key, {
1851        configurable: true,
1852        get() {
1853          return value;
1854        }
1855      });
1856    }
1857  }
1858  return obj;
1859}
1860function normalizeData(value) {
1861  if (value === "true") {
1862    return true;
1863  }
1864  if (value === "false") {
1865    return false;
1866  }
1867  if (value === Number(value).toString()) {
1868    return Number(value);
1869  }
1870  if (value === "" || value === "null") {
1871    return null;
1872  }
1873  if (typeof value !== "string") {
1874    return value;
1875  }
1876  try {
1877    return JSON.parse(decodeURIComponent(value));
1878  } catch (_unused) {
1879    return value;
1880  }
1881}
1882function normalizeDataKey(key) {
1883  return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);
1884}
1885const Manipulator = {
1886  setDataAttribute(element, key, value) {
1887    element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
1888  },
1889  removeDataAttribute(element, key) {
1890    element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
1891  },
1892  getDataAttributes(element) {
1893    if (!element) {
1894      return {};
1895    }
1896    const attributes = {};
1897    const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig"));
1898    for (const key of bsKeys) {
1899      let pureKey = key.replace(/^bs/, "");
1900      pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
1901      attributes[pureKey] = normalizeData(element.dataset[key]);
1902    }
1903    return attributes;
1904  },
1905  getDataAttribute(element, key) {
1906    return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
1907  }
1908};
1909class Config {
1910  // Getters
1911  static get Default() {
1912    return {};
1913  }
1914  static get DefaultType() {
1915    return {};
1916  }
1917  static get NAME() {
1918    throw new Error('You have to implement the static method "NAME", for each component!');
1919  }
1920  _getConfig(config) {
1921    config = this._mergeConfigObj(config);
1922    config = this._configAfterMerge(config);
1923    this._typeCheckConfig(config);
1924    return config;
1925  }
1926  _configAfterMerge(config) {
1927    return config;
1928  }
1929  _mergeConfigObj(config, element) {
1930    const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, "config") : {};
1931    return {
1932      ...this.constructor.Default,
1933      ...typeof jsonConfig === "object" ? jsonConfig : {},
1934      ...isElement(element) ? Manipulator.getDataAttributes(element) : {},
1935      ...typeof config === "object" ? config : {}
1936    };
1937  }
1938  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
1939    for (const [property, expectedTypes] of Object.entries(configTypes)) {
1940      const value = config[property];
1941      const valueType = isElement(value) ? "element" : toType(value);
1942      if (!new RegExp(expectedTypes).test(valueType)) {
1943        throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
1944      }
1945    }
1946  }
1947}
1948const VERSION = "5.3.1";
1949class BaseComponent extends Config {
1950  constructor(element, config) {
1951    super();
1952    element = getElement(element);
1953    if (!element) {
1954      return;
1955    }
1956    this._element = element;
1957    this._config = this._getConfig(config);
1958    Data.set(this._element, this.constructor.DATA_KEY, this);
1959  }
1960  // Public
1961  dispose() {
1962    Data.remove(this._element, this.constructor.DATA_KEY);
1963    EventHandler.off(this._element, this.constructor.EVENT_KEY);
1964    for (const propertyName of Object.getOwnPropertyNames(this)) {
1965      this[propertyName] = null;
1966    }
1967  }
1968  _queueCallback(callback, element, isAnimated = true) {
1969    executeAfterTransition(callback, element, isAnimated);
1970  }
1971  _getConfig(config) {
1972    config = this._mergeConfigObj(config, this._element);
1973    config = this._configAfterMerge(config);
1974    this._typeCheckConfig(config);
1975    return config;
1976  }
1977  // Static
1978  static getInstance(element) {
1979    return Data.get(getElement(element), this.DATA_KEY);
1980  }
1981  static getOrCreateInstance(element, config = {}) {
1982    return this.getInstance(element) || new this(element, typeof config === "object" ? config : null);
1983  }
1984  static get VERSION() {
1985    return VERSION;
1986  }
1987  static get DATA_KEY() {
1988    return `bs.${this.NAME}`;
1989  }
1990  static get EVENT_KEY() {
1991    return `.${this.DATA_KEY}`;
1992  }
1993  static eventName(name) {
1994    return `${name}${this.EVENT_KEY}`;
1995  }
1996}
1997const getSelector = (element) => {
1998  let selector = element.getAttribute("data-bs-target");
1999  if (!selector || selector === "#") {
2000    let hrefAttribute = element.getAttribute("href");
2001    if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) {
2002      return null;
2003    }
2004    if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) {
2005      hrefAttribute = `#${hrefAttribute.split("#")[1]}`;
2006    }
2007    selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null;
2008  }
2009  return parseSelector(selector);
2010};
2011const SelectorEngine = {
2012  find(selector, element = document.documentElement) {
2013    return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
2014  },
2015  findOne(selector, element = document.documentElement) {
2016    return Element.prototype.querySelector.call(element, selector);
2017  },
2018  children(element, selector) {
2019    return [].concat(...element.children).filter((child) => child.matches(selector));
2020  },
2021  parents(element, selector) {
2022    const parents = [];
2023    let ancestor = element.parentNode.closest(selector);
2024    while (ancestor) {
2025      parents.push(ancestor);
2026      ancestor = ancestor.parentNode.closest(selector);
2027    }
2028    return parents;
2029  },
2030  prev(element, selector) {
2031    let previous = element.previousElementSibling;
2032    while (previous) {
2033      if (previous.matches(selector)) {
2034        return [previous];
2035      }
2036      previous = previous.previousElementSibling;
2037    }
2038    return [];
2039  },
2040  // TODO: this is now unused; remove later along with prev()
2041  next(element, selector) {
2042    let next = element.nextElementSibling;
2043    while (next) {
2044      if (next.matches(selector)) {
2045        return [next];
2046      }
2047      next = next.nextElementSibling;
2048    }
2049    return [];
2050  },
2051  focusableChildren(element) {
2052    const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector) => `${selector}:not([tabindex^="-"])`).join(",");
2053    return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));
2054  },
2055  getSelectorFromElement(element) {
2056    const selector = getSelector(element);
2057    if (selector) {
2058      return SelectorEngine.findOne(selector) ? selector : null;
2059    }
2060    return null;
2061  },
2062  getElementFromSelector(element) {
2063    const selector = getSelector(element);
2064    return selector ? SelectorEngine.findOne(selector) : null;
2065  },
2066  getMultipleElementsFromSelector(element) {
2067    const selector = getSelector(element);
2068    return selector ? SelectorEngine.find(selector) : [];
2069  }
2070};
2071const enableDismissTrigger = (component, method = "hide") => {
2072  const clickEvent = `click.dismiss${component.EVENT_KEY}`;
2073  const name = component.NAME;
2074  EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) {
2075    if (["A", "AREA"].includes(this.tagName)) {
2076      event.preventDefault();
2077    }
2078    if (isDisabled(this)) {
2079      return;
2080    }
2081    const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
2082    const instance = component.getOrCreateInstance(target);
2083    instance[method]();
2084  });
2085};
2086const NAME$f = "alert";
2087const DATA_KEY$a = "bs.alert";
2088const EVENT_KEY$b = `.${DATA_KEY$a}`;
2089const EVENT_CLOSE = `close${EVENT_KEY$b}`;
2090const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
2091const CLASS_NAME_FADE$5 = "fade";
2092const CLASS_NAME_SHOW$8 = "show";
2093class Alert extends BaseComponent {
2094  // Getters
2095  static get NAME() {
2096    return NAME$f;
2097  }
2098  // Public
2099  close() {
2100    const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
2101    if (closeEvent.defaultPrevented) {
2102      return;
2103    }
2104    this._element.classList.remove(CLASS_NAME_SHOW$8);
2105    const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
2106    this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
2107  }
2108  // Private
2109  _destroyElement() {
2110    this._element.remove();
2111    EventHandler.trigger(this._element, EVENT_CLOSED);
2112    this.dispose();
2113  }
2114  // Static
2115  static jQueryInterface(config) {
2116    return this.each(function() {
2117      const data = Alert.getOrCreateInstance(this);
2118      if (typeof config !== "string") {
2119        return;
2120      }
2121      if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
vendor: 5,917 bytes, lines 2122-2307
2122        throw new TypeError(`No method named "${config}"`);
2123      }
2124      data[config](this);
2125    });
2126  }
2127}
2128enableDismissTrigger(Alert, "close");
2129defineJQueryPlugin(Alert);
2130const NAME$e = "button";
2131const DATA_KEY$9 = "bs.button";
2132const EVENT_KEY$a = `.${DATA_KEY$9}`;
2133const DATA_API_KEY$6 = ".data-api";
2134const CLASS_NAME_ACTIVE$3 = "active";
2135const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
2136const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
2137class Button extends BaseComponent {
2138  // Getters
2139  static get NAME() {
2140    return NAME$e;
2141  }
2142  // Public
2143  toggle() {
2144    this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
2145  }
2146  // Static
2147  static jQueryInterface(config) {
2148    return this.each(function() {
2149      const data = Button.getOrCreateInstance(this);
2150      if (config === "toggle") {
2151        data[config]();
2152      }
2153    });
2154  }
2155}
2156EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => {
2157  event.preventDefault();
2158  const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
2159  const data = Button.getOrCreateInstance(button);
2160  data.toggle();
2161});
2162defineJQueryPlugin(Button);
2163const NAME$d = "swipe";
2164const EVENT_KEY$9 = ".bs.swipe";
2165const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
2166const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
2167const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
2168const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
2169const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
2170const POINTER_TYPE_TOUCH = "touch";
2171const POINTER_TYPE_PEN = "pen";
2172const CLASS_NAME_POINTER_EVENT = "pointer-event";
2173const SWIPE_THRESHOLD = 40;
2174const Default$c = {
2175  endCallback: null,
2176  leftCallback: null,
2177  rightCallback: null
2178};
2179const DefaultType$c = {
2180  endCallback: "(function|null)",
2181  leftCallback: "(function|null)",
2182  rightCallback: "(function|null)"
2183};
2184class Swipe extends Config {
2185  constructor(element, config) {
2186    super();
2187    this._element = element;
2188    if (!element || !Swipe.isSupported()) {
2189      return;
2190    }
2191    this._config = this._getConfig(config);
2192    this._deltaX = 0;
2193    this._supportPointerEvents = Boolean(window.PointerEvent);
2194    this._initEvents();
2195  }
2196  // Getters
2197  static get Default() {
2198    return Default$c;
2199  }
2200  static get DefaultType() {
2201    return DefaultType$c;
2202  }
2203  static get NAME() {
2204    return NAME$d;
2205  }
2206  // Public
2207  dispose() {
2208    EventHandler.off(this._element, EVENT_KEY$9);
2209  }
2210  // Private
2211  _start(event) {
2212    if (!this._supportPointerEvents) {
2213      this._deltaX = event.touches[0].clientX;
2214      return;
2215    }
2216    if (this._eventIsPointerPenTouch(event)) {
2217      this._deltaX = event.clientX;
2218    }
2219  }
2220  _end(event) {
2221    if (this._eventIsPointerPenTouch(event)) {
2222      this._deltaX = event.clientX - this._deltaX;
2223    }
2224    this._handleSwipe();
2225    execute(this._config.endCallback);
2226  }
2227  _move(event) {
2228    this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
2229  }
2230  _handleSwipe() {
2231    const absDeltaX = Math.abs(this._deltaX);
2232    if (absDeltaX <= SWIPE_THRESHOLD) {
2233      return;
2234    }
2235    const direction = absDeltaX / this._deltaX;
2236    this._deltaX = 0;
2237    if (!direction) {
2238      return;
2239    }
2240    execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
2241  }
2242  _initEvents() {
2243    if (this._supportPointerEvents) {
2244      EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));
2245      EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));
2246      this._element.classList.add(CLASS_NAME_POINTER_EVENT);
2247    } else {
2248      EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));
2249      EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));
2250      EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));
2251    }
2252  }
2253  _eventIsPointerPenTouch(event) {
2254    return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
2255  }
2256  // Static
2257  static isSupported() {
2258    return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
2259  }
2260}
2261const NAME$c = "carousel";
2262const DATA_KEY$8 = "bs.carousel";
2263const EVENT_KEY$8 = `.${DATA_KEY$8}`;
2264const DATA_API_KEY$5 = ".data-api";
2265const ARROW_LEFT_KEY$1 = "ArrowLeft";
2266const ARROW_RIGHT_KEY$1 = "ArrowRight";
2267const TOUCHEVENT_COMPAT_WAIT = 500;
2268const ORDER_NEXT = "next";
2269const ORDER_PREV = "prev";
2270const DIRECTION_LEFT = "left";
2271const DIRECTION_RIGHT = "right";
2272const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
2273const EVENT_SLID = `slid${EVENT_KEY$8}`;
2274const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
2275const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
2276const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
2277const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
2278const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
2279const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
2280const CLASS_NAME_CAROUSEL = "carousel";
2281const CLASS_NAME_ACTIVE$2 = "active";
2282const CLASS_NAME_SLIDE = "slide";
2283const CLASS_NAME_END = "carousel-item-end";
2284const CLASS_NAME_START = "carousel-item-start";
2285const CLASS_NAME_NEXT = "carousel-item-next";
2286const CLASS_NAME_PREV = "carousel-item-prev";
2287const SELECTOR_ACTIVE = ".active";
2288const SELECTOR_ITEM = ".carousel-item";
2289const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
2290const SELECTOR_ITEM_IMG = ".carousel-item img";
2291const SELECTOR_INDICATORS = ".carousel-indicators";
2292const SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]";
2293const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
2294const KEY_TO_DIRECTION = {
2295  [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
2296  [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
2297};
2298const Default$b = {
2299  interval: 5e3,
2300  keyboard: true,
2301  pause: "hover",
2302  ride: false,
2303  touch: true,
2304  wrap: true
2305};
2306const DefaultType$b = {
2307  interval: "(number|boolean)",
vendor: 6,327 bytes, lines 2308-2507
2308  // TODO:v6 remove boolean support
2309  keyboard: "boolean",
2310  pause: "(string|boolean)",
2311  ride: "(boolean|string)",
2312  touch: "boolean",
2313  wrap: "boolean"
2314};
2315class Carousel extends BaseComponent {
2316  constructor(element, config) {
2317    super(element, config);
2318    this._interval = null;
2319    this._activeElement = null;
2320    this._isSliding = false;
2321    this.touchTimeout = null;
2322    this._swipeHelper = null;
2323    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
2324    this._addEventListeners();
2325    if (this._config.ride === CLASS_NAME_CAROUSEL) {
2326      this.cycle();
2327    }
2328  }
2329  // Getters
2330  static get Default() {
2331    return Default$b;
2332  }
2333  static get DefaultType() {
2334    return DefaultType$b;
2335  }
2336  static get NAME() {
2337    return NAME$c;
2338  }
2339  // Public
2340  next() {
2341    this._slide(ORDER_NEXT);
2342  }
2343  nextWhenVisible() {
2344    if (!document.hidden && isVisible(this._element)) {
2345      this.next();
2346    }
2347  }
2348  prev() {
2349    this._slide(ORDER_PREV);
2350  }
2351  pause() {
2352    if (this._isSliding) {
2353      triggerTransitionEnd(this._element);
2354    }
2355    this._clearInterval();
2356  }
2357  cycle() {
2358    this._clearInterval();
2359    this._updateInterval();
2360    this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
2361  }
2362  _maybeEnableCycle() {
2363    if (!this._config.ride) {
2364      return;
2365    }
2366    if (this._isSliding) {
2367      EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
2368      return;
2369    }
2370    this.cycle();
2371  }
2372  to(index) {
2373    const items = this._getItems();
2374    if (index > items.length - 1 || index < 0) {
2375      return;
2376    }
2377    if (this._isSliding) {
2378      EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
2379      return;
2380    }
2381    const activeIndex = this._getItemIndex(this._getActive());
2382    if (activeIndex === index) {
2383      return;
2384    }
2385    const order2 = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
2386    this._slide(order2, items[index]);
2387  }
2388  dispose() {
2389    if (this._swipeHelper) {
2390      this._swipeHelper.dispose();
2391    }
2392    super.dispose();
2393  }
2394  // Private
2395  _configAfterMerge(config) {
2396    config.defaultInterval = config.interval;
2397    return config;
2398  }
2399  _addEventListeners() {
2400    if (this._config.keyboard) {
2401      EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event));
2402    }
2403    if (this._config.pause === "hover") {
2404      EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
2405      EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
2406    }
2407    if (this._config.touch && Swipe.isSupported()) {
2408      this._addTouchEventListeners();
2409    }
2410  }
2411  _addTouchEventListeners() {
2412    for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
2413      EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());
2414    }
2415    const endCallBack = () => {
2416      if (this._config.pause !== "hover") {
2417        return;
2418      }
2419      this.pause();
2420      if (this.touchTimeout) {
2421        clearTimeout(this.touchTimeout);
2422      }
2423      this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
2424    };
2425    const swipeConfig = {
2426      leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
2427      rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
2428      endCallback: endCallBack
2429    };
2430    this._swipeHelper = new Swipe(this._element, swipeConfig);
2431  }
2432  _keydown(event) {
2433    if (/input|textarea/i.test(event.target.tagName)) {
2434      return;
2435    }
2436    const direction = KEY_TO_DIRECTION[event.key];
2437    if (direction) {
2438      event.preventDefault();
2439      this._slide(this._directionToOrder(direction));
2440    }
2441  }
2442  _getItemIndex(element) {
2443    return this._getItems().indexOf(element);
2444  }
2445  _setActiveIndicatorElement(index) {
2446    if (!this._indicatorsElement) {
2447      return;
2448    }
2449    const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
2450    activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
2451    activeIndicator.removeAttribute("aria-current");
2452    const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
2453    if (newActiveIndicator) {
2454      newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
2455      newActiveIndicator.setAttribute("aria-current", "true");
2456    }
2457  }
2458  _updateInterval() {
2459    const element = this._activeElement || this._getActive();
2460    if (!element) {
2461      return;
2462    }
2463    const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10);
2464    this._config.interval = elementInterval || this._config.defaultInterval;
2465  }
2466  _slide(order2, element = null) {
2467    if (this._isSliding) {
2468      return;
2469    }
2470    const activeElement = this._getActive();
2471    const isNext = order2 === ORDER_NEXT;
2472    const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
2473    if (nextElement === activeElement) {
2474      return;
2475    }
2476    const nextElementIndex = this._getItemIndex(nextElement);
2477    const triggerEvent = (eventName) => {
2478      return EventHandler.trigger(this._element, eventName, {
2479        relatedTarget: nextElement,
2480        direction: this._orderToDirection(order2),
2481        from: this._getItemIndex(activeElement),
2482        to: nextElementIndex
2483      });
2484    };
2485    const slideEvent = triggerEvent(EVENT_SLIDE);
2486    if (slideEvent.defaultPrevented) {
2487      return;
2488    }
2489    if (!activeElement || !nextElement) {
2490      return;
2491    }
2492    const isCycling = Boolean(this._interval);
2493    this.pause();
2494    this._isSliding = true;
2495    this._setActiveIndicatorElement(nextElementIndex);
2496    this._activeElement = nextElement;
2497    const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
2498    const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
2499    nextElement.classList.add(orderClassName);
2500    reflow(nextElement);
2501    activeElement.classList.add(directionalClassName);
2502    nextElement.classList.add(directionalClassName);
2503    const completeCallBack = () => {
2504      nextElement.classList.remove(directionalClassName, orderClassName);
2505      nextElement.classList.add(CLASS_NAME_ACTIVE$2);
2506      activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
2507      this._isSliding = false;
vendor: 2,253 bytes, lines 2508-2582
2508      triggerEvent(EVENT_SLID);
2509    };
2510    this._queueCallback(completeCallBack, activeElement, this._isAnimated());
2511    if (isCycling) {
2512      this.cycle();
2513    }
2514  }
2515  _isAnimated() {
2516    return this._element.classList.contains(CLASS_NAME_SLIDE);
2517  }
2518  _getActive() {
2519    return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
2520  }
2521  _getItems() {
2522    return SelectorEngine.find(SELECTOR_ITEM, this._element);
2523  }
2524  _clearInterval() {
2525    if (this._interval) {
2526      clearInterval(this._interval);
2527      this._interval = null;
2528    }
2529  }
2530  _directionToOrder(direction) {
2531    if (isRTL()) {
2532      return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
2533    }
2534    return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
2535  }
2536  _orderToDirection(order2) {
2537    if (isRTL()) {
2538      return order2 === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
2539    }
2540    return order2 === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
2541  }
2542  // Static
2543  static jQueryInterface(config) {
2544    return this.each(function() {
2545      const data = Carousel.getOrCreateInstance(this, config);
2546      if (typeof config === "number") {
2547        data.to(config);
2548        return;
2549      }
2550      if (typeof config === "string") {
2551        if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
2552          throw new TypeError(`No method named "${config}"`);
2553        }
2554        data[config]();
2555      }
2556    });
2557  }
2558}
2559EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) {
2560  const target = SelectorEngine.getElementFromSelector(this);
2561  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
2562    return;
2563  }
2564  event.preventDefault();
2565  const carousel = Carousel.getOrCreateInstance(target);
2566  const slideIndex = this.getAttribute("data-bs-slide-to");
2567  if (slideIndex) {
2568    carousel.to(slideIndex);
2569    carousel._maybeEnableCycle();
2570    return;
2571  }
2572  if (Manipulator.getDataAttribute(this, "slide") === "next") {
2573    carousel.next();
2574    carousel._maybeEnableCycle();
2575    return;
2576  }
2577  carousel.prev();
2578  carousel._maybeEnableCycle();
2579});
2580EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
2581  const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
2582  for (const carousel of carousels) {
vendor: 4,514 bytes, lines 2583-2712
2583    Carousel.getOrCreateInstance(carousel);
2584  }
2585});
2586defineJQueryPlugin(Carousel);
2587const NAME$b = "collapse";
2588const DATA_KEY$7 = "bs.collapse";
2589const EVENT_KEY$7 = `.${DATA_KEY$7}`;
2590const DATA_API_KEY$4 = ".data-api";
2591const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
2592const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
2593const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
2594const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
2595const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
2596const CLASS_NAME_SHOW$7 = "show";
2597const CLASS_NAME_COLLAPSE = "collapse";
2598const CLASS_NAME_COLLAPSING = "collapsing";
2599const CLASS_NAME_COLLAPSED = "collapsed";
2600const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
2601const CLASS_NAME_HORIZONTAL = "collapse-horizontal";
2602const WIDTH = "width";
2603const HEIGHT = "height";
2604const SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing";
2605const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
2606const Default$a = {
2607  parent: null,
2608  toggle: true
2609};
2610const DefaultType$a = {
2611  parent: "(null|element)",
2612  toggle: "boolean"
2613};
2614class Collapse extends BaseComponent {
2615  constructor(element, config) {
2616    super(element, config);
2617    this._isTransitioning = false;
2618    this._triggerArray = [];
2619    const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
2620    for (const elem of toggleList) {
2621      const selector = SelectorEngine.getSelectorFromElement(elem);
2622      const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element);
2623      if (selector !== null && filterElement.length) {
2624        this._triggerArray.push(elem);
2625      }
2626    }
2627    this._initializeChildren();
2628    if (!this._config.parent) {
2629      this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
2630    }
2631    if (this._config.toggle) {
2632      this.toggle();
2633    }
2634  }
2635  // Getters
2636  static get Default() {
2637    return Default$a;
2638  }
2639  static get DefaultType() {
2640    return DefaultType$a;
2641  }
2642  static get NAME() {
2643    return NAME$b;
2644  }
2645  // Public
2646  toggle() {
2647    if (this._isShown()) {
2648      this.hide();
2649    } else {
2650      this.show();
2651    }
2652  }
2653  show() {
2654    if (this._isTransitioning || this._isShown()) {
2655      return;
2656    }
2657    let activeChildren = [];
2658    if (this._config.parent) {
2659      activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => Collapse.getOrCreateInstance(element, {
2660        toggle: false
2661      }));
2662    }
2663    if (activeChildren.length && activeChildren[0]._isTransitioning) {
2664      return;
2665    }
2666    const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
2667    if (startEvent.defaultPrevented) {
2668      return;
2669    }
2670    for (const activeInstance of activeChildren) {
2671      activeInstance.hide();
2672    }
2673    const dimension = this._getDimension();
2674    this._element.classList.remove(CLASS_NAME_COLLAPSE);
2675    this._element.classList.add(CLASS_NAME_COLLAPSING);
2676    this._element.style[dimension] = 0;
2677    this._addAriaAndCollapsedClass(this._triggerArray, true);
2678    this._isTransitioning = true;
2679    const complete = () => {
2680      this._isTransitioning = false;
2681      this._element.classList.remove(CLASS_NAME_COLLAPSING);
2682      this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
2683      this._element.style[dimension] = "";
2684      EventHandler.trigger(this._element, EVENT_SHOWN$6);
2685    };
2686    const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
2687    const scrollSize = `scroll${capitalizedDimension}`;
2688    this._queueCallback(complete, this._element, true);
2689    this._element.style[dimension] = `${this._element[scrollSize]}px`;
2690  }
2691  hide() {
2692    if (this._isTransitioning || !this._isShown()) {
2693      return;
2694    }
2695    const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
2696    if (startEvent.defaultPrevented) {
2697      return;
2698    }
2699    const dimension = this._getDimension();
2700    this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
2701    reflow(this._element);
2702    this._element.classList.add(CLASS_NAME_COLLAPSING);
2703    this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
2704    for (const trigger of this._triggerArray) {
2705      const element = SelectorEngine.getElementFromSelector(trigger);
2706      if (element && !this._isShown(element)) {
2707        this._addAriaAndCollapsedClass([trigger], false);
2708      }
2709    }
2710    this._isTransitioning = true;
2711    const complete = () => {
2712      this._isTransitioning = false;
vendor: 5,767 bytes, lines 2713-2872
2713      this._element.classList.remove(CLASS_NAME_COLLAPSING);
2714      this._element.classList.add(CLASS_NAME_COLLAPSE);
2715      EventHandler.trigger(this._element, EVENT_HIDDEN$6);
2716    };
2717    this._element.style[dimension] = "";
2718    this._queueCallback(complete, this._element, true);
2719  }
2720  _isShown(element = this._element) {
2721    return element.classList.contains(CLASS_NAME_SHOW$7);
2722  }
2723  // Private
2724  _configAfterMerge(config) {
2725    config.toggle = Boolean(config.toggle);
2726    config.parent = getElement(config.parent);
2727    return config;
2728  }
2729  _getDimension() {
2730    return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
2731  }
2732  _initializeChildren() {
2733    if (!this._config.parent) {
2734      return;
2735    }
2736    const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
2737    for (const element of children) {
2738      const selected = SelectorEngine.getElementFromSelector(element);
2739      if (selected) {
2740        this._addAriaAndCollapsedClass([element], this._isShown(selected));
2741      }
2742    }
2743  }
2744  _getFirstLevelChildren(selector) {
2745    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
2746    return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element));
2747  }
2748  _addAriaAndCollapsedClass(triggerArray, isOpen) {
2749    if (!triggerArray.length) {
2750      return;
2751    }
2752    for (const element of triggerArray) {
2753      element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
2754      element.setAttribute("aria-expanded", isOpen);
2755    }
2756  }
2757  // Static
2758  static jQueryInterface(config) {
2759    const _config = {};
2760    if (typeof config === "string" && /show|hide/.test(config)) {
2761      _config.toggle = false;
2762    }
2763    return this.each(function() {
2764      const data = Collapse.getOrCreateInstance(this, _config);
2765      if (typeof config === "string") {
2766        if (typeof data[config] === "undefined") {
2767          throw new TypeError(`No method named "${config}"`);
2768        }
2769        data[config]();
2770      }
2771    });
2772  }
2773}
2774EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) {
2775  if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") {
2776    event.preventDefault();
2777  }
2778  for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
2779    Collapse.getOrCreateInstance(element, {
2780      toggle: false
2781    }).toggle();
2782  }
2783});
2784defineJQueryPlugin(Collapse);
2785const NAME$a = "dropdown";
2786const DATA_KEY$6 = "bs.dropdown";
2787const EVENT_KEY$6 = `.${DATA_KEY$6}`;
2788const DATA_API_KEY$3 = ".data-api";
2789const ESCAPE_KEY$2 = "Escape";
2790const TAB_KEY$1 = "Tab";
2791const ARROW_UP_KEY$1 = "ArrowUp";
2792const ARROW_DOWN_KEY$1 = "ArrowDown";
2793const RIGHT_MOUSE_BUTTON = 2;
2794const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
2795const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
2796const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
2797const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
2798const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
2799const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
2800const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
2801const CLASS_NAME_SHOW$6 = "show";
2802const CLASS_NAME_DROPUP = "dropup";
2803const CLASS_NAME_DROPEND = "dropend";
2804const CLASS_NAME_DROPSTART = "dropstart";
2805const CLASS_NAME_DROPUP_CENTER = "dropup-center";
2806const CLASS_NAME_DROPDOWN_CENTER = "dropdown-center";
2807const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
2808const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
2809const SELECTOR_MENU = ".dropdown-menu";
2810const SELECTOR_NAVBAR = ".navbar";
2811const SELECTOR_NAVBAR_NAV = ".navbar-nav";
2812const SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)";
2813const PLACEMENT_TOP = isRTL() ? "top-end" : "top-start";
2814const PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end";
2815const PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start";
2816const PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end";
2817const PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start";
2818const PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start";
2819const PLACEMENT_TOPCENTER = "top";
2820const PLACEMENT_BOTTOMCENTER = "bottom";
2821const Default$9 = {
2822  autoClose: true,
2823  boundary: "clippingParents",
2824  display: "dynamic",
2825  offset: [0, 2],
2826  popperConfig: null,
2827  reference: "toggle"
2828};
2829const DefaultType$9 = {
2830  autoClose: "(boolean|string)",
2831  boundary: "(string|element)",
2832  display: "string",
2833  offset: "(array|string|function)",
2834  popperConfig: "(null|object|function)",
2835  reference: "(string|element|object)"
2836};
2837class Dropdown extends BaseComponent {
2838  constructor(element, config) {
2839    super(element, config);
2840    this._popper = null;
2841    this._parent = this._element.parentNode;
2842    this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
2843    this._inNavbar = this._detectNavbar();
2844  }
2845  // Getters
2846  static get Default() {
2847    return Default$9;
2848  }
2849  static get DefaultType() {
2850    return DefaultType$9;
2851  }
2852  static get NAME() {
2853    return NAME$a;
2854  }
2855  // Public
2856  toggle() {
2857    return this._isShown() ? this.hide() : this.show();
2858  }
2859  show() {
2860    if (isDisabled(this._element) || this._isShown()) {
2861      return;
2862    }
2863    const relatedTarget = {
2864      relatedTarget: this._element
2865    };
2866    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
2867    if (showEvent.defaultPrevented) {
2868      return;
2869    }
2870    this._createPopper();
2871    if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
2872      for (const element of [].concat(...document.body.children)) {
vendor: 5,060 bytes, lines 2873-3027
2873        EventHandler.on(element, "mouseover", noop);
2874      }
2875    }
2876    this._element.focus();
2877    this._element.setAttribute("aria-expanded", true);
2878    this._menu.classList.add(CLASS_NAME_SHOW$6);
2879    this._element.classList.add(CLASS_NAME_SHOW$6);
2880    EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
2881  }
2882  hide() {
2883    if (isDisabled(this._element) || !this._isShown()) {
2884      return;
2885    }
2886    const relatedTarget = {
2887      relatedTarget: this._element
2888    };
2889    this._completeHide(relatedTarget);
2890  }
2891  dispose() {
2892    if (this._popper) {
2893      this._popper.destroy();
2894    }
2895    super.dispose();
2896  }
2897  update() {
2898    this._inNavbar = this._detectNavbar();
2899    if (this._popper) {
2900      this._popper.update();
2901    }
2902  }
2903  // Private
2904  _completeHide(relatedTarget) {
2905    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
2906    if (hideEvent.defaultPrevented) {
2907      return;
2908    }
2909    if ("ontouchstart" in document.documentElement) {
2910      for (const element of [].concat(...document.body.children)) {
2911        EventHandler.off(element, "mouseover", noop);
2912      }
2913    }
2914    if (this._popper) {
2915      this._popper.destroy();
2916    }
2917    this._menu.classList.remove(CLASS_NAME_SHOW$6);
2918    this._element.classList.remove(CLASS_NAME_SHOW$6);
2919    this._element.setAttribute("aria-expanded", "false");
2920    Manipulator.removeDataAttribute(this._menu, "popper");
2921    EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
2922  }
2923  _getConfig(config) {
2924    config = super._getConfig(config);
2925    if (typeof config.reference === "object" && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== "function") {
2926      throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
2927    }
2928    return config;
2929  }
2930  _createPopper() {
2931    if (typeof Popper === "undefined") {
2932      throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
2933    }
2934    let referenceElement = this._element;
2935    if (this._config.reference === "parent") {
2936      referenceElement = this._parent;
2937    } else if (isElement(this._config.reference)) {
2938      referenceElement = getElement(this._config.reference);
2939    } else if (typeof this._config.reference === "object") {
2940      referenceElement = this._config.reference;
2941    }
2942    const popperConfig = this._getPopperConfig();
2943    this._popper = createPopper(referenceElement, this._menu, popperConfig);
2944  }
2945  _isShown() {
2946    return this._menu.classList.contains(CLASS_NAME_SHOW$6);
2947  }
2948  _getPlacement() {
2949    const parentDropdown = this._parent;
2950    if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
2951      return PLACEMENT_RIGHT;
2952    }
2953    if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
2954      return PLACEMENT_LEFT;
2955    }
2956    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
2957      return PLACEMENT_TOPCENTER;
2958    }
2959    if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
2960      return PLACEMENT_BOTTOMCENTER;
2961    }
2962    const isEnd = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end";
2963    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
2964      return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
2965    }
2966    return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
2967  }
2968  _detectNavbar() {
2969    return this._element.closest(SELECTOR_NAVBAR) !== null;
2970  }
2971  _getOffset() {
2972    const {
2973      offset: offset2
2974    } = this._config;
2975    if (typeof offset2 === "string") {
2976      return offset2.split(",").map((value) => Number.parseInt(value, 10));
2977    }
2978    if (typeof offset2 === "function") {
2979      return (popperData) => offset2(popperData, this._element);
2980    }
2981    return offset2;
2982  }
2983  _getPopperConfig() {
2984    const defaultBsPopperConfig = {
2985      placement: this._getPlacement(),
2986      modifiers: [{
2987        name: "preventOverflow",
2988        options: {
2989          boundary: this._config.boundary
2990        }
2991      }, {
2992        name: "offset",
2993        options: {
2994          offset: this._getOffset()
2995        }
2996      }]
2997    };
2998    if (this._inNavbar || this._config.display === "static") {
2999      Manipulator.setDataAttribute(this._menu, "popper", "static");
3000      defaultBsPopperConfig.modifiers = [{
3001        name: "applyStyles",
3002        enabled: false
3003      }];
3004    }
3005    return {
3006      ...defaultBsPopperConfig,
3007      ...execute(this._config.popperConfig, [defaultBsPopperConfig])
3008    };
3009  }
3010  _selectMenuItem({
3011    key,
3012    target
3013  }) {
3014    const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element));
3015    if (!items.length) {
3016      return;
3017    }
3018    getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
3019  }
3020  // Static
3021  static jQueryInterface(config) {
3022    return this.each(function() {
3023      const data = Dropdown.getOrCreateInstance(this, config);
3024      if (typeof config !== "string") {
3025        return;
3026      }
3027      if (typeof data[config] === "undefined") {
vendor: 5,962 bytes, lines 3028-3219
3028        throw new TypeError(`No method named "${config}"`);
3029      }
3030      data[config]();
3031    });
3032  }
3033  static clearMenus(event) {
3034    if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) {
3035      return;
3036    }
3037    const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
3038    for (const toggle of openToggles) {
3039      const context = Dropdown.getInstance(toggle);
3040      if (!context || context._config.autoClose === false) {
3041        continue;
3042      }
3043      const composedPath = event.composedPath();
3044      const isMenuTarget = composedPath.includes(context._menu);
3045      if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) {
3046        continue;
3047      }
3048      if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
3049        continue;
3050      }
3051      const relatedTarget = {
3052        relatedTarget: context._element
3053      };
3054      if (event.type === "click") {
3055        relatedTarget.clickEvent = event;
3056      }
3057      context._completeHide(relatedTarget);
3058    }
3059  }
3060  static dataApiKeydownHandler(event) {
3061    const isInput = /input|textarea/i.test(event.target.tagName);
3062    const isEscapeEvent = event.key === ESCAPE_KEY$2;
3063    const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
3064    if (!isUpOrDownEvent && !isEscapeEvent) {
3065      return;
3066    }
3067    if (isInput && !isEscapeEvent) {
3068      return;
3069    }
3070    event.preventDefault();
3071    const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
3072    const instance = Dropdown.getOrCreateInstance(getToggleButton);
3073    if (isUpOrDownEvent) {
3074      event.stopPropagation();
3075      instance.show();
3076      instance._selectMenuItem(event);
3077      return;
3078    }
3079    if (instance._isShown()) {
3080      event.stopPropagation();
3081      instance.hide();
3082      getToggleButton.focus();
3083    }
3084  }
3085}
3086EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
3087EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
3088EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
3089EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
3090EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) {
3091  event.preventDefault();
3092  Dropdown.getOrCreateInstance(this).toggle();
3093});
3094defineJQueryPlugin(Dropdown);
3095const NAME$9 = "backdrop";
3096const CLASS_NAME_FADE$4 = "fade";
3097const CLASS_NAME_SHOW$5 = "show";
3098const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
3099const Default$8 = {
3100  className: "modal-backdrop",
3101  clickCallback: null,
3102  isAnimated: false,
3103  isVisible: true,
3104  // if false, we use the backdrop helper without adding any element to the dom
3105  rootElement: "body"
3106  // give the choice to place backdrop under different elements
3107};
3108const DefaultType$8 = {
3109  className: "string",
3110  clickCallback: "(function|null)",
3111  isAnimated: "boolean",
3112  isVisible: "boolean",
3113  rootElement: "(element|string)"
3114};
3115class Backdrop extends Config {
3116  constructor(config) {
3117    super();
3118    this._config = this._getConfig(config);
3119    this._isAppended = false;
3120    this._element = null;
3121  }
3122  // Getters
3123  static get Default() {
3124    return Default$8;
3125  }
3126  static get DefaultType() {
3127    return DefaultType$8;
3128  }
3129  static get NAME() {
3130    return NAME$9;
3131  }
3132  // Public
3133  show(callback) {
3134    if (!this._config.isVisible) {
3135      execute(callback);
3136      return;
3137    }
3138    this._append();
3139    const element = this._getElement();
3140    if (this._config.isAnimated) {
3141      reflow(element);
3142    }
3143    element.classList.add(CLASS_NAME_SHOW$5);
3144    this._emulateAnimation(() => {
3145      execute(callback);
3146    });
3147  }
3148  hide(callback) {
3149    if (!this._config.isVisible) {
3150      execute(callback);
3151      return;
3152    }
3153    this._getElement().classList.remove(CLASS_NAME_SHOW$5);
3154    this._emulateAnimation(() => {
3155      this.dispose();
3156      execute(callback);
3157    });
3158  }
3159  dispose() {
3160    if (!this._isAppended) {
3161      return;
3162    }
3163    EventHandler.off(this._element, EVENT_MOUSEDOWN);
3164    this._element.remove();
3165    this._isAppended = false;
3166  }
3167  // Private
3168  _getElement() {
3169    if (!this._element) {
3170      const backdrop = document.createElement("div");
3171      backdrop.className = this._config.className;
3172      if (this._config.isAnimated) {
3173        backdrop.classList.add(CLASS_NAME_FADE$4);
3174      }
3175      this._element = backdrop;
3176    }
3177    return this._element;
3178  }
3179  _configAfterMerge(config) {
3180    config.rootElement = getElement(config.rootElement);
3181    return config;
3182  }
3183  _append() {
3184    if (this._isAppended) {
3185      return;
3186    }
3187    const element = this._getElement();
3188    this._config.rootElement.append(element);
3189    EventHandler.on(element, EVENT_MOUSEDOWN, () => {
3190      execute(this._config.clickCallback);
3191    });
3192    this._isAppended = true;
3193  }
3194  _emulateAnimation(callback) {
3195    executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
3196  }
3197}
3198const NAME$8 = "focustrap";
3199const DATA_KEY$5 = "bs.focustrap";
3200const EVENT_KEY$5 = `.${DATA_KEY$5}`;
3201const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
3202const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
3203const TAB_KEY = "Tab";
3204const TAB_NAV_FORWARD = "forward";
3205const TAB_NAV_BACKWARD = "backward";
3206const Default$7 = {
3207  autofocus: true,
3208  trapElement: null
3209  // The element to trap focus inside of
3210};
3211const DefaultType$7 = {
3212  autofocus: "boolean",
3213  trapElement: "element"
3214};
3215class FocusTrap extends Config {
3216  constructor(config) {
3217    super();
3218    this._config = this._getConfig(config);
3219    this._isActive = false;
vendor: 9,849 bytes, lines 3220-3524
3220    this._lastTabNavDirection = null;
3221  }
3222  // Getters
3223  static get Default() {
3224    return Default$7;
3225  }
3226  static get DefaultType() {
3227    return DefaultType$7;
3228  }
3229  static get NAME() {
3230    return NAME$8;
3231  }
3232  // Public
3233  activate() {
3234    if (this._isActive) {
3235      return;
3236    }
3237    if (this._config.autofocus) {
3238      this._config.trapElement.focus();
3239    }
3240    EventHandler.off(document, EVENT_KEY$5);
3241    EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event));
3242    EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
3243    this._isActive = true;
3244  }
3245  deactivate() {
3246    if (!this._isActive) {
3247      return;
3248    }
3249    this._isActive = false;
3250    EventHandler.off(document, EVENT_KEY$5);
3251  }
3252  // Private
3253  _handleFocusin(event) {
3254    const {
3255      trapElement
3256    } = this._config;
3257    if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
3258      return;
3259    }
3260    const elements = SelectorEngine.focusableChildren(trapElement);
3261    if (elements.length === 0) {
3262      trapElement.focus();
3263    } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
3264      elements[elements.length - 1].focus();
3265    } else {
3266      elements[0].focus();
3267    }
3268  }
3269  _handleKeydown(event) {
3270    if (event.key !== TAB_KEY) {
3271      return;
3272    }
3273    this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
3274  }
3275}
3276const SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top";
3277const SELECTOR_STICKY_CONTENT = ".sticky-top";
3278const PROPERTY_PADDING = "padding-right";
3279const PROPERTY_MARGIN = "margin-right";
3280class ScrollBarHelper {
3281  constructor() {
3282    this._element = document.body;
3283  }
3284  // Public
3285  getWidth() {
3286    const documentWidth = document.documentElement.clientWidth;
3287    return Math.abs(window.innerWidth - documentWidth);
3288  }
3289  hide() {
3290    const width = this.getWidth();
3291    this._disableOverFlow();
3292    this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
3293    this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
3294    this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width);
3295  }
3296  reset() {
3297    this._resetElementAttributes(this._element, "overflow");
3298    this._resetElementAttributes(this._element, PROPERTY_PADDING);
3299    this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
3300    this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
3301  }
3302  isOverflowing() {
3303    return this.getWidth() > 0;
3304  }
3305  // Private
3306  _disableOverFlow() {
3307    this._saveInitialAttribute(this._element, "overflow");
3308    this._element.style.overflow = "hidden";
3309  }
3310  _setElementAttributes(selector, styleProperty, callback) {
3311    const scrollbarWidth = this.getWidth();
3312    const manipulationCallBack = (element) => {
3313      if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
3314        return;
3315      }
3316      this._saveInitialAttribute(element, styleProperty);
3317      const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
3318      element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
3319    };
3320    this._applyManipulationCallback(selector, manipulationCallBack);
3321  }
3322  _saveInitialAttribute(element, styleProperty) {
3323    const actualValue = element.style.getPropertyValue(styleProperty);
3324    if (actualValue) {
3325      Manipulator.setDataAttribute(element, styleProperty, actualValue);
3326    }
3327  }
3328  _resetElementAttributes(selector, styleProperty) {
3329    const manipulationCallBack = (element) => {
3330      const value = Manipulator.getDataAttribute(element, styleProperty);
3331      if (value === null) {
3332        element.style.removeProperty(styleProperty);
3333        return;
3334      }
3335      Manipulator.removeDataAttribute(element, styleProperty);
3336      element.style.setProperty(styleProperty, value);
3337    };
3338    this._applyManipulationCallback(selector, manipulationCallBack);
3339  }
3340  _applyManipulationCallback(selector, callBack) {
3341    if (isElement(selector)) {
3342      callBack(selector);
3343      return;
3344    }
3345    for (const sel of SelectorEngine.find(selector, this._element)) {
3346      callBack(sel);
3347    }
3348  }
3349}
3350const NAME$7 = "modal";
3351const DATA_KEY$4 = "bs.modal";
3352const EVENT_KEY$4 = `.${DATA_KEY$4}`;
3353const DATA_API_KEY$2 = ".data-api";
3354const ESCAPE_KEY$1 = "Escape";
3355const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
3356const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
3357const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
3358const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
3359const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
3360const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
3361const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
3362const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
3363const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
3364const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
3365const CLASS_NAME_OPEN = "modal-open";
3366const CLASS_NAME_FADE$3 = "fade";
3367const CLASS_NAME_SHOW$4 = "show";
3368const CLASS_NAME_STATIC = "modal-static";
3369const OPEN_SELECTOR$1 = ".modal.show";
3370const SELECTOR_DIALOG = ".modal-dialog";
3371const SELECTOR_MODAL_BODY = ".modal-body";
3372const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
3373const Default$6 = {
3374  backdrop: true,
3375  focus: true,
3376  keyboard: true
3377};
3378const DefaultType$6 = {
3379  backdrop: "(boolean|string)",
3380  focus: "boolean",
3381  keyboard: "boolean"
3382};
3383class Modal extends BaseComponent {
3384  constructor(element, config) {
3385    super(element, config);
3386    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
3387    this._backdrop = this._initializeBackDrop();
3388    this._focustrap = this._initializeFocusTrap();
3389    this._isShown = false;
3390    this._isTransitioning = false;
3391    this._scrollBar = new ScrollBarHelper();
3392    this._addEventListeners();
3393  }
3394  // Getters
3395  static get Default() {
3396    return Default$6;
3397  }
3398  static get DefaultType() {
3399    return DefaultType$6;
3400  }
3401  static get NAME() {
3402    return NAME$7;
3403  }
3404  // Public
3405  toggle(relatedTarget) {
3406    return this._isShown ? this.hide() : this.show(relatedTarget);
3407  }
3408  show(relatedTarget) {
3409    if (this._isShown || this._isTransitioning) {
3410      return;
3411    }
3412    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
3413      relatedTarget
3414    });
3415    if (showEvent.defaultPrevented) {
3416      return;
3417    }
3418    this._isShown = true;
3419    this._isTransitioning = true;
3420    this._scrollBar.hide();
3421    document.body.classList.add(CLASS_NAME_OPEN);
3422    this._adjustDialog();
3423    this._backdrop.show(() => this._showElement(relatedTarget));
3424  }
3425  hide() {
3426    if (!this._isShown || this._isTransitioning) {
3427      return;
3428    }
3429    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
3430    if (hideEvent.defaultPrevented) {
3431      return;
3432    }
3433    this._isShown = false;
3434    this._isTransitioning = true;
3435    this._focustrap.deactivate();
3436    this._element.classList.remove(CLASS_NAME_SHOW$4);
3437    this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
3438  }
3439  dispose() {
3440    EventHandler.off(window, EVENT_KEY$4);
3441    EventHandler.off(this._dialog, EVENT_KEY$4);
3442    this._backdrop.dispose();
3443    this._focustrap.deactivate();
3444    super.dispose();
3445  }
3446  handleUpdate() {
3447    this._adjustDialog();
3448  }
3449  // Private
3450  _initializeBackDrop() {
3451    return new Backdrop({
3452      isVisible: Boolean(this._config.backdrop),
3453      // 'static' option will be translated to true, and booleans will keep their value,
3454      isAnimated: this._isAnimated()
3455    });
3456  }
3457  _initializeFocusTrap() {
3458    return new FocusTrap({
3459      trapElement: this._element
3460    });
3461  }
3462  _showElement(relatedTarget) {
3463    if (!document.body.contains(this._element)) {
3464      document.body.append(this._element);
3465    }
3466    this._element.style.display = "block";
3467    this._element.removeAttribute("aria-hidden");
3468    this._element.setAttribute("aria-modal", true);
3469    this._element.setAttribute("role", "dialog");
3470    this._element.scrollTop = 0;
3471    const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
3472    if (modalBody) {
3473      modalBody.scrollTop = 0;
3474    }
3475    reflow(this._element);
3476    this._element.classList.add(CLASS_NAME_SHOW$4);
3477    const transitionComplete = () => {
3478      if (this._config.focus) {
3479        this._focustrap.activate();
3480      }
3481      this._isTransitioning = false;
3482      EventHandler.trigger(this._element, EVENT_SHOWN$4, {
3483        relatedTarget
3484      });
3485    };
3486    this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
3487  }
3488  _addEventListeners() {
3489    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => {
3490      if (event.key !== ESCAPE_KEY$1) {
3491        return;
3492      }
3493      if (this._config.keyboard) {
3494        this.hide();
3495        return;
3496      }
3497      this._triggerBackdropTransition();
3498    });
3499    EventHandler.on(window, EVENT_RESIZE$1, () => {
3500      if (this._isShown && !this._isTransitioning) {
3501        this._adjustDialog();
3502      }
3503    });
3504    EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {
3505      EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {
3506        if (this._element !== event.target || this._element !== event2.target) {
3507          return;
3508        }
3509        if (this._config.backdrop === "static") {
3510          this._triggerBackdropTransition();
3511          return;
3512        }
3513        if (this._config.backdrop) {
3514          this.hide();
3515        }
3516      });
3517    });
3518  }
3519  _hideModal() {
3520    this._element.style.display = "none";
3521    this._element.setAttribute("aria-hidden", true);
3522    this._element.removeAttribute("aria-modal");
3523    this._element.removeAttribute("role");
3524    this._isTransitioning = false;
vendor: 9,118 bytes, lines 3525-3811
3525    this._backdrop.hide(() => {
3526      document.body.classList.remove(CLASS_NAME_OPEN);
3527      this._resetAdjustments();
3528      this._scrollBar.reset();
3529      EventHandler.trigger(this._element, EVENT_HIDDEN$4);
3530    });
3531  }
3532  _isAnimated() {
3533    return this._element.classList.contains(CLASS_NAME_FADE$3);
3534  }
3535  _triggerBackdropTransition() {
3536    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
3537    if (hideEvent.defaultPrevented) {
3538      return;
3539    }
3540    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
3541    const initialOverflowY = this._element.style.overflowY;
3542    if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) {
3543      return;
3544    }
3545    if (!isModalOverflowing) {
3546      this._element.style.overflowY = "hidden";
3547    }
3548    this._element.classList.add(CLASS_NAME_STATIC);
3549    this._queueCallback(() => {
3550      this._element.classList.remove(CLASS_NAME_STATIC);
3551      this._queueCallback(() => {
3552        this._element.style.overflowY = initialOverflowY;
3553      }, this._dialog);
3554    }, this._dialog);
3555    this._element.focus();
3556  }
3557  /**
3558   * The following methods are used to handle overflowing modals
3559   */
3560  _adjustDialog() {
3561    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
3562    const scrollbarWidth = this._scrollBar.getWidth();
3563    const isBodyOverflowing = scrollbarWidth > 0;
3564    if (isBodyOverflowing && !isModalOverflowing) {
3565      const property = isRTL() ? "paddingLeft" : "paddingRight";
3566      this._element.style[property] = `${scrollbarWidth}px`;
3567    }
3568    if (!isBodyOverflowing && isModalOverflowing) {
3569      const property = isRTL() ? "paddingRight" : "paddingLeft";
3570      this._element.style[property] = `${scrollbarWidth}px`;
3571    }
3572  }
3573  _resetAdjustments() {
3574    this._element.style.paddingLeft = "";
3575    this._element.style.paddingRight = "";
3576  }
3577  // Static
3578  static jQueryInterface(config, relatedTarget) {
3579    return this.each(function() {
3580      const data = Modal.getOrCreateInstance(this, config);
3581      if (typeof config !== "string") {
3582        return;
3583      }
3584      if (typeof data[config] === "undefined") {
3585        throw new TypeError(`No method named "${config}"`);
3586      }
3587      data[config](relatedTarget);
3588    });
3589  }
3590}
3591EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) {
3592  const target = SelectorEngine.getElementFromSelector(this);
3593  if (["A", "AREA"].includes(this.tagName)) {
3594    event.preventDefault();
3595  }
3596  EventHandler.one(target, EVENT_SHOW$4, (showEvent) => {
3597    if (showEvent.defaultPrevented) {
3598      return;
3599    }
3600    EventHandler.one(target, EVENT_HIDDEN$4, () => {
3601      if (isVisible(this)) {
3602        this.focus();
3603      }
3604    });
3605  });
3606  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
3607  if (alreadyOpen) {
3608    Modal.getInstance(alreadyOpen).hide();
3609  }
3610  const data = Modal.getOrCreateInstance(target);
3611  data.toggle(this);
3612});
3613enableDismissTrigger(Modal);
3614defineJQueryPlugin(Modal);
3615const NAME$6 = "offcanvas";
3616const DATA_KEY$3 = "bs.offcanvas";
3617const EVENT_KEY$3 = `.${DATA_KEY$3}`;
3618const DATA_API_KEY$1 = ".data-api";
3619const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
3620const ESCAPE_KEY = "Escape";
3621const CLASS_NAME_SHOW$3 = "show";
3622const CLASS_NAME_SHOWING$1 = "showing";
3623const CLASS_NAME_HIDING = "hiding";
3624const CLASS_NAME_BACKDROP = "offcanvas-backdrop";
3625const OPEN_SELECTOR = ".offcanvas.show";
3626const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
3627const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
3628const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
3629const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
3630const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
3631const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
3632const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
3633const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
3634const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
3635const Default$5 = {
3636  backdrop: true,
3637  keyboard: true,
3638  scroll: false
3639};
3640const DefaultType$5 = {
3641  backdrop: "(boolean|string)",
3642  keyboard: "boolean",
3643  scroll: "boolean"
3644};
3645class Offcanvas extends BaseComponent {
3646  constructor(element, config) {
3647    super(element, config);
3648    this._isShown = false;
3649    this._backdrop = this._initializeBackDrop();
3650    this._focustrap = this._initializeFocusTrap();
3651    this._addEventListeners();
3652  }
3653  // Getters
3654  static get Default() {
3655    return Default$5;
3656  }
3657  static get DefaultType() {
3658    return DefaultType$5;
3659  }
3660  static get NAME() {
3661    return NAME$6;
3662  }
3663  // Public
3664  toggle(relatedTarget) {
3665    return this._isShown ? this.hide() : this.show(relatedTarget);
3666  }
3667  show(relatedTarget) {
3668    if (this._isShown) {
3669      return;
3670    }
3671    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
3672      relatedTarget
3673    });
3674    if (showEvent.defaultPrevented) {
3675      return;
3676    }
3677    this._isShown = true;
3678    this._backdrop.show();
3679    if (!this._config.scroll) {
3680      new ScrollBarHelper().hide();
3681    }
3682    this._element.setAttribute("aria-modal", true);
3683    this._element.setAttribute("role", "dialog");
3684    this._element.classList.add(CLASS_NAME_SHOWING$1);
3685    const completeCallBack = () => {
3686      if (!this._config.scroll || this._config.backdrop) {
3687        this._focustrap.activate();
3688      }
3689      this._element.classList.add(CLASS_NAME_SHOW$3);
3690      this._element.classList.remove(CLASS_NAME_SHOWING$1);
3691      EventHandler.trigger(this._element, EVENT_SHOWN$3, {
3692        relatedTarget
3693      });
3694    };
3695    this._queueCallback(completeCallBack, this._element, true);
3696  }
3697  hide() {
3698    if (!this._isShown) {
3699      return;
3700    }
3701    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
3702    if (hideEvent.defaultPrevented) {
3703      return;
3704    }
3705    this._focustrap.deactivate();
3706    this._element.blur();
3707    this._isShown = false;
3708    this._element.classList.add(CLASS_NAME_HIDING);
3709    this._backdrop.hide();
3710    const completeCallback = () => {
3711      this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
3712      this._element.removeAttribute("aria-modal");
3713      this._element.removeAttribute("role");
3714      if (!this._config.scroll) {
3715        new ScrollBarHelper().reset();
3716      }
3717      EventHandler.trigger(this._element, EVENT_HIDDEN$3);
3718    };
3719    this._queueCallback(completeCallback, this._element, true);
3720  }
3721  dispose() {
3722    this._backdrop.dispose();
3723    this._focustrap.deactivate();
3724    super.dispose();
3725  }
3726  // Private
3727  _initializeBackDrop() {
3728    const clickCallback = () => {
3729      if (this._config.backdrop === "static") {
3730        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
3731        return;
3732      }
3733      this.hide();
3734    };
3735    const isVisible2 = Boolean(this._config.backdrop);
3736    return new Backdrop({
3737      className: CLASS_NAME_BACKDROP,
3738      isVisible: isVisible2,
3739      isAnimated: true,
3740      rootElement: this._element.parentNode,
3741      clickCallback: isVisible2 ? clickCallback : null
3742    });
3743  }
3744  _initializeFocusTrap() {
3745    return new FocusTrap({
3746      trapElement: this._element
3747    });
3748  }
3749  _addEventListeners() {
3750    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {
3751      if (event.key !== ESCAPE_KEY) {
3752        return;
3753      }
3754      if (this._config.keyboard) {
3755        this.hide();
3756        return;
3757      }
3758      EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
3759    });
3760  }
3761  // Static
3762  static jQueryInterface(config) {
3763    return this.each(function() {
3764      const data = Offcanvas.getOrCreateInstance(this, config);
3765      if (typeof config !== "string") {
3766        return;
3767      }
3768      if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
3769        throw new TypeError(`No method named "${config}"`);
3770      }
3771      data[config](this);
3772    });
3773  }
3774}
3775EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) {
3776  const target = SelectorEngine.getElementFromSelector(this);
3777  if (["A", "AREA"].includes(this.tagName)) {
3778    event.preventDefault();
3779  }
3780  if (isDisabled(this)) {
3781    return;
3782  }
3783  EventHandler.one(target, EVENT_HIDDEN$3, () => {
3784    if (isVisible(this)) {
3785      this.focus();
3786    }
3787  });
3788  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
3789  if (alreadyOpen && alreadyOpen !== target) {
3790    Offcanvas.getInstance(alreadyOpen).hide();
3791  }
3792  const data = Offcanvas.getOrCreateInstance(target);
3793  data.toggle(this);
3794});
3795EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
3796  for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
3797    Offcanvas.getOrCreateInstance(selector).show();
3798  }
3799});
3800EventHandler.on(window, EVENT_RESIZE, () => {
3801  for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) {
3802    if (getComputedStyle(element).position !== "fixed") {
3803      Offcanvas.getOrCreateInstance(element).hide();
3804    }
3805  }
3806});
3807enableDismissTrigger(Offcanvas);
3808defineJQueryPlugin(Offcanvas);
3809const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
3810const DefaultAllowlist = {
3811  // Global attributes allowed on any supplied element below.
vendor: 18,699 bytes, lines 3812-4427
3812  "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN],
3813  a: ["target", "href", "title", "rel"],
3814  area: [],
3815  b: [],
3816  br: [],
3817  col: [],
3818  code: [],
3819  div: [],
3820  em: [],
3821  hr: [],
3822  h1: [],
3823  h2: [],
3824  h3: [],
3825  h4: [],
3826  h5: [],
3827  h6: [],
3828  i: [],
3829  img: ["src", "srcset", "alt", "title", "width", "height"],
3830  li: [],
3831  ol: [],
3832  p: [],
3833  pre: [],
3834  s: [],
3835  small: [],
3836  span: [],
3837  sub: [],
3838  sup: [],
3839  strong: [],
3840  u: [],
3841  ul: []
3842};
3843const uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]);
3844const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
3845const allowedAttribute = (attribute, allowedAttributeList) => {
3846  const attributeName = attribute.nodeName.toLowerCase();
3847  if (allowedAttributeList.includes(attributeName)) {
3848    if (uriAttributes.has(attributeName)) {
3849      return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
3850    }
3851    return true;
3852  }
3853  return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName));
3854};
3855function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
3856  if (!unsafeHtml.length) {
3857    return unsafeHtml;
3858  }
3859  if (sanitizeFunction && typeof sanitizeFunction === "function") {
3860    return sanitizeFunction(unsafeHtml);
3861  }
3862  const domParser = new window.DOMParser();
3863  const createdDocument = domParser.parseFromString(unsafeHtml, "text/html");
3864  const elements = [].concat(...createdDocument.body.querySelectorAll("*"));
3865  for (const element of elements) {
3866    const elementName = element.nodeName.toLowerCase();
3867    if (!Object.keys(allowList).includes(elementName)) {
3868      element.remove();
3869      continue;
3870    }
3871    const attributeList = [].concat(...element.attributes);
3872    const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []);
3873    for (const attribute of attributeList) {
3874      if (!allowedAttribute(attribute, allowedAttributes)) {
3875        element.removeAttribute(attribute.nodeName);
3876      }
3877    }
3878  }
3879  return createdDocument.body.innerHTML;
3880}
3881const NAME$5 = "TemplateFactory";
3882const Default$4 = {
3883  allowList: DefaultAllowlist,
3884  content: {},
3885  // { selector : text ,  selector2 : text2 , }
3886  extraClass: "",
3887  html: false,
3888  sanitize: true,
3889  sanitizeFn: null,
3890  template: "<div></div>"
3891};
3892const DefaultType$4 = {
3893  allowList: "object",
3894  content: "object",
3895  extraClass: "(string|function)",
3896  html: "boolean",
3897  sanitize: "boolean",
3898  sanitizeFn: "(null|function)",
3899  template: "string"
3900};
3901const DefaultContentType = {
3902  entry: "(string|element|function|null)",
3903  selector: "(string|element)"
3904};
3905class TemplateFactory extends Config {
3906  constructor(config) {
3907    super();
3908    this._config = this._getConfig(config);
3909  }
3910  // Getters
3911  static get Default() {
3912    return Default$4;
3913  }
3914  static get DefaultType() {
3915    return DefaultType$4;
3916  }
3917  static get NAME() {
3918    return NAME$5;
3919  }
3920  // Public
3921  getContent() {
3922    return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean);
3923  }
3924  hasContent() {
3925    return this.getContent().length > 0;
3926  }
3927  changeContent(content) {
3928    this._checkContent(content);
3929    this._config.content = {
3930      ...this._config.content,
3931      ...content
3932    };
3933    return this;
3934  }
3935  toHtml() {
3936    const templateWrapper = document.createElement("div");
3937    templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
3938    for (const [selector, text] of Object.entries(this._config.content)) {
3939      this._setContent(templateWrapper, text, selector);
3940    }
3941    const template = templateWrapper.children[0];
3942    const extraClass = this._resolvePossibleFunction(this._config.extraClass);
3943    if (extraClass) {
3944      template.classList.add(...extraClass.split(" "));
3945    }
3946    return template;
3947  }
3948  // Private
3949  _typeCheckConfig(config) {
3950    super._typeCheckConfig(config);
3951    this._checkContent(config.content);
3952  }
3953  _checkContent(arg) {
3954    for (const [selector, content] of Object.entries(arg)) {
3955      super._typeCheckConfig({
3956        selector,
3957        entry: content
3958      }, DefaultContentType);
3959    }
3960  }
3961  _setContent(template, content, selector) {
3962    const templateElement = SelectorEngine.findOne(selector, template);
3963    if (!templateElement) {
3964      return;
3965    }
3966    content = this._resolvePossibleFunction(content);
3967    if (!content) {
3968      templateElement.remove();
3969      return;
3970    }
3971    if (isElement(content)) {
3972      this._putElementInTemplate(getElement(content), templateElement);
3973      return;
3974    }
3975    if (this._config.html) {
3976      templateElement.innerHTML = this._maybeSanitize(content);
3977      return;
3978    }
3979    templateElement.textContent = content;
3980  }
3981  _maybeSanitize(arg) {
3982    return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
3983  }
3984  _resolvePossibleFunction(arg) {
3985    return execute(arg, [this]);
3986  }
3987  _putElementInTemplate(element, templateElement) {
3988    if (this._config.html) {
3989      templateElement.innerHTML = "";
3990      templateElement.append(element);
3991      return;
3992    }
3993    templateElement.textContent = element.textContent;
3994  }
3995}
3996const NAME$4 = "tooltip";
3997const DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]);
3998const CLASS_NAME_FADE$2 = "fade";
3999const CLASS_NAME_MODAL = "modal";
4000const CLASS_NAME_SHOW$2 = "show";
4001const SELECTOR_TOOLTIP_INNER = ".tooltip-inner";
4002const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
4003const EVENT_MODAL_HIDE = "hide.bs.modal";
4004const TRIGGER_HOVER = "hover";
4005const TRIGGER_FOCUS = "focus";
4006const TRIGGER_CLICK = "click";
4007const TRIGGER_MANUAL = "manual";
4008const EVENT_HIDE$2 = "hide";
4009const EVENT_HIDDEN$2 = "hidden";
4010const EVENT_SHOW$2 = "show";
4011const EVENT_SHOWN$2 = "shown";
4012const EVENT_INSERTED = "inserted";
4013const EVENT_CLICK$1 = "click";
4014const EVENT_FOCUSIN$1 = "focusin";
4015const EVENT_FOCUSOUT$1 = "focusout";
4016const EVENT_MOUSEENTER = "mouseenter";
4017const EVENT_MOUSELEAVE = "mouseleave";
4018const AttachmentMap = {
4019  AUTO: "auto",
4020  TOP: "top",
4021  RIGHT: isRTL() ? "left" : "right",
4022  BOTTOM: "bottom",
4023  LEFT: isRTL() ? "right" : "left"
4024};
4025const Default$3 = {
4026  allowList: DefaultAllowlist,
4027  animation: true,
4028  boundary: "clippingParents",
4029  container: false,
4030  customClass: "",
4031  delay: 0,
4032  fallbackPlacements: ["top", "right", "bottom", "left"],
4033  html: false,
4034  offset: [0, 6],
4035  placement: "top",
4036  popperConfig: null,
4037  sanitize: true,
4038  sanitizeFn: null,
4039  selector: false,
4040  template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
4041  title: "",
4042  trigger: "hover focus"
4043};
4044const DefaultType$3 = {
4045  allowList: "object",
4046  animation: "boolean",
4047  boundary: "(string|element)",
4048  container: "(string|element|boolean)",
4049  customClass: "(string|function)",
4050  delay: "(number|object)",
4051  fallbackPlacements: "array",
4052  html: "boolean",
4053  offset: "(array|string|function)",
4054  placement: "(string|function)",
4055  popperConfig: "(null|object|function)",
4056  sanitize: "boolean",
4057  sanitizeFn: "(null|function)",
4058  selector: "(string|boolean)",
4059  template: "string",
4060  title: "(string|element|function)",
4061  trigger: "string"
4062};
4063class Tooltip extends BaseComponent {
4064  constructor(element, config) {
4065    if (typeof Popper === "undefined") {
4066      throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
4067    }
4068    super(element, config);
4069    this._isEnabled = true;
4070    this._timeout = 0;
4071    this._isHovered = null;
4072    this._activeTrigger = {};
4073    this._popper = null;
4074    this._templateFactory = null;
4075    this._newContent = null;
4076    this.tip = null;
4077    this._setListeners();
4078    if (!this._config.selector) {
4079      this._fixTitle();
4080    }
4081  }
4082  // Getters
4083  static get Default() {
4084    return Default$3;
4085  }
4086  static get DefaultType() {
4087    return DefaultType$3;
4088  }
4089  static get NAME() {
4090    return NAME$4;
4091  }
4092  // Public
4093  enable() {
4094    this._isEnabled = true;
4095  }
4096  disable() {
4097    this._isEnabled = false;
4098  }
4099  toggleEnabled() {
4100    this._isEnabled = !this._isEnabled;
4101  }
4102  toggle() {
4103    if (!this._isEnabled) {
4104      return;
4105    }
4106    this._activeTrigger.click = !this._activeTrigger.click;
4107    if (this._isShown()) {
4108      this._leave();
4109      return;
4110    }
4111    this._enter();
4112  }
4113  dispose() {
4114    clearTimeout(this._timeout);
4115    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
4116    if (this._element.getAttribute("data-bs-original-title")) {
4117      this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title"));
4118    }
4119    this._disposePopper();
4120    super.dispose();
4121  }
4122  show() {
4123    if (this._element.style.display === "none") {
4124      throw new Error("Please use show on visible elements");
4125    }
4126    if (!(this._isWithContent() && this._isEnabled)) {
4127      return;
4128    }
4129    const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
4130    const shadowRoot = findShadowRoot(this._element);
4131    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
4132    if (showEvent.defaultPrevented || !isInTheDom) {
4133      return;
4134    }
4135    this._disposePopper();
4136    const tip = this._getTipElement();
4137    this._element.setAttribute("aria-describedby", tip.getAttribute("id"));
4138    const {
4139      container
4140    } = this._config;
4141    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
4142      container.append(tip);
4143      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
4144    }
4145    this._popper = this._createPopper(tip);
4146    tip.classList.add(CLASS_NAME_SHOW$2);
4147    if ("ontouchstart" in document.documentElement) {
4148      for (const element of [].concat(...document.body.children)) {
4149        EventHandler.on(element, "mouseover", noop);
4150      }
4151    }
4152    const complete = () => {
4153      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
4154      if (this._isHovered === false) {
4155        this._leave();
4156      }
4157      this._isHovered = false;
4158    };
4159    this._queueCallback(complete, this.tip, this._isAnimated());
4160  }
4161  hide() {
4162    if (!this._isShown()) {
4163      return;
4164    }
4165    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
4166    if (hideEvent.defaultPrevented) {
4167      return;
4168    }
4169    const tip = this._getTipElement();
4170    tip.classList.remove(CLASS_NAME_SHOW$2);
4171    if ("ontouchstart" in document.documentElement) {
4172      for (const element of [].concat(...document.body.children)) {
4173        EventHandler.off(element, "mouseover", noop);
4174      }
4175    }
4176    this._activeTrigger[TRIGGER_CLICK] = false;
4177    this._activeTrigger[TRIGGER_FOCUS] = false;
4178    this._activeTrigger[TRIGGER_HOVER] = false;
4179    this._isHovered = null;
4180    const complete = () => {
4181      if (this._isWithActiveTrigger()) {
4182        return;
4183      }
4184      if (!this._isHovered) {
4185        this._disposePopper();
4186      }
4187      this._element.removeAttribute("aria-describedby");
4188      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
4189    };
4190    this._queueCallback(complete, this.tip, this._isAnimated());
4191  }
4192  update() {
4193    if (this._popper) {
4194      this._popper.update();
4195    }
4196  }
4197  // Protected
4198  _isWithContent() {
4199    return Boolean(this._getTitle());
4200  }
4201  _getTipElement() {
4202    if (!this.tip) {
4203      this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
4204    }
4205    return this.tip;
4206  }
4207  _createTipElement(content) {
4208    const tip = this._getTemplateFactory(content).toHtml();
4209    if (!tip) {
4210      return null;
4211    }
4212    tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
4213    tip.classList.add(`bs-${this.constructor.NAME}-auto`);
4214    const tipId = getUID(this.constructor.NAME).toString();
4215    tip.setAttribute("id", tipId);
4216    if (this._isAnimated()) {
4217      tip.classList.add(CLASS_NAME_FADE$2);
4218    }
4219    return tip;
4220  }
4221  setContent(content) {
4222    this._newContent = content;
4223    if (this._isShown()) {
4224      this._disposePopper();
4225      this.show();
4226    }
4227  }
4228  _getTemplateFactory(content) {
4229    if (this._templateFactory) {
4230      this._templateFactory.changeContent(content);
4231    } else {
4232      this._templateFactory = new TemplateFactory({
4233        ...this._config,
4234        // the `content` var has to be after `this._config`
4235        // to override config.content in case of popover
4236        content,
4237        extraClass: this._resolvePossibleFunction(this._config.customClass)
4238      });
4239    }
4240    return this._templateFactory;
4241  }
4242  _getContentForTemplate() {
4243    return {
4244      [SELECTOR_TOOLTIP_INNER]: this._getTitle()
4245    };
4246  }
4247  _getTitle() {
4248    return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
4249  }
4250  // Private
4251  _initializeOnDelegatedTarget(event) {
4252    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
4253  }
4254  _isAnimated() {
4255    return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
4256  }
4257  _isShown() {
4258    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
4259  }
4260  _createPopper(tip) {
4261    const placement = execute(this._config.placement, [this, tip, this._element]);
4262    const attachment = AttachmentMap[placement.toUpperCase()];
4263    return createPopper(this._element, tip, this._getPopperConfig(attachment));
4264  }
4265  _getOffset() {
4266    const {
4267      offset: offset2
4268    } = this._config;
4269    if (typeof offset2 === "string") {
4270      return offset2.split(",").map((value) => Number.parseInt(value, 10));
4271    }
4272    if (typeof offset2 === "function") {
4273      return (popperData) => offset2(popperData, this._element);
4274    }
4275    return offset2;
4276  }
4277  _resolvePossibleFunction(arg) {
4278    return execute(arg, [this._element]);
4279  }
4280  _getPopperConfig(attachment) {
4281    const defaultBsPopperConfig = {
4282      placement: attachment,
4283      modifiers: [{
4284        name: "flip",
4285        options: {
4286          fallbackPlacements: this._config.fallbackPlacements
4287        }
4288      }, {
4289        name: "offset",
4290        options: {
4291          offset: this._getOffset()
4292        }
4293      }, {
4294        name: "preventOverflow",
4295        options: {
4296          boundary: this._config.boundary
4297        }
4298      }, {
4299        name: "arrow",
4300        options: {
4301          element: `.${this.constructor.NAME}-arrow`
4302        }
4303      }, {
4304        name: "preSetPlacement",
4305        enabled: true,
4306        phase: "beforeMain",
4307        fn: (data) => {
4308          this._getTipElement().setAttribute("data-popper-placement", data.state.placement);
4309        }
4310      }]
4311    };
4312    return {
4313      ...defaultBsPopperConfig,
4314      ...execute(this._config.popperConfig, [defaultBsPopperConfig])
4315    };
4316  }
4317  _setListeners() {
4318    const triggers = this._config.trigger.split(" ");
4319    for (const trigger of triggers) {
4320      if (trigger === "click") {
4321        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => {
4322          const context = this._initializeOnDelegatedTarget(event);
4323          context.toggle();
4324        });
4325      } else if (trigger !== TRIGGER_MANUAL) {
4326        const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
4327        const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
4328        EventHandler.on(this._element, eventIn, this._config.selector, (event) => {
4329          const context = this._initializeOnDelegatedTarget(event);
4330          context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
4331          context._enter();
4332        });
4333        EventHandler.on(this._element, eventOut, this._config.selector, (event) => {
4334          const context = this._initializeOnDelegatedTarget(event);
4335          context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
4336          context._leave();
4337        });
4338      }
4339    }
4340    this._hideModalHandler = () => {
4341      if (this._element) {
4342        this.hide();
4343      }
4344    };
4345    EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
4346  }
4347  _fixTitle() {
4348    const title = this._element.getAttribute("title");
4349    if (!title) {
4350      return;
4351    }
4352    if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) {
4353      this._element.setAttribute("aria-label", title);
4354    }
4355    this._element.setAttribute("data-bs-original-title", title);
4356    this._element.removeAttribute("title");
4357  }
4358  _enter() {
4359    if (this._isShown() || this._isHovered) {
4360      this._isHovered = true;
4361      return;
4362    }
4363    this._isHovered = true;
4364    this._setTimeout(() => {
4365      if (this._isHovered) {
4366        this.show();
4367      }
4368    }, this._config.delay.show);
4369  }
4370  _leave() {
4371    if (this._isWithActiveTrigger()) {
4372      return;
4373    }
4374    this._isHovered = false;
4375    this._setTimeout(() => {
4376      if (!this._isHovered) {
4377        this.hide();
4378      }
4379    }, this._config.delay.hide);
4380  }
4381  _setTimeout(handler, timeout) {
4382    clearTimeout(this._timeout);
4383    this._timeout = setTimeout(handler, timeout);
4384  }
4385  _isWithActiveTrigger() {
4386    return Object.values(this._activeTrigger).includes(true);
4387  }
4388  _getConfig(config) {
4389    const dataAttributes = Manipulator.getDataAttributes(this._element);
4390    for (const dataAttribute of Object.keys(dataAttributes)) {
4391      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
4392        delete dataAttributes[dataAttribute];
4393      }
4394    }
4395    config = {
4396      ...dataAttributes,
4397      ...typeof config === "object" && config ? config : {}
4398    };
4399    config = this._mergeConfigObj(config);
4400    config = this._configAfterMerge(config);
4401    this._typeCheckConfig(config);
4402    return config;
4403  }
4404  _configAfterMerge(config) {
4405    config.container = config.container === false ? document.body : getElement(config.container);
4406    if (typeof config.delay === "number") {
4407      config.delay = {
4408        show: config.delay,
4409        hide: config.delay
4410      };
4411    }
4412    if (typeof config.title === "number") {
4413      config.title = config.title.toString();
4414    }
4415    if (typeof config.content === "number") {
4416      config.content = config.content.toString();
4417    }
4418    return config;
4419  }
4420  _getDelegateConfig() {
4421    const config = {};
4422    for (const [key, value] of Object.entries(this._config)) {
4423      if (this.constructor.Default[key] !== value) {
4424        config[key] = value;
4425      }
4426    }
4427    config.selector = false;
vendor: 11,041 bytes, lines 4428-4756
4428    config.trigger = "manual";
4429    return config;
4430  }
4431  _disposePopper() {
4432    if (this._popper) {
4433      this._popper.destroy();
4434      this._popper = null;
4435    }
4436    if (this.tip) {
4437      this.tip.remove();
4438      this.tip = null;
4439    }
4440  }
4441  // Static
4442  static jQueryInterface(config) {
4443    return this.each(function() {
4444      const data = Tooltip.getOrCreateInstance(this, config);
4445      if (typeof config !== "string") {
4446        return;
4447      }
4448      if (typeof data[config] === "undefined") {
4449        throw new TypeError(`No method named "${config}"`);
4450      }
4451      data[config]();
4452    });
4453  }
4454}
4455defineJQueryPlugin(Tooltip);
4456const NAME$3 = "popover";
4457const SELECTOR_TITLE = ".popover-header";
4458const SELECTOR_CONTENT = ".popover-body";
4459const Default$2 = {
4460  ...Tooltip.Default,
4461  content: "",
4462  offset: [0, 8],
4463  placement: "right",
4464  template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
4465  trigger: "click"
4466};
4467const DefaultType$2 = {
4468  ...Tooltip.DefaultType,
4469  content: "(null|string|element|function)"
4470};
4471class Popover extends Tooltip {
4472  // Getters
4473  static get Default() {
4474    return Default$2;
4475  }
4476  static get DefaultType() {
4477    return DefaultType$2;
4478  }
4479  static get NAME() {
4480    return NAME$3;
4481  }
4482  // Overrides
4483  _isWithContent() {
4484    return this._getTitle() || this._getContent();
4485  }
4486  // Private
4487  _getContentForTemplate() {
4488    return {
4489      [SELECTOR_TITLE]: this._getTitle(),
4490      [SELECTOR_CONTENT]: this._getContent()
4491    };
4492  }
4493  _getContent() {
4494    return this._resolvePossibleFunction(this._config.content);
4495  }
4496  // Static
4497  static jQueryInterface(config) {
4498    return this.each(function() {
4499      const data = Popover.getOrCreateInstance(this, config);
4500      if (typeof config !== "string") {
4501        return;
4502      }
4503      if (typeof data[config] === "undefined") {
4504        throw new TypeError(`No method named "${config}"`);
4505      }
4506      data[config]();
4507    });
4508  }
4509}
4510defineJQueryPlugin(Popover);
4511const NAME$2 = "scrollspy";
4512const DATA_KEY$2 = "bs.scrollspy";
4513const EVENT_KEY$2 = `.${DATA_KEY$2}`;
4514const DATA_API_KEY = ".data-api";
4515const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
4516const EVENT_CLICK = `click${EVENT_KEY$2}`;
4517const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
4518const CLASS_NAME_DROPDOWN_ITEM = "dropdown-item";
4519const CLASS_NAME_ACTIVE$1 = "active";
4520const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
4521const SELECTOR_TARGET_LINKS = "[href]";
4522const SELECTOR_NAV_LIST_GROUP = ".nav, .list-group";
4523const SELECTOR_NAV_LINKS = ".nav-link";
4524const SELECTOR_NAV_ITEMS = ".nav-item";
4525const SELECTOR_LIST_ITEMS = ".list-group-item";
4526const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
4527const SELECTOR_DROPDOWN = ".dropdown";
4528const SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle";
4529const Default$1 = {
4530  offset: null,
4531  // TODO: v6 @deprecated, keep it for backwards compatibility reasons
4532  rootMargin: "0px 0px -25%",
4533  smoothScroll: false,
4534  target: null,
4535  threshold: [0.1, 0.5, 1]
4536};
4537const DefaultType$1 = {
4538  offset: "(number|null)",
4539  // TODO v6 @deprecated, keep it for backwards compatibility reasons
4540  rootMargin: "string",
4541  smoothScroll: "boolean",
4542  target: "element",
4543  threshold: "array"
4544};
4545class ScrollSpy extends BaseComponent {
4546  constructor(element, config) {
4547    super(element, config);
4548    this._targetLinks = /* @__PURE__ */ new Map();
4549    this._observableSections = /* @__PURE__ */ new Map();
4550    this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element;
4551    this._activeTarget = null;
4552    this._observer = null;
4553    this._previousScrollData = {
4554      visibleEntryTop: 0,
4555      parentScrollTop: 0
4556    };
4557    this.refresh();
4558  }
4559  // Getters
4560  static get Default() {
4561    return Default$1;
4562  }
4563  static get DefaultType() {
4564    return DefaultType$1;
4565  }
4566  static get NAME() {
4567    return NAME$2;
4568  }
4569  // Public
4570  refresh() {
4571    this._initializeTargetsAndObservables();
4572    this._maybeEnableSmoothScroll();
4573    if (this._observer) {
4574      this._observer.disconnect();
4575    } else {
4576      this._observer = this._getNewObserver();
4577    }
4578    for (const section of this._observableSections.values()) {
4579      this._observer.observe(section);
4580    }
4581  }
4582  dispose() {
4583    this._observer.disconnect();
4584    super.dispose();
4585  }
4586  // Private
4587  _configAfterMerge(config) {
4588    config.target = getElement(config.target) || document.body;
4589    config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
4590    if (typeof config.threshold === "string") {
4591      config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value));
4592    }
4593    return config;
4594  }
4595  _maybeEnableSmoothScroll() {
4596    if (!this._config.smoothScroll) {
4597      return;
4598    }
4599    EventHandler.off(this._config.target, EVENT_CLICK);
4600    EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {
4601      const observableSection = this._observableSections.get(event.target.hash);
4602      if (observableSection) {
4603        event.preventDefault();
4604        const root = this._rootElement || window;
4605        const height = observableSection.offsetTop - this._element.offsetTop;
4606        if (root.scrollTo) {
4607          root.scrollTo({
4608            top: height,
4609            behavior: "smooth"
4610          });
4611          return;
4612        }
4613        root.scrollTop = height;
4614      }
4615    });
4616  }
4617  _getNewObserver() {
4618    const options = {
4619      root: this._rootElement,
4620      threshold: this._config.threshold,
4621      rootMargin: this._config.rootMargin
4622    };
4623    return new IntersectionObserver((entries) => this._observerCallback(entries), options);
4624  }
4625  // The logic of selection
4626  _observerCallback(entries) {
4627    const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);
4628    const activate = (entry) => {
4629      this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
4630      this._process(targetElement(entry));
4631    };
4632    const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
4633    const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
4634    this._previousScrollData.parentScrollTop = parentScrollTop;
4635    for (const entry of entries) {
4636      if (!entry.isIntersecting) {
4637        this._activeTarget = null;
4638        this._clearActiveClass(targetElement(entry));
4639        continue;
4640      }
4641      const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
4642      if (userScrollsDown && entryIsLowerThanPrevious) {
4643        activate(entry);
4644        if (!parentScrollTop) {
4645          return;
4646        }
4647        continue;
4648      }
4649      if (!userScrollsDown && !entryIsLowerThanPrevious) {
4650        activate(entry);
4651      }
4652    }
4653  }
4654  _initializeTargetsAndObservables() {
4655    this._targetLinks = /* @__PURE__ */ new Map();
4656    this._observableSections = /* @__PURE__ */ new Map();
4657    const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
4658    for (const anchor of targetLinks) {
4659      if (!anchor.hash || isDisabled(anchor)) {
4660        continue;
4661      }
4662      const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
4663      if (isVisible(observableSection)) {
4664        this._targetLinks.set(decodeURI(anchor.hash), anchor);
4665        this._observableSections.set(anchor.hash, observableSection);
4666      }
4667    }
4668  }
4669  _process(target) {
4670    if (this._activeTarget === target) {
4671      return;
4672    }
4673    this._clearActiveClass(this._config.target);
4674    this._activeTarget = target;
4675    target.classList.add(CLASS_NAME_ACTIVE$1);
4676    this._activateParents(target);
4677    EventHandler.trigger(this._element, EVENT_ACTIVATE, {
4678      relatedTarget: target
4679    });
4680  }
4681  _activateParents(target) {
4682    if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
4683      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
4684      return;
4685    }
4686    for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
4687      for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
4688        item.classList.add(CLASS_NAME_ACTIVE$1);
4689      }
4690    }
4691  }
4692  _clearActiveClass(parent) {
4693    parent.classList.remove(CLASS_NAME_ACTIVE$1);
4694    const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
4695    for (const node of activeNodes) {
4696      node.classList.remove(CLASS_NAME_ACTIVE$1);
4697    }
4698  }
4699  // Static
4700  static jQueryInterface(config) {
4701    return this.each(function() {
4702      const data = ScrollSpy.getOrCreateInstance(this, config);
4703      if (typeof config !== "string") {
4704        return;
4705      }
4706      if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
4707        throw new TypeError(`No method named "${config}"`);
4708      }
4709      data[config]();
4710    });
4711  }
4712}
4713EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
4714  for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
4715    ScrollSpy.getOrCreateInstance(spy);
4716  }
4717});
4718defineJQueryPlugin(ScrollSpy);
4719const NAME$1 = "tab";
4720const DATA_KEY$1 = "bs.tab";
4721const EVENT_KEY$1 = `.${DATA_KEY$1}`;
4722const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
4723const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
4724const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
4725const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
4726const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
4727const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
4728const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
4729const ARROW_LEFT_KEY = "ArrowLeft";
4730const ARROW_RIGHT_KEY = "ArrowRight";
4731const ARROW_UP_KEY = "ArrowUp";
4732const ARROW_DOWN_KEY = "ArrowDown";
4733const HOME_KEY = "Home";
4734const END_KEY = "End";
4735const CLASS_NAME_ACTIVE = "active";
4736const CLASS_NAME_FADE$1 = "fade";
4737const CLASS_NAME_SHOW$1 = "show";
4738const CLASS_DROPDOWN = "dropdown";
4739const SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle";
4740const SELECTOR_DROPDOWN_MENU = ".dropdown-menu";
4741const NOT_SELECTOR_DROPDOWN_TOGGLE = ":not(.dropdown-toggle)";
4742const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
4743const SELECTOR_OUTER = ".nav-item, .list-group-item";
4744const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
4745const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
4746const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
4747const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
4748class Tab extends BaseComponent {
4749  constructor(element) {
4750    super(element);
4751    this._parent = this._element.closest(SELECTOR_TAB_PANEL);
4752    if (!this._parent) {
4753      return;
4754    }
4755    this._setInitialAttributes(this._parent, this._getChildren());
4756    EventHandler.on(this._element, EVENT_KEYDOWN, (event) =>
vendor: 4,128 bytes, lines 4756-4879
4756 this._keydown(event));
4757  }
4758  // Getters
4759  static get NAME() {
4760    return NAME$1;
4761  }
4762  // Public
4763  show() {
4764    const innerElem = this._element;
4765    if (this._elemIsActive(innerElem)) {
4766      return;
4767    }
4768    const active = this._getActiveElem();
4769    const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
4770      relatedTarget: innerElem
4771    }) : null;
4772    const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
4773      relatedTarget: active
4774    });
4775    if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
4776      return;
4777    }
4778    this._deactivate(active, innerElem);
4779    this._activate(innerElem, active);
4780  }
4781  // Private
4782  _activate(element, relatedElem) {
4783    if (!element) {
4784      return;
4785    }
4786    element.classList.add(CLASS_NAME_ACTIVE);
4787    this._activate(SelectorEngine.getElementFromSelector(element));
4788    const complete = () => {
4789      if (element.getAttribute("role") !== "tab") {
4790        element.classList.add(CLASS_NAME_SHOW$1);
4791        return;
4792      }
4793      element.removeAttribute("tabindex");
4794      element.setAttribute("aria-selected", true);
4795      this._toggleDropDown(element, true);
4796      EventHandler.trigger(element, EVENT_SHOWN$1, {
4797        relatedTarget: relatedElem
4798      });
4799    };
4800    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4801  }
4802  _deactivate(element, relatedElem) {
4803    if (!element) {
4804      return;
4805    }
4806    element.classList.remove(CLASS_NAME_ACTIVE);
4807    element.blur();
4808    this._deactivate(SelectorEngine.getElementFromSelector(element));
4809    const complete = () => {
4810      if (element.getAttribute("role") !== "tab") {
4811        element.classList.remove(CLASS_NAME_SHOW$1);
4812        return;
4813      }
4814      element.setAttribute("aria-selected", false);
4815      element.setAttribute("tabindex", "-1");
4816      this._toggleDropDown(element, false);
4817      EventHandler.trigger(element, EVENT_HIDDEN$1, {
4818        relatedTarget: relatedElem
4819      });
4820    };
4821    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4822  }
4823  _keydown(event) {
4824    if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
4825      return;
4826    }
4827    event.stopPropagation();
4828    event.preventDefault();
4829    const children = this._getChildren().filter((element) => !isDisabled(element));
4830    let nextActiveElement;
4831    if ([HOME_KEY, END_KEY].includes(event.key)) {
4832      nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
4833    } else {
4834      const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4835      nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
4836    }
4837    if (nextActiveElement) {
4838      nextActiveElement.focus({
4839        preventScroll: true
4840      });
4841      Tab.getOrCreateInstance(nextActiveElement).show();
4842    }
4843  }
4844  _getChildren() {
4845    return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
4846  }
4847  _getActiveElem() {
4848    return this._getChildren().find((child) => this._elemIsActive(child)) || null;
4849  }
4850  _setInitialAttributes(parent, children) {
4851    this._setAttributeIfNotExists(parent, "role", "tablist");
4852    for (const child of children) {
4853      this._setInitialAttributesOnChild(child);
4854    }
4855  }
4856  _setInitialAttributesOnChild(child) {
4857    child = this._getInnerElement(child);
4858    const isActive = this._elemIsActive(child);
4859    const outerElem = this._getOuterElement(child);
4860    child.setAttribute("aria-selected", isActive);
4861    if (outerElem !== child) {
4862      this._setAttributeIfNotExists(outerElem, "role", "presentation");
4863    }
4864    if (!isActive) {
4865      child.setAttribute("tabindex", "-1");
4866    }
4867    this._setAttributeIfNotExists(child, "role", "tab");
4868    this._setInitialAttributesOnTargetPanel(child);
4869  }
4870  _setInitialAttributesOnTargetPanel(child) {
4871    const target = SelectorEngine.getElementFromSelector(child);
4872    if (!target) {
4873      return;
4874    }
4875    this._setAttributeIfNotExists(target, "role", "tabpanel");
4876    if (child.id) {
4877      this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`);
4878    }
4879  }
vendor: 6,099 bytes, lines 4880-5079
4880  _toggleDropDown(element, open) {
4881    const outerElem = this._getOuterElement(element);
4882    if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
4883      return;
4884    }
4885    const toggle = (selector, className) => {
4886      const element2 = SelectorEngine.findOne(selector, outerElem);
4887      if (element2) {
4888        element2.classList.toggle(className, open);
4889      }
4890    };
4891    toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
4892    toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
4893    outerElem.setAttribute("aria-expanded", open);
4894  }
4895  _setAttributeIfNotExists(element, attribute, value) {
4896    if (!element.hasAttribute(attribute)) {
4897      element.setAttribute(attribute, value);
4898    }
4899  }
4900  _elemIsActive(elem) {
4901    return elem.classList.contains(CLASS_NAME_ACTIVE);
4902  }
4903  // Try to get the inner element (usually the .nav-link)
4904  _getInnerElement(elem) {
4905    return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
4906  }
4907  // Try to get the outer element (usually the .nav-item)
4908  _getOuterElement(elem) {
4909    return elem.closest(SELECTOR_OUTER) || elem;
4910  }
4911  // Static
4912  static jQueryInterface(config) {
4913    return this.each(function() {
4914      const data = Tab.getOrCreateInstance(this);
4915      if (typeof config !== "string") {
4916        return;
4917      }
4918      if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
4919        throw new TypeError(`No method named "${config}"`);
4920      }
4921      data[config]();
4922    });
4923  }
4924}
4925EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) {
4926  if (["A", "AREA"].includes(this.tagName)) {
4927    event.preventDefault();
4928  }
4929  if (isDisabled(this)) {
4930    return;
4931  }
4932  Tab.getOrCreateInstance(this).show();
4933});
4934EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
4935  for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
4936    Tab.getOrCreateInstance(element);
4937  }
4938});
4939defineJQueryPlugin(Tab);
4940const NAME = "toast";
4941const DATA_KEY = "bs.toast";
4942const EVENT_KEY = `.${DATA_KEY}`;
4943const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
4944const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
4945const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
4946const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
4947const EVENT_HIDE = `hide${EVENT_KEY}`;
4948const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
4949const EVENT_SHOW = `show${EVENT_KEY}`;
4950const EVENT_SHOWN = `shown${EVENT_KEY}`;
4951const CLASS_NAME_FADE = "fade";
4952const CLASS_NAME_HIDE = "hide";
4953const CLASS_NAME_SHOW = "show";
4954const CLASS_NAME_SHOWING = "showing";
4955const DefaultType = {
4956  animation: "boolean",
4957  autohide: "boolean",
4958  delay: "number"
4959};
4960const Default = {
4961  animation: true,
4962  autohide: true,
4963  delay: 5e3
4964};
4965class Toast extends BaseComponent {
4966  constructor(element, config) {
4967    super(element, config);
4968    this._timeout = null;
4969    this._hasMouseInteraction = false;
4970    this._hasKeyboardInteraction = false;
4971    this._setListeners();
4972  }
4973  // Getters
4974  static get Default() {
4975    return Default;
4976  }
4977  static get DefaultType() {
4978    return DefaultType;
4979  }
4980  static get NAME() {
4981    return NAME;
4982  }
4983  // Public
4984  show() {
4985    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
4986    if (showEvent.defaultPrevented) {
4987      return;
4988    }
4989    this._clearTimeout();
4990    if (this._config.animation) {
4991      this._element.classList.add(CLASS_NAME_FADE);
4992    }
4993    const complete = () => {
4994      this._element.classList.remove(CLASS_NAME_SHOWING);
4995      EventHandler.trigger(this._element, EVENT_SHOWN);
4996      this._maybeScheduleHide();
4997    };
4998    this._element.classList.remove(CLASS_NAME_HIDE);
4999    reflow(this._element);
5000    this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
5001    this._queueCallback(complete, this._element, this._config.animation);
5002  }
5003  hide() {
5004    if (!this.isShown()) {
5005      return;
5006    }
5007    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
5008    if (hideEvent.defaultPrevented) {
5009      return;
5010    }
5011    const complete = () => {
5012      this._element.classList.add(CLASS_NAME_HIDE);
5013      this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
5014      EventHandler.trigger(this._element, EVENT_HIDDEN);
5015    };
5016    this._element.classList.add(CLASS_NAME_SHOWING);
5017    this._queueCallback(complete, this._element, this._config.animation);
5018  }
5019  dispose() {
5020    this._clearTimeout();
5021    if (this.isShown()) {
5022      this._element.classList.remove(CLASS_NAME_SHOW);
5023    }
5024    super.dispose();
5025  }
5026  isShown() {
5027    return this._element.classList.contains(CLASS_NAME_SHOW);
5028  }
5029  // Private
5030  _maybeScheduleHide() {
5031    if (!this._config.autohide) {
5032      return;
5033    }
5034    if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
5035      return;
5036    }
5037    this._timeout = setTimeout(() => {
5038      this.hide();
5039    }, this._config.delay);
5040  }
5041  _onInteraction(event, isInteracting) {
5042    switch (event.type) {
5043      case "mouseover":
5044      case "mouseout": {
5045        this._hasMouseInteraction = isInteracting;
5046        break;
5047      }
5048      case "focusin":
5049      case "focusout": {
5050        this._hasKeyboardInteraction = isInteracting;
5051        break;
5052      }
5053    }
5054    if (isInteracting) {
5055      this._clearTimeout();
5056      return;
5057    }
5058    const nextElement = event.relatedTarget;
5059    if (this._element === nextElement || this._element.contains(nextElement)) {
5060      return;
5061    }
5062    this._maybeScheduleHide();
5063  }
5064  _setListeners() {
5065    EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true));
5066    EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false));
5067    EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true));
5068    EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false));
5069  }
5070  _clearTimeout() {
5071    clearTimeout(this._timeout);
5072    this._timeout = null;
5073  }
5074  // Static
5075  static jQueryInterface(config) {
5076    return this.each(function() {
5077      const data = Toast.getOrCreateInstance(this, config);
5078      if (typeof config === "string") {
5079        if (typeof data[config] === "undefined") {
5080          throw new TypeError(`No method named "${config}"`);
5081        }
5082        data[config](this);
5083      }
5084    });
5085  }
5086}
5087enableDismissTrigger(Toast);
5088defineJQueryPlugin(Toast);
5089var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
5090function getDefaultExportFromCjs(x) {
5091  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
5092}
5093var hcOffcanvasNav$1 = { exports: {} };
5094(function(module) {
5095  !function(e, t) {
5096    {
5097      if (!e.document)
5098        throw new Error("HC Off-canvas Nav requires a browser to run.");
5099      module.exports = t(e);
5100    }
5101  }("undefined" != typeof window ? window : commonjsGlobal, function(re) {
5102    function i(e, t) {
5103      if (t = t || {}, !(e = "string" == typeof e ? "#" === e.charAt(0) && -1 === e.indexOf(" ") ? ie.querySelector(e) : ie.querySelectorAll(e) : e))
5104        return false;
5105      var ee = i.Helpers;
5106      void 0 !== t.maxWidth && (ee.deprecated("maxWidth", "disableAt", "option"), t.disableAt = t.maxWidth);
5107      var te = Object.assign({}, { width: 280, height: "auto", disableAt: false, pushContent: null, swipeGestures: true, expanded: false, position: "left", levelOpen: "overlap", levelSpacing: 40, levelTitles: true, closeOpenLevels: true, closeActiveLevel: false, navTitle: null, navClass: "", disableBody: true, closeOnClick: true, closeOnEsc: true, customToggle: null, activeToggleClass: null, bodyInsert: "prepend", keepClasses: true, removeOriginalNav: false, rtl: false, insertClose: true, insertBack: true, levelTitleAsBack: true, labelClose: "", labelBack: "Back" }, t);
5108      function ne(e2) {
5109        if (ae.length) {
5110          for (var t2 = false, n3 = (e2 = "string" == typeof e2 ? [e2] : e2).length, a3 = 0; a3 < n3; a3++)
5111            -1 !== ae.indexOf(e2[a3]) && (t2 = true);
5112          return t2;
5113        }
5114      }
5115      function n2(e2) {
5116        if (e2.querySelector("ul") || "UL" === e2.tagName) {
5117          var b = "hc-nav-" + ++oe, s = ee.printStyle("hc-offcanvas-" + oe + "-style"), o = "keydown.hcOffcanvasNav", v = te.activeToggleClass || "toggle-open", u = ee.createElement("nav", { id: b }), d = ee.createElement("div", { class: "nav-container" });
5118          u.addEventListener("click", ee.stopPropagation), u.appendChild(d);
5119          var n3, p, a3, f = null, h = null, m = null, t2 = {}, g = false, y = false, E = null, L = 0, A = 0, x = 0, C = null, O = {}, k = [], N = false, T = [], r2 = null, i2 = null, l = false, c = false;
5120          te.customToggle ? f = ee.getElements(te.customToggle) : (f = [ee.createElement("a", { href: "#" }, ee.createElement("span"))], e2.insertAdjacentElement("afterend", f[0])), f && f.length && f.forEach(function(e3) {
5121            e3.addEventListener("click", J(e3)), e3.classList.add("hc-nav-trigger", b), e3.setAttribute("role", "button"), e3.setAttribute("aria-label", (te.ariaLabels || {}).open), e3.setAttribute("aria-controls", b), e3.setAttribute("aria-expanded", false), e3.addEventListener("keydown", function(e4) {
5122              "Enter" !== e4.key && 13 !== e4.keyCode || setTimeout(function() {
5123                w(0, 0);
5124              }, 0);
5125            });
5126          });
5127          var w = function(e3, t3, n4) {
5128            var a4, r3, i3, s2;
5129            "number" != typeof t3 || "number" != typeof e3 && !T.length || (a4 = Array.prototype.filter.call(d.querySelectorAll(".nav-wrapper"), function(e4) {
5130              return e4.getAttribute("data-level") == t3 && ("number" != typeof n4 || "number" == typeof n4 && e4.getAttribute("data-index") == n4);
5131            })[0], a4 = ee.children(a4, ".nav-content")[0], r3 = ee.children(a4, ".nav-close, .nav-back"), a4 = ee.children(a4, "ul"), a4 = ee.children(a4, "li"), a4 = ee.children(a4, ":not(.nav-wrapper)"), a4 = [].concat(r3, a4), a4 = Array.prototype.map.call(a4, function(e4) {
5132              return Array.prototype.slice.call(e4.querySelectorAll('[tabindex="0"], a[role="menuitem"], a[href], button, textarea, input[type="text"], input[type="radio"], input[type="checkbox"], select'));
5133            }).flat(), (a4 = Array.prototype.filter.call(a4, function(e4) {
5134              return "-1" !== e4.getAttribute("tabindex");
5135            })) && (u.classList.add("user-is-tabbing"), i3 = a4[0], s2 = a4[a4.length - 1], "number" == typeof e3 ? a4[e3].focus() : (T[T.length - 1].focus(), T.pop()), ie.removeEventListener(o), ie.addEventListener(o, function(e4) {
5136              "Tab" !== e4.key && 9 !== e4.keyCode || (e4.shiftKey ? ie.activeElement === i3 && (e4.preventDefault(), s2.focus()) : ie.activeElement === s2 && (e4.preventDefault(), i3.focu
5136s()));
5137            })));
5138          }, S = function() {
5139            ie.removeEventListener(o), h && setTimeout(function() {
5140              h.focus();
5141            }, p);
5142          }, M = function() {
5143            d.style.transition = "none", u.style.display = "block";
5144            var e3 = ee.formatSizeVal(A = d.offsetWidth), t3 = ee.formatSizeVal(x = d.offsetHeight);
5145            s.add(".hc-offcanvas-nav." + b + ".nav-position-left .nav-container", "transform: translate3d(-" + e3 + ", 0, 0)"), s.add(".hc-offcanvas-nav." + b + ".nav-position-right .nav-container", "transform: translate3d(" + e3 + ", 0, 0)"), s.add(".hc-offcanvas-nav." + b + ".nav-position-top .nav-container", "transform: translate3d(0, -" + t3 + ", 0)"), s.add(".hc-offcanvas-nav." + b + ".nav-position-bottom .nav-container", "transform: translate3d(0, " + t3 + ", 0)"), s.insert(), u.style.display = "", d.style.transition = "", n3 = re.getComputedStyle(d).transitionProperty, p = ee.toMs(re.getComputedStyle(d).transitionDuration), a3 = re.getComputedStyle(d).transitionTimingFunction, te.pushContent && m && n3 && s.add(ee.getElementCssTag(m), "transition: " + n3 + " " + p + "ms " + a3), s.insert();
5146          }, j = function(e3) {
5147            var t3 = !!f && re.getComputedStyle(f[0]).display, n4 = !!te.disableAt && "max-width: " + (te.disableAt - 1) + "px", a4 = ee.formatSizeVal(te.width), r3 = ee.formatSizeVal(te.height), i3 = ee.formatSizeVal(te.levelSpacing);
5148            !ee.isNumeric(a4) && -1 === a4.indexOf("px") || (A = parseInt(a4)), !ee.isNumeric(r3) && -1 === r3.indexOf("px") || (x = parseInt(r3)), ne(["disableAt", "position"]) && s.reset(), s.add(".hc-offcanvas-nav." + b, "display: block", n4), s.add(".hc-nav-original." + b, "display: none", n4), t3 && s.add(".hc-nav-trigger." + b, "display: " + (t3 && "none" !== t3 ? t3 : "block"), n4), -1 !== ["left", "right"].indexOf(te.position) ? s.add(".hc-offcanvas-nav." + b + " .nav-container", "width: " + a4) : s.add(".hc-offcanvas-nav." + b + " .nav-container", "height: " + r3), s.add(".hc-offcanvas-nav." + b + ".nav-position-left .nav-container", "transform: translate3d(-" + a4 + ", 0, 0);"), s.add(".hc-offcanvas-nav." + b + ".nav-position-right .nav-container", "transform: translate3d(" + a4 + ", 0, 0);"), s.add(".hc-offcanvas-nav." + b + ".nav-position-top .nav-container", "transform: translate3d(0, -" + r3 + ", 0);"), s.add(".hc-offcanvas-nav." + b + ".nav-position-bottom .nav-container", "transform: translate3d(0, " + r3 + ", 0);"), s.add(".hc-offcanvas-nav." + b + ".nav-levels-overlap.nav-position-left li.level-open > .nav-wrapper", "transform: translate3d(-" + i3 + ", 0, 0)", n4), s.add(".hc-offcanvas-nav." + b + ".nav-levels-overlap.nav-position-right li.level-open > .nav-wrapper", "transform: translate3d(" + i3 + ", 0, 0)", n4), s.add(".hc-offcanvas-nav." + b + ".nav-levels-overlap.nav-position-top li.level-open > .nav-wrapper", "transform: translate3d(0, -" + i3 + ", 0)", n4), s.add(".hc-offcanvas-nav." + b + ".nav-levels-overlap.nav-position-bottom li.level-open > .nav-wrapper", "transform: translate3d(0, " + i3 + ", 0)", n4), s.insert(), e3 && !ne("pushContent") || (m = te.pushContent ? ee.getElements(te.pushContent)[0] : null), d.style.transition = "none";
5149            n4 = u.classList.contains(le), n4 = ["hc-offcanvas-nav", te.navClass || "", b, "nav-levels-" + (te.levelOpen || "none"), "nav-position-" + te.position, te.disableBody ? "disable-body" : "", ee.isIos ? "is-ios" : "", ee.isTouchDevice ? "touch-device" : "", n4 ? le : "", te.rtl ? "rtl" : "", true !== te.insertClose || te.labelClose ? "" : "nav-close-button-empty"].join(" ").trim().replace(/  +/g, " ");
5150            u.removeEventListener("click"), u.className = n4, u.setAttribute("aria-hidden", true), ie.documentElement.style.setProperty("--nav-level-spacing", te.levelSpacing + "px"), te.disableBody && u.addEventListener("click", $), e3 ? M() : setTimeout(M, 0);
5151          }, P = function() {
5152            t2 = function l2(e3, t3) {
5153              var n4 = [];
5154              Array.prototype.forEach.call(e3, function(e4) {
5155                var o2;
5156                ("UL" === e4.tagName || e4 instanceof HTMLHeadingElement) && (
5156o2 = { tagName: e4.tagName, id: t3, htmlClass: e4.getAttribute("class") || null, items: [] }, e4 instanceof HTMLHeadingElement ? o2.content = ee.clone(e4, false, true) : (null !== e4.getAttribute("data-nav-active") && (E = t3, e4.removeAttribute("data-nav-active")), Array.prototype.forEach.call(e4.children, function(e5) {
5157                  var t4 = null !== e5.getAttribute("data-nav-custom-content"), n5 = t4 ? e5.childNodes : Array.prototype.filter.call(e5.children, function(e6) {
5158                    return "UL" !== e6.tagName && !e6.querySelector("ul");
5159                  }).concat(e5.children.length ? [] : [e5.firstChild]), a4 = t4 ? [] : Array.prototype.slice.call(e5.querySelectorAll("ul")), r3 = a4.length ? [].concat(Array.prototype.filter.call(a4[0].parentNode.children, function(e6) {
5160                    return "UL" === e6.tagName || e6 instanceof HTMLHeadingElement;
5161                  })) : [], a4 = null;
5162                  if (!n5.length) {
5163                    for (var i3 = "", s2 = 0; s2 < e5.childNodes.length; s2++)
5164                      e5.childNodes[s2].nodeType === Node.TEXT_NODE && (i3 += e5.childNodes[s2].textContent.trim());
5165                    n5 = [ie.createTextNode(i3)];
5166                  }
5167                  r3.length && (ee.data(e5, "hc-uniqid") ? a4 = ee.data(e5, "hc-uniqid") : (a4 = Math.random().toString(36).substr(2), ee.data(e5, "hc-uniqid", a4))), null !== e5.getAttribute("data-nav-active") && (E = a4, e5.removeAttribute("data-nav-active")), o2.items.push({ id: a4, htmlClass: e5.getAttribute("class") || "", content: n5, custom: t4, subnav: r3.length ? l2(r3, a4) : [], highlight: null !== e5.getAttribute("data-nav-highlight") });
5168                })), n4.push(o2));
5169              });
5170              return n4;
5171            }("UL" === e2.tagName ? [e2] : Array.prototype.filter.call(e2.children, function(e3) {
5172              return "UL" === e3.tagName || e3 instanceof HTMLHeadingElement;
5173            }), null);
5174          }, _ = function(e3) {
5175            if (e3) {
5176              for (; d.firstChild; )
5177                d.removeChild(d.firstChild);
5178              O = {};
5179            }
5180            !function p2(n4, e4, f2, h2, t3, a4) {
5181              var m2 = ee.createElement("div", { class: "nav-wrapper nav-wrapper-" + f2, "data-level": f2, "data-index": t3 || 0 });
5182              var r3 = ee.createElement("div", { class: "nav-content" });
5183              m2.addEventListener("click", ee.stopPropagation);
5184              m2.appendChild(r3);
5185              e4.appendChild(m2);
5186              h2 && (0 === f2 || 0 < f2 && "overlap" === te.levelOpen) && (e4 = "string" == typeof h2 ? h2 : ee.clone(re.jQuery && h2 instanceof re.jQuery && h2.length ? h2[0] : h2, true, true), r3.insertBefore(ee.createElement("h2", { id: 0 === f2 ? b + "-nav-title" : null, class: 0 === f2 ? "nav-title" : "level-title" }, e4), r3.firstChild), 0 === f2 && "string" == typeof h2 && u.setAttribute("aria-labelledby", b + "-nav-title"));
5187              var i3 = -1;
5188              n4.forEach(function(e5, t4) {
5189                var d2;
5190                "UL" === e5.tagName ? (i3++, d2 = ee.createElement("ul", { id: e5.id ? 1 < n4.length ? "menu-" + e5.id + "-" + i3 : "menu-" + e5.id : null, role: "menu", "aria-level": f2 + 1 }), r3.appendChild(d2), te.keepClasses && e5.htmlClass && d2.classList.add.apply(d2.classList, e5.htmlClass.split(" ")), e5.items.forEach(function(t5, e6) {
5191                  var n5 = t5.content;
5192                  if (t5.custom) {
5193                    var a5 = ee.createElement("li", { class: "nav-item nav-item-custom" }, ee.createElement("div", { class: "nav-custom-content" }, Array.prototype.map.call(n5, function(e7) {
5194                      return ee.clone(e7, true, true);
5195                    })));
5196                    return te.keepClasses && t5.htmlClass && a5.classList.add.apply(a5.classList, t5.htmlClass.split(" ")), void d2.appendChild(a5);
5197                  }
5198                  var r4, i4 = Array.prototype.filter.call(n5, function(e7) {
5199                    return "A" === e7.tagName || e7.nodeType !== Node.TEXT_NODE && e7.querySelector("a");
5200                  })[0];
5201                  i4 ? (r4 = ee.clone(i4, false, true)).classList.add("nav-item-link") : r4 = ee.createElement(t5.subnav.length ? "a" : "span", { class: "nav-item-link" }, Array.prototype.map.call(n5, function(e7) {
5202                    return ee.clone(e7, true, true);
5203                  })), "A" === r4.tagName && (r4.setAttribute("tabindex", "0"), r4.setAttribute("role", "menuitem"), r4.getAttribute("href") || r4.setAttribute("href", "#")), i4 && r4.addEventListener("click", function(e7) {
5204                    e7.stopPropagation(), ee.hasListener(i4, "click") && i4.click();
5205                  }), "#" === r4.getAttribute("href") && r4.addEventListener("click", ee.preventDefault), te.closeOnClick && (W() ? "A" !== r4.tagName || "false" === r4.dataset.navClose || null !== r4.getAttribute("disabled") && "false" !== r4.getAttribute("disabled") || t5.subnav.length && (!r4.getAttribute("href") || "#" === r4.getAttribute("href").charAt(0)) || r4.addEventListener("click", $) : "A" !== r4.tagName || "false" === r4.dataset.navClose || null !== r4.getAttribute("disabled") && "false" !== r4.getAttribute("disabled") || r4.addEventListener("click", $));
5206                  var s3, o3, l3, c2, v2, u2 = ee.createElement("li", { class: "nav-item" });
5207                  u2.appendChild(r4), d2.appendChild(u2), te.keepClasse
5207s && t5.htmlClass && u2.classList.add.apply(u2.classList, t5.htmlClass.split(" ")), t5.highlight && u2.classList.add("nav-highlight"), ee.wrap(r4, ee.createElement("div", { class: "nav-item-wrapper" })), t5.subnav.length && (s3 = f2 + 1, o3 = t5.id, l3 = "", O[s3] || (O[s3] = 0), u2.classList.add("nav-parent"), W() ? (c2 = O[s3], (v2 = ee.createElement("input", { type: "checkbox", id: b + "-" + s3 + "-" + c2, class: "hc-chk", tabindex: -1, "data-level": s3, "data-index": c2, value: o3 })).addEventListener("click", ee.stopPropagation), v2.addEventListener("change", Q), u2.insertBefore(v2, u2.firstChild), a5 = function(e7) {
5208                    e7.addEventListener("click", function(e8) {
5209                      e8.stopPropagation(), v2.setAttribute("checked", "true" !== v2.getAttribute("checked")), "createEvent" in ie && ((e8 = ie.createEvent("HTMLEvents")).initEvent("change", false, true), v2.dispatchEvent(e8));
5210                    }), e7.addEventListener("keydown", function(e8) {
5211                      "Enter" !== e8.key && 13 !== e8.keyCode || (N = true, T.push(this));
5212                    }), e7.setAttribute("aria-controls", 1 < t5.subnav.length ? t5.subnav.filter(function(e8) {
5213                      return "UL" === e8.tagName;
5214                    }).map(function(e8, t6) {
5215                      return "menu-" + e8.id + "-" + t6;
5216                    }).join(" ") : "menu-" + o3), e7.setAttribute("aria-haspopup", "overlap" === te.levelOpen), e7.setAttribute("aria-expanded", false);
5217                  }, -1 !== k.indexOf(o3) && (m2.classList.add("sub-level-open"), m2.addEventListener("click", function() {
5218                    return Z(s3, c2);
5219                  }), u2.classList.add("level-open"), v2.setAttribute("checked", true)), l3 = true === te.levelTitles ? n5[0].textContent.trim() : "", r4.getAttribute("href") && "#" !== r4.getAttribute("href") ? ((n5 = ee.createElement("a", { href: "#", class: "nav-next", "aria-label": (te.ariaLabels || {}).submenu + ": " + l3, role: "menuitem", tabindex: 0 }, ee.createElement("span"))).addEventListener("click", ee.preventClick()), a5(n5), te.rtl ? r4.parentNode.appendChild(n5) : r4.parentNode.insertBefore(n5, r4.nextSibling)) : (r4.appendChild(ee.createElement("span", { class: "nav-next" }, ee.createElement("span"))), a5(r4))) : r4.setAttribute("aria-expanded", true), O[s3]++, p2(t5.subnav, u2, s3, l3, O[s3] - 1, "string" == typeof h2 ? h2 : ""));
5220                })) : r3.appendChild(e5.content);
5221              });
5222              f2 && void 0 !== t3 && false !== te.insertBack && "overlap" === te.levelOpen && (s2 = ee.children(r3, "ul"), a4 = te.levelTitleAsBack && a4 || te.labelBack || "", l2 = ee.createElement("a", { href: "#", class: "nav-back-button", role: "menuitem", tabindex: 0 }, [a4, ee.createElement("span")]), true === te.insertBack || 0 === te.insertBack ? (a4 = ee.createElement("div", { class: "nav-back" }, l2), r3.insertBefore(a4, ee.children(r3, ":not(.level-title)")[0])) : (o2 = ee.createElement("li", { class: "nav-item nav-back" }, l2), ee.insertAt(o2, true === te.insertBack ? 0 : te.insertBack, s2)), o2 = function() {
5223                return Z(f2, t3);
5224              }, ee.wrap(l2, ee.createElement("div", { class: "nav-item-wrapper" })), l2.addEventListener("click", ee.preventClick(o2)), l2.addEventListener("keydown", function(e5) {
5225                "Enter" !== e5.key && 13 !== e5.keyCode || (N = true);
5226              }));
5227              {
5228                var s2, o2, l2;
5229                0 === f2 && false !== te.insertClose && ((s2 = ee.createElement("a", { href: "#", class: "nav-close-button" + (te.labelClose ? " has-label" : ""), role: "menuitem", tabindex: 0, "aria-label": te.labelClose ? "" : (te.ariaLabels || {}).close }, [te.labelClose || "", ee.createElement("span")])).addEventListener("click", ee.preventClick($)), s2.addEventListener("keydown", function(e5) {
5230                  "Enter" !== e5.key && 13 !== e5.keyCode || S();
5231                }), h2 && true === te.insertClose ? r3.insertBefore(ee.createElement("div", { class: "nav-close" }, s2), r3.children[1]) : true === te.insertClose ? r3.insertBefore(ee.createElement("div", { class: "nav-close" }, s2), r3.firstChild) : (o2 = ee.children(r3, "ul"), l2 = ee.createElement("li", { class: "nav-item nav-close" }, s2), ee.wrap(s2, ee.createElement("div", { class: "nav-item-wrapper" })), ee.insertAt(l2, te.insertClose, o2)));
5232              }
5233            }(t2, d, 0, te.navTitle);
5234          }, B = function(t3) {
5235            return function(e3) {
5236              "left" !== te.position && "right" !== te.position || (r2 = e3.touches[0].clientX, i2 = e3.touches[0].clientY, "doc" === t3 ? c || (ie.addEventListener("touchmove", D, ee.supportsPassive), ie.addEventListener("touchend", U, ee.supportsPassive)) : (c = true, d.addEventListener("touchmove", z, ee.supportsPassive), d.addEventListener("touchend", I, ee.supportsPassive)));
5237            };
5238          }, q = function(e3, t3) {
5239            re.addEventListener("touchmove", ee.preventDefault, ee.supportsPassive), u.style.visibility = "visible", d.style[ee.browserPrefix("transition")] = "none", ee.setTransform(d, e3, te.position), m && (m.style[ee.browserPrefix("transition")] = "none", ee.setTransform(m, t3, te.position));
5240          }, H = function(e3, t3, n4, a4) {
5241            void 0 === t3 && (t3 = true), void 0 === n4 && (n4 = false), void 0 === a4 && (a4 = false), re.removeEventListener("touchmove", ee.preventDefault, ee.supportsPassive), d.style[ee.browserPrefix("transition")] = "", ee.setTransform(d, n4, te.position), m && (m.style[ee.browserPrefix("transition")] = "", ee.setTransform(m, a4, te.position)), "open" === e3 ? K() : ($(), t3 ? setTimeout(function() {
5242              u.style.visibility = "";
5243            }, p) : u.style.visibility = "");
5244          }, D = function(e3) {
5245            var t3 = 0 - (r2 - e3.touches[0].clientX), e3 = "overlap" === te.levelOpen ? Y() * te.levelSpacing : 0, e3 = A + e3, t3 = "left" === te.position ? Math.min(Math.max(t3, 0), e3) : Math.abs(Math.min(Math.max(t3, -e3), 0));
5246            ("left" === te.position && r2 < 50 || "right" === te.position && r2 > ie.body.clientWidth - 50) && (l = true, q(0 - (A - t3), Math.abs(t3)));
5247          }, U = function e3(t3) {
5248            var n4;
5249            ie.removeEventListener("touchmove", D), ie.removeEventListener("touchend", e3), l && (n4 = t3.changedTouches[t3.changedTouches.length - 1], t3 = 0 - (r2 - n4.clientX), n4 = "overlap" === te.levelOpen ? Y() * te.levelSpacing : 0, n4 = A + n4, (t3 = "left" === te.position ? Math.min(Math.max(t3, 0), n4) : Math.abs(Math.min(Math.max(t3, -n4), 0))) ? H(70 < t3 ? "open" : "close") : H("close", false), i2 = r2 = null, l = false);
5250          }, z = function(e3) {
5251            var t3 = 0 - (r2 - e3.touches[0].clientX), n4 = 0 - (i2 - e3.touches[0].clientY);
5252            Math.abs(t3) < Math.abs(n4) || (e3 = "overlap" === te.levelOpen ? Y() * te.levelSpacing : 0, n4 = A + e3, t3 = "left" === te.position ? Math.min(Math.max(t3, -n4), 0) : Math.min(Math.max(t3, 0), n4), ("left" === te.position && t3 < 0 || "right" === te.position && 0 < t3) && (l = true, q(-Math.abs(t3) + e3, n4 - Math.abs(t3))));
5253          }, I = function e3(t3) {
5254            var n4, a4;
5255            d.removeEventListener("touchmove", z), d.removeEventListener("touchend", e3), c = false, l && (n4 = t3.changedTouches[t3.changedTouches.length - 1], a4 = 0 - (r2 - n4.clientX), t3 = "overlap" === te.levelOpen ? Y() * te.levelSpacing : 0, n4 = A + t3, (a4 = "left" === te.position ? Math.abs(Math.min(Math.max(a4, -n4), 0)) : Math.abs(Math.min(Math.max(a4, 0), n4))) === n4 ? H("close", false) : 50 < a4 ? H("close") : H("open", true, t3, n4), i2 = r2 = null, l = false);
5256          };
5257          j(), P(), _(), true === te.removeOriginalNav ? e2.parentNode.removeChild(e2) : e2.classList.add("hc-nav-original", b), "prepend" === te.bodyInsert ? ie.body.insertBefore(u, ie.body.firstChild) : "append" === te.bodyInsert && ie.body.appendChild(u), true === te.expanded && (y = true, K()), te.swipeGestures && (d.addEventListener("touchstart", B("nav"), ee.supportsPassive), ie.addEventListener("touchstart", B("doc"), ee.supportsPassive)), te.closeOnEsc && ie.addEventListener("keydown", function(e3) {
5258            !g || "Escape" !== e3.key && 27 !== e3.keyCode || (0 === (e3 = Y()) ? ($(), S()) : (Z(e3, G()), w(null, e3 - 1)));
5259          });
5260          B = ee.debounce(M, 500);
5261          re.addEventListener("resize", B, ee.supportsPassive);
5262          var X = function(e3, t3, n4) {
5263            var a4, r3, i3 = ie.querySelector("#" + b + "-" + e3 + "-" + t3);
5264            i3 && (a4 = i3.value, t3 = (r3 = i3.parentNode).closest(".
5264nav-wrapper"), i3.setAttribute("checked", false), t3.classList.remove("sub-level-open"), r3.classList.remove("level-open"), r3.querySelectorAll("[aria-controls]")[0].setAttribute("aria-expanded", false), -1 !== k.indexOf(a4) && k.splice(k.indexOf(a4), 1), n4 && "overlap" === te.levelOpen && (t3.removeEventListener("click"), t3.addEventListener("click", ee.stopPropagation), ee.setTransform(d, (e3 - 1) * te.levelSpacing, te.position), m && (t3 = "x" === ee.getAxis(te.position) ? A : x, ee.setTransform(m, t3 + (e3 - 1) * te.levelSpacing, te.position))));
5265          };
5266          return u.on = function(e3, t3) {
5267            u.addEventListener(e3, t3);
5268          }, u.off = function(e3, t3) {
5269            u.removeEventListener(e3, t3);
5270          }, u.getSettings = function() {
5271            return Object.assign({}, te);
5272          }, u.isOpen = F, u.open = K, u.close = $, u.toggle = J(null), u.update = function(e3, t3) {
5273            if (ae = [], "object" == typeof e3) {
5274              for (var n4 in e3)
5275                te[n4] !== e3[n4] && ae.push(n4);
5276              te = Object.assign({}, te, e3);
5277            }
5278            true === e3 || true === t3 ? te.removeOriginalNav ? console.warn("%c! HC Offcanvas Nav:%c Can't update because original navigation has been removed. Disable `removeOriginalNav` option.", "color: #fa253b", "color: default") : (j(true), P(), _(true)) : (j(true), _(true));
5279          }, u;
5280        }
5281        function Q() {
5282          var e3 = Number(this.dataset.level), t3 = Number(this.dataset.index);
5283          ("true" === this.getAttribute("checked") ? R : Z)(e3, t3);
5284        }
5285        function V(e3) {
5286          e3.classList.remove(v), e3.setAttribute("aria-expanded", false);
5287        }
5288        function W() {
5289          return false !== te.levelOpen && "none" !== te.levelOpen;
5290        }
5291        function F() {
5292          return g;
5293        }
5294        function Y() {
5295          return k.length ? Number(Array.prototype.filter.call(d.querySelectorAll(".hc-chk"), function(e3) {
5296            return e3.value == k[k.length - 1];
5297          })[0].dataset.level) : 0;
5298        }
5299        function G() {
5300          return k.length ? Number(Array.prototype.filter.call(d.querySelectorAll(".hc-chk"), function(e3) {
5301            return e3.value == k[k.length - 1];
5302          })[0].dataset.index) : 0;
5303        }
5304        function K(e3, t3) {
5305          var n4, a4;
5306          if ((!g || void 0 !== t3) && (g || (g = true, u.style.visibility = "visible", u.setAttribute("aria-hidden", false), u.classList.add(le), f && (f.forEach(V), h && (h.classList.add(v), h.setAttribute("aria-expanded", true))), "expand" === te.levelOpen && C && clearTimeout(C), te.disableBody && (L = re.pageYOffset || se.scrollTop || ie.documentElement.scrollTop || ie.body.scrollTop, ie.documentElement.scrollHeight > ie.documentElement.clientHeight && se.classList.add("hc-nav-yscroll"), ie.body.classList.add("hc-nav-open"), L && (ie.body.style.top = -L + "px")), m && (n4 = "x" === ee.getAxis(te.position) ? A : x, ee.setTransform(m, n4, te.position)), y ? y = false : (u._eventListeners.toggle && u._eventListeners.toggle.forEach(function(e4) {
5307            e4.fn(ee.customEventObject("toggle", u, u, { action: "open" }), Object.assign({}, te));
5308          }), setTimeout(function() {
5309            u._eventListeners.open && u._eventListeners.open.forEach(function(e4) {
5310              e4.fn(ee.customEventObject("open", u, u), Object.assign({}, te));
5311            });
5312          }, p))), W())) {
5313            if ("number" != typeof e3 && !ee.isNumeric(e3) || "number" != typeof t3 && !ee.isNumeric(t3))
5314              E ? (a4 = Array.prototype.filter.call(d.querySelectorAll(".hc-chk"), function(e4) {
5315                return e4.value == E;
5316              })[0], !te.closeActiveLevel && te.closeOpenLevels || (E = null)) : false === te.closeOpenLevels && (a4 = (a4 = Array.prototype.filter.call(d.querySelectorAll(".hc-chk"), function(e4) {
5317                return "true" === e4.getAttribute("checked");
5318              }))[a4.length - 1]);
5319            else if (!(a4 = ie.querySelector("#" + b + "-" + e3 + "-" + t3)))
5320              return void console.warn("HC Offcanvas Nav: level " + e3 + " doesn't have index " + t3);
5321            if (a4) {
5322              var r3 = [];
5323              if (e3 = Number(a4.dataset.level), t3 = Number(a4.dataset.index), 1 < e3) {
5324                for (var i3 = []; a4 && a4 !== ie; a4 = a4.parentNode)
5325                  a4.matches(".nav-wrapper") && i3.push(a4);
5326                for (var s2 = 0; s2 < i3.length; s2++) {
5327                  var o2 = i3[s2], l2 = Number(o2.dataset.level);
5328                  0 < l2 && r3.push({ level: l2, index: Number(o2.dataset.index) });
5329                }
5330                r3 = r3.reverse();
5331              }
5332              r3.push({ level: e3, index: t3 });
5333              for (var c2 = 0; c2 < r3.length; c2++)
5334                R(r3[c2].level, r3[c2].index, false);
5335            }
5336          }
5337        }
5338        function $() {
5339          var e3;
5340          g && (g = false, m && ee.setTransform(m, false), u.classList.remove(le), u.classList.remove("user-is-tabbing"), u.setAttribute("aria-hidden", true), d.removeAttribute("style"), f && f.forEach(V), "expand" === te.levelOpen && -1 !== ["top", "bottom"].indexOf(te.position) ? Z(0) : W() && (C = setTimeout(function() {
5341            Z(0);
5342          }, "expand" === te.levelOpen ? p : 0)), te.disableBody && (ie.body.classList.remove("hc-nav-open"), se.classList.remove("hc-nav-yscroll"), L && (ie.body.style.top = "", ie.body.scrollTop = L, se.scrollTop = L, "bottom" === te.position && (e3 = L, setTimeout(function() {
5343            ie.body.scrollTop = e3, se.scrollTop = e3;
5344          }, 0)), L = 0)), u._eventListeners.toggle && u._eventListeners.toggle.forEach(function(e4) {
5345            e4.fn(ee.customEventObject("toggle", u, u, { action: "close" }), Object.assign({}, te));
5346          }), setTimeout(function() {
5347            u.style.visibility = "", u._eventListeners.close && u._eventListeners.close.forEach(function(e4) {
5348              e4.fn(ee.customEventObject("close", u, u), Object.assign({}, te));
5349            }), u._eventListeners["close.once"] && u._eventListeners["close.once"].forEach(function(e4) {
5350              e4.fn(ee.customEventObject("close.once", u, u), Object.assign({}, te));
5351            }), u.removeEventListener("close.once");
5352          }, p));
5353        }
5354        function J(t3) {
5355          return function(e3) {
5356            e3 && (e3.preventDefault(), e3.stopPropagation()), t3 && (h = t3), (g ? $ : K)();
5357          };
5358        }
5359        function R(t3, n4, e3) {
5360          void 0 === e3 && (e3 = true);
5361          var a4 = ie.querySelector("#" + b + "-" + t3 + "-" + n4), r3 = a4.value, i3 = a4.parentNode, s2 = i3.closest(".
5361nav-wrapper"), o2 = ee.children(i3, ".nav-wrapper")[0];
5362          false === e3 && (o2.style.transition = "none"), a4.setAttribute("checked", true), s2.classList.add("sub-level-open"), i3.classList.add("level-open"), i3.querySelectorAll("[aria-controls]")[0].setAttribute("aria-expanded", true), false === e3 && setTimeout(function() {
5363            o2.style.transition = "";
5364          }, p), -1 === k.indexOf(r3) && k.push(r3), "overlap" === te.levelOpen && (s2.addEventListener("click", function() {
5365            return Z(t3, n4);
5366          }), ee.setTransform(d, t3 * te.levelSpacing, te.position), m && (s2 = "x" === ee.getAxis(te.position) ? A : x, ee.setTransform(m, s2 + t3 * te.levelSpacing, te.position))), u._eventListeners["open.level"] && u._eventListeners["open.level"].forEach(function(e4) {
5367            e4.fn(ee.customEventObject("open.level", u, o2, { currentLevel: t3, currentIndex: n4 }), Object.assign({}, te));
5368          }), N && (w(0, t3, n4), N = false);
5369        }
5370        function Z(t3, e3) {
5371          for (var n4, a4 = t3; a4 <= Object.keys(O).length; a4++)
5372            if (a4 === t3 && void 0 !== e3)
5373              X(t3, e3, true);
5374            else if (0 !== t3 || te.closeOpenLevels)
5375              for (var r3 = 0; r3 < O[a4]; r3++)
5376                X(a4, r3, a4 === t3);
5377            else
5378              ;
5379          0 < t3 && u._eventListeners["close.level"] && (n4 = ie.querySelector("#" + b + "-" + t3 + "-" + e3).closest(".nav-wrapper"), u._eventListeners["close.level"].forEach(function(e4) {
5380            e4.fn(ee.customEventObject("close.level", u, n4, { currentLevel: t3 - 1, currentIndex: G() }), Object.assign({}, te));
5381          })), N && (w(null, t3 - 1), N = false);
5382        }
5383        console.error("%c! HC Offcanvas Nav:%c Navigation must contain <ul> element.", "color: #fa253b", "color: default");
5384      }
5385      te.ariaLabels = Object.assign({}, { open: "Open Menu", close: "Close Menu", submenu: "Submenu" }, t.ariaLabels);
5386      var ae = [];
5387      if (Array.isArray(e) || e instanceof NodeList) {
5388        for (var a2 = [], r = 0; r < e.length; r++)
5389          a2.push(n2(e[r]));
5390        return 1 < a2.length ? a2 : a2[0];
5391      }
5392      return n2(e);
5393    }
5394    var n, a, ie = re.document, se = ie.getElementsByTagName("html")[0], oe = 0, le = "nav-open";
5395    return void 0 !== re.jQuery && (n = re.jQuery, a = "hcOffcanvasNav", n.fn.extend({ hcOffcanvasNav: function(t) {
5396      return this.length ? this.each(function() {
5397        var e = n.data(this, a);
5398        e ? e.update(t) : (e = new i(this, t), n.data(this, a, e));
5399      }) : this;
5400    } })), re.hcOffcanvasNav = re.hcOffcanvasNav || i, i;
5401  }), function(n) {
5402    var e = n.hcOffcanvasNav, o = n.document;
5403    "function" != typeof Object.assign && Object.defineProperty(Object, "assign", { value: function(e2, t2) {
5404      if (null == e2)
5405        throw new TypeError("Cannot convert undefined or null to object");
5406      for (var n2 = Object(e2), a2 = 1; a2 < arguments.length; a2++) {
5407        var r2 = arguments[a2];
5408        if (null != r2)
5409          for (var i2 in r2)
5410            Object.prototype.hasOwnProperty.call(r2, i2) && (n2[i2] = r2[i2]);
5411      }
5412      return n2;
5413    }, writable: true, configurable: true }), Element.prototype.closest || (Element.prototype.closest = function(e2) {
5414      var t2 = this;
5415      do {
5416        if (Element.prototype.matches.call(t2, e2))
5417          return t2;
5418      } while (null !== (t2 = t2.parentElement || t2.parentNode) && 1 === t2.nodeType);
5419      return null;
5420    }), Array.prototype.flat || Object.defineProperty(Array.prototype, "flat", { configurable: true, value: function n2() {
5421      var a2 = isNaN(arguments[0]) ? 1 : Number(arguments[0]);
5422      return a2 ? Array.prototype.reduce.call(this, function(e2, t2) {
5423        return Array.isArray(t2) ? e2.push.apply(e2, n2.call(t2, a2 - 1)) : e2.push(t2), e2;
5424      }, []) : Array.prototype.slice.call(this);
5425    }, writable: true }), Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector);
5426    var t = false;
5427    try {
5428      var a = Object.defineProperty({}, "passive", { get: function() {
5429        t = { passive: false };
5430      } });
5431      n.addEventListener("testPassive", null, a), n.removeEventListener("testPassive", null, a);
5432    } catch (e2) {
5433    }
5434    function r(e2) {
5435      return !isNaN(parseFloat(e2)) && isFinite(e2);
5436    }
5437    function i(e2) {
5438      return "auto" === e2 ? "100%" : r(e2) && 0 !== e2 ? e2 + "px" : e2;
5439    }
5440    function s(e2) {
5441      var t2 = ["Webkit", "Moz", "Ms", "O"], n2 = (o.body || o.documentElement).style, a2 = e2.charAt(0).toUpperCase() + e2.slice(1);
5442      if (void 0 !== n2[e2])
5443        return e2;
5444      for (var r2 = 0; r2 < t2.length; r2++)
5445        if (void 0 !== n2[t2[r2] + a2])
5446          return t2[r2] + a2;
5447      return false;
5448    }
5449    function l(e2, t2) {
5450      if (e2 instanceof Element)
5451        return t2 ? Array.prototype.filter.call(e2.children, function(e3) {
5452          return e3.matches(t2);
5453        }) : e2.children;
5454      var n2 = [];
5455      return Array.prototype.forEach.call(e2, function(e3) {
5456        n2 = t2 ? n2.concat(Array.prototype.filter.call(e3.children, function(e4) {
5457          return e4.matches(t2);
5458        })) : n2.concat(Array.prototype.slice.call(e3.children));
5459      }), n2;
5460    }
5461    var c = (/iPad|iPhone|iPod/.test(navigator.userAgent) || !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform)) && !n.MSStream, v = "ontouchstart" in n || navigator.maxTouchPoints || n.DocumentTouch && o instanceof DocumentTouch, u = function(o2) {
5462      var l2 = Node.prototype[o2 + "EventListener"];
5463      return function(e2, t2, n2) {
5464        if (this) {
5465          var a2 = e2.split(".")[0];
5466          if (this._eventListeners = this._eventListeners || {}, "add" === o2) {
5467            this._eventListeners[e2] = this._eventListeners[e2] || [];
5468            var r2 = { fn: t2 };
5469            n2 && (r2.options = n2), this._eventListeners[e2].push(r2), l2.call(this, a2, t2, n2);
5470          } else if ("function" == typeof t2)
5471            for (var i2 in l2.call(this, a2, t2, n2), this._eventListeners)
5472              this._eventListeners[i2] = this._eventListeners[i2].filter(function(e3) {
5473                return e3.fn !== t2;
5474              }), this._eventListeners[i2].length || delete this._eventListeners[i2];
5475          else if (this._eventListeners[e2]) {
5476            for (var s2 = this._eventListeners[e2].length; s2--; )
5477              l2.call(this, a2, this._eventListeners[e2][s2].fn, this._eventListeners[e2][s2].options), this._eventListeners[e2].splice(s2, 1);
5478            this._eventListeners[e2].length || delete this._eventListeners[e2];
5479          }
5480        }
5481      };
5482    };
5483    Node.prototype.addEventListener = u("add"), Node.prototype.removeEventListener = u("remove");
5484    function d(e2, t2, n2) {
5485      void 0 === t2 && (t2 = {});
5486      var a2, r2 = o.createElement(e2);
5487      for (a2 in t2)
5488        "class" !== a2 ? !t2[a2] && 0 !== t2[a2] || r2.setAttribute(a2, t2[a2]) : r2.className = t2[a2];
5489      if (n2) {
5490        Array.isArray(n2) || (n2 = [n2]);
5491        for (var i2 = 0; i2 < n2.length; i2++)
5492          if ("object" == typeof n2[i2] && n2[i2].length && !n2[i2].nodeType)
5493            for (var s2 = 0; s2 < n2[i2].length; s2++)
5494              r2.appendChild(n2[i2][s2]);
5495          else
5496            r2.appendChild("string" == typeof n2[i2] ? o.createTextNode(n2[i2]) : n2[i2]);
5497      }
5498      return r2;
5499    }
5500    function p(e2) {
5501      return -1 !== ["left", "right"].indexOf(e2) ? "x" : "y";
5502    }
5503    a = function e2(t2) {
5504      return "string" == typeof t2 ? t2 : t2.getAttribute("id") ? "#" + t2.getAttribute("id") : t2.getAttribute("class") ? t2.tagName.toLowerCase() + "." + t2.getAttribute("class").replace(/\s+/g, ".") : e2(t2.parentNode) + " > " + t2.tagName.toLowerCase();
5505    }, u = function() {
5506      s("transform");
5507      return function(e2, t2, n2) {
5508        false === t2 || "" === t2 ? e2.style.transform = "" : "x" === p(n2) ? e2.style.transform = "translate3d(" + i("left" === n2 ? t2 : -t2) + ",0,0)" : e2.style.transform = "translate3d(0," + i("top" === n2 ? t2 : -t2) + ",0)";
5509      };
5510    }();
5511    e.Helpers = { supportsPassive: t, isIos: c, isTouchDevice: v, isNumeric: r, formatSizeVal: i, toMs: function(e2) {
5512      return parseFloat(e2) * (/\ds$/.test(e2) ? 1e3 : 1);
5513    }, stopPropagation: function(e2) {
5514      return e2.stopPropagation();
5515    }, preventDefault: function(e2) {
5516      return e2.preventDefault();
5517    }, preventClick: function(t2) {
5518      return function(e2) {
5519        e2.preventDefault(), e2.stopPropagation(), "function" == typeof t2 && t2();
5520      };
5521    }, browserPrefix: s, children: l, wrap: function(e2, t2) {
5522      e2.parentNode.insertBefore(t2, e2), t2.appendChild(e2);
5523    }, data: function(e2, t2, n2) {
5524      if (e2.hcOffcanvasNav = e2.hcOffcanvasNav || {}, void 0 === n2)
5525        return e2.hcOffcanvasNav[t2];
5526      e2.hcOffcanvasNav[t2] = n2;
5527    }, clone: function(e2, t2, n2) {
5528      var a2 = e2.cloneNode(n2 || false), r2 = e2 instanceof Element ? [e2].concat(Array.prototype.slice.call(e2.getElementsByTagName("*"))) : [], e2 = a2 instanceof Element ? [a2].concat(Array.prototype.slice.call(a2.getElementsByTagName("*"))) : [];
5529      return t2 || (r2.shift(), e2.shift()), n2 && function(e3, t3) {
5530        for (var n3 = 0; n3 < e3.length; n3++)
5531          if (e3[n3]._eventListeners)
5532            for (var a3 in e3[n3]._eventListeners)
5533              for (var r3 = 0; r3 < e3[n3]._eventListeners[a3].length; r3++)
5534                t3[r3].addEventListener(a3, e3[n3]._eventListeners[a3][r3].fn, e3[n3]._eventListeners[a3][r3].options);
5535      }(r2, e2), a2;
5536    }, customEventObject: function(e2, n2, a2, r2) {
5537      return new function(e3) {
5538        for (var t2 in this.bubbles = false, this.cancelable = false, this.composed = false, this.currentTarget = a2, this.data = r2 ? {} : null, this.defaultPrevented = false, this.eventPhase = 0, this.isTrusted = false, this.target = n2, this.timeStamp = Date.now(), this.type = e3, r2)
5539          this.data[t2] = r2[t2];
5540      }(e2);
5541    }, hasListener: function(e2, t2) {
5542      return (t2 ? (e2._eventListeners || {})[t2] : e2._eventListeners) || false;
5543    }, debounce: function(a2, r2, i2) {
5544      var s2;
5545      return function() {
5546        var e2 = this, t2 = arguments, n2 = i2 && !s2;
5547        clearTimeout(s2), s2 = setTimeout(function() {
5548          s2 = null, i2 || a2.apply(e2, t2);
5549        }, r2), n2 && a2.apply(e2, t2);
5550      };
5551    }, createElement: d, getElements: function(e2) {
5552      var t2 = null;
5553      return "string" == typeof e2 ? t2 = o.querySelectorAll(e2) : n.jQuery && e2 instanceof n.jQuery && e2.length ? t2 = e2.toArray() : e2 instanceof Element && (t2 = [e2]), t2;
5554    }, getElementCssTag: a, printStyle: function(e2) {
5555      var r2 = d("style", { id: e2 }), i2 = {}, s2 = {};
5556      o.head.appendChild(r2);
5557      function a2(e3) {
5558        return ";" !== e3.substr(-1) && (e3 += ";" !== e3.substr(-1) ? ";" : ""), e3;
5559      }
5560      return { reset: function() {
5561        i2 = {}, s2 = {};
5562      }, add: function(e3, t2, n2) {
5563        e3 = e3.trim(), t2 = t2.trim(), n2 ? (n2 = n2.trim(), s2[n2] = s2[n2] || {}, s2[n2][e3] = a2(t2)) : i2[e3] = a2(t2);
5564      }, remove: function(e3, t2) {
5565        e3 = e3.trim(), t2 ? (t2 = t2.trim(), void 0 !== s2[t2][e3] && delete s2[t2][e3]) : void 0 !== i2[e3] && delete i2[e3];
5566      }, insert: function() {
5567        var e3, t2, n2 = "";
5568        for (e3 in s2) {
5569          for (var a3 in n2 += "@media screen and (" + e3 + ") {\n", s2[e3])
5570            n2 += "  " + a3 + " { " + s2[e3][a3] + " }\n";
5571          n2 += "}\n";
5572        }
5573        for (t2 in i2)
5574          n2 += t2 + " { " + i2[t2] + " }\n";
5575        r2.innerHTML = n2;
5576      } };
5577    }, insertAt: function(e2, t2, n2) {
5578      var a2 = l(n2), r2 = a2.length, r2 = -1 < (t2 = "last" === (t2 = "first" === t2 ? 0 : t2) ? r2 : t2) ? Math.max(0, Math.min(t2, r2)) : Math.max(0, Math.min(r2 + t2, r2));
5579      0 === r2 ? n2[0].insertBefore(e2, n2[0].firstChild) : a2[r2 - 1].insertAdjacentElement("afterend", e2);
5580    }, getAxis: p, setTransform: u, deprecated: function(e2, t2, n2) {
5581      console.warn("%cHC Off-canvas Nav:%c " + n2 + "%c '" + e2 + "'%c is now deprecated and will be removed in the future. Use%c '" + t2 + "'%c option instead. See details about plugin usage at https://github.com/somewebmedia/hc-offcanvas-nav.", "color: #fa253b", "color: default", "color: #5595c6", "color: default", "color: #5595c6", "color: default");
5582    } };
5583  }(window);
5584})(hcOffcanvasNav$1);
5585var hcOffcanvasNavExports = hcOffcanvasNav$1.exports;
5586const hcOffcanvasNav = /* @__PURE__ */ getDefaultExportFromCjs(hcOffcanvasNavExports);
5587document.addEventListener("DOMContentLoaded", function() {
5588  new hcOffcanvasNav("#mobile-main-nav", {
5589    disableAt: 1197,
5590    navTitle: "All Categories",
5591    customToggle: "#mobile-nav-open",
5592    removeOriginalNav: true,
5593    insertBack: true,
5594    labelBack: "Back to",
5595    width: 390
5596  });
5597  new hcOffcanvasNav("#mobile-member-menu", {
5598    navTitle: "Your Quality Aging",
5599    position: "right",
5600    customToggle: "#mobile-member-nav-open",
5601    removeOriginalNav: true,
5602    insertBack: true,
5603    labelBack: "Back to",
5604    disableAt: 1197
5605  });
5606  if (document.querySelector(".member-password .riSingle input[type=password]")) {
5607    document.querySelector(".member-password .riSingle input[type=password]").setAttribute("placeholder", "password");
5608  }
5609  if (document.querySelector(".member-name .riSingle input[type=text]")) {
5610    document.querySelector(".member-name .riSingle input[type=text]").setAttribute("placeholder", "username");
5611  }
5612  if (document.querySelector(".pbForgotPassword .liFieldInput input[type=text]")) {
5613    document.querySelector(".pbForgotPassword .liFieldInput input[type=text]").setAttribute("placeholder", "email");
5614  }
5615  const menuSearchBoxElem = document.getElementById("menuSearch").querySelector("input[type=text]");
5616  const menuSearchButtonElem = document.getElementById("menuSearch").querySelector(".search-button");
5617  menuSearchBoxElem.addEventListener("keydown", (e) => {
5618    preventDefaultPress(e, menuSearchButtonElem);
5619  });
5620  const documentSearchBoxElem = document.getElementsByClassName("document-search-bar")[0].querySelector("input[type=text]");
5621  const documentSearchButtonElem = document.getElementsByClassName("document-search-bar")[0].querySelector(".button");
5622  documentSearchBoxElem.addEventListener("keydown", (e) => {
5623    preventDefaultPress(e, documentSearchButtonElem);
5624  });
5625  function preventDefaultPress(event, buttonToPush) {
5626    const charCode = event.keyCode;
5627    if (charCode !== 0) {
5628      if (charCode == 13) {
5629        event.preventDefault();
5630        buttonToPush.click();
5631      }
5632    }
5633  }
5634});

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.