bootstrap-native.mjs 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791
  1. const xn = "aria-describedby", Ee = "aria-expanded", re = "aria-hidden", $e = "aria-modal", Cs = "aria-pressed", ke = "aria-selected", is = "focus", rs = "focusin", Sn = "focusout", ye = "keydown", Ro = "keyup", D = "click", Hn = "mousedown", Wo = "hover", Ce = "mouseenter", cs = "mouseleave", Fo = "pointerdown", jo = "pointermove", zo = "pointerup", as = "touchstart", Ko = "dragstart", Vo = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]', Xe = "ArrowDown", qe = "ArrowUp", xs = "ArrowLeft", Ss = "ArrowRight", ls = "Escape", Xo = "transitionDuration", qo = "transitionDelay", Oe = "transitionend", _n = "transitionProperty", Uo = () => {
  2. const e = /(iPhone|iPod|iPad)/;
  3. return navigator?.userAgentData?.brands.some(
  4. (t) => e.test(t.brand)
  5. ) || e.test(
  6. navigator?.userAgent
  7. ) || !1;
  8. }, Te = () => {
  9. }, Yo = (e, t, s, n) => {
  10. e.addEventListener(
  11. t,
  12. s,
  13. !1
  14. );
  15. }, Zo = (e, t, s, n) => {
  16. e.removeEventListener(
  17. t,
  18. s,
  19. !1
  20. );
  21. }, Y = (e, t) => e.getAttribute(t), Jt = (e, t) => e.hasAttribute(t), L = (e, t, s) => e.setAttribute(t, s), Dt = (e, t) => e.removeAttribute(t), d = (e, ...t) => {
  22. e.classList.add(...t);
  23. }, v = (e, ...t) => {
  24. e.classList.remove(...t);
  25. }, h = (e, t) => e.classList.contains(t), ce = (e) => e != null && typeof e == "object" || !1, A = (e) => ce(e) && typeof e.nodeType == "number" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(
  26. (t) => e.nodeType === t
  27. ) || !1, U = (e) => A(e) && e.nodeType === 1 || !1, jt = /* @__PURE__ */ new Map(), _t = {
  28. data: jt,
  29. set: (e, t, s) => {
  30. U(e) && (jt.has(t) || jt.set(t, /* @__PURE__ */ new Map()), jt.get(t).set(e, s));
  31. },
  32. getAllFor: (e) => jt.get(e) || null,
  33. get: (e, t) => {
  34. if (!U(e) || !t) return null;
  35. const s = _t.getAllFor(t);
  36. return e && s && s.get(e) || null;
  37. },
  38. remove: (e, t) => {
  39. const s = _t.getAllFor(t);
  40. !s || !U(e) || (s.delete(e), s.size === 0 && jt.delete(t));
  41. }
  42. }, F = (e, t) => _t.get(e, t), Hs = (e) => e?.trim().replace(
  43. /(?:^\w|[A-Z]|\b\w)/g,
  44. (t, s) => s === 0 ? t.toLowerCase() : t.toUpperCase()
  45. ).replace(/\s+/g, ""), ae = (e) => typeof e == "string" || !1, An = (e) => ce(e) && e.constructor.name === "Window" || !1, Pn = (e) => A(e) && e.nodeType === 9 || !1, w = (e) => Pn(e) ? e : A(e) ? e.ownerDocument : An(e) ? e.document : globalThis.document, at = (e, ...t) => Object.assign(e, ...t), bt = (e) => {
  46. if (!e) return;
  47. if (ae(e))
  48. return w().createElement(e);
  49. const { tagName: t } = e, s = bt(t);
  50. if (!s) return;
  51. const n = { ...e };
  52. return delete n.tagName, at(s, n);
  53. }, b = (e, t) => e.dispatchEvent(t), W = (e, t, s) => {
  54. const n = getComputedStyle(e, s), o = t.replace("webkit", "Webkit").replace(/([A-Z])/g, "-$1").toLowerCase();
  55. return n.getPropertyValue(o);
  56. }, Qo = (e) => {
  57. const t = W(e, _n), s = W(e, qo), n = s.includes("ms") ? 1 : 1e3, o = t && t !== "none" ? parseFloat(s) * n : 0;
  58. return Number.isNaN(o) ? 0 : o;
  59. }, le = (e) => {
  60. const t = W(e, _n), s = W(e, Xo), n = s.includes("ms") ? 1 : 1e3, o = t && t !== "none" ? parseFloat(s) * n : 0;
  61. return Number.isNaN(o) ? 0 : o;
  62. }, S = (e, t) => {
  63. let s = 0;
  64. const n = new Event(Oe), o = le(e), i = Qo(e);
  65. if (o) {
  66. const r = (c) => {
  67. c.target === e && (t.apply(e, [c]), e.removeEventListener(Oe, r), s = 1);
  68. };
  69. e.addEventListener(Oe, r), setTimeout(() => {
  70. s || b(e, n);
  71. }, o + i + 17);
  72. } else
  73. t.apply(e, [n]);
  74. }, lt = (e, t) => e.focus(t), _s = (e) => ["true", !0].includes(e) ? !0 : ["false", !1].includes(e) ? !1 : ["null", "", null, void 0].includes(e) ? null : e !== "" && !Number.isNaN(+e) ? +e : e, pe = (e) => Object.entries(e), Go = (e, t, s, n) => {
  75. if (!U(e)) return t;
  76. const o = { ...s }, i = { ...e.dataset }, r = { ...t }, c = {}, a = "title";
  77. return pe(i).forEach(([l, f]) => {
  78. const u = typeof l == "string" && l.includes(n) ? Hs(l.replace(n, "")) : Hs(l);
  79. c[u] = _s(f);
  80. }), pe(o).forEach(([l, f]) => {
  81. o[l] = _s(f);
  82. }), pe(t).forEach(([l, f]) => {
  83. l in o ? r[l] = o[l] : l in c ? r[l] = c[l] : r[l] = l === a ? Y(e, a) : f;
  84. }), r;
  85. }, As = (e) => Object.keys(e), E = (e, t) => {
  86. const s = new CustomEvent(e, {
  87. cancelable: !0,
  88. bubbles: !0
  89. });
  90. return ce(t) && at(s, t), s;
  91. }, te = { passive: !0 }, Ot = (e) => e.offsetHeight, H = (e, t) => {
  92. pe(t).forEach(([s, n]) => {
  93. if (n && ae(s) && s.includes("--"))
  94. e.style.setProperty(s, n);
  95. else {
  96. const o = {};
  97. o[s] = n, at(e.style, o);
  98. }
  99. });
  100. }, Ue = (e) => ce(e) && e.constructor.name === "Map" || !1, Jo = (e) => typeof e == "number" || !1, pt = /* @__PURE__ */ new Map(), g = {
  101. set: (e, t, s, n) => {
  102. U(e) && (n && n.length ? (pt.has(e) || pt.set(e, /* @__PURE__ */ new Map()), pt.get(e).set(n, setTimeout(t, s))) : pt.set(e, setTimeout(t, s)));
  103. },
  104. get: (e, t) => {
  105. if (!U(e)) return null;
  106. const s = pt.get(e);
  107. return t && s && Ue(s) ? s.get(t) || null : Jo(s) ? s : null;
  108. },
  109. clear: (e, t) => {
  110. if (!U(e)) return;
  111. const s = pt.get(e);
  112. t && t.length && Ue(s) ? (clearTimeout(s.get(t)), s.delete(t), s.size === 0 && pt.delete(e)) : (clearTimeout(s), pt.delete(e));
  113. }
  114. }, ee = (e) => e.toLowerCase(), q = (e, t) => (A(t) ? t : w()).querySelectorAll(e), ds = /* @__PURE__ */ new Map();
  115. function Dn(e) {
  116. const { shiftKey: t, code: s } = e, n = w(this), o = [
  117. ...q(Vo, this)
  118. ].filter(
  119. (c) => !Jt(c, "disabled") && !Y(c, re)
  120. );
  121. if (!o.length) return;
  122. const i = o[0], r = o[o.length - 1];
  123. s === "Tab" && (t && n.activeElement === i ? (r.focus(), e.preventDefault()) : !t && n.activeElement === r && (i.focus(), e.preventDefault()));
  124. }
  125. const hs = (e) => ds.has(e) === !0, ti = (e) => {
  126. hs(e) || (Yo(e, "keydown", Dn), ds.set(e, !0));
  127. }, ei = (e) => {
  128. hs(e) && (Zo(e, "keydown", Dn), ds.delete(e));
  129. }, xe = (e) => {
  130. hs(e) ? ei(e) : ti(e);
  131. }, _ = (e) => U(e) && "offsetWidth" in e || !1, It = (e, t) => {
  132. const { width: s, height: n, top: o, right: i, bottom: r, left: c } = e.getBoundingClientRect();
  133. let a = 1, l = 1;
  134. if (t && _(e)) {
  135. const { offsetWidth: f, offsetHeight: u } = e;
  136. a = f > 0 ? Math.round(s) / f : 1, l = u > 0 ? Math.round(n) / u : 1;
  137. }
  138. return {
  139. width: s / a,
  140. height: n / l,
  141. top: o / l,
  142. right: i / a,
  143. bottom: r / l,
  144. left: c / a,
  145. x: c / a,
  146. y: o / l
  147. };
  148. }, Nt = (e) => w(e).body, dt = (e) => w(e).documentElement, si = (e) => {
  149. const t = An(e), s = t ? e.scrollX : e.scrollLeft, n = t ? e.scrollY : e.scrollTop;
  150. return { x: s, y: n };
  151. }, In = (e) => A(e) && e.constructor.name === "ShadowRoot" || !1, ni = (e) => e.nodeName === "HTML" ? e : U(e) && e.assignedSlot || A(e) && e.parentNode || In(e) && e.host || dt(e), Ln = (e) => e ? Pn(e) ? e.defaultView : A(e) ? e?.ownerDocument?.defaultView : e : window, oi = (e) => A(e) && ["TABLE", "TD", "TH"].includes(e.nodeName) || !1, kn = (e, t) => e.matches(t), ii = (e) => {
  152. if (!_(e)) return !1;
  153. const { width: t, height: s } = It(e), { offsetWidth: n, offsetHeight: o } = e;
  154. return Math.round(t) !== n || Math.round(s) !== o;
  155. }, ri = (e, t, s) => {
  156. const n = _(t), o = It(
  157. e,
  158. n && ii(t)
  159. ), i = { x: 0, y: 0 };
  160. if (n) {
  161. const r = It(t, !0);
  162. i.x = r.x + t.clientLeft, i.y = r.y + t.clientTop;
  163. }
  164. return {
  165. x: o.left + s.x - i.x,
  166. y: o.top + s.y - i.y,
  167. width: o.width,
  168. height: o.height
  169. };
  170. };
  171. let Ps = 0, Ds = 0;
  172. const zt = /* @__PURE__ */ new Map(), On = (e, t) => {
  173. let s = t ? Ps : Ds;
  174. if (t) {
  175. const n = On(e), o = zt.get(n) || /* @__PURE__ */ new Map();
  176. zt.has(n) || zt.set(n, o), Ue(o) && !o.has(t) ? (o.set(t, s), Ps += 1) : s = o.get(t);
  177. } else {
  178. const n = e.id || e;
  179. zt.has(n) ? s = zt.get(n) : (zt.set(n, s), Ds += 1);
  180. }
  181. return s;
  182. }, ci = (e) => Array.isArray(e) || !1, Nn = (e) => {
  183. if (!A(e)) return !1;
  184. const { top: t, bottom: s } = It(e), { clientHeight: n } = dt(e);
  185. return t <= n && s >= 0;
  186. }, ai = (e) => typeof e == "function" || !1, li = (e) => ce(e) && e.constructor.name === "NodeList" || !1, Tt = (e) => dt(e).dir === "rtl", M = (e, t) => !e || !t ? null : e.closest(t) || M(e.getRootNode().host, t) || null, x = (e, t) => U(e) ? e : (U(t) ? t : w()).querySelector(e), fs = (e, t) => (A(t) ? t : w()).getElementsByTagName(
  187. e
  188. ), di = (e, t) => w(t).getElementById(e), rt = (e, t) => (t && A(t) ? t : w()).getElementsByClassName(
  189. e
  190. ), Kt = {}, Mn = (e) => {
  191. const { type: t, currentTarget: s } = e;
  192. Kt[t].forEach((n, o) => {
  193. s === o && n.forEach((i, r) => {
  194. r.apply(o, [e]), typeof i == "object" && i.once && O(o, t, r, i);
  195. });
  196. });
  197. }, k = (e, t, s, n) => {
  198. Kt[t] || (Kt[t] = /* @__PURE__ */ new Map());
  199. const o = Kt[t];
  200. o.has(e) || o.set(e, /* @__PURE__ */ new Map());
  201. const i = o.get(
  202. e
  203. ), { size: r } = i;
  204. i.set(s, n), r || e.addEventListener(
  205. t,
  206. Mn,
  207. n
  208. );
  209. }, O = (e, t, s, n) => {
  210. const o = Kt[t], i = o && o.get(e), r = i && i.get(s), c = r !== void 0 ? r : n;
  211. i && i.has(s) && i.delete(s), o && (!i || !i.size) && o.delete(e), (!o || !o.size) && delete Kt[t], (!i || !i.size) && e.removeEventListener(
  212. t,
  213. Mn,
  214. c
  215. );
  216. }, N = "fade", p = "show", Se = "data-bs-dismiss", He = "alert", Bn = "Alert", nt = (e) => h(e, "disabled") || Y(e, "disabled") === "true", hi = "5.1.2", fi = hi;
  217. class st {
  218. constructor(t, s) {
  219. let n;
  220. try {
  221. if (U(t))
  222. n = t;
  223. else if (ae(t)) {
  224. if (n = x(t), !n) throw Error(`"${t}" is not a valid selector.`);
  225. } else
  226. throw Error("your target is not an instance of HTMLElement.");
  227. } catch (i) {
  228. throw Error(`${this.name} Error: ${i.message}`);
  229. }
  230. const o = _t.get(n, this.name);
  231. o && o._toggleEventListeners(), this.element = n, this.options = this.defaults && As(this.defaults).length ? Go(n, this.defaults, s || {}, "bs") : {}, _t.set(n, this.name, this);
  232. }
  233. get version() {
  234. return fi;
  235. }
  236. get name() {
  237. return "BaseComponent";
  238. }
  239. get defaults() {
  240. return {};
  241. }
  242. _toggleEventListeners = () => {
  243. };
  244. dispose() {
  245. _t.remove(this.element, this.name), As(this).forEach((t) => {
  246. delete this[t];
  247. });
  248. }
  249. }
  250. const ui = `.${He}`, gi = `[${Se}="${He}"]`, pi = (e) => F(e, Bn), mi = (e) => new Rn(e), Is = E(
  251. `close.bs.${He}`
  252. ), vi = E(
  253. `closed.bs.${He}`
  254. ), Ls = (e) => {
  255. const { element: t } = e;
  256. b(t, vi), e._toggleEventListeners(), e.dispose(), t.remove();
  257. };
  258. class Rn extends st {
  259. static selector = ui;
  260. static init = mi;
  261. static getInstance = pi;
  262. dismiss;
  263. constructor(t) {
  264. super(t), this.dismiss = x(
  265. gi,
  266. this.element
  267. ), this._toggleEventListeners(!0);
  268. }
  269. get name() {
  270. return Bn;
  271. }
  272. close = (t) => {
  273. const { element: s, dismiss: n } = this;
  274. !s || !h(s, p) || t && n && nt(n) || (b(s, Is), !Is.defaultPrevented && (v(s, p), h(s, N) ? S(s, () => Ls(this)) : Ls(this)));
  275. };
  276. _toggleEventListeners = (t) => {
  277. const s = t ? k : O, { dismiss: n, close: o } = this;
  278. n && s(n, D, o);
  279. };
  280. dispose() {
  281. this._toggleEventListeners(), super.dispose();
  282. }
  283. }
  284. const T = "active", ot = "data-bs-toggle", bi = "button", Wn = "Button", wi = `[${ot}="${bi}"]`, Ei = (e) => F(e, Wn), Ti = (e) => new Fn(e);
  285. class Fn extends st {
  286. static selector = wi;
  287. static init = Ti;
  288. static getInstance = Ei;
  289. constructor(t) {
  290. super(t);
  291. const { element: s } = this;
  292. this.isActive = h(s, T), L(s, Cs, String(!!this.isActive)), this._toggleEventListeners(!0);
  293. }
  294. get name() {
  295. return Wn;
  296. }
  297. toggle = (t) => {
  298. t && t.preventDefault();
  299. const { element: s, isActive: n } = this;
  300. if (nt(s)) return;
  301. (n ? v : d)(s, T), L(s, Cs, n ? "false" : "true"), this.isActive = h(s, T);
  302. };
  303. _toggleEventListeners = (t) => {
  304. (t ? k : O)(this.element, D, this.toggle);
  305. };
  306. dispose() {
  307. this._toggleEventListeners(), super.dispose();
  308. }
  309. }
  310. const Ye = "data-bs-target", At = "carousel", jn = "Carousel", ks = "data-bs-parent", $i = "data-bs-container", K = (e) => {
  311. const t = [Ye, ks, $i, "href"], s = w(e);
  312. return t.map((n) => {
  313. const o = Y(e, n);
  314. return o ? n === ks ? M(e, o) : x(o, s) : null;
  315. }).filter((n) => n)[0];
  316. }, de = `[data-bs-ride="${At}"]`, tt = `${At}-item`, Ze = "data-bs-slide-to", vt = "data-bs-slide", wt = "paused", Os = {
  317. pause: "hover",
  318. keyboard: !1,
  319. touch: !0,
  320. interval: 5e3
  321. }, ht = (e) => F(e, jn), yi = (e) => new Kn(e);
  322. let Gt = 0, me = 0, Ne = 0;
  323. const Me = E(`slide.bs.${At}`), Qe = E(`slid.bs.${At}`), Ns = (e) => {
  324. const { index: t, direction: s, element: n, slides: o, options: i } = e;
  325. if (e.isAnimating) {
  326. const r = Ge(e), c = s === "left" ? "next" : "prev", a = s === "left" ? "start" : "end";
  327. d(o[t], T), v(o[t], `${tt}-${c}`), v(o[t], `${tt}-${a}`), v(o[r], T), v(o[r], `${tt}-${a}`), b(n, Qe), g.clear(n, vt), e.cycle && !w(n).hidden && i.interval && !e.isPaused && e.cycle();
  328. }
  329. };
  330. function Ci() {
  331. const e = ht(this);
  332. e && !e.isPaused && !g.get(this, wt) && d(this, wt);
  333. }
  334. function xi() {
  335. const e = ht(this);
  336. e && e.isPaused && !g.get(this, wt) && e.cycle();
  337. }
  338. function Si(e) {
  339. e.preventDefault();
  340. const t = M(this, de) || K(this), s = t && ht(t);
  341. if (nt(this) || !s || s.isAnimating) return;
  342. const n = +(Y(this, Ze) || 0);
  343. this && !h(this, T) && !Number.isNaN(n) && s.to(n);
  344. }
  345. function Hi(e) {
  346. e.preventDefault();
  347. const t = M(this, de) || K(this), s = t && ht(t);
  348. if (nt(this) || !s || s.isAnimating) return;
  349. const n = Y(this, vt);
  350. n === "next" ? s.next() : n === "prev" && s.prev();
  351. }
  352. const _i = ({ code: e, target: t }) => {
  353. const s = w(t), [n] = [...q(de, s)].filter((a) => Nn(a)), o = ht(n);
  354. if (!o || o.isAnimating || /textarea|input|select/i.test(t.nodeName)) return;
  355. const i = Tt(n);
  356. e === (i ? Ss : xs) ? o.prev() : e === (i ? xs : Ss) && o.next();
  357. };
  358. function Ms(e) {
  359. const { target: t } = e, s = ht(this);
  360. s && s.isTouch && (s.indicator && !s.indicator.contains(t) || !s.controls.includes(t)) && (e.stopImmediatePropagation(), e.stopPropagation(), e.preventDefault());
  361. }
  362. function Ai(e) {
  363. const { target: t } = e, s = ht(this);
  364. if (!s || s.isAnimating || s.isTouch) return;
  365. const { controls: n, indicators: o } = s;
  366. [...n, ...o].every(
  367. (i) => i === t || i.contains(t)
  368. ) || (Gt = e.pageX, this.contains(t) && (s.isTouch = !0, zn(s, !0)));
  369. }
  370. const Pi = (e) => {
  371. me = e.pageX;
  372. }, Di = (e) => {
  373. const { target: t } = e, s = w(t), n = [...q(de, s)].map((c) => ht(c)).find((c) => c.isTouch);
  374. if (!n) return;
  375. const { element: o, index: i } = n, r = Tt(o);
  376. Ne = e.pageX, n.isTouch = !1, zn(n), !s.getSelection()?.toString().length && o.contains(t) && Math.abs(Gt - Ne) > 120 && (me < Gt ? n.to(i + (r ? -1 : 1)) : me > Gt && n.to(i + (r ? 1 : -1))), Gt = 0, me = 0, Ne = 0;
  377. }, Be = (e, t) => {
  378. const { indicators: s } = e;
  379. [...s].forEach((n) => v(n, T)), e.indicators[t] && d(s[t], T);
  380. }, zn = (e, t) => {
  381. const { element: s } = e, n = t ? k : O;
  382. n(
  383. w(s),
  384. jo,
  385. Pi,
  386. te
  387. ), n(
  388. w(s),
  389. zo,
  390. Di,
  391. te
  392. );
  393. }, Ge = (e) => {
  394. const { slides: t, element: s } = e, n = x(
  395. `.${tt}.${T}`,
  396. s
  397. );
  398. return n ? [...t].indexOf(n) : -1;
  399. };
  400. class Kn extends st {
  401. static selector = de;
  402. static init = yi;
  403. static getInstance = ht;
  404. constructor(t, s) {
  405. super(t, s);
  406. const { element: n } = this;
  407. this.direction = Tt(n) ? "right" : "left", this.isTouch = !1, this.slides = rt(tt, n);
  408. const { slides: o } = this;
  409. if (o.length < 2) return;
  410. const i = Ge(this), r = [...o].find(
  411. (l) => kn(l, `.${tt}-next`)
  412. );
  413. this.index = i;
  414. const c = w(n);
  415. this.controls = [
  416. ...q(`[${vt}]`, n),
  417. ...q(
  418. `[${vt}][${Ye}="#${n.id}"]`,
  419. c
  420. )
  421. ].filter((l, f, u) => f === u.indexOf(l)), this.indicator = x(
  422. `.${At}-indicators`,
  423. n
  424. ), this.indicators = [
  425. ...this.indicator ? q(`[${Ze}]`, this.indicator) : [],
  426. ...q(
  427. `[${Ze}][${Ye}="#${n.id}"]`,
  428. c
  429. )
  430. ].filter((l, f, u) => f === u.indexOf(l));
  431. const { options: a } = this;
  432. this.options.interval = a.interval === !0 ? Os.interval : a.interval, r ? this.index = [...o].indexOf(r) : i < 0 && (this.index = 0, d(o[0], T), this.indicators.length && Be(this, 0)), this.indicators.length && Be(this, this.index), this._toggleEventListeners(!0), a.interval && this.cycle();
  433. }
  434. get name() {
  435. return jn;
  436. }
  437. get defaults() {
  438. return Os;
  439. }
  440. get isPaused() {
  441. return h(this.element, wt);
  442. }
  443. get isAnimating() {
  444. return x(
  445. `.${tt}-next,.${tt}-prev`,
  446. this.element
  447. ) !== null;
  448. }
  449. cycle() {
  450. const { element: t, options: s, isPaused: n, index: o } = this;
  451. g.clear(t, At), n && (g.clear(t, wt), v(t, wt)), g.set(
  452. t,
  453. () => {
  454. this.element && !this.isPaused && !this.isTouch && Nn(t) && this.to(o + 1);
  455. },
  456. s.interval,
  457. At
  458. );
  459. }
  460. pause() {
  461. const { element: t, options: s } = this;
  462. this.isPaused || !s.interval || (d(t, wt), g.set(
  463. t,
  464. () => {
  465. },
  466. 1,
  467. wt
  468. ));
  469. }
  470. next() {
  471. this.isAnimating || this.to(this.index + 1);
  472. }
  473. prev() {
  474. this.isAnimating || this.to(this.index - 1);
  475. }
  476. to(t) {
  477. const { element: s, slides: n, options: o } = this, i = Ge(this), r = Tt(s);
  478. let c = t;
  479. if (this.isAnimating || i === c || g.get(s, vt)) return;
  480. i < c || i === 0 && c === n.length - 1 ? this.direction = r ? "right" : "left" : (i > c || i === n.length - 1 && c === 0) && (this.direction = r ? "left" : "right");
  481. const { direction: a } = this;
  482. c < 0 ? c = n.length - 1 : c >= n.length && (c = 0);
  483. const l = a === "left" ? "next" : "prev", f = a === "left" ? "start" : "end", u = {
  484. relatedTarget: n[c],
  485. from: i,
  486. to: c,
  487. direction: a
  488. };
  489. at(Me, u), at(Qe, u), b(s, Me), !Me.defaultPrevented && (this.index = c, Be(this, c), le(n[c]) && h(s, "slide") ? g.set(
  490. s,
  491. () => {
  492. d(n[c], `${tt}-${l}`), Ot(n[c]), d(n[c], `${tt}-${f}`), d(n[i], `${tt}-${f}`), S(
  493. n[c],
  494. () => this.slides && this.slides.length && Ns(this)
  495. );
  496. },
  497. 0,
  498. vt
  499. ) : (d(n[c], T), v(n[i], T), g.set(
  500. s,
  501. () => {
  502. g.clear(s, vt), s && o.interval && !this.isPaused && this.cycle(), b(s, Qe);
  503. },
  504. 0,
  505. vt
  506. )));
  507. }
  508. _toggleEventListeners = (t) => {
  509. const { element: s, options: n, slides: o, controls: i, indicators: r } = this, { touch: c, pause: a, interval: l, keyboard: f } = n, u = t ? k : O;
  510. a && l && (u(s, Ce, Ci), u(s, cs, xi)), c && o.length > 2 && (u(
  511. s,
  512. Fo,
  513. Ai,
  514. te
  515. ), u(s, as, Ms, { passive: !1 }), u(s, Ko, Ms, { passive: !1 })), i.length && i.forEach(($) => {
  516. u($, D, Hi);
  517. }), r.length && r.forEach(($) => {
  518. u($, D, Si);
  519. }), f && u(w(s), ye, _i);
  520. };
  521. dispose() {
  522. const { isAnimating: t } = this, s = {
  523. ...this,
  524. isAnimating: t
  525. };
  526. this._toggleEventListeners(), super.dispose(), s.isAnimating && S(s.slides[s.index], () => {
  527. Ns(s);
  528. });
  529. }
  530. }
  531. const Lt = "collapsing", z = "collapse", Vn = "Collapse", Ii = `.${z}`, Xn = `[${ot}="${z}"]`, Li = { parent: null }, ve = (e) => F(e, Vn), ki = (e) => new qn(e), Bs = E(`show.bs.${z}`), Oi = E(`shown.bs.${z}`), Rs = E(`hide.bs.${z}`), Ni = E(`hidden.bs.${z}`), Mi = (e) => {
  532. const { element: t, parent: s, triggers: n } = e;
  533. b(t, Bs), Bs.defaultPrevented || (g.set(t, Te, 17), s && g.set(s, Te, 17), d(t, Lt), v(t, z), H(t, { height: `${t.scrollHeight}px` }), S(t, () => {
  534. g.clear(t), s && g.clear(s), n.forEach((o) => L(o, Ee, "true")), v(t, Lt), d(t, z), d(t, p), H(t, { height: "" }), b(t, Oi);
  535. }));
  536. }, Ws = (e) => {
  537. const { element: t, parent: s, triggers: n } = e;
  538. b(t, Rs), Rs.defaultPrevented || (g.set(t, Te, 17), s && g.set(s, Te, 17), H(t, { height: `${t.scrollHeight}px` }), v(t, z), v(t, p), d(t, Lt), Ot(t), H(t, { height: "0px" }), S(t, () => {
  539. g.clear(t), s && g.clear(s), n.forEach((o) => L(o, Ee, "false")), v(t, Lt), d(t, z), H(t, { height: "" }), b(t, Ni);
  540. }));
  541. }, Bi = (e) => {
  542. const { target: t } = e, s = t && M(t, Xn), n = s && K(s), o = n && ve(n);
  543. s && nt(s) || o && (o.toggle(), s?.tagName === "A" && e.preventDefault());
  544. };
  545. class qn extends st {
  546. static selector = Ii;
  547. static init = ki;
  548. static getInstance = ve;
  549. constructor(t, s) {
  550. super(t, s);
  551. const { element: n, options: o } = this, i = w(n);
  552. this.triggers = [...q(Xn, i)].filter(
  553. (r) => K(r) === n
  554. ), this.parent = _(o.parent) ? o.parent : ae(o.parent) ? K(n) || x(o.parent, i) : null, this._toggleEventListeners(!0);
  555. }
  556. get name() {
  557. return Vn;
  558. }
  559. get defaults() {
  560. return Li;
  561. }
  562. hide() {
  563. const { triggers: t, element: s } = this;
  564. g.get(s) || (Ws(this), t.length && t.forEach((n) => d(n, `${z}d`)));
  565. }
  566. show() {
  567. const { element: t, parent: s, triggers: n } = this;
  568. let o, i;
  569. s && (o = [
  570. ...q(`.${z}.${p}`, s)
  571. ].find((r) => ve(r)), i = o && ve(o)), (!s || !g.get(s)) && !g.get(t) && (i && o !== t && (Ws(i), i.triggers.forEach((r) => {
  572. d(r, `${z}d`);
  573. })), Mi(this), n.length && n.forEach((r) => v(r, `${z}d`)));
  574. }
  575. toggle() {
  576. h(this.element, p) ? this.hide() : this.show();
  577. }
  578. _toggleEventListeners = (t) => {
  579. const s = t ? k : O, { triggers: n } = this;
  580. n.length && n.forEach((o) => {
  581. s(o, D, Bi);
  582. });
  583. };
  584. dispose() {
  585. this._toggleEventListeners(), super.dispose();
  586. }
  587. }
  588. const Ri = (e) => e != null && typeof e == "object" || !1, Wi = (e) => Ri(e) && typeof e.nodeType == "number" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(
  589. (t) => e.nodeType === t
  590. ) || !1, Fs = (e) => Wi(e) && e.nodeType === 1 || !1, Fi = (e) => typeof e == "function" || !1, ji = "1.0.7", js = "PositionObserver Error";
  591. class us {
  592. entries;
  593. static version = ji;
  594. _tick;
  595. _root;
  596. _callback;
  597. /**
  598. * The constructor takes two arguments, a `callback`, which is called
  599. * whenever the position of an observed element changes and an `options` object.
  600. * The callback function should take an array of `PositionObserverEntry` objects
  601. * as its only argument, but it's not required.
  602. *
  603. * @param callback the callback that applies to all targets of this observer
  604. * @param options the options of this observer
  605. */
  606. constructor(t, s) {
  607. if (!Fi(t))
  608. throw new Error(`${js}: ${t} is not a function.`);
  609. this.entries = /* @__PURE__ */ new Map(), this._callback = t, this._root = Fs(s?.root) ? s.root : document?.documentElement, this._tick = 0;
  610. }
  611. /**
  612. * Start observing the position of the specified element.
  613. * If the element is not currently attached to the DOM,
  614. * it will NOT be added to the entries.
  615. *
  616. * @param target an `Element` target
  617. */
  618. observe = (t) => {
  619. if (!Fs(t))
  620. throw new Error(
  621. `${js}: ${t} is not an instance of Element.`
  622. );
  623. this._root.contains(t) && this._new(t).then(({ boundingClientRect: s }) => {
  624. if (s && !this.getEntry(t)) {
  625. const { clientWidth: n, clientHeight: o } = this._root;
  626. this.entries.set(t, {
  627. target: t,
  628. boundingClientRect: s,
  629. clientWidth: n,
  630. clientHeight: o
  631. });
  632. }
  633. this._tick || (this._tick = requestAnimationFrame(this._runCallback));
  634. });
  635. };
  636. /**
  637. * Stop observing the position of the specified element.
  638. *
  639. * @param target an `Element` target
  640. */
  641. unobserve = (t) => {
  642. this.entries.has(t) && this.entries.delete(t);
  643. };
  644. /**
  645. * Private method responsible for all the heavy duty,
  646. * the observer's runtime.
  647. */
  648. _runCallback = () => {
  649. if (!this.entries.size) return;
  650. const { clientWidth: t, clientHeight: s } = this._root, n = new Promise((o) => {
  651. const i = [];
  652. this.entries.forEach(
  653. ({
  654. target: r,
  655. boundingClientRect: c,
  656. clientWidth: a,
  657. clientHeight: l
  658. }) => {
  659. this._root.contains(r) && this._new(r).then(({ boundingClientRect: f, isIntersecting: u }) => {
  660. if (!u) return;
  661. const { left: $, top: I } = f;
  662. if (c.top !== I || c.left !== $ || a !== t || l !== s) {
  663. const B = {
  664. target: r,
  665. boundingClientRect: f,
  666. clientHeight: s,
  667. clientWidth: t
  668. };
  669. this.entries.set(r, B), i.push(B);
  670. }
  671. });
  672. }
  673. ), o(i);
  674. });
  675. this._tick = requestAnimationFrame(async () => {
  676. const o = await n;
  677. o.length && this._callback(o, this), this._runCallback();
  678. });
  679. };
  680. /**
  681. * Check intersection status and resolve it
  682. * right away.
  683. *
  684. * @param target an `Element` target
  685. */
  686. _new = (t) => new Promise((s) => {
  687. new IntersectionObserver(
  688. ([n], o) => {
  689. o.disconnect(), s(n);
  690. }
  691. ).observe(t);
  692. });
  693. /**
  694. * Find the entry for a given target.
  695. *
  696. * @param target an `HTMLElement` target
  697. */
  698. getEntry = (t) => this.entries.get(t);
  699. /**
  700. * Immediately stop observing all elements.
  701. */
  702. disconnect = () => {
  703. cancelAnimationFrame(this._tick), this.entries.clear(), this._tick = 0;
  704. };
  705. }
  706. const kt = ["dropdown", "dropup", "dropstart", "dropend"], Un = "Dropdown", Yn = "dropdown-menu", Zn = (e) => {
  707. const t = M(e, "A");
  708. return e.tagName === "A" && Jt(e, "href") && Y(e, "href")?.slice(-1) === "#" || t && Jt(t, "href") && Y(t, "href")?.slice(-1) === "#";
  709. }, [et, Je, ts, es] = kt, zi = `[${ot}="${et}"]`, se = (e) => F(e, Un), Ki = (e) => new Gn(e), Vi = `${Yn}-end`, zs = [et, Je], Ks = [ts, es], Vs = ["A", "BUTTON"], Xi = {
  710. offset: 5,
  711. display: "dynamic"
  712. }, Re = E(
  713. `show.bs.${et}`
  714. ), Xs = E(
  715. `shown.bs.${et}`
  716. ), We = E(
  717. `hide.bs.${et}`
  718. ), qs = E(`hidden.bs.${et}`), Qn = E(`updated.bs.${et}`), Us = (e) => {
  719. const { element: t, menu: s, parentElement: n, options: o } = e, { offset: i } = o;
  720. if (W(s, "position") === "static") return;
  721. const r = Tt(t), c = h(s, Vi);
  722. ["margin", "top", "bottom", "left", "right"].forEach((R) => {
  723. const Ct = {};
  724. Ct[R] = "", H(s, Ct);
  725. });
  726. let l = kt.find((R) => h(n, R)) || et;
  727. const f = {
  728. dropdown: [i, 0, 0],
  729. dropup: [0, 0, i],
  730. dropstart: r ? [-1, 0, 0, i] : [-1, i, 0],
  731. dropend: r ? [-1, i, 0] : [-1, 0, 0, i]
  732. }, u = {
  733. dropdown: { top: "100%" },
  734. dropup: { top: "auto", bottom: "100%" },
  735. dropstart: r ? { left: "100%", right: "auto" } : { left: "auto", right: "100%" },
  736. dropend: r ? { left: "auto", right: "100%" } : { left: "100%", right: "auto" },
  737. menuStart: r ? { right: "0", left: "auto" } : { right: "auto", left: "0" },
  738. menuEnd: r ? { right: "auto", left: "0" } : { right: "0", left: "auto" }
  739. }, { offsetWidth: $, offsetHeight: I } = s, { clientWidth: B, clientHeight: G } = dt(t), {
  740. left: m,
  741. top: V,
  742. width: $t,
  743. height: yt
  744. } = It(t), C = m - $ - i < 0, ft = m + $ + $t + i >= B, it = V + I + i >= G, J = V + I + yt + i >= G, Bt = V - I - i < 0, y = (!r && c || r && !c) && m + $t - $ < 0, j = (r && c || !r && !c) && m + $ >= B;
  745. if (Ks.includes(l) && C && ft && (l = et), l === ts && (r ? ft : C) && (l = es), l === es && (r ? C : ft) && (l = ts), l === Je && Bt && !J && (l = et), l === et && J && !Bt && (l = Je), Ks.includes(l) && it && at(u[l], {
  746. top: "auto",
  747. bottom: 0
  748. }), zs.includes(l) && (y || j)) {
  749. let R = { left: "auto", right: "auto" };
  750. !y && j && !r && (R = { left: "auto", right: 0 }), y && !j && r && (R = { left: 0, right: "auto" }), R && at(u[l], R);
  751. }
  752. const Rt = f[l];
  753. H(s, {
  754. ...u[l],
  755. margin: `${Rt.map((R) => R && `${R}px`).join(" ")}`
  756. }), zs.includes(l) && c && c && H(s, u[!r && y || r && j ? "menuStart" : "menuEnd"]), b(n, Qn);
  757. }, qi = (e) => Array.from(e.children).map((t) => {
  758. if (t && Vs.includes(t.tagName)) return t;
  759. const { firstElementChild: s } = t;
  760. return s && Vs.includes(s.tagName) ? s : null;
  761. }).filter((t) => t), Ys = (e) => {
  762. const { element: t, options: s, menu: n } = e, o = e.open ? k : O, i = w(t);
  763. o(i, D, Zs), o(i, is, Zs), o(i, ye, Yi), o(i, Ro, Zi), s.display === "dynamic" && (e.open ? e._observer.observe(n) : e._observer.disconnect());
  764. }, gs = (e) => {
  765. const t = [...kt, "btn-group", "input-group"].map(
  766. (s) => rt(`${s} ${p}`, w(e))
  767. ).find((s) => s.length);
  768. if (t && t.length)
  769. return [...t[0].children].find(
  770. (s) => kt.some((n) => n === Y(s, ot))
  771. );
  772. }, Zs = (e) => {
  773. const { target: t, type: s } = e;
  774. if (!_(t)) return;
  775. const n = gs(t), o = n && se(n);
  776. if (!o) return;
  777. const { parentElement: i, menu: r } = o, c = i && i.contains(t) && (t.tagName === "form" || M(t, "form") !== null);
  778. [D, Hn].includes(s) && Zn(t) && e.preventDefault(), !c && s !== is && t !== n && t !== r && o.hide();
  779. };
  780. function Ui(e) {
  781. const t = se(this);
  782. nt(this) || t && (e.stopPropagation(), t.toggle(), Zn(this) && e.preventDefault());
  783. }
  784. const Yi = (e) => {
  785. [Xe, qe].includes(e.code) && e.preventDefault();
  786. };
  787. function Zi(e) {
  788. const { code: t } = e, s = gs(this);
  789. if (!s) return;
  790. const n = se(s), { activeElement: o } = w(s);
  791. if (!n || !o) return;
  792. const { menu: i, open: r } = n, c = qi(i);
  793. if (c && c.length && [Xe, qe].includes(t)) {
  794. let a = c.indexOf(o);
  795. o === s ? a = 0 : t === qe ? a = a > 1 ? a - 1 : 0 : t === Xe && (a = a < c.length - 1 ? a + 1 : a), c[a] && lt(c[a]);
  796. }
  797. ls === t && r && (n.toggle(), lt(s));
  798. }
  799. class Gn extends st {
  800. static selector = zi;
  801. static init = Ki;
  802. static getInstance = se;
  803. constructor(t, s) {
  804. super(t, s);
  805. const { parentElement: n } = this.element, [o] = rt(
  806. Yn,
  807. n
  808. );
  809. o && (this.parentElement = n, this.menu = o, this._observer = new us(
  810. () => Us(this)
  811. ), this._toggleEventListeners(!0));
  812. }
  813. get name() {
  814. return Un;
  815. }
  816. get defaults() {
  817. return Xi;
  818. }
  819. toggle() {
  820. this.open ? this.hide() : this.show();
  821. }
  822. show() {
  823. const { element: t, open: s, menu: n, parentElement: o } = this;
  824. if (s) return;
  825. const i = gs(t), r = i && se(i);
  826. r && r.hide(), [Re, Xs, Qn].forEach(
  827. (c) => {
  828. c.relatedTarget = t;
  829. }
  830. ), b(o, Re), !Re.defaultPrevented && (d(n, p), d(o, p), L(t, Ee, "true"), Us(this), this.open = !s, lt(t), Ys(this), b(o, Xs));
  831. }
  832. hide() {
  833. const { element: t, open: s, menu: n, parentElement: o } = this;
  834. s && ([We, qs].forEach((i) => {
  835. i.relatedTarget = t;
  836. }), b(o, We), !We.defaultPrevented && (v(n, p), v(o, p), L(t, Ee, "false"), this.open = !s, Ys(this), b(o, qs)));
  837. }
  838. _toggleEventListeners = (t) => {
  839. (t ? k : O)(this.element, D, Ui);
  840. };
  841. dispose() {
  842. this.open && this.hide(), this._toggleEventListeners(), super.dispose();
  843. }
  844. }
  845. const X = "modal", ps = "Modal", ms = "Offcanvas", Qi = "fixed-top", Gi = "fixed-bottom", Jn = "sticky-top", to = "position-sticky", eo = (e) => [
  846. ...rt(Qi, e),
  847. ...rt(Gi, e),
  848. ...rt(Jn, e),
  849. ...rt(to, e),
  850. ...rt("is-fixed", e)
  851. ], Ji = (e) => {
  852. const t = Nt(e);
  853. H(t, {
  854. paddingRight: "",
  855. overflow: ""
  856. });
  857. const s = eo(t);
  858. s.length && s.forEach((n) => {
  859. H(n, {
  860. paddingRight: "",
  861. marginRight: ""
  862. });
  863. });
  864. }, so = (e) => {
  865. const { clientWidth: t } = dt(e), { innerWidth: s } = Ln(e);
  866. return Math.abs(s - t);
  867. }, no = (e, t) => {
  868. const s = Nt(e), n = parseInt(W(s, "paddingRight"), 10), i = W(s, "overflow") === "hidden" && n ? 0 : so(e), r = eo(s);
  869. t && (H(s, {
  870. overflow: "hidden",
  871. paddingRight: `${n + i}px`
  872. }), r.length && r.forEach((c) => {
  873. const a = W(c, "paddingRight");
  874. if (c.style.paddingRight = `${parseInt(a, 10) + i}px`, [Jn, to].some((l) => h(c, l))) {
  875. const l = W(c, "marginRight");
  876. c.style.marginRight = `${parseInt(l, 10) - i}px`;
  877. }
  878. }));
  879. }, Z = "offcanvas", Et = bt({
  880. tagName: "div",
  881. className: "popup-container"
  882. }), oo = (e, t) => {
  883. const s = A(t) && t.nodeName === "BODY", n = A(t) && !s ? t : Et, o = s ? t : Nt(e);
  884. A(e) && (n === Et && o.append(Et), n.append(e));
  885. }, io = (e, t) => {
  886. const s = A(t) && t.nodeName === "BODY", n = A(t) && !s ? t : Et;
  887. A(e) && (e.remove(), n === Et && !Et.children.length && Et.remove());
  888. }, vs = (e, t) => {
  889. const s = A(t) && t.nodeName !== "BODY" ? t : Et;
  890. return A(e) && s.contains(e);
  891. }, ro = "backdrop", Qs = `${X}-${ro}`, Gs = `${Z}-${ro}`, co = `.${X}.${p}`, bs = `.${Z}.${p}`, P = bt("div"), Mt = (e) => x(
  892. `${co},${bs}`,
  893. w(e)
  894. ), ws = (e) => {
  895. const t = e ? Qs : Gs;
  896. [Qs, Gs].forEach((s) => {
  897. v(P, s);
  898. }), d(P, t);
  899. }, ao = (e, t, s) => {
  900. ws(s), oo(P, Nt(e)), t && d(P, N);
  901. }, lo = () => {
  902. h(P, p) || (d(P, p), Ot(P));
  903. }, _e = () => {
  904. v(P, p);
  905. }, ho = (e) => {
  906. Mt(e) || (v(P, N), io(P, Nt(e)), Ji(e));
  907. }, fo = (e) => _(e) && W(e, "visibility") !== "hidden" && e.offsetParent !== null, tr = `.${X}`, er = `[${ot}="${X}"]`, sr = `[${Se}="${X}"]`, uo = `${X}-static`, nr = {
  908. backdrop: !0,
  909. keyboard: !0
  910. }, ne = (e) => F(e, ps), or = (e) => new mo(e), be = E(
  911. `show.bs.${X}`
  912. ), Js = E(
  913. `shown.bs.${X}`
  914. ), Fe = E(
  915. `hide.bs.${X}`
  916. ), tn = E(
  917. `hidden.bs.${X}`
  918. ), go = (e) => {
  919. const { element: t } = e, s = so(t), { clientHeight: n, scrollHeight: o } = dt(t), { clientHeight: i, scrollHeight: r } = t, c = i !== r;
  920. if (!c && s) {
  921. const l = { [Tt(t) ? "paddingLeft" : "paddingRight"]: `${s}px` };
  922. H(t, l);
  923. }
  924. no(t, c || n !== o);
  925. }, po = (e, t) => {
  926. const s = t ? k : O, { element: n } = e;
  927. s(n, D, cr), s(w(n), ye, rr), t ? e._observer.observe(n) : e._observer.disconnect();
  928. }, en = (e) => {
  929. const { triggers: t, element: s, relatedTarget: n } = e;
  930. ho(s), H(s, { paddingRight: "", display: "" }), po(e);
  931. const o = be.relatedTarget || t.find(fo);
  932. o && lt(o), tn.relatedTarget = n || void 0, b(s, tn), xe(s);
  933. }, sn = (e) => {
  934. const { element: t, relatedTarget: s } = e;
  935. lt(t), po(e, !0), Js.relatedTarget = s || void 0, b(t, Js), xe(t);
  936. }, nn = (e) => {
  937. const { element: t, hasFade: s } = e;
  938. H(t, { display: "block" }), go(e), Mt(t) || H(Nt(t), { overflow: "hidden" }), d(t, p), Dt(t, re), L(t, $e, "true"), s ? S(t, () => sn(e)) : sn(e);
  939. }, on = (e) => {
  940. const { element: t, options: s, hasFade: n } = e;
  941. s.backdrop && n && h(P, p) && !Mt(t) ? (_e(), S(P, () => en(e))) : en(e);
  942. };
  943. function ir(e) {
  944. const t = K(this), s = t && ne(t);
  945. nt(this) || s && (this.tagName === "A" && e.preventDefault(), s.relatedTarget = this, s.toggle());
  946. }
  947. const rr = ({ code: e, target: t }) => {
  948. const s = x(co, w(t)), n = s && ne(s);
  949. if (!n) return;
  950. const { options: o } = n;
  951. o.keyboard && e === ls && h(s, p) && (n.relatedTarget = null, n.hide());
  952. }, cr = (e) => {
  953. const { currentTarget: t } = e, s = t && ne(t);
  954. if (!s || !t || g.get(t)) return;
  955. const { options: n, isStatic: o, modalDialog: i } = s, { backdrop: r } = n, { target: c } = e, a = w(t)?.getSelection()?.toString().length, l = i.contains(c), f = c && M(c, sr);
  956. o && !l ? g.set(
  957. t,
  958. () => {
  959. d(t, uo), S(i, () => ar(s));
  960. },
  961. 17
  962. ) : (f || !a && !o && !l && r) && (s.relatedTarget = f || null, s.hide(), e.preventDefault());
  963. }, ar = (e) => {
  964. const { element: t, modalDialog: s } = e, n = (le(s) || 0) + 17;
  965. v(t, uo), g.set(t, () => g.clear(t), n);
  966. };
  967. class mo extends st {
  968. static selector = tr;
  969. static init = or;
  970. static getInstance = ne;
  971. constructor(t, s) {
  972. super(t, s);
  973. const { element: n } = this, o = x(
  974. `.${X}-dialog`,
  975. n
  976. );
  977. o && (this.modalDialog = o, this.triggers = [
  978. ...q(
  979. er,
  980. w(n)
  981. )
  982. ].filter(
  983. (i) => K(i) === n
  984. ), this.isStatic = this.options.backdrop === "static", this.hasFade = h(n, N), this.relatedTarget = null, this._observer = new ResizeObserver(() => this.update()), this._toggleEventListeners(!0));
  985. }
  986. get name() {
  987. return ps;
  988. }
  989. get defaults() {
  990. return nr;
  991. }
  992. toggle() {
  993. h(this.element, p) ? this.hide() : this.show();
  994. }
  995. show() {
  996. const { element: t, options: s, hasFade: n, relatedTarget: o } = this, { backdrop: i } = s;
  997. let r = 0;
  998. if (h(t, p) || (be.relatedTarget = o || void 0, b(t, be), be.defaultPrevented)) return;
  999. const c = Mt(t);
  1000. if (c && c !== t) {
  1001. const a = ne(c) || F(
  1002. c,
  1003. ms
  1004. );
  1005. a && a.hide();
  1006. }
  1007. i ? (vs(P) ? ws(!0) : ao(t, n, !0), r = le(P), lo(), setTimeout(() => nn(this), r)) : (nn(this), c && h(P, p) && _e());
  1008. }
  1009. hide() {
  1010. const { element: t, hasFade: s, relatedTarget: n } = this;
  1011. h(t, p) && (Fe.relatedTarget = n || void 0, b(t, Fe), !Fe.defaultPrevented && (v(t, p), L(t, re, "true"), Dt(t, $e), s ? S(t, () => on(this)) : on(this)));
  1012. }
  1013. update = () => {
  1014. h(this.element, p) && go(this);
  1015. };
  1016. _toggleEventListeners = (t) => {
  1017. const s = t ? k : O, { triggers: n } = this;
  1018. n.length && n.forEach((o) => {
  1019. s(o, D, ir);
  1020. });
  1021. };
  1022. dispose() {
  1023. const t = { ...this }, { modalDialog: s, hasFade: n } = t, o = () => setTimeout(() => super.dispose(), 17);
  1024. this.hide(), this._toggleEventListeners(), n ? S(s, o) : o();
  1025. }
  1026. }
  1027. const lr = `.${Z}`, vo = `[${ot}="${Z}"]`, dr = `[${Se}="${Z}"]`, Ae = `${Z}-toggling`, hr = {
  1028. backdrop: !0,
  1029. keyboard: !0,
  1030. scroll: !1
  1031. }, oe = (e) => F(e, ms), fr = (e) => new To(e), we = E(`show.bs.${Z}`), bo = E(`shown.bs.${Z}`), je = E(`hide.bs.${Z}`), wo = E(`hidden.bs.${Z}`), ur = (e) => {
  1032. const { element: t } = e, { clientHeight: s, scrollHeight: n } = dt(t);
  1033. no(t, s !== n);
  1034. }, Eo = (e, t) => {
  1035. const s = t ? k : O, n = w(e.element);
  1036. s(n, ye, vr), s(n, D, mr);
  1037. }, rn = (e) => {
  1038. const { element: t, options: s } = e;
  1039. s.scroll || (ur(e), H(Nt(t), { overflow: "hidden" })), d(t, Ae), d(t, p), H(t, { visibility: "visible" }), S(t, () => br(e));
  1040. }, gr = (e) => {
  1041. const { element: t, options: s } = e, n = Mt(t);
  1042. t.blur(), !n && s.backdrop && h(P, p) && _e(), S(t, () => wr(e));
  1043. };
  1044. function pr(e) {
  1045. const t = K(this), s = t && oe(t);
  1046. nt(this) || s && (s.relatedTarget = this, s.toggle(), this.tagName === "A" && e.preventDefault());
  1047. }
  1048. const mr = (e) => {
  1049. const { target: t } = e, s = x(
  1050. bs,
  1051. w(t)
  1052. );
  1053. if (!s) return;
  1054. const n = x(
  1055. dr,
  1056. s
  1057. ), o = oe(s);
  1058. if (!o) return;
  1059. const { options: i, triggers: r } = o, { backdrop: c } = i, a = M(t, vo), l = w(s).getSelection();
  1060. P.contains(t) && c === "static" || (!(l && l.toString().length) && (!s.contains(t) && c && (!a || r.includes(t)) || n && n.contains(t)) && (o.relatedTarget = n && n.contains(t) ? n : void 0, o.hide()), a && a.tagName === "A" && e.preventDefault());
  1061. }, vr = ({ code: e, target: t }) => {
  1062. const s = x(
  1063. bs,
  1064. w(t)
  1065. ), n = s && oe(s);
  1066. n && n.options.keyboard && e === ls && (n.relatedTarget = void 0, n.hide());
  1067. }, br = (e) => {
  1068. const { element: t } = e;
  1069. v(t, Ae), Dt(t, re), L(t, $e, "true"), L(t, "role", "dialog"), b(t, bo), Eo(e, !0), lt(t), xe(t);
  1070. }, wr = (e) => {
  1071. const { element: t, triggers: s } = e;
  1072. L(t, re, "true"), Dt(t, $e), Dt(t, "role"), H(t, { visibility: "" });
  1073. const n = we.relatedTarget || s.find(fo);
  1074. n && lt(n), ho(t), b(t, wo), v(t, Ae), xe(t), Mt(t) || Eo(e);
  1075. };
  1076. class To extends st {
  1077. static selector = lr;
  1078. static init = fr;
  1079. static getInstance = oe;
  1080. constructor(t, s) {
  1081. super(t, s);
  1082. const { element: n } = this;
  1083. this.triggers = [
  1084. ...q(
  1085. vo,
  1086. w(n)
  1087. )
  1088. ].filter(
  1089. (o) => K(o) === n
  1090. ), this.relatedTarget = void 0, this._toggleEventListeners(!0);
  1091. }
  1092. get name() {
  1093. return ms;
  1094. }
  1095. get defaults() {
  1096. return hr;
  1097. }
  1098. toggle() {
  1099. h(this.element, p) ? this.hide() : this.show();
  1100. }
  1101. show() {
  1102. const { element: t, options: s, relatedTarget: n } = this;
  1103. let o = 0;
  1104. if (h(t, p) || (we.relatedTarget = n || void 0, bo.relatedTarget = n || void 0, b(t, we), we.defaultPrevented)) return;
  1105. const i = Mt(t);
  1106. if (i && i !== t) {
  1107. const r = oe(i) || F(
  1108. i,
  1109. ps
  1110. );
  1111. r && r.hide();
  1112. }
  1113. s.backdrop ? (vs(P) ? ws() : ao(t, !0), o = le(P), lo(), setTimeout(() => rn(this), o)) : (rn(this), i && h(P, p) && _e());
  1114. }
  1115. hide() {
  1116. const { element: t, relatedTarget: s } = this;
  1117. h(t, p) && (je.relatedTarget = s || void 0, wo.relatedTarget = s || void 0, b(t, je), !je.defaultPrevented && (d(t, Ae), v(t, p), gr(this)));
  1118. }
  1119. _toggleEventListeners = (t) => {
  1120. const s = t ? k : O;
  1121. this.triggers.forEach((n) => {
  1122. s(n, D, pr);
  1123. });
  1124. };
  1125. dispose() {
  1126. const { element: t } = this, s = h(t, p), n = () => setTimeout(() => super.dispose(), 1);
  1127. this.hide(), this._toggleEventListeners(), s ? S(t, n) : n();
  1128. }
  1129. }
  1130. const Pt = "popover", Es = "Popover", ct = "tooltip", $o = (e) => {
  1131. const t = e === ct, s = t ? `${e}-inner` : `${e}-body`, n = t ? "" : `<h3 class="${e}-header"></h3>`, o = `<div class="${e}-arrow"></div>`, i = `<div class="${s}"></div>`;
  1132. return `<div class="${e}" role="${ct}">${n + o + i}</div>`;
  1133. }, yo = {
  1134. top: "top",
  1135. bottom: "bottom",
  1136. left: "start",
  1137. right: "end"
  1138. }, ss = (e) => {
  1139. requestAnimationFrame(() => {
  1140. const t = /\b(top|bottom|start|end)+/, { element: s, tooltip: n, container: o, offsetParent: i, options: r, arrow: c } = e;
  1141. if (!n) return;
  1142. const a = Tt(s), { x: l, y: f } = si(i);
  1143. H(n, {
  1144. top: "",
  1145. left: "",
  1146. right: "",
  1147. bottom: ""
  1148. });
  1149. const { offsetWidth: u, offsetHeight: $ } = n, { clientWidth: I, clientHeight: B, offsetWidth: G } = dt(s);
  1150. let { placement: m } = r;
  1151. const { clientWidth: V, offsetWidth: $t } = o, C = W(
  1152. o,
  1153. "position"
  1154. ) === "fixed", ft = Math.abs(C ? V - $t : I - G), it = a && C ? ft : 0, J = I - (a ? 0 : ft) - 1, Bt = e._observer.getEntry(s), {
  1155. width: y,
  1156. height: j,
  1157. left: Rt,
  1158. right: R,
  1159. top: Ct
  1160. } = Bt?.boundingClientRect || It(s, !0), {
  1161. x: fe,
  1162. y: Wt
  1163. } = ri(
  1164. s,
  1165. i,
  1166. { x: l, y: f }
  1167. );
  1168. H(c, {
  1169. top: "",
  1170. left: "",
  1171. right: "",
  1172. bottom: ""
  1173. });
  1174. let xt = 0, Xt = "", ut = 0, Pe = "", Ft = "", ue = "", De = "";
  1175. const St = c.offsetWidth || 0, gt = c.offsetHeight || 0, Ie = St / 2;
  1176. let qt = Ct - $ - gt < 0, Ut = Ct + $ + j + gt >= B, Yt = Rt - u - St < it, Zt = Rt + u + y + St >= J;
  1177. const ge = ["left", "right"], Le = ["top", "bottom"];
  1178. qt = ge.includes(m) ? Ct + j / 2 - $ / 2 - gt < 0 : qt, Ut = ge.includes(m) ? Ct + $ / 2 + j / 2 + gt >= B : Ut, Yt = Le.includes(m) ? Rt + y / 2 - u / 2 < it : Yt, Zt = Le.includes(m) ? Rt + u / 2 + y / 2 >= J : Zt, m = ge.includes(m) && Yt && Zt ? "top" : m, m = m === "top" && qt ? "bottom" : m, m = m === "bottom" && Ut ? "top" : m, m = m === "left" && Yt ? "right" : m, m = m === "right" && Zt ? "left" : m, n.className.includes(m) || (n.className = n.className.replace(
  1179. t,
  1180. yo[m]
  1181. )), ge.includes(m) ? (m === "left" ? ut = fe - u - St : ut = fe + y + St, qt && Ut ? (xt = 0, Xt = 0, Ft = Wt + j / 2 - gt / 2) : qt ? (xt = Wt, Xt = "", Ft = j / 2 - St) : Ut ? (xt = Wt - $ + j, Xt = "", Ft = $ - j / 2 - St) : (xt = Wt - $ / 2 + j / 2, Ft = $ / 2 - gt / 2)) : Le.includes(m) && (m === "top" ? xt = Wt - $ - gt : xt = Wt + j + gt, Yt ? (ut = 0, ue = fe + y / 2 - Ie) : Zt ? (ut = "auto", Pe = 0, De = y / 2 + J - R - Ie) : (ut = fe - u / 2 + y / 2, ue = u / 2 - Ie)), H(n, {
  1182. top: `${xt}px`,
  1183. bottom: Xt === "" ? "" : `${Xt}px`,
  1184. left: ut === "auto" ? ut : `${ut}px`,
  1185. right: Pe !== "" ? `${Pe}px` : ""
  1186. }), _(c) && (Ft !== "" && (c.style.top = `${Ft}px`), ue !== "" ? c.style.left = `${ue}px` : De !== "" && (c.style.right = `${De}px`));
  1187. const Bo = E(
  1188. `updated.bs.${ee(e.name)}`
  1189. );
  1190. b(s, Bo);
  1191. });
  1192. }, ns = {
  1193. template: $o(ct),
  1194. title: "",
  1195. customClass: "",
  1196. trigger: "hover focus",
  1197. placement: "top",
  1198. sanitizeFn: void 0,
  1199. animation: !0,
  1200. delay: 200,
  1201. container: document.body,
  1202. content: "",
  1203. dismissible: !1,
  1204. btnClose: ""
  1205. }, Co = "data-original-title", Ht = "Tooltip", mt = (e, t, s) => {
  1206. if (ae(t) && t.length) {
  1207. let n = t.trim();
  1208. ai(s) && (n = s(n));
  1209. const i = new DOMParser().parseFromString(n, "text/html");
  1210. e.append(...i.body.childNodes);
  1211. } else _(t) ? e.append(t) : (li(t) || ci(t) && t.every(A)) && e.append(...t);
  1212. }, Er = (e) => {
  1213. const t = e.name === Ht, { id: s, element: n, options: o } = e, {
  1214. title: i,
  1215. placement: r,
  1216. template: c,
  1217. animation: a,
  1218. customClass: l,
  1219. sanitizeFn: f,
  1220. dismissible: u,
  1221. content: $,
  1222. btnClose: I
  1223. } = o, B = t ? ct : Pt, G = { ...yo };
  1224. let m = [], V = [];
  1225. Tt(n) && (G.left = "end", G.right = "start");
  1226. const $t = `bs-${B}-${G[r]}`;
  1227. let yt;
  1228. if (_(c))
  1229. yt = c;
  1230. else {
  1231. const y = bt("div");
  1232. mt(y, c, f), yt = y.firstChild;
  1233. }
  1234. if (!_(yt)) return;
  1235. e.tooltip = yt.cloneNode(!0);
  1236. const { tooltip: C } = e;
  1237. L(C, "id", s), L(C, "role", ct);
  1238. const ft = t ? `${ct}-inner` : `${Pt}-body`, it = t ? null : x(`.${Pt}-header`, C), J = x(`.${ft}`, C);
  1239. e.arrow = x(
  1240. `.${B}-arrow`,
  1241. C
  1242. );
  1243. const { arrow: Bt } = e;
  1244. if (_(i)) m = [i.cloneNode(!0)];
  1245. else {
  1246. const y = bt("div");
  1247. mt(y, i, f), m = [...y.childNodes];
  1248. }
  1249. if (_($)) V = [$.cloneNode(!0)];
  1250. else {
  1251. const y = bt("div");
  1252. mt(y, $, f), V = [...y.childNodes];
  1253. }
  1254. if (u)
  1255. if (i)
  1256. if (_(I))
  1257. m = [...m, I.cloneNode(!0)];
  1258. else {
  1259. const y = bt("div");
  1260. mt(y, I, f), m = [...m, y.firstChild];
  1261. }
  1262. else if (it && it.remove(), _(I))
  1263. V = [...V, I.cloneNode(!0)];
  1264. else {
  1265. const y = bt("div");
  1266. mt(y, I, f), V = [...V, y.firstChild];
  1267. }
  1268. t ? i && J && mt(J, i, f) : (i && it && mt(it, m, f), $ && J && mt(J, V, f), e.btn = x(".btn-close", C) || void 0), d(C, "position-absolute"), d(Bt, "position-absolute"), h(C, B) || d(C, B), a && !h(C, N) && d(C, N), l && !h(C, l) && d(C, l), h(C, $t) || d(C, $t);
  1269. }, Tr = (e) => {
  1270. const t = ["HTML", "BODY"], s = [];
  1271. let { parentNode: n } = e;
  1272. for (; n && !t.includes(n.nodeName); )
  1273. n = ni(n), In(n) || oi(n) || s.push(n);
  1274. return s.find((o, i) => (W(o, "position") !== "relative" || W(o, "position") === "relative" && o.offsetHeight !== o.scrollHeight) && s.slice(i + 1).every(
  1275. (r) => W(r, "position") === "static"
  1276. ) ? o : null) || w(e).body;
  1277. }, $r = `[${ot}="${ct}"],[data-tip="${ct}"]`, xo = "title";
  1278. let cn = (e) => F(e, Ht);
  1279. const yr = (e) => new Ts(e), Cr = (e) => {
  1280. const { element: t, tooltip: s, container: n } = e;
  1281. Dt(t, xn), io(
  1282. s,
  1283. n
  1284. );
  1285. }, Qt = (e) => {
  1286. const { tooltip: t, container: s } = e;
  1287. return t && vs(t, s);
  1288. }, xr = (e, t) => {
  1289. const { element: s } = e;
  1290. e._toggleEventListeners(), Jt(s, Co) && e.name === Ht && Ho(e), t && t();
  1291. }, So = (e, t) => {
  1292. const s = t ? k : O, { element: n } = e;
  1293. s(
  1294. w(n),
  1295. as,
  1296. e.handleTouch,
  1297. te
  1298. );
  1299. }, an = (e) => {
  1300. const { element: t } = e, s = E(
  1301. `shown.bs.${ee(e.name)}`
  1302. );
  1303. So(e, !0), b(t, s), g.clear(t, "in");
  1304. }, ln = (e) => {
  1305. const { element: t } = e, s = E(
  1306. `hidden.bs.${ee(e.name)}`
  1307. );
  1308. So(e), Cr(e), b(t, s), g.clear(t, "out");
  1309. }, dn = (e, t) => {
  1310. const s = t ? k : O, { element: n, tooltip: o } = e, i = M(n, `.${X}`), r = M(n, `.${Z}`);
  1311. t ? [n, o].forEach((c) => e._observer.observe(c)) : e._observer.disconnect(), i && s(i, `hide.bs.${X}`, e.handleHide), r && s(r, `hide.bs.${Z}`, e.handleHide);
  1312. }, Ho = (e, t) => {
  1313. const s = [Co, xo], { element: n } = e;
  1314. L(
  1315. n,
  1316. s[t ? 0 : 1],
  1317. t || Y(n, s[0]) || ""
  1318. ), Dt(n, s[t ? 1 : 0]);
  1319. };
  1320. class Ts extends st {
  1321. static selector = $r;
  1322. static init = yr;
  1323. static getInstance = cn;
  1324. static styleTip = ss;
  1325. constructor(t, s) {
  1326. super(t, s);
  1327. const { element: n } = this, o = this.name === Ht, i = o ? ct : Pt, r = o ? Ht : Es;
  1328. cn = (f) => F(f, r), this.enabled = !0, this.id = `${i}-${On(n, i)}`;
  1329. const { options: c } = this;
  1330. if (!c.title && o || !o && !c.content)
  1331. return;
  1332. at(ns, { titleAttr: "" }), Jt(n, xo) && o && typeof c.title == "string" && Ho(this, c.title);
  1333. const a = Tr(n), l = ["sticky", "fixed", "relative"].some(
  1334. (f) => W(a, "position") === f
  1335. ) ? a : Ln(n);
  1336. this.container = a, this.offsetParent = l, Er(this), this.tooltip && (this._observer = new us(() => this.update()), this._toggleEventListeners(!0));
  1337. }
  1338. get name() {
  1339. return Ht;
  1340. }
  1341. get defaults() {
  1342. return ns;
  1343. }
  1344. handleFocus = () => lt(this.element);
  1345. handleShow = () => this.show();
  1346. show() {
  1347. const { options: t, tooltip: s, element: n, container: o, id: i } = this, { animation: r } = t, c = g.get(n, "out");
  1348. g.clear(n, "out"), s && !c && !Qt(this) && g.set(
  1349. n,
  1350. () => {
  1351. const a = E(
  1352. `show.bs.${ee(this.name)}`
  1353. );
  1354. b(n, a), a.defaultPrevented || (oo(s, o), L(n, xn, `#${i}`), this.update(), dn(this, !0), h(s, p) || d(s, p), r ? S(s, () => an(this)) : an(this));
  1355. },
  1356. 17,
  1357. "in"
  1358. );
  1359. }
  1360. handleHide = () => this.hide();
  1361. hide() {
  1362. const { options: t, tooltip: s, element: n } = this, { animation: o, delay: i } = t;
  1363. g.clear(n, "in"), s && Qt(this) && g.set(
  1364. n,
  1365. () => {
  1366. const r = E(
  1367. `hide.bs.${ee(this.name)}`
  1368. );
  1369. b(n, r), r.defaultPrevented || (this.update(), v(s, p), dn(this), o ? S(s, () => ln(this)) : ln(this));
  1370. },
  1371. i + 17,
  1372. "out"
  1373. );
  1374. }
  1375. update = () => {
  1376. ss(this);
  1377. };
  1378. toggle = () => {
  1379. const { tooltip: t } = this;
  1380. t && !Qt(this) ? this.show() : this.hide();
  1381. };
  1382. enable() {
  1383. const { enabled: t } = this;
  1384. t || (this._toggleEventListeners(!0), this.enabled = !t);
  1385. }
  1386. disable() {
  1387. const { tooltip: t, enabled: s } = this;
  1388. s && (t && Qt(this) && this.hide(), this._toggleEventListeners(), this.enabled = !s);
  1389. }
  1390. toggleEnabled() {
  1391. this.enabled ? this.disable() : this.enable();
  1392. }
  1393. handleTouch = ({ target: t }) => {
  1394. const { tooltip: s, element: n } = this;
  1395. s && s.contains(t) || t === n || t && n.contains(t) || this.hide();
  1396. };
  1397. _toggleEventListeners = (t) => {
  1398. const s = t ? k : O, { element: n, options: o, btn: i } = this, { trigger: r } = o, a = !!(this.name !== Ht && o.dismissible);
  1399. r.includes("manual") || (this.enabled = !!t, r.split(" ").forEach((f) => {
  1400. f === Wo ? (s(n, Hn, this.handleShow), s(n, Ce, this.handleShow), a || (s(n, cs, this.handleHide), s(
  1401. w(n),
  1402. as,
  1403. this.handleTouch,
  1404. te
  1405. ))) : f === D ? s(n, f, a ? this.handleShow : this.toggle) : f === is && (s(n, rs, this.handleShow), a || s(n, Sn, this.handleHide), Uo() && s(n, D, this.handleFocus)), a && i && s(i, D, this.handleHide);
  1406. }));
  1407. };
  1408. dispose() {
  1409. const { tooltip: t, options: s } = this, n = { ...this, name: this.name }, o = () => setTimeout(
  1410. () => xr(n, () => super.dispose()),
  1411. 17
  1412. );
  1413. s.animation && Qt(n) ? (this.options.delay = 0, this.hide(), S(t, o)) : o();
  1414. }
  1415. }
  1416. const Sr = `[${ot}="${Pt}"],[data-tip="${Pt}"]`, Hr = at({}, ns, {
  1417. template: $o(Pt),
  1418. content: "",
  1419. dismissible: !1,
  1420. btnClose: '<button class="btn-close position-absolute top-0 end-0 m-1" aria-label="Close"></button>'
  1421. }), _r = (e) => F(e, Es), Ar = (e) => new _o(e);
  1422. class _o extends Ts {
  1423. static selector = Sr;
  1424. static init = Ar;
  1425. static getInstance = _r;
  1426. static styleTip = ss;
  1427. constructor(t, s) {
  1428. super(t, s);
  1429. }
  1430. get name() {
  1431. return Es;
  1432. }
  1433. get defaults() {
  1434. return Hr;
  1435. }
  1436. show = () => {
  1437. super.show();
  1438. const { options: t, btn: s } = this;
  1439. t.dismissible && s && setTimeout(() => lt(s), 17);
  1440. };
  1441. }
  1442. const Pr = "scrollspy", Ao = "ScrollSpy", Dr = '[data-bs-spy="scroll"]', Ir = "[href]", Lr = {
  1443. offset: 10,
  1444. target: void 0
  1445. }, kr = (e) => F(e, Ao), Or = (e) => new Do(e), hn = E(`activate.bs.${Pr}`), Nr = (e) => {
  1446. const {
  1447. target: t,
  1448. _itemsLength: s,
  1449. _observables: n
  1450. } = e, o = fs("A", t), i = w(t);
  1451. !o.length || s === n.size || (n.clear(), Array.from(o).forEach((r) => {
  1452. const c = Y(r, "href")?.slice(1), a = c?.length ? i.getElementById(c) : null;
  1453. a && !nt(r) && e._observables.set(a, r);
  1454. }), e._itemsLength = e._observables.size);
  1455. }, Po = (e) => {
  1456. Array.from(fs("A", e)).forEach(
  1457. (t) => {
  1458. h(t, T) && v(t, T);
  1459. }
  1460. );
  1461. }, fn = (e, t) => {
  1462. const { target: s, element: n } = e;
  1463. Po(s), e._activeItem = t, d(t, T);
  1464. let o = t;
  1465. for (; o !== s; )
  1466. if (o = o.parentElement, ["nav", "dropdown-menu", "list-group"].some(
  1467. (i) => h(o, i)
  1468. )) {
  1469. const i = o.previousElementSibling;
  1470. i && !h(i, T) && d(i, T);
  1471. }
  1472. hn.relatedTarget = t, b(n, hn);
  1473. }, ze = (e, t) => {
  1474. const { scrollTarget: s, element: n, options: o } = e;
  1475. return (s !== n ? It(t).top + s.scrollTop : t.offsetTop) - (o.offset || 10);
  1476. };
  1477. class Do extends st {
  1478. static selector = Dr;
  1479. static init = Or;
  1480. static getInstance = kr;
  1481. constructor(t, s) {
  1482. super(t, s);
  1483. const { element: n, options: o } = this, i = x(
  1484. o.target,
  1485. w(n)
  1486. );
  1487. i && (this.target = i, this.scrollTarget = n.clientHeight < n.scrollHeight ? n : dt(n), this._observables = /* @__PURE__ */ new Map(), this.refresh(), this._observer = new us(() => {
  1488. requestAnimationFrame(() => this.refresh());
  1489. }, {
  1490. root: this.scrollTarget
  1491. }), this._toggleEventListeners(!0));
  1492. }
  1493. get name() {
  1494. return Ao;
  1495. }
  1496. get defaults() {
  1497. return Lr;
  1498. }
  1499. refresh = () => {
  1500. const { target: t, scrollTarget: s } = this;
  1501. if (!t || t.offsetHeight === 0) return;
  1502. Nr(this);
  1503. const { _itemsLength: n, _observables: o, _activeItem: i } = this;
  1504. if (!n) return;
  1505. const r = o.entries().toArray(), { scrollTop: c, scrollHeight: a, clientHeight: l } = s;
  1506. if (c >= a - l) {
  1507. const u = r[n - 1]?.[1];
  1508. i !== u && fn(this, u);
  1509. return;
  1510. }
  1511. const f = r[0]?.[0] ? ze(this, r[0][0]) : null;
  1512. if (f !== null && c < f && f > 0) {
  1513. this._activeItem = null, Po(t);
  1514. return;
  1515. }
  1516. for (let u = 0; u < n; u += 1) {
  1517. const [$, I] = r[u], B = ze(this, $), G = r[u + 1]?.[0], m = G ? ze(this, G) : null;
  1518. if (i !== I && c >= B && (m === null || c < m)) {
  1519. fn(this, I);
  1520. break;
  1521. }
  1522. }
  1523. };
  1524. _scrollTo = (t) => {
  1525. const s = M(t.target, Ir), n = s && Y(s, "href")?.slice(1), o = n && di(n, this.target);
  1526. o && (this.scrollTarget.scrollTo({
  1527. top: o.offsetTop,
  1528. behavior: "smooth"
  1529. }), t.preventDefault());
  1530. };
  1531. _toggleEventListeners = (t) => {
  1532. const { target: s, _observables: n, _observer: o, _scrollTo: i } = this;
  1533. (t ? k : O)(s, D, i), t ? n?.forEach((c, a) => o.observe(a)) : o.disconnect();
  1534. };
  1535. dispose() {
  1536. this._toggleEventListeners(), super.dispose();
  1537. }
  1538. }
  1539. const he = "tab", Io = "Tab", os = `[${ot}="${he}"]`, Lo = (e) => F(e, Io), Mr = (e) => new ko(e), Ke = E(
  1540. `show.bs.${he}`
  1541. ), un = E(
  1542. `shown.bs.${he}`
  1543. ), Ve = E(
  1544. `hide.bs.${he}`
  1545. ), gn = E(
  1546. `hidden.bs.${he}`
  1547. ), ie = /* @__PURE__ */ new Map(), pn = (e) => {
  1548. const { tabContent: t, nav: s } = e;
  1549. t && h(t, Lt) && (t.style.height = "", v(t, Lt)), s && g.clear(s);
  1550. }, mn = (e) => {
  1551. const { element: t, tabContent: s, content: n, nav: o } = e, { tab: i } = _(o) && ie.get(o) || { tab: null };
  1552. if (s && n && h(n, N)) {
  1553. const { currentHeight: r, nextHeight: c } = ie.get(t) || { currentHeight: 0, nextHeight: 0 };
  1554. r !== c ? setTimeout(() => {
  1555. s.style.height = `${c}px`, Ot(s), S(s, () => pn(e));
  1556. }, 50) : pn(e);
  1557. } else o && g.clear(o);
  1558. un.relatedTarget = i, b(t, un);
  1559. }, vn = (e) => {
  1560. const { element: t, content: s, tabContent: n, nav: o } = e, { tab: i, content: r } = o && ie.get(o) || { tab: null, content: null };
  1561. let c = 0;
  1562. if (n && s && h(s, N) && ([r, s].forEach((a) => {
  1563. a && d(a, "overflow-hidden");
  1564. }), c = r ? r.scrollHeight : 0), Ke.relatedTarget = i, gn.relatedTarget = t, b(t, Ke), !Ke.defaultPrevented) {
  1565. if (s && d(s, T), r && v(r, T), n && s && h(s, N)) {
  1566. const a = s.scrollHeight;
  1567. ie.set(t, {
  1568. currentHeight: c,
  1569. nextHeight: a,
  1570. tab: null,
  1571. content: null
  1572. }), d(n, Lt), n.style.height = `${c}px`, Ot(n), [r, s].forEach((l) => {
  1573. l && v(l, "overflow-hidden");
  1574. });
  1575. }
  1576. s && s && h(s, N) ? setTimeout(() => {
  1577. d(s, p), S(s, () => {
  1578. mn(e);
  1579. });
  1580. }, 1) : (s && d(s, p), mn(e)), i && b(i, gn);
  1581. }
  1582. }, bn = (e) => {
  1583. const { nav: t } = e;
  1584. if (!_(t))
  1585. return { tab: null, content: null };
  1586. const s = rt(
  1587. T,
  1588. t
  1589. );
  1590. let n = null;
  1591. s.length === 1 && !kt.some(
  1592. (i) => h(s[0].parentElement, i)
  1593. ) ? [n] = s : s.length > 1 && (n = s[s.length - 1]);
  1594. const o = _(n) ? K(n) : null;
  1595. return { tab: n, content: o };
  1596. }, wn = (e) => {
  1597. if (!_(e)) return null;
  1598. const t = M(e, `.${kt.join(",.")}`);
  1599. return t ? x(`.${kt[0]}-toggle`, t) : null;
  1600. }, Br = (e) => {
  1601. const t = M(e.target, os), s = t && Lo(t);
  1602. s && (e.preventDefault(), s.show());
  1603. };
  1604. class ko extends st {
  1605. static selector = os;
  1606. static init = Mr;
  1607. static getInstance = Lo;
  1608. constructor(t) {
  1609. super(t);
  1610. const { element: s } = this, n = K(s);
  1611. if (!n) return;
  1612. const o = M(s, ".nav"), i = M(
  1613. n,
  1614. ".tab-content"
  1615. );
  1616. this.nav = o, this.content = n, this.tabContent = i, this.dropdown = wn(s);
  1617. const { tab: r } = bn(this);
  1618. if (o && !r) {
  1619. const c = x(os, o), a = c && K(c);
  1620. a && (d(c, T), d(a, p), d(a, T), L(s, ke, "true"));
  1621. }
  1622. this._toggleEventListeners(!0);
  1623. }
  1624. get name() {
  1625. return Io;
  1626. }
  1627. show() {
  1628. const { element: t, content: s, nav: n, dropdown: o } = this;
  1629. if (n && g.get(n) || h(t, T)) return;
  1630. const { tab: i, content: r } = bn(this);
  1631. if (n && i && ie.set(n, { tab: i, content: r, currentHeight: 0, nextHeight: 0 }), Ve.relatedTarget = t, !_(i) || (b(i, Ve), Ve.defaultPrevented)) return;
  1632. d(t, T), L(t, ke, "true");
  1633. const c = _(i) && wn(i);
  1634. if (c && h(c, T) && v(c, T), n) {
  1635. const a = () => {
  1636. i && (v(i, T), L(i, ke, "false")), o && !h(o, T) && d(o, T);
  1637. };
  1638. r && (h(r, N) || s && h(s, N)) ? g.set(n, a, 1) : a();
  1639. }
  1640. r && (v(r, p), h(r, N) ? S(r, () => vn(this)) : vn(this));
  1641. }
  1642. _toggleEventListeners = (t) => {
  1643. (t ? k : O)(this.element, D, Br);
  1644. };
  1645. dispose() {
  1646. this._toggleEventListeners(), super.dispose();
  1647. }
  1648. }
  1649. const Q = "toast", Oo = "Toast", Rr = `.${Q}`, Wr = `[${Se}="${Q}"]`, Fr = `[${ot}="${Q}"]`, Vt = "showing", No = "hide", jr = {
  1650. animation: !0,
  1651. autohide: !0,
  1652. delay: 5e3
  1653. }, $s = (e) => F(e, Oo), zr = (e) => new Mo(e), En = E(
  1654. `show.bs.${Q}`
  1655. ), Kr = E(
  1656. `shown.bs.${Q}`
  1657. ), Tn = E(
  1658. `hide.bs.${Q}`
  1659. ), Vr = E(
  1660. `hidden.bs.${Q}`
  1661. ), $n = (e) => {
  1662. const { element: t, options: s } = e;
  1663. v(t, Vt), g.clear(t, Vt), b(t, Kr), s.autohide && g.set(t, () => e.hide(), s.delay, Q);
  1664. }, yn = (e) => {
  1665. const { element: t } = e;
  1666. v(t, Vt), v(t, p), d(t, No), g.clear(t, Q), b(t, Vr);
  1667. }, Xr = (e) => {
  1668. const { element: t, options: s } = e;
  1669. d(t, Vt), s.animation ? (Ot(t), S(t, () => yn(e))) : yn(e);
  1670. }, qr = (e) => {
  1671. const { element: t, options: s } = e;
  1672. g.set(
  1673. t,
  1674. () => {
  1675. v(t, No), Ot(t), d(t, p), d(t, Vt), s.animation ? S(t, () => $n(e)) : $n(e);
  1676. },
  1677. 17,
  1678. Vt
  1679. );
  1680. };
  1681. function Ur(e) {
  1682. const t = K(this), s = t && $s(t);
  1683. nt(this) || s && (this.tagName === "A" && e.preventDefault(), s.relatedTarget = this, s.show());
  1684. }
  1685. const Yr = (e) => {
  1686. const t = e.target, s = $s(t), { type: n, relatedTarget: o } = e;
  1687. !s || t === o || t.contains(o) || ([Ce, rs].includes(n) ? g.clear(t, Q) : g.set(t, () => s.hide(), s.options.delay, Q));
  1688. };
  1689. class Mo extends st {
  1690. static selector = Rr;
  1691. static init = zr;
  1692. static getInstance = $s;
  1693. constructor(t, s) {
  1694. super(t, s);
  1695. const { element: n, options: o } = this;
  1696. o.animation && !h(n, N) ? d(n, N) : !o.animation && h(n, N) && v(n, N), this.dismiss = x(Wr, n), this.triggers = [
  1697. ...q(
  1698. Fr,
  1699. w(n)
  1700. )
  1701. ].filter(
  1702. (i) => K(i) === n
  1703. ), this._toggleEventListeners(!0);
  1704. }
  1705. get name() {
  1706. return Oo;
  1707. }
  1708. get defaults() {
  1709. return jr;
  1710. }
  1711. get isShown() {
  1712. return h(this.element, p);
  1713. }
  1714. show = () => {
  1715. const { element: t, isShown: s } = this;
  1716. !t || s || (b(t, En), En.defaultPrevented || qr(this));
  1717. };
  1718. hide = () => {
  1719. const { element: t, isShown: s } = this;
  1720. !t || !s || (b(t, Tn), Tn.defaultPrevented || Xr(this));
  1721. };
  1722. _toggleEventListeners = (t) => {
  1723. const s = t ? k : O, { element: n, triggers: o, dismiss: i, options: r, hide: c } = this;
  1724. i && s(i, D, c), r.autohide && [rs, Sn, Ce, cs].forEach(
  1725. (a) => s(n, a, Yr)
  1726. ), o.length && o.forEach((a) => {
  1727. s(a, D, Ur);
  1728. });
  1729. };
  1730. dispose() {
  1731. const { element: t, isShown: s } = this;
  1732. this._toggleEventListeners(), g.clear(t, Q), s && v(t, p), super.dispose();
  1733. }
  1734. }
  1735. const ys = /* @__PURE__ */ new Map();
  1736. [
  1737. Rn,
  1738. Fn,
  1739. Kn,
  1740. qn,
  1741. Gn,
  1742. mo,
  1743. To,
  1744. _o,
  1745. Do,
  1746. ko,
  1747. Mo,
  1748. Ts
  1749. ].forEach((e) => ys.set(e.prototype.name, e));
  1750. const Zr = (e, t) => {
  1751. [...t].forEach((s) => e(s));
  1752. }, Qr = (e, t) => {
  1753. const s = _t.getAllFor(e);
  1754. s && [...s].forEach(([n, o]) => {
  1755. t.contains(n) && o.dispose();
  1756. });
  1757. }, Cn = (e) => {
  1758. const t = e && e.nodeName ? e : document, s = [...fs("*", t)];
  1759. ys.forEach((n) => {
  1760. const { init: o, selector: i } = n;
  1761. Zr(
  1762. o,
  1763. s.filter((r) => kn(r, i))
  1764. );
  1765. });
  1766. }, Gr = (e) => {
  1767. const t = e && e.nodeName ? e : document;
  1768. ys.forEach((s) => {
  1769. Qr(s.prototype.name, t);
  1770. });
  1771. };
  1772. document.body ? Cn() : k(document, "DOMContentLoaded", () => Cn(), {
  1773. once: !0
  1774. });
  1775. export {
  1776. Rn as Alert,
  1777. Fn as Button,
  1778. Kn as Carousel,
  1779. qn as Collapse,
  1780. Gn as Dropdown,
  1781. mo as Modal,
  1782. To as Offcanvas,
  1783. _o as Popover,
  1784. Do as ScrollSpy,
  1785. ko as Tab,
  1786. Mo as Toast,
  1787. Ts as Tooltip,
  1788. Cn as initCallback,
  1789. Gr as removeDataAPI
  1790. };
  1791. //# sourceMappingURL=bootstrap-native.mjs.map