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