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