My personal site hosted @ https://indexx.dev
at main 123 kB view raw
1/*! 2 * Bootstrap v5.3.2 (https://getbootstrap.com/) 3 * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 */ 6!function (t, e) { 7 "object" == typeof exports && "undefined" != typeof module 8 ? module.exports = e() 9 : "function" == typeof define && define.amd 10 ? define(e) 11 : (t = "undefined" != typeof globalThis ? globalThis : t || self) 12 .bootstrap = e(); 13}(this, function () { 14 "use strict"; 15 const t = new Map(), 16 e = { 17 set(e, i, n) { 18 t.has(e) || t.set(e, new Map()); 19 const s = t.get(e); 20 s.has(i) || 0 === s.size ? s.set(i, n) : console.error( 21 `Bootstrap doesn't allow more than one instance per element. Bound instance: ${ 22 Array.from(s.keys())[0] 23 }.`, 24 ); 25 }, 26 get: (e, i) => t.has(e) && t.get(e).get(i) || null, 27 remove(e, i) { 28 if (!t.has(e)) return; 29 const n = t.get(e); 30 n.delete(i), 0 === n.size && t.delete(e); 31 }, 32 }, 33 i = "transitionend", 34 n = (t) => (t && window.CSS && window.CSS.escape && 35 (t = t.replace(/#([^\s"#']+)/g, (t, e) => `#${CSS.escape(e)}`)), 36 t), 37 s = (t) => { 38 t.dispatchEvent(new Event(i)); 39 }, 40 o = (t) => 41 !(!t || "object" != typeof t) && 42 (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), 43 r = (t) => 44 o(t) 45 ? t.jquery ? t[0] : t 46 : "string" == typeof t && t.length > 0 47 ? document.querySelector(n(t)) 48 : null, 49 a = (t) => { 50 if (!o(t) || 0 === t.getClientRects().length) return !1; 51 const e = 52 "visible" === getComputedStyle(t).getPropertyValue("visibility"), 53 i = t.closest("details:not([open])"); 54 if (!i) return e; 55 if (i !== t) { 56 const e = t.closest("summary"); 57 if (e && e.parentNode !== i) return !1; 58 if (null === e) return !1; 59 } 60 return e; 61 }, 62 l = (t) => 63 !t || t.nodeType !== Node.ELEMENT_NODE || 64 !!t.classList.contains("disabled") || (void 0 !== t.disabled 65 ? t.disabled 66 : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")), 67 c = (t) => { 68 if (!document.documentElement.attachShadow) return null; 69 if ("function" == typeof t.getRootNode) { 70 const e = t.getRootNode(); 71 return e instanceof ShadowRoot ? e : null; 72 } 73 return t instanceof ShadowRoot 74 ? t 75 : t.parentNode 76 ? c(t.parentNode) 77 : null; 78 }, 79 h = () => {}, 80 d = (t) => { 81 t.offsetHeight; 82 }, 83 u = () => 84 window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") 85 ? window.jQuery 86 : null, 87 f = [], 88 p = () => "rtl" === document.documentElement.dir, 89 m = (t) => { 90 var e; 91 e = () => { 92 const e = u(); 93 if (e) { 94 const i = t.NAME, n = e.fn[i]; 95 e.fn[i] = t.jQueryInterface, 96 e.fn[i].Constructor = t, 97 e.fn[i].noConflict = () => (e.fn[i] = n, t.jQueryInterface); 98 } 99 }, 100 "loading" === document.readyState 101 ? (f.length || document.addEventListener("DOMContentLoaded", () => { 102 for (const t of f) t(); 103 }), 104 f.push(e)) 105 : e(); 106 }, 107 g = (t, e = [], i = t) => "function" == typeof t ? t(...e) : i, 108 _ = (t, e, n = !0) => { 109 if (!n) return void g(t); 110 const o = ((t) => { 111 if (!t) return 0; 112 let { transitionDuration: e, transitionDelay: i } = window 113 .getComputedStyle(t); 114 const n = Number.parseFloat(e), s = Number.parseFloat(i); 115 return n || s 116 ? (e = e.split(",")[0], 117 i = i.split(",")[0], 118 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) 119 : 0; 120 })(e) + 5; 121 let r = !1; 122 const a = ({ target: n }) => { 123 n === e && (r = !0, e.removeEventListener(i, a), g(t)); 124 }; 125 e.addEventListener(i, a), 126 setTimeout(() => { 127 r || s(e); 128 }, o); 129 }, 130 b = (t, e, i, n) => { 131 const s = t.length; 132 let o = t.indexOf(e); 133 return -1 === o 134 ? !i && n ? t[s - 1] : t[0] 135 : (o += i ? 1 : -1, 136 n && (o = (o + s) % s), 137 t[Math.max(0, Math.min(o, s - 1))]); 138 }, 139 v = /[^.]*(?=\..*)\.|.*/, 140 y = /\..*/, 141 w = /::\d+$/, 142 A = {}; 143 let E = 1; 144 const T = { mouseenter: "mouseover", mouseleave: "mouseout" }, 145 C = new Set([ 146 "click", 147 "dblclick", 148 "mouseup", 149 "mousedown", 150 "contextmenu", 151 "mousewheel", 152 "DOMMouseScroll", 153 "mouseover", 154 "mouseout", 155 "mousemove", 156 "selectstart", 157 "selectend", 158 "keydown", 159 "keypress", 160 "keyup", 161 "orientationchange", 162 "touchstart", 163 "touchmove", 164 "touchend", 165 "touchcancel", 166 "pointerdown", 167 "pointermove", 168 "pointerup", 169 "pointerleave", 170 "pointercancel", 171 "gesturestart", 172 "gesturechange", 173 "gestureend", 174 "focus", 175 "blur", 176 "change", 177 "reset", 178 "select", 179 "submit", 180 "focusin", 181 "focusout", 182 "load", 183 "unload", 184 "beforeunload", 185 "resize", 186 "move", 187 "DOMContentLoaded", 188 "readystatechange", 189 "error", 190 "abort", 191 "scroll", 192 ]); 193 function O(t, e) { 194 return e && `${e}::${E++}` || t.uidEvent || E++; 195 } 196 function x(t) { 197 const e = O(t); 198 return t.uidEvent = e, A[e] = A[e] || {}, A[e]; 199 } 200 function k(t, e, i = null) { 201 return Object.values(t).find( 202 (t) => t.callable === e && t.delegationSelector === i, 203 ); 204 } 205 function L(t, e, i) { 206 const n = "string" == typeof e, s = n ? i : e || i; 207 let o = I(t); 208 return C.has(o) || (o = t), [n, s, o]; 209 } 210 function S(t, e, i, n, s) { 211 if ("string" != typeof e || !t) return; 212 let [o, r, a] = L(e, i, n); 213 if (e in T) { 214 const t = (t) => 215 function (e) { 216 if ( 217 !e.relatedTarget || 218 e.relatedTarget !== e.delegateTarget && 219 !e.delegateTarget.contains(e.relatedTarget) 220 ) return t.call(this, e); 221 }; 222 r = t(r); 223 } 224 const l = x(t), c = l[a] || (l[a] = {}), h = k(c, r, o ? i : null); 225 if (h) return void (h.oneOff = h.oneOff && s); 226 const d = O(r, e.replace(v, "")), 227 u = o 228 ? function (t, e, i) { 229 return function n(s) { 230 const o = t.querySelectorAll(e); 231 for (let { target: r } = s; r && r !== this; r = r.parentNode) { 232 for (const a of o) { 233 if (a === r) { 234 return P(s, { delegateTarget: r }), 235 n.oneOff && N.off(t, s.type, e, i), 236 i.apply(r, [s]); 237 } 238 } 239 } 240 }; 241 }(t, i, r) 242 : function (t, e) { 243 return function i(n) { 244 return P(n, { delegateTarget: t }), 245 i.oneOff && N.off(t, n.type, e), 246 e.apply(t, [n]); 247 }; 248 }(t, r); 249 u.delegationSelector = o ? i : null, 250 u.callable = r, 251 u.oneOff = s, 252 u.uidEvent = d, 253 c[d] = u, 254 t.addEventListener(a, u, o); 255 } 256 function D(t, e, i, n, s) { 257 const o = k(e[i], n, s); 258 o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent]); 259 } 260 function $(t, e, i, n) { 261 const s = e[i] || {}; 262 for (const [o, r] of Object.entries(s)) { 263 o.includes(n) && D(t, e, i, r.callable, r.delegationSelector); 264 } 265 } 266 function I(t) { 267 return t = t.replace(y, ""), T[t] || t; 268 } 269 const N = { 270 on(t, e, i, n) { 271 S(t, e, i, n, !1); 272 }, 273 one(t, e, i, n) { 274 S(t, e, i, n, !0); 275 }, 276 off(t, e, i, n) { 277 if ("string" != typeof e || !t) return; 278 const [s, o, r] = L(e, i, n), 279 a = r !== e, 280 l = x(t), 281 c = l[r] || {}, 282 h = e.startsWith("."); 283 if (void 0 === o) { 284 if (h) { for (const i of Object.keys(l)) $(t, l, i, e.slice(1)); } 285 for (const [i, n] of Object.entries(c)) { 286 const s = i.replace(w, ""); 287 a && !e.includes(s) || D(t, l, r, n.callable, n.delegationSelector); 288 } 289 } else { 290 if (!Object.keys(c).length) return; 291 D(t, l, r, o, s ? i : null); 292 } 293 }, 294 trigger(t, e, i) { 295 if ("string" != typeof e || !t) return null; 296 const n = u(); 297 let s = null, o = !0, r = !0, a = !1; 298 e !== I(e) && n && 299 (s = n.Event(e, i), 300 n(t).trigger(s), 301 o = !s.isPropagationStopped(), 302 r = !s.isImmediatePropagationStopped(), 303 a = s.isDefaultPrevented()); 304 const l = P(new Event(e, { bubbles: o, cancelable: !0 }), i); 305 return a && l.preventDefault(), 306 r && t.dispatchEvent(l), 307 l.defaultPrevented && s && s.preventDefault(), 308 l; 309 }, 310 }; 311 function P(t, e = {}) { 312 for (const [i, n] of Object.entries(e)) { 313 try { 314 t[i] = n; 315 } catch (e) { 316 Object.defineProperty(t, i, { configurable: !0, get: () => n }); 317 } 318 } 319 return t; 320 } 321 function M(t) { 322 if ("true" === t) return !0; 323 if ("false" === t) return !1; 324 if (t === Number(t).toString()) return Number(t); 325 if ("" === t || "null" === t) return null; 326 if ("string" != typeof t) return t; 327 try { 328 return JSON.parse(decodeURIComponent(t)); 329 } catch (e) { 330 return t; 331 } 332 } 333 function j(t) { 334 return t.replace(/[A-Z]/g, (t) => `-${t.toLowerCase()}`); 335 } 336 const F = { 337 setDataAttribute(t, e, i) { 338 t.setAttribute(`data-bs-${j(e)}`, i); 339 }, 340 removeDataAttribute(t, e) { 341 t.removeAttribute(`data-bs-${j(e)}`); 342 }, 343 getDataAttributes(t) { 344 if (!t) return {}; 345 const e = {}, 346 i = Object.keys(t.dataset).filter( 347 (t) => t.startsWith("bs") && !t.startsWith("bsConfig"), 348 ); 349 for (const n of i) { 350 let i = n.replace(/^bs/, ""); 351 i = i.charAt(0).toLowerCase() + i.slice(1, i.length), 352 e[i] = M(t.dataset[n]); 353 } 354 return e; 355 }, 356 getDataAttribute: (t, e) => M(t.getAttribute(`data-bs-${j(e)}`)), 357 }; 358 class H { 359 static get Default() { 360 return {}; 361 } 362 static get DefaultType() { 363 return {}; 364 } 365 static get NAME() { 366 throw new Error( 367 'You have to implement the static method "NAME", for each component!', 368 ); 369 } 370 _getConfig(t) { 371 return t = this._mergeConfigObj(t), 372 t = this._configAfterMerge(t), 373 this._typeCheckConfig(t), 374 t; 375 } 376 _configAfterMerge(t) { 377 return t; 378 } 379 _mergeConfigObj(t, e) { 380 const i = o(e) ? F.getDataAttribute(e, "config") : {}; 381 return { 382 ...this.constructor.Default, 383 ..."object" == typeof i ? i : {}, 384 ...o(e) ? F.getDataAttributes(e) : {}, 385 ..."object" == typeof t ? t : {}, 386 }; 387 } 388 _typeCheckConfig(t, e = this.constructor.DefaultType) { 389 for (const [n, s] of Object.entries(e)) { 390 const e = t[n], 391 r = o(e) 392 ? "element" 393 : null == (i = e) 394 ? `${i}` 395 : Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1] 396 .toLowerCase(); 397 if (!new RegExp(s).test(r)) { 398 throw new TypeError( 399 `${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`, 400 ); 401 } 402 } 403 var i; 404 } 405 } 406 class W extends H { 407 constructor(t, i) { 408 super(), 409 (t = r(t)) && 410 (this._element = t, 411 this._config = this._getConfig(i), 412 e.set(this._element, this.constructor.DATA_KEY, this)); 413 } 414 dispose() { 415 e.remove(this._element, this.constructor.DATA_KEY), 416 N.off(this._element, this.constructor.EVENT_KEY); 417 for (const t of Object.getOwnPropertyNames(this)) this[t] = null; 418 } 419 _queueCallback(t, e, i = !0) { 420 _(t, e, i); 421 } 422 _getConfig(t) { 423 return t = this._mergeConfigObj(t, this._element), 424 t = this._configAfterMerge(t), 425 this._typeCheckConfig(t), 426 t; 427 } 428 static getInstance(t) { 429 return e.get(r(t), this.DATA_KEY); 430 } 431 static getOrCreateInstance(t, e = {}) { 432 return this.getInstance(t) || 433 new this(t, "object" == typeof e ? e : null); 434 } 435 static get VERSION() { 436 return "5.3.2"; 437 } 438 static get DATA_KEY() { 439 return `bs.${this.NAME}`; 440 } 441 static get EVENT_KEY() { 442 return `.${this.DATA_KEY}`; 443 } 444 static eventName(t) { 445 return `${t}${this.EVENT_KEY}`; 446 } 447 } 448 const B = (t) => { 449 let e = t.getAttribute("data-bs-target"); 450 if (!e || "#" === e) { 451 let i = t.getAttribute("href"); 452 if (!i || !i.includes("#") && !i.startsWith(".")) return null; 453 i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`), 454 e = i && "#" !== i ? n(i.trim()) : null; 455 } 456 return e; 457 }, 458 z = { 459 find: (t, e = document.documentElement) => 460 [].concat(...Element.prototype.querySelectorAll.call(e, t)), 461 findOne: (t, e = document.documentElement) => 462 Element.prototype.querySelector.call(e, t), 463 children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)), 464 parents(t, e) { 465 const i = []; 466 let n = t.parentNode.closest(e); 467 for (; n;) i.push(n), n = n.parentNode.closest(e); 468 return i; 469 }, 470 prev(t, e) { 471 let i = t.previousElementSibling; 472 for (; i;) { 473 if (i.matches(e)) return [i]; 474 i = i.previousElementSibling; 475 } 476 return []; 477 }, 478 next(t, e) { 479 let i = t.nextElementSibling; 480 for (; i;) { 481 if (i.matches(e)) return [i]; 482 i = i.nextElementSibling; 483 } 484 return []; 485 }, 486 focusableChildren(t) { 487 const e = [ 488 "a", 489 "button", 490 "input", 491 "textarea", 492 "select", 493 "details", 494 "[tabindex]", 495 '[contenteditable="true"]', 496 ].map((t) => `${t}:not([tabindex^="-"])`).join(","); 497 return this.find(e, t).filter((t) => !l(t) && a(t)); 498 }, 499 getSelectorFromElement(t) { 500 const e = B(t); 501 return e && z.findOne(e) ? e : null; 502 }, 503 getElementFromSelector(t) { 504 const e = B(t); 505 return e ? z.findOne(e) : null; 506 }, 507 getMultipleElementsFromSelector(t) { 508 const e = B(t); 509 return e ? z.find(e) : []; 510 }, 511 }, 512 R = (t, e = "hide") => { 513 const i = `click.dismiss${t.EVENT_KEY}`, n = t.NAME; 514 N.on(document, i, `[data-bs-dismiss="${n}"]`, function (i) { 515 if ( 516 ["A", "AREA"].includes(this.tagName) && i.preventDefault(), l(this) 517 ) return; 518 const s = z.getElementFromSelector(this) || this.closest(`.${n}`); 519 t.getOrCreateInstance(s)[e](); 520 }); 521 }, 522 q = ".bs.alert", 523 V = `close${q}`, 524 K = `closed${q}`; 525 class Q extends W { 526 static get NAME() { 527 return "alert"; 528 } 529 close() { 530 if (N.trigger(this._element, V).defaultPrevented) return; 531 this._element.classList.remove("show"); 532 const t = this._element.classList.contains("fade"); 533 this._queueCallback(() => this._destroyElement(), this._element, t); 534 } 535 _destroyElement() { 536 this._element.remove(), N.trigger(this._element, K), this.dispose(); 537 } 538 static jQueryInterface(t) { 539 return this.each(function () { 540 const e = Q.getOrCreateInstance(this); 541 if ("string" == typeof t) { 542 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) { 543 throw new TypeError(`No method named "${t}"`); 544 } 545 e[t](this); 546 } 547 }); 548 } 549 } 550 R(Q, "close"), m(Q); 551 const X = '[data-bs-toggle="button"]'; 552 class Y extends W { 553 static get NAME() { 554 return "button"; 555 } 556 toggle() { 557 this._element.setAttribute( 558 "aria-pressed", 559 this._element.classList.toggle("active"), 560 ); 561 } 562 static jQueryInterface(t) { 563 return this.each(function () { 564 const e = Y.getOrCreateInstance(this); 565 "toggle" === t && e[t](); 566 }); 567 } 568 } 569 N.on(document, "click.bs.button.data-api", X, (t) => { 570 t.preventDefault(); 571 const e = t.target.closest(X); 572 Y.getOrCreateInstance(e).toggle(); 573 }), m(Y); 574 const U = ".bs.swipe", 575 G = `touchstart${U}`, 576 J = `touchmove${U}`, 577 Z = `touchend${U}`, 578 tt = `pointerdown${U}`, 579 et = `pointerup${U}`, 580 it = { endCallback: null, leftCallback: null, rightCallback: null }, 581 nt = { 582 endCallback: "(function|null)", 583 leftCallback: "(function|null)", 584 rightCallback: "(function|null)", 585 }; 586 class st extends H { 587 constructor(t, e) { 588 super(), 589 this._element = t, 590 t && st.isSupported() && 591 (this._config = this._getConfig(e), 592 this._deltaX = 0, 593 this._supportPointerEvents = Boolean(window.PointerEvent), 594 this._initEvents()); 595 } 596 static get Default() { 597 return it; 598 } 599 static get DefaultType() { 600 return nt; 601 } 602 static get NAME() { 603 return "swipe"; 604 } 605 dispose() { 606 N.off(this._element, U); 607 } 608 _start(t) { 609 this._supportPointerEvents 610 ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX) 611 : this._deltaX = t.touches[0].clientX; 612 } 613 _end(t) { 614 this._eventIsPointerPenTouch(t) && 615 (this._deltaX = t.clientX - this._deltaX), 616 this._handleSwipe(), 617 g(this._config.endCallback); 618 } 619 _move(t) { 620 this._deltaX = t.touches && t.touches.length > 1 621 ? 0 622 : t.touches[0].clientX - this._deltaX; 623 } 624 _handleSwipe() { 625 const t = Math.abs(this._deltaX); 626 if (t <= 40) return; 627 const e = t / this._deltaX; 628 this._deltaX = 0, 629 e && g(e > 0 ? this._config.rightCallback : this._config.leftCallback); 630 } 631 _initEvents() { 632 this._supportPointerEvents 633 ? (N.on(this._element, tt, (t) => this._start(t)), 634 N.on(this._element, et, (t) => this._end(t)), 635 this._element.classList.add("pointer-event")) 636 : (N.on(this._element, G, (t) => this._start(t)), 637 N.on(this._element, J, (t) => this._move(t)), 638 N.on(this._element, Z, (t) => this._end(t))); 639 } 640 _eventIsPointerPenTouch(t) { 641 return this._supportPointerEvents && 642 ("pen" === t.pointerType || "touch" === t.pointerType); 643 } 644 static isSupported() { 645 return "ontouchstart" in document.documentElement || 646 navigator.maxTouchPoints > 0; 647 } 648 } 649 const ot = ".bs.carousel", 650 rt = ".data-api", 651 at = "next", 652 lt = "prev", 653 ct = "left", 654 ht = "right", 655 dt = `slide${ot}`, 656 ut = `slid${ot}`, 657 ft = `keydown${ot}`, 658 pt = `mouseenter${ot}`, 659 mt = `mouseleave${ot}`, 660 gt = `dragstart${ot}`, 661 _t = `load${ot}${rt}`, 662 bt = `click${ot}${rt}`, 663 vt = "carousel", 664 yt = "active", 665 wt = ".active", 666 At = ".carousel-item", 667 Et = wt + At, 668 Tt = { ArrowLeft: ht, ArrowRight: ct }, 669 Ct = { 670 interval: 5e3, 671 keyboard: !0, 672 pause: "hover", 673 ride: !1, 674 touch: !0, 675 wrap: !0, 676 }, 677 Ot = { 678 interval: "(number|boolean)", 679 keyboard: "boolean", 680 pause: "(string|boolean)", 681 ride: "(boolean|string)", 682 touch: "boolean", 683 wrap: "boolean", 684 }; 685 class xt extends W { 686 constructor(t, e) { 687 super(t, e), 688 this._interval = null, 689 this._activeElement = null, 690 this._isSliding = !1, 691 this.touchTimeout = null, 692 this._swipeHelper = null, 693 this._indicatorsElement = z.findOne( 694 ".carousel-indicators", 695 this._element, 696 ), 697 this._addEventListeners(), 698 this._config.ride === vt && this.cycle(); 699 } 700 static get Default() { 701 return Ct; 702 } 703 static get DefaultType() { 704 return Ot; 705 } 706 static get NAME() { 707 return "carousel"; 708 } 709 next() { 710 this._slide(at); 711 } 712 nextWhenVisible() { 713 !document.hidden && a(this._element) && this.next(); 714 } 715 prev() { 716 this._slide(lt); 717 } 718 pause() { 719 this._isSliding && s(this._element), this._clearInterval(); 720 } 721 cycle() { 722 this._clearInterval(), 723 this._updateInterval(), 724 this._interval = setInterval( 725 () => this.nextWhenVisible(), 726 this._config.interval, 727 ); 728 } 729 _maybeEnableCycle() { 730 this._config.ride && 731 (this._isSliding 732 ? N.one(this._element, ut, () => this.cycle()) 733 : this.cycle()); 734 } 735 to(t) { 736 const e = this._getItems(); 737 if (t > e.length - 1 || t < 0) return; 738 if (this._isSliding) { 739 return void N.one(this._element, ut, () => this.to(t)); 740 } 741 const i = this._getItemIndex(this._getActive()); 742 if (i === t) return; 743 const n = t > i ? at : lt; 744 this._slide(n, e[t]); 745 } 746 dispose() { 747 this._swipeHelper && this._swipeHelper.dispose(), super.dispose(); 748 } 749 _configAfterMerge(t) { 750 return t.defaultInterval = t.interval, t; 751 } 752 _addEventListeners() { 753 this._config.keyboard && N.on(this._element, ft, (t) => this._keydown(t)), 754 "hover" === this._config.pause && 755 (N.on(this._element, pt, () => this.pause()), 756 N.on(this._element, mt, () => this._maybeEnableCycle())), 757 this._config.touch && st.isSupported() && 758 this._addTouchEventListeners(); 759 } 760 _addTouchEventListeners() { 761 for (const t of z.find(".carousel-item img", this._element)) { 762 N.on(t, gt, (t) => t.preventDefault()); 763 } 764 const t = { 765 leftCallback: () => this._slide(this._directionToOrder(ct)), 766 rightCallback: () => this._slide(this._directionToOrder(ht)), 767 endCallback: () => { 768 "hover" === this._config.pause && 769 (this.pause(), 770 this.touchTimeout && clearTimeout(this.touchTimeout), 771 this.touchTimeout = setTimeout( 772 () => this._maybeEnableCycle(), 773 500 + this._config.interval, 774 )); 775 }, 776 }; 777 this._swipeHelper = new st(this._element, t); 778 } 779 _keydown(t) { 780 if (/input|textarea/i.test(t.target.tagName)) return; 781 const e = Tt[t.key]; 782 e && (t.preventDefault(), this._slide(this._directionToOrder(e))); 783 } 784 _getItemIndex(t) { 785 return this._getItems().indexOf(t); 786 } 787 _setActiveIndicatorElement(t) { 788 if (!this._indicatorsElement) return; 789 const e = z.findOne(wt, this._indicatorsElement); 790 e.classList.remove(yt), e.removeAttribute("aria-current"); 791 const i = z.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement); 792 i && (i.classList.add(yt), i.setAttribute("aria-current", "true")); 793 } 794 _updateInterval() { 795 const t = this._activeElement || this._getActive(); 796 if (!t) return; 797 const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10); 798 this._config.interval = e || this._config.defaultInterval; 799 } 800 _slide(t, e = null) { 801 if (this._isSliding) return; 802 const i = this._getActive(), 803 n = t === at, 804 s = e || b(this._getItems(), i, n, this._config.wrap); 805 if (s === i) return; 806 const o = this._getItemIndex(s), 807 r = (e) => 808 N.trigger(this._element, e, { 809 relatedTarget: s, 810 direction: this._orderToDirection(t), 811 from: this._getItemIndex(i), 812 to: o, 813 }); 814 if (r(dt).defaultPrevented) return; 815 if (!i || !s) return; 816 const a = Boolean(this._interval); 817 this.pause(), 818 this._isSliding = !0, 819 this._setActiveIndicatorElement(o), 820 this._activeElement = s; 821 const l = n ? "carousel-item-start" : "carousel-item-end", 822 c = n ? "carousel-item-next" : "carousel-item-prev"; 823 s.classList.add(c), 824 d(s), 825 i.classList.add(l), 826 s.classList.add(l), 827 this._queueCallback( 828 () => { 829 s.classList.remove(l, c), 830 s.classList.add(yt), 831 i.classList.remove(yt, c, l), 832 this._isSliding = !1, 833 r(ut); 834 }, 835 i, 836 this._isAnimated(), 837 ), 838 a && this.cycle(); 839 } 840 _isAnimated() { 841 return this._element.classList.contains("slide"); 842 } 843 _getActive() { 844 return z.findOne(Et, this._element); 845 } 846 _getItems() { 847 return z.find(At, this._element); 848 } 849 _clearInterval() { 850 this._interval && (clearInterval(this._interval), this._interval = null); 851 } 852 _directionToOrder(t) { 853 return p() ? t === ct ? lt : at : t === ct ? at : lt; 854 } 855 _orderToDirection(t) { 856 return p() ? t === lt ? ct : ht : t === lt ? ht : ct; 857 } 858 static jQueryInterface(t) { 859 return this.each(function () { 860 const e = xt.getOrCreateInstance(this, t); 861 if ("number" != typeof t) { 862 if ("string" == typeof t) { 863 if ( 864 void 0 === e[t] || t.startsWith("_") || "constructor" === t 865 ) throw new TypeError(`No method named "${t}"`); 866 e[t](); 867 } 868 } else e.to(t); 869 }); 870 } 871 } 872 N.on(document, bt, "[data-bs-slide], [data-bs-slide-to]", function (t) { 873 const e = z.getElementFromSelector(this); 874 if (!e || !e.classList.contains(vt)) return; 875 t.preventDefault(); 876 const i = xt.getOrCreateInstance(e), 877 n = this.getAttribute("data-bs-slide-to"); 878 return n 879 ? (i.to(n), void i._maybeEnableCycle()) 880 : "next" === F.getDataAttribute(this, "slide") 881 ? (i.next(), void i._maybeEnableCycle()) 882 : (i.prev(), void i._maybeEnableCycle()); 883 }), 884 N.on(window, _t, () => { 885 const t = z.find('[data-bs-ride="carousel"]'); 886 for (const e of t) xt.getOrCreateInstance(e); 887 }), 888 m(xt); 889 const kt = ".bs.collapse", 890 Lt = `show${kt}`, 891 St = `shown${kt}`, 892 Dt = `hide${kt}`, 893 $t = `hidden${kt}`, 894 It = `click${kt}.data-api`, 895 Nt = "show", 896 Pt = "collapse", 897 Mt = "collapsing", 898 jt = `:scope .${Pt} .${Pt}`, 899 Ft = '[data-bs-toggle="collapse"]', 900 Ht = { parent: null, toggle: !0 }, 901 Wt = { parent: "(null|element)", toggle: "boolean" }; 902 class Bt extends W { 903 constructor(t, e) { 904 super(t, e), this._isTransitioning = !1, this._triggerArray = []; 905 const i = z.find(Ft); 906 for (const t of i) { 907 const e = z.getSelectorFromElement(t), 908 i = z.find(e).filter((t) => t === this._element); 909 null !== e && i.length && this._triggerArray.push(t); 910 } 911 this._initializeChildren(), 912 this._config.parent || 913 this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), 914 this._config.toggle && this.toggle(); 915 } 916 static get Default() { 917 return Ht; 918 } 919 static get DefaultType() { 920 return Wt; 921 } 922 static get NAME() { 923 return "collapse"; 924 } 925 toggle() { 926 this._isShown() ? this.hide() : this.show(); 927 } 928 show() { 929 if (this._isTransitioning || this._isShown()) return; 930 let t = []; 931 if ( 932 this._config.parent && 933 (t = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing") 934 .filter((t) => t !== this._element).map((t) => 935 Bt.getOrCreateInstance(t, { toggle: !1 }) 936 )), t.length && t[0]._isTransitioning 937 ) return; 938 if (N.trigger(this._element, Lt).defaultPrevented) return; 939 for (const e of t) e.hide(); 940 const e = this._getDimension(); 941 this._element.classList.remove(Pt), 942 this._element.classList.add(Mt), 943 this._element.style[e] = 0, 944 this._addAriaAndCollapsedClass(this._triggerArray, !0), 945 this._isTransitioning = !0; 946 const i = `scroll${e[0].toUpperCase() + e.slice(1)}`; 947 this._queueCallback( 948 () => { 949 this._isTransitioning = !1, 950 this._element.classList.remove(Mt), 951 this._element.classList.add(Pt, Nt), 952 this._element.style[e] = "", 953 N.trigger(this._element, St); 954 }, 955 this._element, 956 !0, 957 ), this._element.style[e] = `${this._element[i]}px`; 958 } 959 hide() { 960 if (this._isTransitioning || !this._isShown()) return; 961 if (N.trigger(this._element, Dt).defaultPrevented) return; 962 const t = this._getDimension(); 963 this._element.style[t] = `${this._element.getBoundingClientRect()[t]}px`, 964 d(this._element), 965 this._element.classList.add(Mt), 966 this._element.classList.remove(Pt, Nt); 967 for (const t of this._triggerArray) { 968 const e = z.getElementFromSelector(t); 969 e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1); 970 } 971 this._isTransitioning = !0, 972 this._element.style[t] = "", 973 this._queueCallback( 974 () => { 975 this._isTransitioning = !1, 976 this._element.classList.remove(Mt), 977 this._element.classList.add(Pt), 978 N.trigger(this._element, $t); 979 }, 980 this._element, 981 !0, 982 ); 983 } 984 _isShown(t = this._element) { 985 return t.classList.contains(Nt); 986 } 987 _configAfterMerge(t) { 988 return t.toggle = Boolean(t.toggle), t.parent = r(t.parent), t; 989 } 990 _getDimension() { 991 return this._element.classList.contains("collapse-horizontal") 992 ? "width" 993 : "height"; 994 } 995 _initializeChildren() { 996 if (!this._config.parent) return; 997 const t = this._getFirstLevelChildren(Ft); 998 for (const e of t) { 999 const t = z.getElementFromSelector(e); 1000 t && this._addAriaAndCollapsedClass([e], this._isShown(t)); 1001 } 1002 } 1003 _getFirstLevelChildren(t) { 1004 const e = z.find(jt, this._config.parent); 1005 return z.find(t, this._config.parent).filter((t) => !e.includes(t)); 1006 } 1007 _addAriaAndCollapsedClass(t, e) { 1008 if (t.length) { 1009 for (const i of t) { 1010 i.classList.toggle("collapsed", !e), 1011 i.setAttribute("aria-expanded", e); 1012 } 1013 } 1014 } 1015 static jQueryInterface(t) { 1016 const e = {}; 1017 return "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1), 1018 this.each(function () { 1019 const i = Bt.getOrCreateInstance(this, e); 1020 if ("string" == typeof t) { 1021 if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`); 1022 i[t](); 1023 } 1024 }); 1025 } 1026 } 1027 N.on(document, It, Ft, function (t) { 1028 ("A" === t.target.tagName || 1029 t.delegateTarget && "A" === t.delegateTarget.tagName) && 1030 t.preventDefault(); 1031 for (const t of z.getMultipleElementsFromSelector(this)) { 1032 Bt.getOrCreateInstance(t, { toggle: !1 }).toggle(); 1033 } 1034 }), m(Bt); 1035 var zt = "top", 1036 Rt = "bottom", 1037 qt = "right", 1038 Vt = "left", 1039 Kt = "auto", 1040 Qt = [zt, Rt, qt, Vt], 1041 Xt = "start", 1042 Yt = "end", 1043 Ut = "clippingParents", 1044 Gt = "viewport", 1045 Jt = "popper", 1046 Zt = "reference", 1047 te = Qt.reduce(function (t, e) { 1048 return t.concat([e + "-" + Xt, e + "-" + Yt]); 1049 }, []), 1050 ee = [].concat(Qt, [Kt]).reduce(function (t, e) { 1051 return t.concat([e, e + "-" + Xt, e + "-" + Yt]); 1052 }, []), 1053 ie = "beforeRead", 1054 ne = "read", 1055 se = "afterRead", 1056 oe = "beforeMain", 1057 re = "main", 1058 ae = "afterMain", 1059 le = "beforeWrite", 1060 ce = "write", 1061 he = "afterWrite", 1062 de = [ie, ne, se, oe, re, ae, le, ce, he]; 1063 function ue(t) { 1064 return t ? (t.nodeName || "").toLowerCase() : null; 1065 } 1066 function fe(t) { 1067 if (null == t) return window; 1068 if ("[object Window]" !== t.toString()) { 1069 var e = t.ownerDocument; 1070 return e && e.defaultView || window; 1071 } 1072 return t; 1073 } 1074 function pe(t) { 1075 return t instanceof fe(t).Element || t instanceof Element; 1076 } 1077 function me(t) { 1078 return t instanceof fe(t).HTMLElement || t instanceof HTMLElement; 1079 } 1080 function ge(t) { 1081 return "undefined" != typeof ShadowRoot && 1082 (t instanceof fe(t).ShadowRoot || t instanceof ShadowRoot); 1083 } 1084 const _e = { 1085 name: "applyStyles", 1086 enabled: !0, 1087 phase: "write", 1088 fn: function (t) { 1089 var e = t.state; 1090 Object.keys(e.elements).forEach(function (t) { 1091 var i = e.styles[t] || {}, n = e.attributes[t] || {}, s = e.elements[t]; 1092 me(s) && ue(s) && 1093 (Object.assign(s.style, i), 1094 Object.keys(n).forEach(function (t) { 1095 var e = n[t]; 1096 !1 === e 1097 ? s.removeAttribute(t) 1098 : s.setAttribute(t, !0 === e ? "" : e); 1099 })); 1100 }); 1101 }, 1102 effect: function (t) { 1103 var e = t.state, 1104 i = { 1105 popper: { 1106 position: e.options.strategy, 1107 left: "0", 1108 top: "0", 1109 margin: "0", 1110 }, 1111 arrow: { position: "absolute" }, 1112 reference: {}, 1113 }; 1114 return Object.assign(e.elements.popper.style, i.popper), 1115 e.styles = i, 1116 e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow), 1117 function () { 1118 Object.keys(e.elements).forEach(function (t) { 1119 var n = e.elements[t], 1120 s = e.attributes[t] || {}, 1121 o = Object.keys(e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]) 1122 .reduce(function (t, e) { 1123 return t[e] = "", t; 1124 }, {}); 1125 me(n) && ue(n) && 1126 (Object.assign(n.style, o), 1127 Object.keys(s).forEach(function (t) { 1128 n.removeAttribute(t); 1129 })); 1130 }); 1131 }; 1132 }, 1133 requires: ["computeStyles"], 1134 }; 1135 function be(t) { 1136 return t.split("-")[0]; 1137 } 1138 var ve = Math.max, ye = Math.min, we = Math.round; 1139 function Ae() { 1140 var t = navigator.userAgentData; 1141 return null != t && t.brands && Array.isArray(t.brands) 1142 ? t.brands.map(function (t) { 1143 return t.brand + "/" + t.version; 1144 }).join(" ") 1145 : navigator.userAgent; 1146 } 1147 function Ee() { 1148 return !/^((?!chrome|android).)*safari/i.test(Ae()); 1149 } 1150 function Te(t, e, i) { 1151 void 0 === e && (e = !1), void 0 === i && (i = !1); 1152 var n = t.getBoundingClientRect(), s = 1, o = 1; 1153 e && me(t) && 1154 (s = t.offsetWidth > 0 && we(n.width) / t.offsetWidth || 1, 1155 o = t.offsetHeight > 0 && we(n.height) / t.offsetHeight || 1); 1156 var r = (pe(t) ? fe(t) : window).visualViewport, 1157 a = !Ee() && i, 1158 l = (n.left + (a && r ? r.offsetLeft : 0)) / s, 1159 c = (n.top + (a && r ? r.offsetTop : 0)) / o, 1160 h = n.width / s, 1161 d = n.height / o; 1162 return { 1163 width: h, 1164 height: d, 1165 top: c, 1166 right: l + h, 1167 bottom: c + d, 1168 left: l, 1169 x: l, 1170 y: c, 1171 }; 1172 } 1173 function Ce(t) { 1174 var e = Te(t), i = t.offsetWidth, n = t.offsetHeight; 1175 return Math.abs(e.width - i) <= 1 && (i = e.width), 1176 Math.abs(e.height - n) <= 1 && (n = e.height), 1177 { x: t.offsetLeft, y: t.offsetTop, width: i, height: n }; 1178 } 1179 function Oe(t, e) { 1180 var i = e.getRootNode && e.getRootNode(); 1181 if (t.contains(e)) return !0; 1182 if (i && ge(i)) { 1183 var n = e; 1184 do { 1185 if (n && t.isSameNode(n)) return !0; 1186 n = n.parentNode || n.host; 1187 } while (n); 1188 } 1189 return !1; 1190 } 1191 function xe(t) { 1192 return fe(t).getComputedStyle(t); 1193 } 1194 function ke(t) { 1195 return ["table", "td", "th"].indexOf(ue(t)) >= 0; 1196 } 1197 function Le(t) { 1198 return ((pe(t) ? t.ownerDocument : t.document) || window.document) 1199 .documentElement; 1200 } 1201 function Se(t) { 1202 return "html" === ue(t) 1203 ? t 1204 : t.assignedSlot || t.parentNode || (ge(t) ? t.host : null) || Le(t); 1205 } 1206 function De(t) { 1207 return me(t) && "fixed" !== xe(t).position ? t.offsetParent : null; 1208 } 1209 function $e(t) { 1210 for (var e = fe(t), i = De(t); i && ke(i) && "static" === xe(i).position;) { 1211 i = De(i); 1212 } 1213 return i && 1214 ("html" === ue(i) || "body" === ue(i) && "static" === xe(i).position) 1215 ? e 1216 : i || function (t) { 1217 var e = /firefox/i.test(Ae()); 1218 if (/Trident/i.test(Ae()) && me(t) && "fixed" === xe(t).position) { 1219 return null; 1220 } 1221 var i = Se(t); 1222 for ( 1223 ge(i) && (i = i.host); 1224 me(i) && ["html", "body"].indexOf(ue(i)) < 0; 1225 ) { 1226 var n = xe(i); 1227 if ( 1228 "none" !== n.transform || "none" !== n.perspective || 1229 "paint" === n.contain || 1230 -1 !== ["transform", "perspective"].indexOf(n.willChange) || 1231 e && "filter" === n.willChange || 1232 e && n.filter && "none" !== n.filter 1233 ) return i; 1234 i = i.parentNode; 1235 } 1236 return null; 1237 }(t) || e; 1238 } 1239 function Ie(t) { 1240 return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y"; 1241 } 1242 function Ne(t, e, i) { 1243 return ve(t, ye(e, i)); 1244 } 1245 function Pe(t) { 1246 return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, t); 1247 } 1248 function Me(t, e) { 1249 return e.reduce(function (e, i) { 1250 return e[i] = t, e; 1251 }, {}); 1252 } 1253 const je = { 1254 name: "arrow", 1255 enabled: !0, 1256 phase: "main", 1257 fn: function (t) { 1258 var e, 1259 i = t.state, 1260 n = t.name, 1261 s = t.options, 1262 o = i.elements.arrow, 1263 r = i.modifiersData.popperOffsets, 1264 a = be(i.placement), 1265 l = Ie(a), 1266 c = [Vt, qt].indexOf(a) >= 0 ? "height" : "width"; 1267 if (o && r) { 1268 var h = function (t, e) { 1269 return Pe( 1270 "number" != 1271 typeof (t = "function" == typeof t 1272 ? t(Object.assign({}, e.rects, { placement: e.placement })) 1273 : t) 1274 ? t 1275 : Me(t, Qt), 1276 ); 1277 }(s.padding, i), 1278 d = Ce(o), 1279 u = "y" === l ? zt : Vt, 1280 f = "y" === l ? Rt : qt, 1281 p = i.rects.reference[c] + i.rects.reference[l] - r[l] - 1282 i.rects.popper[c], 1283 m = r[l] - i.rects.reference[l], 1284 g = $e(o), 1285 _ = g ? "y" === l ? g.clientHeight || 0 : g.clientWidth || 0 : 0, 1286 b = p / 2 - m / 2, 1287 v = h[u], 1288 y = _ - d[c] - h[f], 1289 w = _ / 2 - d[c] / 2 + b, 1290 A = Ne(v, w, y), 1291 E = l; 1292 i.modifiersData[n] = ((e = {})[E] = A, e.centerOffset = A - w, e); 1293 } 1294 }, 1295 effect: function (t) { 1296 var e = t.state, 1297 i = t.options.element, 1298 n = void 0 === i ? "[data-popper-arrow]" : i; 1299 null != n && 1300 ("string" != typeof n || (n = e.elements.popper.querySelector(n))) && 1301 Oe(e.elements.popper, n) && (e.elements.arrow = n); 1302 }, 1303 requires: ["popperOffsets"], 1304 requiresIfExists: ["preventOverflow"], 1305 }; 1306 function Fe(t) { 1307 return t.split("-")[1]; 1308 } 1309 var He = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; 1310 function We(t) { 1311 var e, 1312 i = t.popper, 1313 n = t.popperRect, 1314 s = t.placement, 1315 o = t.variation, 1316 r = t.offsets, 1317 a = t.position, 1318 l = t.gpuAcceleration, 1319 c = t.adaptive, 1320 h = t.roundOffsets, 1321 d = t.isFixed, 1322 u = r.x, 1323 f = void 0 === u ? 0 : u, 1324 p = r.y, 1325 m = void 0 === p ? 0 : p, 1326 g = "function" == typeof h ? h({ x: f, y: m }) : { x: f, y: m }; 1327 f = g.x, m = g.y; 1328 var _ = r.hasOwnProperty("x"), 1329 b = r.hasOwnProperty("y"), 1330 v = Vt, 1331 y = zt, 1332 w = window; 1333 if (c) { 1334 var A = $e(i), E = "clientHeight", T = "clientWidth"; 1335 A === fe(i) && "static" !== xe(A = Le(i)).position && "absolute" === a && 1336 (E = "scrollHeight", T = "scrollWidth"), 1337 (s === zt || (s === Vt || s === qt) && o === Yt) && 1338 (y = Rt, 1339 m -= (d && A === w && w.visualViewport 1340 ? w.visualViewport.height 1341 : A[E]) - n.height, 1342 m *= l ? 1 : -1), 1343 s !== Vt && (s !== zt && s !== Rt || o !== Yt) || 1344 (v = qt, 1345 f -= 1346 (d && A === w && w.visualViewport ? w.visualViewport.width : A[T]) - 1347 n.width, 1348 f *= l ? 1 : -1); 1349 } 1350 var C, 1351 O = Object.assign({ position: a }, c && He), 1352 x = !0 === h 1353 ? function (t, e) { 1354 var i = t.x, n = t.y, s = e.devicePixelRatio || 1; 1355 return { x: we(i * s) / s || 0, y: we(n * s) / s || 0 }; 1356 }({ x: f, y: m }, fe(i)) 1357 : { x: f, y: m }; 1358 return f = x.x, 1359 m = x.y, 1360 l 1361 ? Object.assign( 1362 {}, 1363 O, 1364 ((C = {})[y] = b ? "0" : "", 1365 C[v] = _ ? "0" : "", 1366 C.transform = (w.devicePixelRatio || 1) <= 1 1367 ? "translate(" + f + "px, " + m + "px)" 1368 : "translate3d(" + f + "px, " + m + "px, 0)", 1369 C), 1370 ) 1371 : Object.assign( 1372 {}, 1373 O, 1374 ((e = {})[y] = b ? m + "px" : "", 1375 e[v] = _ ? f + "px" : "", 1376 e.transform = "", 1377 e), 1378 ); 1379 } 1380 const Be = { 1381 name: "computeStyles", 1382 enabled: !0, 1383 phase: "beforeWrite", 1384 fn: function (t) { 1385 var e = t.state, 1386 i = t.options, 1387 n = i.gpuAcceleration, 1388 s = void 0 === n || n, 1389 o = i.adaptive, 1390 r = void 0 === o || o, 1391 a = i.roundOffsets, 1392 l = void 0 === a || a, 1393 c = { 1394 placement: be(e.placement), 1395 variation: Fe(e.placement), 1396 popper: e.elements.popper, 1397 popperRect: e.rects.popper, 1398 gpuAcceleration: s, 1399 isFixed: "fixed" === e.options.strategy, 1400 }; 1401 null != e.modifiersData.popperOffsets && 1402 (e.styles.popper = Object.assign( 1403 {}, 1404 e.styles.popper, 1405 We( 1406 Object.assign({}, c, { 1407 offsets: e.modifiersData.popperOffsets, 1408 position: e.options.strategy, 1409 adaptive: r, 1410 roundOffsets: l, 1411 }), 1412 ), 1413 )), 1414 null != e.modifiersData.arrow && 1415 (e.styles.arrow = Object.assign( 1416 {}, 1417 e.styles.arrow, 1418 We( 1419 Object.assign({}, c, { 1420 offsets: e.modifiersData.arrow, 1421 position: "absolute", 1422 adaptive: !1, 1423 roundOffsets: l, 1424 }), 1425 ), 1426 )), 1427 e.attributes.popper = Object.assign({}, e.attributes.popper, { 1428 "data-popper-placement": e.placement, 1429 }); 1430 }, 1431 data: {}, 1432 }; 1433 var ze = { passive: !0 }; 1434 const Re = { 1435 name: "eventListeners", 1436 enabled: !0, 1437 phase: "write", 1438 fn: function () {}, 1439 effect: function (t) { 1440 var e = t.state, 1441 i = t.instance, 1442 n = t.options, 1443 s = n.scroll, 1444 o = void 0 === s || s, 1445 r = n.resize, 1446 a = void 0 === r || r, 1447 l = fe(e.elements.popper), 1448 c = [].concat(e.scrollParents.reference, e.scrollParents.popper); 1449 return o && c.forEach(function (t) { 1450 t.addEventListener("scroll", i.update, ze); 1451 }), 1452 a && l.addEventListener("resize", i.update, ze), 1453 function () { 1454 o && c.forEach(function (t) { 1455 t.removeEventListener("scroll", i.update, ze); 1456 }), a && l.removeEventListener("resize", i.update, ze); 1457 }; 1458 }, 1459 data: {}, 1460 }; 1461 var qe = { left: "right", right: "left", bottom: "top", top: "bottom" }; 1462 function Ve(t) { 1463 return t.replace(/left|right|bottom|top/g, function (t) { 1464 return qe[t]; 1465 }); 1466 } 1467 var Ke = { start: "end", end: "start" }; 1468 function Qe(t) { 1469 return t.replace(/start|end/g, function (t) { 1470 return Ke[t]; 1471 }); 1472 } 1473 function Xe(t) { 1474 var e = fe(t); 1475 return { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset }; 1476 } 1477 function Ye(t) { 1478 return Te(Le(t)).left + Xe(t).scrollLeft; 1479 } 1480 function Ue(t) { 1481 var e = xe(t), i = e.overflow, n = e.overflowX, s = e.overflowY; 1482 return /auto|scroll|overlay|hidden/.test(i + s + n); 1483 } 1484 function Ge(t) { 1485 return ["html", "body", "#document"].indexOf(ue(t)) >= 0 1486 ? t.ownerDocument.body 1487 : me(t) && Ue(t) 1488 ? t 1489 : Ge(Se(t)); 1490 } 1491 function Je(t, e) { 1492 var i; 1493 void 0 === e && (e = []); 1494 var n = Ge(t), 1495 s = n === (null == (i = t.ownerDocument) ? void 0 : i.body), 1496 o = fe(n), 1497 r = s ? [o].concat(o.visualViewport || [], Ue(n) ? n : []) : n, 1498 a = e.concat(r); 1499 return s ? a : a.concat(Je(Se(r))); 1500 } 1501 function Ze(t) { 1502 return Object.assign({}, t, { 1503 left: t.x, 1504 top: t.y, 1505 right: t.x + t.width, 1506 bottom: t.y + t.height, 1507 }); 1508 } 1509 function ti(t, e, i) { 1510 return e === Gt 1511 ? Ze(function (t, e) { 1512 var i = fe(t), 1513 n = Le(t), 1514 s = i.visualViewport, 1515 o = n.clientWidth, 1516 r = n.clientHeight, 1517 a = 0, 1518 l = 0; 1519 if (s) { 1520 o = s.width, r = s.height; 1521 var c = Ee(); 1522 (c || !c && "fixed" === e) && (a = s.offsetLeft, l = s.offsetTop); 1523 } 1524 return { width: o, height: r, x: a + Ye(t), y: l }; 1525 }(t, i)) 1526 : pe(e) 1527 ? function (t, e) { 1528 var i = Te(t, !1, "fixed" === e); 1529 return i.top = i.top + t.clientTop, 1530 i.left = i.left + t.clientLeft, 1531 i.bottom = i.top + t.clientHeight, 1532 i.right = i.left + t.clientWidth, 1533 i.width = t.clientWidth, 1534 i.height = t.clientHeight, 1535 i.x = i.left, 1536 i.y = i.top, 1537 i; 1538 }(e, i) 1539 : Ze(function (t) { 1540 var e, 1541 i = Le(t), 1542 n = Xe(t), 1543 s = null == (e = t.ownerDocument) ? void 0 : e.body, 1544 o = ve( 1545 i.scrollWidth, 1546 i.clientWidth, 1547 s ? s.scrollWidth : 0, 1548 s ? s.clientWidth : 0, 1549 ), 1550 r = ve( 1551 i.scrollHeight, 1552 i.clientHeight, 1553 s ? s.scrollHeight : 0, 1554 s ? s.clientHeight : 0, 1555 ), 1556 a = -n.scrollLeft + Ye(t), 1557 l = -n.scrollTop; 1558 return "rtl" === xe(s || i).direction && 1559 (a += ve(i.clientWidth, s ? s.clientWidth : 0) - o), 1560 { width: o, height: r, x: a, y: l }; 1561 }(Le(t))); 1562 } 1563 function ei(t) { 1564 var e, 1565 i = t.reference, 1566 n = t.element, 1567 s = t.placement, 1568 o = s ? be(s) : null, 1569 r = s ? Fe(s) : null, 1570 a = i.x + i.width / 2 - n.width / 2, 1571 l = i.y + i.height / 2 - n.height / 2; 1572 switch (o) { 1573 case zt: 1574 e = { x: a, y: i.y - n.height }; 1575 break; 1576 case Rt: 1577 e = { x: a, y: i.y + i.height }; 1578 break; 1579 case qt: 1580 e = { x: i.x + i.width, y: l }; 1581 break; 1582 case Vt: 1583 e = { x: i.x - n.width, y: l }; 1584 break; 1585 default: 1586 e = { x: i.x, y: i.y }; 1587 } 1588 var c = o ? Ie(o) : null; 1589 if (null != c) { 1590 var h = "y" === c ? "height" : "width"; 1591 switch (r) { 1592 case Xt: 1593 e[c] = e[c] - (i[h] / 2 - n[h] / 2); 1594 break; 1595 case Yt: 1596 e[c] = e[c] + (i[h] / 2 - n[h] / 2); 1597 } 1598 } 1599 return e; 1600 } 1601 function ii(t, e) { 1602 void 0 === e && (e = {}); 1603 var i = e, 1604 n = i.placement, 1605 s = void 0 === n ? t.placement : n, 1606 o = i.strategy, 1607 r = void 0 === o ? t.strategy : o, 1608 a = i.boundary, 1609 l = void 0 === a ? Ut : a, 1610 c = i.rootBoundary, 1611 h = void 0 === c ? Gt : c, 1612 d = i.elementContext, 1613 u = void 0 === d ? Jt : d, 1614 f = i.altBoundary, 1615 p = void 0 !== f && f, 1616 m = i.padding, 1617 g = void 0 === m ? 0 : m, 1618 _ = Pe("number" != typeof g ? g : Me(g, Qt)), 1619 b = u === Jt ? Zt : Jt, 1620 v = t.rects.popper, 1621 y = t.elements[p ? b : u], 1622 w = function (t, e, i, n) { 1623 var s = "clippingParents" === e 1624 ? function (t) { 1625 var e = Je(Se(t)), 1626 i = ["absolute", "fixed"].indexOf(xe(t).position) >= 0 && me(t) 1627 ? $e(t) 1628 : t; 1629 return pe(i) 1630 ? e.filter(function (t) { 1631 return pe(t) && Oe(t, i) && "body" !== ue(t); 1632 }) 1633 : []; 1634 }(t) 1635 : [].concat(e), 1636 o = [].concat(s, [i]), 1637 r = o[0], 1638 a = o.reduce(function (e, i) { 1639 var s = ti(t, i, n); 1640 return e.top = ve(s.top, e.top), 1641 e.right = ye(s.right, e.right), 1642 e.bottom = ye(s.bottom, e.bottom), 1643 e.left = ve(s.left, e.left), 1644 e; 1645 }, ti(t, r, n)); 1646 return a.width = a.right - a.left, 1647 a.height = a.bottom - a.top, 1648 a.x = a.left, 1649 a.y = a.top, 1650 a; 1651 }(pe(y) ? y : y.contextElement || Le(t.elements.popper), l, h, r), 1652 A = Te(t.elements.reference), 1653 E = ei({ reference: A, element: v, strategy: "absolute", placement: s }), 1654 T = Ze(Object.assign({}, v, E)), 1655 C = u === Jt ? T : A, 1656 O = { 1657 top: w.top - C.top + _.top, 1658 bottom: C.bottom - w.bottom + _.bottom, 1659 left: w.left - C.left + _.left, 1660 right: C.right - w.right + _.right, 1661 }, 1662 x = t.modifiersData.offset; 1663 if (u === Jt && x) { 1664 var k = x[s]; 1665 Object.keys(O).forEach(function (t) { 1666 var e = [qt, Rt].indexOf(t) >= 0 ? 1 : -1, 1667 i = [zt, Rt].indexOf(t) >= 0 ? "y" : "x"; 1668 O[t] += k[i] * e; 1669 }); 1670 } 1671 return O; 1672 } 1673 function ni(t, e) { 1674 void 0 === e && (e = {}); 1675 var i = e, 1676 n = i.placement, 1677 s = i.boundary, 1678 o = i.rootBoundary, 1679 r = i.padding, 1680 a = i.flipVariations, 1681 l = i.allowedAutoPlacements, 1682 c = void 0 === l ? ee : l, 1683 h = Fe(n), 1684 d = h 1685 ? a ? te : te.filter(function (t) { 1686 return Fe(t) === h; 1687 }) 1688 : Qt, 1689 u = d.filter(function (t) { 1690 return c.indexOf(t) >= 0; 1691 }); 1692 0 === u.length && (u = d); 1693 var f = u.reduce(function (e, i) { 1694 return e[i] = ii(t, { 1695 placement: i, 1696 boundary: s, 1697 rootBoundary: o, 1698 padding: r, 1699 })[be(i)], 1700 e; 1701 }, {}); 1702 return Object.keys(f).sort(function (t, e) { 1703 return f[t] - f[e]; 1704 }); 1705 } 1706 const si = { 1707 name: "flip", 1708 enabled: !0, 1709 phase: "main", 1710 fn: function (t) { 1711 var e = t.state, i = t.options, n = t.name; 1712 if (!e.modifiersData[n]._skip) { 1713 for ( 1714 var s = i.mainAxis, 1715 o = void 0 === s || s, 1716 r = i.altAxis, 1717 a = void 0 === r || r, 1718 l = i.fallbackPlacements, 1719 c = i.padding, 1720 h = i.boundary, 1721 d = i.rootBoundary, 1722 u = i.altBoundary, 1723 f = i.flipVariations, 1724 p = void 0 === f || f, 1725 m = i.allowedAutoPlacements, 1726 g = e.options.placement, 1727 _ = be(g), 1728 b = l || (_ !== g && p 1729 ? function (t) { 1730 if (be(t) === Kt) return []; 1731 var e = Ve(t); 1732 return [Qe(t), e, Qe(e)]; 1733 }(g) 1734 : [Ve(g)]), 1735 v = [g].concat(b).reduce(function (t, i) { 1736 return t.concat( 1737 be(i) === Kt 1738 ? ni(e, { 1739 placement: i, 1740 boundary: h, 1741 rootBoundary: d, 1742 padding: c, 1743 flipVariations: p, 1744 allowedAutoPlacements: m, 1745 }) 1746 : i, 1747 ); 1748 }, []), 1749 y = e.rects.reference, 1750 w = e.rects.popper, 1751 A = new Map(), 1752 E = !0, 1753 T = v[0], 1754 C = 0; 1755 C < v.length; 1756 C++ 1757 ) { 1758 var O = v[C], 1759 x = be(O), 1760 k = Fe(O) === Xt, 1761 L = [zt, Rt].indexOf(x) >= 0, 1762 S = L ? "width" : "height", 1763 D = ii(e, { 1764 placement: O, 1765 boundary: h, 1766 rootBoundary: d, 1767 altBoundary: u, 1768 padding: c, 1769 }), 1770 $ = L ? k ? qt : Vt : k ? Rt : zt; 1771 y[S] > w[S] && ($ = Ve($)); 1772 var I = Ve($), N = []; 1773 if ( 1774 o && N.push(D[x] <= 0), 1775 a && N.push(D[$] <= 0, D[I] <= 0), 1776 N.every(function (t) { 1777 return t; 1778 }) 1779 ) { 1780 T = O, E = !1; 1781 break; 1782 } 1783 A.set(O, N); 1784 } 1785 if (E) { 1786 for ( 1787 var P = function (t) { 1788 var e = v.find(function (e) { 1789 var i = A.get(e); 1790 if (i) { 1791 return i.slice(0, t).every(function (t) { 1792 return t; 1793 }); 1794 } 1795 }); 1796 if (e) return T = e, "break"; 1797 }, 1798 M = p ? 3 : 1; 1799 M > 0 && "break" !== P(M); 1800 M-- 1801 ); 1802 } 1803 e.placement !== T && 1804 (e.modifiersData[n]._skip = !0, e.placement = T, e.reset = !0); 1805 } 1806 }, 1807 requiresIfExists: ["offset"], 1808 data: { _skip: !1 }, 1809 }; 1810 function oi(t, e, i) { 1811 return void 0 === i && (i = { x: 0, y: 0 }), { 1812 top: t.top - e.height - i.y, 1813 right: t.right - e.width + i.x, 1814 bottom: t.bottom - e.height + i.y, 1815 left: t.left - e.width - i.x, 1816 }; 1817 } 1818 function ri(t) { 1819 return [zt, qt, Rt, Vt].some(function (e) { 1820 return t[e] >= 0; 1821 }); 1822 } 1823 const ai = { 1824 name: "hide", 1825 enabled: !0, 1826 phase: "main", 1827 requiresIfExists: ["preventOverflow"], 1828 fn: function (t) { 1829 var e = t.state, 1830 i = t.name, 1831 n = e.rects.reference, 1832 s = e.rects.popper, 1833 o = e.modifiersData.preventOverflow, 1834 r = ii(e, { elementContext: "reference" }), 1835 a = ii(e, { altBoundary: !0 }), 1836 l = oi(r, n), 1837 c = oi(a, s, o), 1838 h = ri(l), 1839 d = ri(c); 1840 e.modifiersData[i] = { 1841 referenceClippingOffsets: l, 1842 popperEscapeOffsets: c, 1843 isReferenceHidden: h, 1844 hasPopperEscaped: d, 1845 }, 1846 e.attributes.popper = Object.assign({}, e.attributes.popper, { 1847 "data-popper-reference-hidden": h, 1848 "data-popper-escaped": d, 1849 }); 1850 }, 1851 }, 1852 li = { 1853 name: "offset", 1854 enabled: !0, 1855 phase: "main", 1856 requires: ["popperOffsets"], 1857 fn: function (t) { 1858 var e = t.state, 1859 i = t.options, 1860 n = t.name, 1861 s = i.offset, 1862 o = void 0 === s ? [0, 0] : s, 1863 r = ee.reduce(function (t, i) { 1864 return t[i] = function (t, e, i) { 1865 var n = be(t), 1866 s = [Vt, zt].indexOf(n) >= 0 ? -1 : 1, 1867 o = "function" == typeof i 1868 ? i(Object.assign({}, e, { placement: t })) 1869 : i, 1870 r = o[0], 1871 a = o[1]; 1872 return r = r || 0, 1873 a = (a || 0) * s, 1874 [Vt, qt].indexOf(n) >= 0 ? { x: a, y: r } : { x: r, y: a }; 1875 }(i, e.rects, o), 1876 t; 1877 }, {}), 1878 a = r[e.placement], 1879 l = a.x, 1880 c = a.y; 1881 null != e.modifiersData.popperOffsets && 1882 (e.modifiersData.popperOffsets.x += l, 1883 e.modifiersData.popperOffsets.y += c), e.modifiersData[n] = r; 1884 }, 1885 }, 1886 ci = { 1887 name: "popperOffsets", 1888 enabled: !0, 1889 phase: "read", 1890 fn: function (t) { 1891 var e = t.state, i = t.name; 1892 e.modifiersData[i] = ei({ 1893 reference: e.rects.reference, 1894 element: e.rects.popper, 1895 strategy: "absolute", 1896 placement: e.placement, 1897 }); 1898 }, 1899 data: {}, 1900 }, 1901 hi = { 1902 name: "preventOverflow", 1903 enabled: !0, 1904 phase: "main", 1905 fn: function (t) { 1906 var e = t.state, 1907 i = t.options, 1908 n = t.name, 1909 s = i.mainAxis, 1910 o = void 0 === s || s, 1911 r = i.altAxis, 1912 a = void 0 !== r && r, 1913 l = i.boundary, 1914 c = i.rootBoundary, 1915 h = i.altBoundary, 1916 d = i.padding, 1917 u = i.tether, 1918 f = void 0 === u || u, 1919 p = i.tetherOffset, 1920 m = void 0 === p ? 0 : p, 1921 g = ii(e, { 1922 boundary: l, 1923 rootBoundary: c, 1924 padding: d, 1925 altBoundary: h, 1926 }), 1927 _ = be(e.placement), 1928 b = Fe(e.placement), 1929 v = !b, 1930 y = Ie(_), 1931 w = "x" === y ? "y" : "x", 1932 A = e.modifiersData.popperOffsets, 1933 E = e.rects.reference, 1934 T = e.rects.popper, 1935 C = "function" == typeof m 1936 ? m(Object.assign({}, e.rects, { placement: e.placement })) 1937 : m, 1938 O = "number" == typeof C 1939 ? { mainAxis: C, altAxis: C } 1940 : Object.assign({ mainAxis: 0, altAxis: 0 }, C), 1941 x = e.modifiersData.offset 1942 ? e.modifiersData.offset[e.placement] 1943 : null, 1944 k = { x: 0, y: 0 }; 1945 if (A) { 1946 if (o) { 1947 var L, 1948 S = "y" === y ? zt : Vt, 1949 D = "y" === y ? Rt : qt, 1950 $ = "y" === y ? "height" : "width", 1951 I = A[y], 1952 N = I + g[S], 1953 P = I - g[D], 1954 M = f ? -T[$] / 2 : 0, 1955 j = b === Xt ? E[$] : T[$], 1956 F = b === Xt ? -T[$] : -E[$], 1957 H = e.elements.arrow, 1958 W = f && H ? Ce(H) : { width: 0, height: 0 }, 1959 B = e.modifiersData["arrow#persistent"] 1960 ? e.modifiersData["arrow#persistent"].padding 1961 : { top: 0, right: 0, bottom: 0, left: 0 }, 1962 z = B[S], 1963 R = B[D], 1964 q = Ne(0, E[$], W[$]), 1965 V = v 1966 ? E[$] / 2 - M - q - z - O.mainAxis 1967 : j - q - z - O.mainAxis, 1968 K = v 1969 ? -E[$] / 2 + M + q + R + O.mainAxis 1970 : F + q + R + O.mainAxis, 1971 Q = e.elements.arrow && $e(e.elements.arrow), 1972 X = Q ? "y" === y ? Q.clientTop || 0 : Q.clientLeft || 0 : 0, 1973 Y = null != (L = null == x ? void 0 : x[y]) ? L : 0, 1974 U = I + K - Y, 1975 G = Ne(f ? ye(N, I + V - Y - X) : N, I, f ? ve(P, U) : P); 1976 A[y] = G, k[y] = G - I; 1977 } 1978 if (a) { 1979 var J, 1980 Z = "x" === y ? zt : Vt, 1981 tt = "x" === y ? Rt : qt, 1982 et = A[w], 1983 it = "y" === w ? "height" : "width", 1984 nt = et + g[Z], 1985 st = et - g[tt], 1986 ot = -1 !== [zt, Vt].indexOf(_), 1987 rt = null != (J = null == x ? void 0 : x[w]) ? J : 0, 1988 at = ot ? nt : et - E[it] - T[it] - rt + O.altAxis, 1989 lt = ot ? et + E[it] + T[it] - rt - O.altAxis : st, 1990 ct = f && ot 1991 ? function (t, e, i) { 1992 var n = Ne(t, e, i); 1993 return n > i ? i : n; 1994 }(at, et, lt) 1995 : Ne(f ? at : nt, et, f ? lt : st); 1996 A[w] = ct, k[w] = ct - et; 1997 } 1998 e.modifiersData[n] = k; 1999 } 2000 }, 2001 requiresIfExists: ["offset"], 2002 }; 2003 function di(t, e, i) { 2004 void 0 === i && (i = !1); 2005 var n, 2006 s, 2007 o = me(e), 2008 r = me(e) && function (t) { 2009 var e = t.getBoundingClientRect(), 2010 i = we(e.width) / t.offsetWidth || 1, 2011 n = we(e.height) / t.offsetHeight || 1; 2012 return 1 !== i || 1 !== n; 2013 }(e), 2014 a = Le(e), 2015 l = Te(t, r, i), 2016 c = { scrollLeft: 0, scrollTop: 0 }, 2017 h = { x: 0, y: 0 }; 2018 return (o || !o && !i) && 2019 (("body" !== ue(e) || Ue(a)) && 2020 (c = (n = e) !== fe(n) && me(n) 2021 ? { scrollLeft: (s = n).scrollLeft, scrollTop: s.scrollTop } 2022 : Xe(n)), 2023 me(e) 2024 ? ((h = Te(e, !0)).x += e.clientLeft, h.y += e.clientTop) 2025 : a && (h.x = Ye(a))), 2026 { 2027 x: l.left + c.scrollLeft - h.x, 2028 y: l.top + c.scrollTop - h.y, 2029 width: l.width, 2030 height: l.height, 2031 }; 2032 } 2033 function ui(t) { 2034 var e = new Map(), i = new Set(), n = []; 2035 function s(t) { 2036 i.add(t.name), 2037 [].concat(t.requires || [], t.requiresIfExists || []).forEach( 2038 function (t) { 2039 if (!i.has(t)) { 2040 var n = e.get(t); 2041 n && s(n); 2042 } 2043 }, 2044 ), 2045 n.push(t); 2046 } 2047 return t.forEach(function (t) { 2048 e.set(t.name, t); 2049 }), 2050 t.forEach(function (t) { 2051 i.has(t.name) || s(t); 2052 }), 2053 n; 2054 } 2055 var fi = { placement: "bottom", modifiers: [], strategy: "absolute" }; 2056 function pi() { 2057 for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) { 2058 e[i] = arguments[i]; 2059 } 2060 return !e.some(function (t) { 2061 return !(t && "function" == typeof t.getBoundingClientRect); 2062 }); 2063 } 2064 function mi(t) { 2065 void 0 === t && (t = {}); 2066 var e = t, 2067 i = e.defaultModifiers, 2068 n = void 0 === i ? [] : i, 2069 s = e.defaultOptions, 2070 o = void 0 === s ? fi : s; 2071 return function (t, e, i) { 2072 void 0 === i && (i = o); 2073 var s, 2074 r, 2075 a = { 2076 placement: "bottom", 2077 orderedModifiers: [], 2078 options: Object.assign({}, fi, o), 2079 modifiersData: {}, 2080 elements: { reference: t, popper: e }, 2081 attributes: {}, 2082 styles: {}, 2083 }, 2084 l = [], 2085 c = !1, 2086 h = { 2087 state: a, 2088 setOptions: function (i) { 2089 var s = "function" == typeof i ? i(a.options) : i; 2090 d(), 2091 a.options = Object.assign({}, o, a.options, s), 2092 a.scrollParents = { 2093 reference: pe(t) 2094 ? Je(t) 2095 : t.contextElement 2096 ? Je(t.contextElement) 2097 : [], 2098 popper: Je(e), 2099 }; 2100 var r, 2101 c, 2102 u = function (t) { 2103 var e = ui(t); 2104 return de.reduce(function (t, i) { 2105 return t.concat(e.filter(function (t) { 2106 return t.phase === i; 2107 })); 2108 }, []); 2109 }( 2110 (r = [].concat(n, a.options.modifiers), 2111 c = r.reduce(function (t, e) { 2112 var i = t[e.name]; 2113 return t[e.name] = i 2114 ? Object.assign({}, i, e, { 2115 options: Object.assign({}, i.options, e.options), 2116 data: Object.assign({}, i.data, e.data), 2117 }) 2118 : e, 2119 t; 2120 }, {}), 2121 Object.keys(c).map(function (t) { 2122 return c[t]; 2123 })), 2124 ); 2125 return a.orderedModifiers = u.filter(function (t) { 2126 return t.enabled; 2127 }), 2128 a.orderedModifiers.forEach(function (t) { 2129 var e = t.name, 2130 i = t.options, 2131 n = void 0 === i ? {} : i, 2132 s = t.effect; 2133 if ("function" == typeof s) { 2134 var o = s({ state: a, name: e, instance: h, options: n }); 2135 l.push(o || function () {}); 2136 } 2137 }), 2138 h.update(); 2139 }, 2140 forceUpdate: function () { 2141 if (!c) { 2142 var t = a.elements, e = t.reference, i = t.popper; 2143 if (pi(e, i)) { 2144 a.rects = { 2145 reference: di(e, $e(i), "fixed" === a.options.strategy), 2146 popper: Ce(i), 2147 }, 2148 a.reset = !1, 2149 a.placement = a.options.placement, 2150 a.orderedModifiers.forEach(function (t) { 2151 return a.modifiersData[t.name] = Object.assign({}, t.data); 2152 }); 2153 for (var n = 0; n < a.orderedModifiers.length; n++) { 2154 if (!0 !== a.reset) { 2155 var s = a.orderedModifiers[n], 2156 o = s.fn, 2157 r = s.options, 2158 l = void 0 === r ? {} : r, 2159 d = s.name; 2160 "function" == typeof o && 2161 (a = o({ state: a, options: l, name: d, instance: h }) || 2162 a); 2163 } else a.reset = !1, n = -1; 2164 } 2165 } 2166 } 2167 }, 2168 update: (s = function () { 2169 return new Promise(function (t) { 2170 h.forceUpdate(), t(a); 2171 }); 2172 }, 2173 function () { 2174 return r || (r = new Promise(function (t) { 2175 Promise.resolve().then(function () { 2176 r = void 0, t(s()); 2177 }); 2178 })), 2179 r; 2180 }), 2181 destroy: function () { 2182 d(), c = !0; 2183 }, 2184 }; 2185 if (!pi(t, e)) return h; 2186 function d() { 2187 l.forEach(function (t) { 2188 return t(); 2189 }), l = []; 2190 } 2191 return h.setOptions(i).then(function (t) { 2192 !c && i.onFirstUpdate && i.onFirstUpdate(t); 2193 }), 2194 h; 2195 }; 2196 } 2197 var gi = mi(), 2198 _i = mi({ defaultModifiers: [Re, ci, Be, _e] }), 2199 bi = mi({ defaultModifiers: [Re, ci, Be, _e, li, si, hi, je, ai] }); 2200 const vi = Object.freeze(Object.defineProperty( 2201 { 2202 __proto__: null, 2203 afterMain: ae, 2204 afterRead: se, 2205 afterWrite: he, 2206 applyStyles: _e, 2207 arrow: je, 2208 auto: Kt, 2209 basePlacements: Qt, 2210 beforeMain: oe, 2211 beforeRead: ie, 2212 beforeWrite: le, 2213 bottom: Rt, 2214 clippingParents: Ut, 2215 computeStyles: Be, 2216 createPopper: bi, 2217 createPopperBase: gi, 2218 createPopperLite: _i, 2219 detectOverflow: ii, 2220 end: Yt, 2221 eventListeners: Re, 2222 flip: si, 2223 hide: ai, 2224 left: Vt, 2225 main: re, 2226 modifierPhases: de, 2227 offset: li, 2228 placements: ee, 2229 popper: Jt, 2230 popperGenerator: mi, 2231 popperOffsets: ci, 2232 preventOverflow: hi, 2233 read: ne, 2234 reference: Zt, 2235 right: qt, 2236 start: Xt, 2237 top: zt, 2238 variationPlacements: te, 2239 viewport: Gt, 2240 write: ce, 2241 }, 2242 Symbol.toStringTag, 2243 { value: "Module" }, 2244 )), 2245 yi = "dropdown", 2246 wi = ".bs.dropdown", 2247 Ai = ".data-api", 2248 Ei = "ArrowUp", 2249 Ti = "ArrowDown", 2250 Ci = `hide${wi}`, 2251 Oi = `hidden${wi}`, 2252 xi = `show${wi}`, 2253 ki = `shown${wi}`, 2254 Li = `click${wi}${Ai}`, 2255 Si = `keydown${wi}${Ai}`, 2256 Di = `keyup${wi}${Ai}`, 2257 $i = "show", 2258 Ii = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)', 2259 Ni = `${Ii}.${$i}`, 2260 Pi = ".dropdown-menu", 2261 Mi = p() ? "top-end" : "top-start", 2262 ji = p() ? "top-start" : "top-end", 2263 Fi = p() ? "bottom-end" : "bottom-start", 2264 Hi = p() ? "bottom-start" : "bottom-end", 2265 Wi = p() ? "left-start" : "right-start", 2266 Bi = p() ? "right-start" : "left-start", 2267 zi = { 2268 autoClose: !0, 2269 boundary: "clippingParents", 2270 display: "dynamic", 2271 offset: [0, 2], 2272 popperConfig: null, 2273 reference: "toggle", 2274 }, 2275 Ri = { 2276 autoClose: "(boolean|string)", 2277 boundary: "(string|element)", 2278 display: "string", 2279 offset: "(array|string|function)", 2280 popperConfig: "(null|object|function)", 2281 reference: "(string|element|object)", 2282 }; 2283 class qi extends W { 2284 constructor(t, e) { 2285 super(t, e), 2286 this._popper = null, 2287 this._parent = this._element.parentNode, 2288 this._menu = z.next(this._element, Pi)[0] || 2289 z.prev(this._element, Pi)[0] || z.findOne(Pi, this._parent), 2290 this._inNavbar = this._detectNavbar(); 2291 } 2292 static get Default() { 2293 return zi; 2294 } 2295 static get DefaultType() { 2296 return Ri; 2297 } 2298 static get NAME() { 2299 return yi; 2300 } 2301 toggle() { 2302 return this._isShown() ? this.hide() : this.show(); 2303 } 2304 show() { 2305 if (l(this._element) || this._isShown()) return; 2306 const t = { relatedTarget: this._element }; 2307 if (!N.trigger(this._element, xi, t).defaultPrevented) { 2308 if ( 2309 this._createPopper(), 2310 "ontouchstart" in document.documentElement && 2311 !this._parent.closest(".navbar-nav") 2312 ) { 2313 for (const t of [].concat(...document.body.children)) { 2314 N.on(t, "mouseover", h); 2315 } 2316 } 2317 this._element.focus(), 2318 this._element.setAttribute("aria-expanded", !0), 2319 this._menu.classList.add($i), 2320 this._element.classList.add($i), 2321 N.trigger(this._element, ki, t); 2322 } 2323 } 2324 hide() { 2325 if (l(this._element) || !this._isShown()) return; 2326 const t = { relatedTarget: this._element }; 2327 this._completeHide(t); 2328 } 2329 dispose() { 2330 this._popper && this._popper.destroy(), super.dispose(); 2331 } 2332 update() { 2333 this._inNavbar = this._detectNavbar(), 2334 this._popper && this._popper.update(); 2335 } 2336 _completeHide(t) { 2337 if (!N.trigger(this._element, Ci, t).defaultPrevented) { 2338 if ("ontouchstart" in document.documentElement) { 2339 for (const t of [].concat(...document.body.children)) { 2340 N.off(t, "mouseover", h); 2341 } 2342 } 2343 this._popper && this._popper.destroy(), 2344 this._menu.classList.remove($i), 2345 this._element.classList.remove($i), 2346 this._element.setAttribute("aria-expanded", "false"), 2347 F.removeDataAttribute(this._menu, "popper"), 2348 N.trigger(this._element, Oi, t); 2349 } 2350 } 2351 _getConfig(t) { 2352 if ( 2353 "object" == typeof (t = super._getConfig(t)).reference && 2354 !o(t.reference) && 2355 "function" != typeof t.reference.getBoundingClientRect 2356 ) { 2357 throw new TypeError( 2358 `${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`, 2359 ); 2360 } 2361 return t; 2362 } 2363 _createPopper() { 2364 if (void 0 === vi) { 2365 throw new TypeError( 2366 "Bootstrap's dropdowns require Popper (https://popper.js.org)", 2367 ); 2368 } 2369 let t = this._element; 2370 "parent" === this._config.reference 2371 ? t = this._parent 2372 : o(this._config.reference) 2373 ? t = r(this._config.reference) 2374 : "object" == typeof this._config.reference && 2375 (t = this._config.reference); 2376 const e = this._getPopperConfig(); 2377 this._popper = bi(t, this._menu, e); 2378 } 2379 _isShown() { 2380 return this._menu.classList.contains($i); 2381 } 2382 _getPlacement() { 2383 const t = this._parent; 2384 if (t.classList.contains("dropend")) return Wi; 2385 if (t.classList.contains("dropstart")) return Bi; 2386 if (t.classList.contains("dropup-center")) return "top"; 2387 if (t.classList.contains("dropdown-center")) return "bottom"; 2388 const e = "end" === 2389 getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(); 2390 return t.classList.contains("dropup") ? e ? ji : Mi : e ? Hi : Fi; 2391 } 2392 _detectNavbar() { 2393 return null !== this._element.closest(".navbar"); 2394 } 2395 _getOffset() { 2396 const { offset: t } = this._config; 2397 return "string" == typeof t 2398 ? t.split(",").map((t) => Number.parseInt(t, 10)) 2399 : "function" == typeof t 2400 ? (e) => t(e, this._element) 2401 : t; 2402 } 2403 _getPopperConfig() { 2404 const t = { 2405 placement: this._getPlacement(), 2406 modifiers: [{ 2407 name: "preventOverflow", 2408 options: { boundary: this._config.boundary }, 2409 }, { name: "offset", options: { offset: this._getOffset() } }], 2410 }; 2411 return (this._inNavbar || "static" === this._config.display) && 2412 (F.setDataAttribute(this._menu, "popper", "static"), 2413 t.modifiers = [{ name: "applyStyles", enabled: !1 }]), 2414 { ...t, ...g(this._config.popperConfig, [t]) }; 2415 } 2416 _selectMenuItem({ key: t, target: e }) { 2417 const i = z.find( 2418 ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", 2419 this._menu, 2420 ).filter((t) => a(t)); 2421 i.length && b(i, e, t === Ti, !i.includes(e)).focus(); 2422 } 2423 static jQueryInterface(t) { 2424 return this.each(function () { 2425 const e = qi.getOrCreateInstance(this, t); 2426 if ("string" == typeof t) { 2427 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 2428 e[t](); 2429 } 2430 }); 2431 } 2432 static clearMenus(t) { 2433 if (2 === t.button || "keyup" === t.type && "Tab" !== t.key) return; 2434 const e = z.find(Ni); 2435 for (const i of e) { 2436 const e = qi.getInstance(i); 2437 if (!e || !1 === e._config.autoClose) continue; 2438 const n = t.composedPath(), s = n.includes(e._menu); 2439 if ( 2440 n.includes(e._element) || "inside" === e._config.autoClose && !s || 2441 "outside" === e._config.autoClose && s 2442 ) continue; 2443 if ( 2444 e._menu.contains(t.target) && 2445 ("keyup" === t.type && "Tab" === t.key || 2446 /input|select|option|textarea|form/i.test(t.target.tagName)) 2447 ) continue; 2448 const o = { relatedTarget: e._element }; 2449 "click" === t.type && (o.clickEvent = t), e._completeHide(o); 2450 } 2451 } 2452 static dataApiKeydownHandler(t) { 2453 const e = /input|textarea/i.test(t.target.tagName), 2454 i = "Escape" === t.key, 2455 n = [Ei, Ti].includes(t.key); 2456 if (!n && !i) return; 2457 if (e && !i) return; 2458 t.preventDefault(); 2459 const s = this.matches(Ii) 2460 ? this 2461 : z.prev(this, Ii)[0] || z.next(this, Ii)[0] || 2462 z.findOne(Ii, t.delegateTarget.parentNode), 2463 o = qi.getOrCreateInstance(s); 2464 if (n) return t.stopPropagation(), o.show(), void o._selectMenuItem(t); 2465 o._isShown() && (t.stopPropagation(), o.hide(), s.focus()); 2466 } 2467 } 2468 N.on(document, Si, Ii, qi.dataApiKeydownHandler), 2469 N.on(document, Si, Pi, qi.dataApiKeydownHandler), 2470 N.on(document, Li, qi.clearMenus), 2471 N.on(document, Di, qi.clearMenus), 2472 N.on(document, Li, Ii, function (t) { 2473 t.preventDefault(), qi.getOrCreateInstance(this).toggle(); 2474 }), 2475 m(qi); 2476 const Vi = "backdrop", 2477 Ki = "show", 2478 Qi = `mousedown.bs.${Vi}`, 2479 Xi = { 2480 className: "modal-backdrop", 2481 clickCallback: null, 2482 isAnimated: !1, 2483 isVisible: !0, 2484 rootElement: "body", 2485 }, 2486 Yi = { 2487 className: "string", 2488 clickCallback: "(function|null)", 2489 isAnimated: "boolean", 2490 isVisible: "boolean", 2491 rootElement: "(element|string)", 2492 }; 2493 class Ui extends H { 2494 constructor(t) { 2495 super(), 2496 this._config = this._getConfig(t), 2497 this._isAppended = !1, 2498 this._element = null; 2499 } 2500 static get Default() { 2501 return Xi; 2502 } 2503 static get DefaultType() { 2504 return Yi; 2505 } 2506 static get NAME() { 2507 return Vi; 2508 } 2509 show(t) { 2510 if (!this._config.isVisible) return void g(t); 2511 this._append(); 2512 const e = this._getElement(); 2513 this._config.isAnimated && d(e), 2514 e.classList.add(Ki), 2515 this._emulateAnimation(() => { 2516 g(t); 2517 }); 2518 } 2519 hide(t) { 2520 this._config.isVisible 2521 ? (this._getElement().classList.remove(Ki), 2522 this._emulateAnimation(() => { 2523 this.dispose(), g(t); 2524 })) 2525 : g(t); 2526 } 2527 dispose() { 2528 this._isAppended && 2529 (N.off(this._element, Qi), 2530 this._element.remove(), 2531 this._isAppended = !1); 2532 } 2533 _getElement() { 2534 if (!this._element) { 2535 const t = document.createElement("div"); 2536 t.className = this._config.className, 2537 this._config.isAnimated && t.classList.add("fade"), 2538 this._element = t; 2539 } 2540 return this._element; 2541 } 2542 _configAfterMerge(t) { 2543 return t.rootElement = r(t.rootElement), t; 2544 } 2545 _append() { 2546 if (this._isAppended) return; 2547 const t = this._getElement(); 2548 this._config.rootElement.append(t), 2549 N.on(t, Qi, () => { 2550 g(this._config.clickCallback); 2551 }), 2552 this._isAppended = !0; 2553 } 2554 _emulateAnimation(t) { 2555 _(t, this._getElement(), this._config.isAnimated); 2556 } 2557 } 2558 const Gi = ".bs.focustrap", 2559 Ji = `focusin${Gi}`, 2560 Zi = `keydown.tab${Gi}`, 2561 tn = "backward", 2562 en = { autofocus: !0, trapElement: null }, 2563 nn = { autofocus: "boolean", trapElement: "element" }; 2564 class sn extends H { 2565 constructor(t) { 2566 super(), 2567 this._config = this._getConfig(t), 2568 this._isActive = !1, 2569 this._lastTabNavDirection = null; 2570 } 2571 static get Default() { 2572 return en; 2573 } 2574 static get DefaultType() { 2575 return nn; 2576 } 2577 static get NAME() { 2578 return "focustrap"; 2579 } 2580 activate() { 2581 this._isActive || 2582 (this._config.autofocus && this._config.trapElement.focus(), 2583 N.off(document, Gi), 2584 N.on(document, Ji, (t) => this._handleFocusin(t)), 2585 N.on(document, Zi, (t) => this._handleKeydown(t)), 2586 this._isActive = !0); 2587 } 2588 deactivate() { 2589 this._isActive && (this._isActive = !1, N.off(document, Gi)); 2590 } 2591 _handleFocusin(t) { 2592 const { trapElement: e } = this._config; 2593 if (t.target === document || t.target === e || e.contains(t.target)) { 2594 return; 2595 } 2596 const i = z.focusableChildren(e); 2597 0 === i.length 2598 ? e.focus() 2599 : this._lastTabNavDirection === tn 2600 ? i[i.length - 1].focus() 2601 : i[0].focus(); 2602 } 2603 _handleKeydown(t) { 2604 "Tab" === t.key && 2605 (this._lastTabNavDirection = t.shiftKey ? tn : "forward"); 2606 } 2607 } 2608 const on = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", 2609 rn = ".sticky-top", 2610 an = "padding-right", 2611 ln = "margin-right"; 2612 class cn { 2613 constructor() { 2614 this._element = document.body; 2615 } 2616 getWidth() { 2617 const t = document.documentElement.clientWidth; 2618 return Math.abs(window.innerWidth - t); 2619 } 2620 hide() { 2621 const t = this.getWidth(); 2622 this._disableOverFlow(), 2623 this._setElementAttributes(this._element, an, (e) => e + t), 2624 this._setElementAttributes(on, an, (e) => e + t), 2625 this._setElementAttributes(rn, ln, (e) => e - t); 2626 } 2627 reset() { 2628 this._resetElementAttributes(this._element, "overflow"), 2629 this._resetElementAttributes(this._element, an), 2630 this._resetElementAttributes(on, an), 2631 this._resetElementAttributes(rn, ln); 2632 } 2633 isOverflowing() { 2634 return this.getWidth() > 0; 2635 } 2636 _disableOverFlow() { 2637 this._saveInitialAttribute(this._element, "overflow"), 2638 this._element.style.overflow = "hidden"; 2639 } 2640 _setElementAttributes(t, e, i) { 2641 const n = this.getWidth(); 2642 this._applyManipulationCallback(t, (t) => { 2643 if (t !== this._element && window.innerWidth > t.clientWidth + n) { 2644 return; 2645 } 2646 this._saveInitialAttribute(t, e); 2647 const s = window.getComputedStyle(t).getPropertyValue(e); 2648 t.style.setProperty(e, `${i(Number.parseFloat(s))}px`); 2649 }); 2650 } 2651 _saveInitialAttribute(t, e) { 2652 const i = t.style.getPropertyValue(e); 2653 i && F.setDataAttribute(t, e, i); 2654 } 2655 _resetElementAttributes(t, e) { 2656 this._applyManipulationCallback(t, (t) => { 2657 const i = F.getDataAttribute(t, e); 2658 null !== i 2659 ? (F.removeDataAttribute(t, e), t.style.setProperty(e, i)) 2660 : t.style.removeProperty(e); 2661 }); 2662 } 2663 _applyManipulationCallback(t, e) { 2664 if (o(t)) e(t); 2665 else for (const i of z.find(t, this._element)) e(i); 2666 } 2667 } 2668 const hn = ".bs.modal", 2669 dn = `hide${hn}`, 2670 un = `hidePrevented${hn}`, 2671 fn = `hidden${hn}`, 2672 pn = `show${hn}`, 2673 mn = `shown${hn}`, 2674 gn = `resize${hn}`, 2675 _n = `click.dismiss${hn}`, 2676 bn = `mousedown.dismiss${hn}`, 2677 vn = `keydown.dismiss${hn}`, 2678 yn = `click${hn}.data-api`, 2679 wn = "modal-open", 2680 An = "show", 2681 En = "modal-static", 2682 Tn = { backdrop: !0, focus: !0, keyboard: !0 }, 2683 Cn = { 2684 backdrop: "(boolean|string)", 2685 focus: "boolean", 2686 keyboard: "boolean", 2687 }; 2688 class On extends W { 2689 constructor(t, e) { 2690 super(t, e), 2691 this._dialog = z.findOne(".modal-dialog", this._element), 2692 this._backdrop = this._initializeBackDrop(), 2693 this._focustrap = this._initializeFocusTrap(), 2694 this._isShown = !1, 2695 this._isTransitioning = !1, 2696 this._scrollBar = new cn(), 2697 this._addEventListeners(); 2698 } 2699 static get Default() { 2700 return Tn; 2701 } 2702 static get DefaultType() { 2703 return Cn; 2704 } 2705 static get NAME() { 2706 return "modal"; 2707 } 2708 toggle(t) { 2709 return this._isShown ? this.hide() : this.show(t); 2710 } 2711 show(t) { 2712 this._isShown || this._isTransitioning || 2713 N.trigger(this._element, pn, { relatedTarget: t }).defaultPrevented || 2714 (this._isShown = !0, 2715 this._isTransitioning = !0, 2716 this._scrollBar.hide(), 2717 document.body.classList.add(wn), 2718 this._adjustDialog(), 2719 this._backdrop.show(() => this._showElement(t))); 2720 } 2721 hide() { 2722 this._isShown && !this._isTransitioning && 2723 (N.trigger(this._element, dn).defaultPrevented || 2724 (this._isShown = !1, 2725 this._isTransitioning = !0, 2726 this._focustrap.deactivate(), 2727 this._element.classList.remove(An), 2728 this._queueCallback( 2729 () => this._hideModal(), 2730 this._element, 2731 this._isAnimated(), 2732 ))); 2733 } 2734 dispose() { 2735 N.off(window, hn), 2736 N.off(this._dialog, hn), 2737 this._backdrop.dispose(), 2738 this._focustrap.deactivate(), 2739 super.dispose(); 2740 } 2741 handleUpdate() { 2742 this._adjustDialog(); 2743 } 2744 _initializeBackDrop() { 2745 return new Ui({ 2746 isVisible: Boolean(this._config.backdrop), 2747 isAnimated: this._isAnimated(), 2748 }); 2749 } 2750 _initializeFocusTrap() { 2751 return new sn({ trapElement: this._element }); 2752 } 2753 _showElement(t) { 2754 document.body.contains(this._element) || 2755 document.body.append(this._element), 2756 this._element.style.display = "block", 2757 this._element.removeAttribute("aria-hidden"), 2758 this._element.setAttribute("aria-modal", !0), 2759 this._element.setAttribute("role", "dialog"), 2760 this._element.scrollTop = 0; 2761 const e = z.findOne(".modal-body", this._dialog); 2762 e && (e.scrollTop = 0), 2763 d(this._element), 2764 this._element.classList.add(An), 2765 this._queueCallback( 2766 () => { 2767 this._config.focus && this._focustrap.activate(), 2768 this._isTransitioning = !1, 2769 N.trigger(this._element, mn, { relatedTarget: t }); 2770 }, 2771 this._dialog, 2772 this._isAnimated(), 2773 ); 2774 } 2775 _addEventListeners() { 2776 N.on(this._element, vn, (t) => { 2777 "Escape" === t.key && 2778 (this._config.keyboard 2779 ? this.hide() 2780 : this._triggerBackdropTransition()); 2781 }), 2782 N.on(window, gn, () => { 2783 this._isShown && !this._isTransitioning && this._adjustDialog(); 2784 }), 2785 N.on(this._element, bn, (t) => { 2786 N.one(this._element, _n, (e) => { 2787 this._element === t.target && this._element === e.target && 2788 ("static" !== this._config.backdrop 2789 ? this._config.backdrop && this.hide() 2790 : this._triggerBackdropTransition()); 2791 }); 2792 }); 2793 } 2794 _hideModal() { 2795 this._element.style.display = "none", 2796 this._element.setAttribute("aria-hidden", !0), 2797 this._element.removeAttribute("aria-modal"), 2798 this._element.removeAttribute("role"), 2799 this._isTransitioning = !1, 2800 this._backdrop.hide(() => { 2801 document.body.classList.remove(wn), 2802 this._resetAdjustments(), 2803 this._scrollBar.reset(), 2804 N.trigger(this._element, fn); 2805 }); 2806 } 2807 _isAnimated() { 2808 return this._element.classList.contains("fade"); 2809 } 2810 _triggerBackdropTransition() { 2811 if (N.trigger(this._element, un).defaultPrevented) return; 2812 const t = 2813 this._element.scrollHeight > document.documentElement.clientHeight, 2814 e = this._element.style.overflowY; 2815 "hidden" === e || this._element.classList.contains(En) || 2816 (t || (this._element.style.overflowY = "hidden"), 2817 this._element.classList.add(En), 2818 this._queueCallback(() => { 2819 this._element.classList.remove(En), 2820 this._queueCallback(() => { 2821 this._element.style.overflowY = e; 2822 }, this._dialog); 2823 }, this._dialog), 2824 this._element.focus()); 2825 } 2826 _adjustDialog() { 2827 const t = 2828 this._element.scrollHeight > document.documentElement.clientHeight, 2829 e = this._scrollBar.getWidth(), 2830 i = e > 0; 2831 if (i && !t) { 2832 const t = p() ? "paddingLeft" : "paddingRight"; 2833 this._element.style[t] = `${e}px`; 2834 } 2835 if (!i && t) { 2836 const t = p() ? "paddingRight" : "paddingLeft"; 2837 this._element.style[t] = `${e}px`; 2838 } 2839 } 2840 _resetAdjustments() { 2841 this._element.style.paddingLeft = "", 2842 this._element.style.paddingRight = ""; 2843 } 2844 static jQueryInterface(t, e) { 2845 return this.each(function () { 2846 const i = On.getOrCreateInstance(this, t); 2847 if ("string" == typeof t) { 2848 if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`); 2849 i[t](e); 2850 } 2851 }); 2852 } 2853 } 2854 N.on(document, yn, '[data-bs-toggle="modal"]', function (t) { 2855 const e = z.getElementFromSelector(this); 2856 ["A", "AREA"].includes(this.tagName) && t.preventDefault(), 2857 N.one(e, pn, (t) => { 2858 t.defaultPrevented || N.one(e, fn, () => { 2859 a(this) && this.focus(); 2860 }); 2861 }); 2862 const i = z.findOne(".modal.show"); 2863 i && On.getInstance(i).hide(), On.getOrCreateInstance(e).toggle(this); 2864 }), 2865 R(On), 2866 m(On); 2867 const xn = ".bs.offcanvas", 2868 kn = ".data-api", 2869 Ln = `load${xn}${kn}`, 2870 Sn = "show", 2871 Dn = "showing", 2872 $n = "hiding", 2873 In = ".offcanvas.show", 2874 Nn = `show${xn}`, 2875 Pn = `shown${xn}`, 2876 Mn = `hide${xn}`, 2877 jn = `hidePrevented${xn}`, 2878 Fn = `hidden${xn}`, 2879 Hn = `resize${xn}`, 2880 Wn = `click${xn}${kn}`, 2881 Bn = `keydown.dismiss${xn}`, 2882 zn = { backdrop: !0, keyboard: !0, scroll: !1 }, 2883 Rn = { 2884 backdrop: "(boolean|string)", 2885 keyboard: "boolean", 2886 scroll: "boolean", 2887 }; 2888 class qn extends W { 2889 constructor(t, e) { 2890 super(t, e), 2891 this._isShown = !1, 2892 this._backdrop = this._initializeBackDrop(), 2893 this._focustrap = this._initializeFocusTrap(), 2894 this._addEventListeners(); 2895 } 2896 static get Default() { 2897 return zn; 2898 } 2899 static get DefaultType() { 2900 return Rn; 2901 } 2902 static get NAME() { 2903 return "offcanvas"; 2904 } 2905 toggle(t) { 2906 return this._isShown ? this.hide() : this.show(t); 2907 } 2908 show(t) { 2909 this._isShown || 2910 N.trigger(this._element, Nn, { relatedTarget: t }).defaultPrevented || 2911 (this._isShown = !0, 2912 this._backdrop.show(), 2913 this._config.scroll || (new cn()).hide(), 2914 this._element.setAttribute("aria-modal", !0), 2915 this._element.setAttribute("role", "dialog"), 2916 this._element.classList.add(Dn), 2917 this._queueCallback( 2918 () => { 2919 this._config.scroll && !this._config.backdrop || 2920 this._focustrap.activate(), 2921 this._element.classList.add(Sn), 2922 this._element.classList.remove(Dn), 2923 N.trigger(this._element, Pn, { relatedTarget: t }); 2924 }, 2925 this._element, 2926 !0, 2927 )); 2928 } 2929 hide() { 2930 this._isShown && 2931 (N.trigger(this._element, Mn).defaultPrevented || 2932 (this._focustrap.deactivate(), 2933 this._element.blur(), 2934 this._isShown = !1, 2935 this._element.classList.add($n), 2936 this._backdrop.hide(), 2937 this._queueCallback( 2938 () => { 2939 this._element.classList.remove(Sn, $n), 2940 this._element.removeAttribute("aria-modal"), 2941 this._element.removeAttribute("role"), 2942 this._config.scroll || (new cn()).reset(), 2943 N.trigger(this._element, Fn); 2944 }, 2945 this._element, 2946 !0, 2947 ))); 2948 } 2949 dispose() { 2950 this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose(); 2951 } 2952 _initializeBackDrop() { 2953 const t = Boolean(this._config.backdrop); 2954 return new Ui({ 2955 className: "offcanvas-backdrop", 2956 isVisible: t, 2957 isAnimated: !0, 2958 rootElement: this._element.parentNode, 2959 clickCallback: t 2960 ? () => { 2961 "static" !== this._config.backdrop 2962 ? this.hide() 2963 : N.trigger(this._element, jn); 2964 } 2965 : null, 2966 }); 2967 } 2968 _initializeFocusTrap() { 2969 return new sn({ trapElement: this._element }); 2970 } 2971 _addEventListeners() { 2972 N.on(this._element, Bn, (t) => { 2973 "Escape" === t.key && 2974 (this._config.keyboard ? this.hide() : N.trigger(this._element, jn)); 2975 }); 2976 } 2977 static jQueryInterface(t) { 2978 return this.each(function () { 2979 const e = qn.getOrCreateInstance(this, t); 2980 if ("string" == typeof t) { 2981 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) { 2982 throw new TypeError(`No method named "${t}"`); 2983 } 2984 e[t](this); 2985 } 2986 }); 2987 } 2988 } 2989 N.on(document, Wn, '[data-bs-toggle="offcanvas"]', function (t) { 2990 const e = z.getElementFromSelector(this); 2991 if (["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this)) { 2992 return; 2993 } 2994 N.one(e, Fn, () => { 2995 a(this) && this.focus(); 2996 }); 2997 const i = z.findOne(In); 2998 i && i !== e && qn.getInstance(i).hide(), 2999 qn.getOrCreateInstance(e).toggle(this); 3000 }), 3001 N.on(window, Ln, () => { 3002 for (const t of z.find(In)) qn.getOrCreateInstance(t).show(); 3003 }), 3004 N.on(window, Hn, () => { 3005 for (const t of z.find("[aria-modal][class*=show][class*=offcanvas-]")) { 3006 "fixed" !== getComputedStyle(t).position && 3007 qn.getOrCreateInstance(t).hide(); 3008 } 3009 }), 3010 R(qn), 3011 m(qn); 3012 const Vn = { 3013 "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], 3014 a: ["target", "href", "title", "rel"], 3015 area: [], 3016 b: [], 3017 br: [], 3018 col: [], 3019 code: [], 3020 div: [], 3021 em: [], 3022 hr: [], 3023 h1: [], 3024 h2: [], 3025 h3: [], 3026 h4: [], 3027 h5: [], 3028 h6: [], 3029 i: [], 3030 img: ["src", "srcset", "alt", "title", "width", "height"], 3031 li: [], 3032 ol: [], 3033 p: [], 3034 pre: [], 3035 s: [], 3036 small: [], 3037 span: [], 3038 sub: [], 3039 sup: [], 3040 strong: [], 3041 u: [], 3042 ul: [], 3043 }, 3044 Kn = new Set([ 3045 "background", 3046 "cite", 3047 "href", 3048 "itemtype", 3049 "longdesc", 3050 "poster", 3051 "src", 3052 "xlink:href", 3053 ]), 3054 Qn = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i, 3055 Xn = (t, e) => { 3056 const i = t.nodeName.toLowerCase(); 3057 return e.includes(i) 3058 ? !Kn.has(i) || Boolean(Qn.test(t.nodeValue)) 3059 : e.filter((t) => t instanceof RegExp).some((t) => t.test(i)); 3060 }, 3061 Yn = { 3062 allowList: Vn, 3063 content: {}, 3064 extraClass: "", 3065 html: !1, 3066 sanitize: !0, 3067 sanitizeFn: null, 3068 template: "<div></div>", 3069 }, 3070 Un = { 3071 allowList: "object", 3072 content: "object", 3073 extraClass: "(string|function)", 3074 html: "boolean", 3075 sanitize: "boolean", 3076 sanitizeFn: "(null|function)", 3077 template: "string", 3078 }, 3079 Gn = { 3080 entry: "(string|element|function|null)", 3081 selector: "(string|element)", 3082 }; 3083 class Jn extends H { 3084 constructor(t) { 3085 super(), this._config = this._getConfig(t); 3086 } 3087 static get Default() { 3088 return Yn; 3089 } 3090 static get DefaultType() { 3091 return Un; 3092 } 3093 static get NAME() { 3094 return "TemplateFactory"; 3095 } 3096 getContent() { 3097 return Object.values(this._config.content).map( 3098 (t) => this._resolvePossibleFunction(t), 3099 ).filter(Boolean); 3100 } 3101 hasContent() { 3102 return this.getContent().length > 0; 3103 } 3104 changeContent(t) { 3105 return this._checkContent(t), 3106 this._config.content = { ...this._config.content, ...t }, 3107 this; 3108 } 3109 toHtml() { 3110 const t = document.createElement("div"); 3111 t.innerHTML = this._maybeSanitize(this._config.template); 3112 for (const [e, i] of Object.entries(this._config.content)) { 3113 this._setContent(t, i, e); 3114 } 3115 const e = t.children[0], 3116 i = this._resolvePossibleFunction(this._config.extraClass); 3117 return i && e.classList.add(...i.split(" ")), e; 3118 } 3119 _typeCheckConfig(t) { 3120 super._typeCheckConfig(t), this._checkContent(t.content); 3121 } 3122 _checkContent(t) { 3123 for (const [e, i] of Object.entries(t)) { 3124 super._typeCheckConfig({ selector: e, entry: i }, Gn); 3125 } 3126 } 3127 _setContent(t, e, i) { 3128 const n = z.findOne(i, t); 3129 n && 3130 ((e = this._resolvePossibleFunction(e)) 3131 ? o(e) 3132 ? this._putElementInTemplate(r(e), n) 3133 : this._config.html 3134 ? n.innerHTML = this._maybeSanitize(e) 3135 : n.textContent = e 3136 : n.remove()); 3137 } 3138 _maybeSanitize(t) { 3139 return this._config.sanitize 3140 ? function (t, e, i) { 3141 if (!t.length) return t; 3142 if (i && "function" == typeof i) return i(t); 3143 const n = (new window.DOMParser()).parseFromString(t, "text/html"), 3144 s = [].concat(...n.body.querySelectorAll("*")); 3145 for (const t of s) { 3146 const i = t.nodeName.toLowerCase(); 3147 if (!Object.keys(e).includes(i)) { 3148 t.remove(); 3149 continue; 3150 } 3151 const n = [].concat(...t.attributes), 3152 s = [].concat(e["*"] || [], e[i] || []); 3153 for (const e of n) Xn(e, s) || t.removeAttribute(e.nodeName); 3154 } 3155 return n.body.innerHTML; 3156 }(t, this._config.allowList, this._config.sanitizeFn) 3157 : t; 3158 } 3159 _resolvePossibleFunction(t) { 3160 return g(t, [this]); 3161 } 3162 _putElementInTemplate(t, e) { 3163 if (this._config.html) return e.innerHTML = "", void e.append(t); 3164 e.textContent = t.textContent; 3165 } 3166 } 3167 const Zn = new Set(["sanitize", "allowList", "sanitizeFn"]), 3168 ts = "fade", 3169 es = "show", 3170 is = ".modal", 3171 ns = "hide.bs.modal", 3172 ss = "hover", 3173 os = "focus", 3174 rs = { 3175 AUTO: "auto", 3176 TOP: "top", 3177 RIGHT: p() ? "left" : "right", 3178 BOTTOM: "bottom", 3179 LEFT: p() ? "right" : "left", 3180 }, 3181 as = { 3182 allowList: Vn, 3183 animation: !0, 3184 boundary: "clippingParents", 3185 container: !1, 3186 customClass: "", 3187 delay: 0, 3188 fallbackPlacements: ["top", "right", "bottom", "left"], 3189 html: !1, 3190 offset: [0, 6], 3191 placement: "top", 3192 popperConfig: null, 3193 sanitize: !0, 3194 sanitizeFn: null, 3195 selector: !1, 3196 template: 3197 '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 3198 title: "", 3199 trigger: "hover focus", 3200 }, 3201 ls = { 3202 allowList: "object", 3203 animation: "boolean", 3204 boundary: "(string|element)", 3205 container: "(string|element|boolean)", 3206 customClass: "(string|function)", 3207 delay: "(number|object)", 3208 fallbackPlacements: "array", 3209 html: "boolean", 3210 offset: "(array|string|function)", 3211 placement: "(string|function)", 3212 popperConfig: "(null|object|function)", 3213 sanitize: "boolean", 3214 sanitizeFn: "(null|function)", 3215 selector: "(string|boolean)", 3216 template: "string", 3217 title: "(string|element|function)", 3218 trigger: "string", 3219 }; 3220 class cs extends W { 3221 constructor(t, e) { 3222 if (void 0 === vi) { 3223 throw new TypeError( 3224 "Bootstrap's tooltips require Popper (https://popper.js.org)", 3225 ); 3226 } 3227 super(t, e), 3228 this._isEnabled = !0, 3229 this._timeout = 0, 3230 this._isHovered = null, 3231 this._activeTrigger = {}, 3232 this._popper = null, 3233 this._templateFactory = null, 3234 this._newContent = null, 3235 this.tip = null, 3236 this._setListeners(), 3237 this._config.selector || this._fixTitle(); 3238 } 3239 static get Default() { 3240 return as; 3241 } 3242 static get DefaultType() { 3243 return ls; 3244 } 3245 static get NAME() { 3246 return "tooltip"; 3247 } 3248 enable() { 3249 this._isEnabled = !0; 3250 } 3251 disable() { 3252 this._isEnabled = !1; 3253 } 3254 toggleEnabled() { 3255 this._isEnabled = !this._isEnabled; 3256 } 3257 toggle() { 3258 this._isEnabled && 3259 (this._activeTrigger.click = !this._activeTrigger.click, 3260 this._isShown() ? this._leave() : this._enter()); 3261 } 3262 dispose() { 3263 clearTimeout(this._timeout), 3264 N.off(this._element.closest(is), ns, this._hideModalHandler), 3265 this._element.getAttribute("data-bs-original-title") && 3266 this._element.setAttribute( 3267 "title", 3268 this._element.getAttribute("data-bs-original-title"), 3269 ), 3270 this._disposePopper(), 3271 super.dispose(); 3272 } 3273 show() { 3274 if ("none" === this._element.style.display) { 3275 throw new Error("Please use show on visible elements"); 3276 } 3277 if (!this._isWithContent() || !this._isEnabled) return; 3278 const t = N.trigger(this._element, this.constructor.eventName("show")), 3279 e = (c(this._element) || this._element.ownerDocument.documentElement) 3280 .contains(this._element); 3281 if (t.defaultPrevented || !e) return; 3282 this._disposePopper(); 3283 const i = this._getTipElement(); 3284 this._element.setAttribute("aria-describedby", i.getAttribute("id")); 3285 const { container: n } = this._config; 3286 if ( 3287 this._element.ownerDocument.documentElement.contains(this.tip) || 3288 (n.append(i), 3289 N.trigger(this._element, this.constructor.eventName("inserted"))), 3290 this._popper = this._createPopper(i), 3291 i.classList.add(es), 3292 "ontouchstart" in document.documentElement 3293 ) { 3294 for (const t of [].concat(...document.body.children)) { 3295 N.on(t, "mouseover", h); 3296 } 3297 } 3298 this._queueCallback( 3299 () => { 3300 N.trigger(this._element, this.constructor.eventName("shown")), 3301 !1 === this._isHovered && this._leave(), 3302 this._isHovered = !1; 3303 }, 3304 this.tip, 3305 this._isAnimated(), 3306 ); 3307 } 3308 hide() { 3309 if ( 3310 this._isShown() && 3311 !N.trigger(this._element, this.constructor.eventName("hide")) 3312 .defaultPrevented 3313 ) { 3314 if ( 3315 this._getTipElement().classList.remove(es), 3316 "ontouchstart" in document.documentElement 3317 ) { 3318 for (const t of [].concat(...document.body.children)) { 3319 N.off(t, "mouseover", h); 3320 } 3321 } 3322 this._activeTrigger.click = !1, 3323 this._activeTrigger[os] = !1, 3324 this._activeTrigger[ss] = !1, 3325 this._isHovered = null, 3326 this._queueCallback( 3327 () => { 3328 this._isWithActiveTrigger() || 3329 (this._isHovered || this._disposePopper(), 3330 this._element.removeAttribute("aria-describedby"), 3331 N.trigger( 3332 this._element, 3333 this.constructor.eventName("hidden"), 3334 )); 3335 }, 3336 this.tip, 3337 this._isAnimated(), 3338 ); 3339 } 3340 } 3341 update() { 3342 this._popper && this._popper.update(); 3343 } 3344 _isWithContent() { 3345 return Boolean(this._getTitle()); 3346 } 3347 _getTipElement() { 3348 return this.tip || 3349 (this.tip = this._createTipElement( 3350 this._newContent || this._getContentForTemplate(), 3351 )), 3352 this.tip; 3353 } 3354 _createTipElement(t) { 3355 const e = this._getTemplateFactory(t).toHtml(); 3356 if (!e) return null; 3357 e.classList.remove(ts, es), 3358 e.classList.add(`bs-${this.constructor.NAME}-auto`); 3359 const i = ((t) => { 3360 do { 3361 t += Math.floor(1e6 * Math.random()); 3362 } while (document.getElementById(t)); 3363 return t; 3364 })(this.constructor.NAME).toString(); 3365 return e.setAttribute("id", i), 3366 this._isAnimated() && e.classList.add(ts), 3367 e; 3368 } 3369 setContent(t) { 3370 this._newContent = t, 3371 this._isShown() && (this._disposePopper(), this.show()); 3372 } 3373 _getTemplateFactory(t) { 3374 return this._templateFactory 3375 ? this._templateFactory.changeContent(t) 3376 : this._templateFactory = new Jn({ 3377 ...this._config, 3378 content: t, 3379 extraClass: this._resolvePossibleFunction(this._config.customClass), 3380 }), 3381 this._templateFactory; 3382 } 3383 _getContentForTemplate() { 3384 return { ".tooltip-inner": this._getTitle() }; 3385 } 3386 _getTitle() { 3387 return this._resolvePossibleFunction(this._config.title) || 3388 this._element.getAttribute("data-bs-original-title"); 3389 } 3390 _initializeOnDelegatedTarget(t) { 3391 return this.constructor.getOrCreateInstance( 3392 t.delegateTarget, 3393 this._getDelegateConfig(), 3394 ); 3395 } 3396 _isAnimated() { 3397 return this._config.animation || 3398 this.tip && this.tip.classList.contains(ts); 3399 } 3400 _isShown() { 3401 return this.tip && this.tip.classList.contains(es); 3402 } 3403 _createPopper(t) { 3404 const e = g(this._config.placement, [this, t, this._element]), 3405 i = rs[e.toUpperCase()]; 3406 return bi(this._element, t, this._getPopperConfig(i)); 3407 } 3408 _getOffset() { 3409 const { offset: t } = this._config; 3410 return "string" == typeof t 3411 ? t.split(",").map((t) => Number.parseInt(t, 10)) 3412 : "function" == typeof t 3413 ? (e) => t(e, this._element) 3414 : t; 3415 } 3416 _resolvePossibleFunction(t) { 3417 return g(t, [this._element]); 3418 } 3419 _getPopperConfig(t) { 3420 const e = { 3421 placement: t, 3422 modifiers: [ 3423 { 3424 name: "flip", 3425 options: { fallbackPlacements: this._config.fallbackPlacements }, 3426 }, 3427 { name: "offset", options: { offset: this._getOffset() } }, 3428 { 3429 name: "preventOverflow", 3430 options: { boundary: this._config.boundary }, 3431 }, 3432 { 3433 name: "arrow", 3434 options: { element: `.${this.constructor.NAME}-arrow` }, 3435 }, 3436 { 3437 name: "preSetPlacement", 3438 enabled: !0, 3439 phase: "beforeMain", 3440 fn: (t) => { 3441 this._getTipElement().setAttribute( 3442 "data-popper-placement", 3443 t.state.placement, 3444 ); 3445 }, 3446 }, 3447 ], 3448 }; 3449 return { ...e, ...g(this._config.popperConfig, [e]) }; 3450 } 3451 _setListeners() { 3452 const t = this._config.trigger.split(" "); 3453 for (const e of t) { 3454 if ("click" === e) { 3455 N.on( 3456 this._element, 3457 this.constructor.eventName("click"), 3458 this._config.selector, 3459 (t) => { 3460 this._initializeOnDelegatedTarget(t).toggle(); 3461 }, 3462 ); 3463 } else if ("manual" !== e) { 3464 const t = e === ss 3465 ? this.constructor.eventName("mouseenter") 3466 : this.constructor.eventName("focusin"), 3467 i = e === ss 3468 ? this.constructor.eventName("mouseleave") 3469 : this.constructor.eventName("focusout"); 3470 N.on(this._element, t, this._config.selector, (t) => { 3471 const e = this._initializeOnDelegatedTarget(t); 3472 e._activeTrigger["focusin" === t.type ? os : ss] = !0, e._enter(); 3473 }), 3474 N.on(this._element, i, this._config.selector, (t) => { 3475 const e = this._initializeOnDelegatedTarget(t); 3476 e._activeTrigger["focusout" === t.type ? os : ss] = e._element 3477 .contains(t.relatedTarget), e._leave(); 3478 }); 3479 } 3480 } 3481 this._hideModalHandler = () => { 3482 this._element && this.hide(); 3483 }, N.on(this._element.closest(is), ns, this._hideModalHandler); 3484 } 3485 _fixTitle() { 3486 const t = this._element.getAttribute("title"); 3487 t && 3488 (this._element.getAttribute("aria-label") || 3489 this._element.textContent.trim() || 3490 this._element.setAttribute("aria-label", t), 3491 this._element.setAttribute("data-bs-original-title", t), 3492 this._element.removeAttribute("title")); 3493 } 3494 _enter() { 3495 this._isShown() || this._isHovered 3496 ? this._isHovered = !0 3497 : (this._isHovered = !0, 3498 this._setTimeout(() => { 3499 this._isHovered && this.show(); 3500 }, this._config.delay.show)); 3501 } 3502 _leave() { 3503 this._isWithActiveTrigger() || 3504 (this._isHovered = !1, 3505 this._setTimeout(() => { 3506 this._isHovered || this.hide(); 3507 }, this._config.delay.hide)); 3508 } 3509 _setTimeout(t, e) { 3510 clearTimeout(this._timeout), this._timeout = setTimeout(t, e); 3511 } 3512 _isWithActiveTrigger() { 3513 return Object.values(this._activeTrigger).includes(!0); 3514 } 3515 _getConfig(t) { 3516 const e = F.getDataAttributes(this._element); 3517 for (const t of Object.keys(e)) Zn.has(t) && delete e[t]; 3518 return t = { ...e, ..."object" == typeof t && t ? t : {} }, 3519 t = this._mergeConfigObj(t), 3520 t = this._configAfterMerge(t), 3521 this._typeCheckConfig(t), 3522 t; 3523 } 3524 _configAfterMerge(t) { 3525 return t.container = !1 === t.container ? document.body : r(t.container), 3526 "number" == typeof t.delay && 3527 (t.delay = { show: t.delay, hide: t.delay }), 3528 "number" == typeof t.title && (t.title = t.title.toString()), 3529 "number" == typeof t.content && (t.content = t.content.toString()), 3530 t; 3531 } 3532 _getDelegateConfig() { 3533 const t = {}; 3534 for (const [e, i] of Object.entries(this._config)) { 3535 this.constructor.Default[e] !== i && (t[e] = i); 3536 } 3537 return t.selector = !1, t.trigger = "manual", t; 3538 } 3539 _disposePopper() { 3540 this._popper && (this._popper.destroy(), this._popper = null), 3541 this.tip && (this.tip.remove(), this.tip = null); 3542 } 3543 static jQueryInterface(t) { 3544 return this.each(function () { 3545 const e = cs.getOrCreateInstance(this, t); 3546 if ("string" == typeof t) { 3547 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 3548 e[t](); 3549 } 3550 }); 3551 } 3552 } 3553 m(cs); 3554 const hs = { 3555 ...cs.Default, 3556 content: "", 3557 offset: [0, 8], 3558 placement: "right", 3559 template: 3560 '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', 3561 trigger: "click", 3562 }, 3563 ds = { ...cs.DefaultType, content: "(null|string|element|function)" }; 3564 class us extends cs { 3565 static get Default() { 3566 return hs; 3567 } 3568 static get DefaultType() { 3569 return ds; 3570 } 3571 static get NAME() { 3572 return "popover"; 3573 } 3574 _isWithContent() { 3575 return this._getTitle() || this._getContent(); 3576 } 3577 _getContentForTemplate() { 3578 return { 3579 ".popover-header": this._getTitle(), 3580 ".popover-body": this._getContent(), 3581 }; 3582 } 3583 _getContent() { 3584 return this._resolvePossibleFunction(this._config.content); 3585 } 3586 static jQueryInterface(t) { 3587 return this.each(function () { 3588 const e = us.getOrCreateInstance(this, t); 3589 if ("string" == typeof t) { 3590 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 3591 e[t](); 3592 } 3593 }); 3594 } 3595 } 3596 m(us); 3597 const fs = ".bs.scrollspy", 3598 ps = `activate${fs}`, 3599 ms = `click${fs}`, 3600 gs = `load${fs}.data-api`, 3601 _s = "active", 3602 bs = "[href]", 3603 vs = ".nav-link", 3604 ys = `${vs}, .nav-item > ${vs}, .list-group-item`, 3605 ws = { 3606 offset: null, 3607 rootMargin: "0px 0px -25%", 3608 smoothScroll: !1, 3609 target: null, 3610 threshold: [.1, .5, 1], 3611 }, 3612 As = { 3613 offset: "(number|null)", 3614 rootMargin: "string", 3615 smoothScroll: "boolean", 3616 target: "element", 3617 threshold: "array", 3618 }; 3619 class Es extends W { 3620 constructor(t, e) { 3621 super(t, e), 3622 this._targetLinks = new Map(), 3623 this._observableSections = new Map(), 3624 this._rootElement = 3625 "visible" === getComputedStyle(this._element).overflowY 3626 ? null 3627 : this._element, 3628 this._activeTarget = null, 3629 this._observer = null, 3630 this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }, 3631 this.refresh(); 3632 } 3633 static get Default() { 3634 return ws; 3635 } 3636 static get DefaultType() { 3637 return As; 3638 } 3639 static get NAME() { 3640 return "scrollspy"; 3641 } 3642 refresh() { 3643 this._initializeTargetsAndObservables(), 3644 this._maybeEnableSmoothScroll(), 3645 this._observer 3646 ? this._observer.disconnect() 3647 : this._observer = this._getNewObserver(); 3648 for (const t of this._observableSections.values()) { 3649 this._observer.observe(t); 3650 } 3651 } 3652 dispose() { 3653 this._observer.disconnect(), super.dispose(); 3654 } 3655 _configAfterMerge(t) { 3656 return t.target = r(t.target) || document.body, 3657 t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin, 3658 "string" == typeof t.threshold && 3659 (t.threshold = t.threshold.split(",").map((t) => Number.parseFloat(t))), 3660 t; 3661 } 3662 _maybeEnableSmoothScroll() { 3663 this._config.smoothScroll && 3664 (N.off(this._config.target, ms), 3665 N.on(this._config.target, ms, bs, (t) => { 3666 const e = this._observableSections.get(t.target.hash); 3667 if (e) { 3668 t.preventDefault(); 3669 const i = this._rootElement || window, 3670 n = e.offsetTop - this._element.offsetTop; 3671 if (i.scrollTo) { 3672 return void i.scrollTo({ top: n, behavior: "smooth" }); 3673 } 3674 i.scrollTop = n; 3675 } 3676 })); 3677 } 3678 _getNewObserver() { 3679 const t = { 3680 root: this._rootElement, 3681 threshold: this._config.threshold, 3682 rootMargin: this._config.rootMargin, 3683 }; 3684 return new IntersectionObserver((t) => this._observerCallback(t), t); 3685 } 3686 _observerCallback(t) { 3687 const e = (t) => this._targetLinks.get(`#${t.target.id}`), 3688 i = (t) => { 3689 this._previousScrollData.visibleEntryTop = t.target.offsetTop, 3690 this._process(e(t)); 3691 }, 3692 n = (this._rootElement || document.documentElement).scrollTop, 3693 s = n >= this._previousScrollData.parentScrollTop; 3694 this._previousScrollData.parentScrollTop = n; 3695 for (const o of t) { 3696 if (!o.isIntersecting) { 3697 this._activeTarget = null, this._clearActiveClass(e(o)); 3698 continue; 3699 } 3700 const t = 3701 o.target.offsetTop >= this._previousScrollData.visibleEntryTop; 3702 if (s && t) { if (i(o), !n) return; } 3703 else s || t || i(o); 3704 } 3705 } 3706 _initializeTargetsAndObservables() { 3707 this._targetLinks = new Map(), this._observableSections = new Map(); 3708 const t = z.find(bs, this._config.target); 3709 for (const e of t) { 3710 if (!e.hash || l(e)) continue; 3711 const t = z.findOne(decodeURI(e.hash), this._element); 3712 a(t) && 3713 (this._targetLinks.set(decodeURI(e.hash), e), 3714 this._observableSections.set(e.hash, t)); 3715 } 3716 } 3717 _process(t) { 3718 this._activeTarget !== t && 3719 (this._clearActiveClass(this._config.target), 3720 this._activeTarget = t, 3721 t.classList.add(_s), 3722 this._activateParents(t), 3723 N.trigger(this._element, ps, { relatedTarget: t })); 3724 } 3725 _activateParents(t) { 3726 if (t.classList.contains("dropdown-item")) { 3727 z.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(_s); 3728 } else {for (const e of z.parents(t, ".nav, .list-group")) { 3729 for (const t of z.prev(e, ys)) { 3730 t.classList.add(_s); 3731 } 3732 }} 3733 } 3734 _clearActiveClass(t) { 3735 t.classList.remove(_s); 3736 const e = z.find(`${bs}.${_s}`, t); 3737 for (const t of e) t.classList.remove(_s); 3738 } 3739 static jQueryInterface(t) { 3740 return this.each(function () { 3741 const e = Es.getOrCreateInstance(this, t); 3742 if ("string" == typeof t) { 3743 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) { 3744 throw new TypeError(`No method named "${t}"`); 3745 } 3746 e[t](); 3747 } 3748 }); 3749 } 3750 } 3751 N.on(window, gs, () => { 3752 for (const t of z.find('[data-bs-spy="scroll"]')) Es.getOrCreateInstance(t); 3753 }), m(Es); 3754 const Ts = ".bs.tab", 3755 Cs = `hide${Ts}`, 3756 Os = `hidden${Ts}`, 3757 xs = `show${Ts}`, 3758 ks = `shown${Ts}`, 3759 Ls = `click${Ts}`, 3760 Ss = `keydown${Ts}`, 3761 Ds = `load${Ts}`, 3762 $s = "ArrowLeft", 3763 Is = "ArrowRight", 3764 Ns = "ArrowUp", 3765 Ps = "ArrowDown", 3766 Ms = "Home", 3767 js = "End", 3768 Fs = "active", 3769 Hs = "fade", 3770 Ws = "show", 3771 Bs = ".dropdown-toggle", 3772 zs = `:not(${Bs})`, 3773 Rs = 3774 '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', 3775 qs = `.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`, 3776 Vs = 3777 `.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`; 3778 class Ks extends W { 3779 constructor(t) { 3780 super(t), 3781 this._parent = this._element.closest( 3782 '.list-group, .nav, [role="tablist"]', 3783 ), 3784 this._parent && 3785 (this._setInitialAttributes(this._parent, this._getChildren()), 3786 N.on(this._element, Ss, (t) => this._keydown(t))); 3787 } 3788 static get NAME() { 3789 return "tab"; 3790 } 3791 show() { 3792 const t = this._element; 3793 if (this._elemIsActive(t)) return; 3794 const e = this._getActiveElem(), 3795 i = e ? N.trigger(e, Cs, { relatedTarget: t }) : null; 3796 N.trigger(t, xs, { relatedTarget: e }).defaultPrevented || 3797 i && i.defaultPrevented || 3798 (this._deactivate(e, t), this._activate(t, e)); 3799 } 3800 _activate(t, e) { 3801 t && 3802 (t.classList.add(Fs), 3803 this._activate(z.getElementFromSelector(t)), 3804 this._queueCallback( 3805 () => { 3806 "tab" === t.getAttribute("role") 3807 ? (t.removeAttribute("tabindex"), 3808 t.setAttribute("aria-selected", !0), 3809 this._toggleDropDown(t, !0), 3810 N.trigger(t, ks, { relatedTarget: e })) 3811 : t.classList.add(Ws); 3812 }, 3813 t, 3814 t.classList.contains(Hs), 3815 )); 3816 } 3817 _deactivate(t, e) { 3818 t && 3819 (t.classList.remove(Fs), 3820 t.blur(), 3821 this._deactivate(z.getElementFromSelector(t)), 3822 this._queueCallback( 3823 () => { 3824 "tab" === t.getAttribute("role") 3825 ? (t.setAttribute("aria-selected", !1), 3826 t.setAttribute("tabindex", "-1"), 3827 this._toggleDropDown(t, !1), 3828 N.trigger(t, Os, { relatedTarget: e })) 3829 : t.classList.remove(Ws); 3830 }, 3831 t, 3832 t.classList.contains(Hs), 3833 )); 3834 } 3835 _keydown(t) { 3836 if (![$s, Is, Ns, Ps, Ms, js].includes(t.key)) return; 3837 t.stopPropagation(), t.preventDefault(); 3838 const e = this._getChildren().filter((t) => !l(t)); 3839 let i; 3840 if ([Ms, js].includes(t.key)) i = e[t.key === Ms ? 0 : e.length - 1]; 3841 else { 3842 const n = [Is, Ps].includes(t.key); 3843 i = b(e, t.target, n, !0); 3844 } 3845 i && (i.focus({ preventScroll: !0 }), Ks.getOrCreateInstance(i).show()); 3846 } 3847 _getChildren() { 3848 return z.find(qs, this._parent); 3849 } 3850 _getActiveElem() { 3851 return this._getChildren().find((t) => this._elemIsActive(t)) || null; 3852 } 3853 _setInitialAttributes(t, e) { 3854 this._setAttributeIfNotExists(t, "role", "tablist"); 3855 for (const t of e) this._setInitialAttributesOnChild(t); 3856 } 3857 _setInitialAttributesOnChild(t) { 3858 t = this._getInnerElement(t); 3859 const e = this._elemIsActive(t), i = this._getOuterElement(t); 3860 t.setAttribute("aria-selected", e), 3861 i !== t && this._setAttributeIfNotExists(i, "role", "presentation"), 3862 e || t.setAttribute("tabindex", "-1"), 3863 this._setAttributeIfNotExists(t, "role", "tab"), 3864 this._setInitialAttributesOnTargetPanel(t); 3865 } 3866 _setInitialAttributesOnTargetPanel(t) { 3867 const e = z.getElementFromSelector(t); 3868 e && 3869 (this._setAttributeIfNotExists(e, "role", "tabpanel"), 3870 t.id && 3871 this._setAttributeIfNotExists(e, "aria-labelledby", `${t.id}`)); 3872 } 3873 _toggleDropDown(t, e) { 3874 const i = this._getOuterElement(t); 3875 if (!i.classList.contains("dropdown")) return; 3876 const n = (t, n) => { 3877 const s = z.findOne(t, i); 3878 s && s.classList.toggle(n, e); 3879 }; 3880 n(Bs, Fs), n(".dropdown-menu", Ws), i.setAttribute("aria-expanded", e); 3881 } 3882 _setAttributeIfNotExists(t, e, i) { 3883 t.hasAttribute(e) || t.setAttribute(e, i); 3884 } 3885 _elemIsActive(t) { 3886 return t.classList.contains(Fs); 3887 } 3888 _getInnerElement(t) { 3889 return t.matches(qs) ? t : z.findOne(qs, t); 3890 } 3891 _getOuterElement(t) { 3892 return t.closest(".nav-item, .list-group-item") || t; 3893 } 3894 static jQueryInterface(t) { 3895 return this.each(function () { 3896 const e = Ks.getOrCreateInstance(this); 3897 if ("string" == typeof t) { 3898 if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) { 3899 throw new TypeError(`No method named "${t}"`); 3900 } 3901 e[t](); 3902 } 3903 }); 3904 } 3905 } 3906 N.on(document, Ls, Rs, function (t) { 3907 ["A", "AREA"].includes(this.tagName) && t.preventDefault(), 3908 l(this) || Ks.getOrCreateInstance(this).show(); 3909 }), 3910 N.on(window, Ds, () => { 3911 for (const t of z.find(Vs)) Ks.getOrCreateInstance(t); 3912 }), 3913 m(Ks); 3914 const Qs = ".bs.toast", 3915 Xs = `mouseover${Qs}`, 3916 Ys = `mouseout${Qs}`, 3917 Us = `focusin${Qs}`, 3918 Gs = `focusout${Qs}`, 3919 Js = `hide${Qs}`, 3920 Zs = `hidden${Qs}`, 3921 to = `show${Qs}`, 3922 eo = `shown${Qs}`, 3923 io = "hide", 3924 no = "show", 3925 so = "showing", 3926 oo = { animation: "boolean", autohide: "boolean", delay: "number" }, 3927 ro = { animation: !0, autohide: !0, delay: 5e3 }; 3928 class ao extends W { 3929 constructor(t, e) { 3930 super(t, e), 3931 this._timeout = null, 3932 this._hasMouseInteraction = !1, 3933 this._hasKeyboardInteraction = !1, 3934 this._setListeners(); 3935 } 3936 static get Default() { 3937 return ro; 3938 } 3939 static get DefaultType() { 3940 return oo; 3941 } 3942 static get NAME() { 3943 return "toast"; 3944 } 3945 show() { 3946 N.trigger(this._element, to).defaultPrevented || 3947 (this._clearTimeout(), 3948 this._config.animation && this._element.classList.add("fade"), 3949 this._element.classList.remove(io), 3950 d(this._element), 3951 this._element.classList.add(no, so), 3952 this._queueCallback( 3953 () => { 3954 this._element.classList.remove(so), 3955 N.trigger(this._element, eo), 3956 this._maybeScheduleHide(); 3957 }, 3958 this._element, 3959 this._config.animation, 3960 )); 3961 } 3962 hide() { 3963 this.isShown() && 3964 (N.trigger(this._element, Js).defaultPrevented || 3965 (this._element.classList.add(so), 3966 this._queueCallback( 3967 () => { 3968 this._element.classList.add(io), 3969 this._element.classList.remove(so, no), 3970 N.trigger(this._element, Zs); 3971 }, 3972 this._element, 3973 this._config.animation, 3974 ))); 3975 } 3976 dispose() { 3977 this._clearTimeout(), 3978 this.isShown() && this._element.classList.remove(no), 3979 super.dispose(); 3980 } 3981 isShown() { 3982 return this._element.classList.contains(no); 3983 } 3984 _maybeScheduleHide() { 3985 this._config.autohide && 3986 (this._hasMouseInteraction || this._hasKeyboardInteraction || 3987 (this._timeout = setTimeout(() => { 3988 this.hide(); 3989 }, this._config.delay))); 3990 } 3991 _onInteraction(t, e) { 3992 switch (t.type) { 3993 case "mouseover": 3994 case "mouseout": 3995 this._hasMouseInteraction = e; 3996 break; 3997 case "focusin": 3998 case "focusout": 3999 this._hasKeyboardInteraction = e; 4000 } 4001 if (e) return void this._clearTimeout(); 4002 const i = t.relatedTarget; 4003 this._element === i || this._element.contains(i) || 4004 this._maybeScheduleHide(); 4005 } 4006 _setListeners() { 4007 N.on(this._element, Xs, (t) => this._onInteraction(t, !0)), 4008 N.on(this._element, Ys, (t) => this._onInteraction(t, !1)), 4009 N.on(this._element, Us, (t) => this._onInteraction(t, !0)), 4010 N.on(this._element, Gs, (t) => this._onInteraction(t, !1)); 4011 } 4012 _clearTimeout() { 4013 clearTimeout(this._timeout), this._timeout = null; 4014 } 4015 static jQueryInterface(t) { 4016 return this.each(function () { 4017 const e = ao.getOrCreateInstance(this, t); 4018 if ("string" == typeof t) { 4019 if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); 4020 e[t](this); 4021 } 4022 }); 4023 } 4024 } 4025 return R(ao), m(ao), { 4026 Alert: Q, 4027 Button: Y, 4028 Carousel: xt, 4029 Collapse: Bt, 4030 Dropdown: qi, 4031 Modal: On, 4032 Offcanvas: qn, 4033 Popover: us, 4034 ScrollSpy: Es, 4035 Tab: Ks, 4036 Toast: ao, 4037 Tooltip: cs, 4038 }; 4039}); 4040//# sourceMappingURL=bootstrap.bundle.min.js.map