fnschool 20251011.80531.840__py3-none-any.whl → 20251011.81705.829__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fnschool might be problematic. Click here for more details.

Files changed (117) hide show
  1. fnschoo1/__init__.py +2 -1
  2. fnschoo1/db.sqlite3 +0 -0
  3. fnschoo1/static/images/favicon.ico +0 -0
  4. {fnschool-20251011.80531.840.dist-info → fnschool-20251011.81705.829.dist-info}/METADATA +1 -1
  5. fnschool-20251011.81705.829.dist-info/RECORD +101 -0
  6. fnschoo1/static_collected/admin/css/autocomplete.css +0 -377
  7. fnschoo1/static_collected/admin/css/base.css +0 -1224
  8. fnschoo1/static_collected/admin/css/changelists.css +0 -334
  9. fnschoo1/static_collected/admin/css/dark_mode.css +0 -136
  10. fnschoo1/static_collected/admin/css/dashboard.css +0 -30
  11. fnschoo1/static_collected/admin/css/forms.css +0 -546
  12. fnschoo1/static_collected/admin/css/login.css +0 -62
  13. fnschoo1/static_collected/admin/css/nav_sidebar.css +0 -145
  14. fnschoo1/static_collected/admin/css/responsive.css +0 -1043
  15. fnschoo1/static_collected/admin/css/responsive_rtl.css +0 -84
  16. fnschoo1/static_collected/admin/css/rtl.css +0 -311
  17. fnschoo1/static_collected/admin/css/vendor/select2/select2.css +0 -708
  18. fnschoo1/static_collected/admin/css/vendor/select2/select2.min.css +0 -1
  19. fnschoo1/static_collected/admin/css/widgets.css +0 -639
  20. fnschoo1/static_collected/admin/js/SelectBox.js +0 -128
  21. fnschoo1/static_collected/admin/js/SelectFilter2.js +0 -503
  22. fnschoo1/static_collected/admin/js/actions.js +0 -232
  23. fnschoo1/static_collected/admin/js/admin/DateTimeShortcuts.js +0 -496
  24. fnschoo1/static_collected/admin/js/admin/RelatedObjectLookups.js +0 -276
  25. fnschoo1/static_collected/admin/js/autocomplete.js +0 -33
  26. fnschoo1/static_collected/admin/js/calendar.js +0 -251
  27. fnschoo1/static_collected/admin/js/cancel.js +0 -29
  28. fnschoo1/static_collected/admin/js/change_form.js +0 -21
  29. fnschoo1/static_collected/admin/js/collapse.js +0 -43
  30. fnschoo1/static_collected/admin/js/core.js +0 -174
  31. fnschoo1/static_collected/admin/js/filters.js +0 -37
  32. fnschoo1/static_collected/admin/js/inlines.js +0 -439
  33. fnschoo1/static_collected/admin/js/jquery.init.js +0 -8
  34. fnschoo1/static_collected/admin/js/nav_sidebar.js +0 -81
  35. fnschoo1/static_collected/admin/js/popup_response.js +0 -24
  36. fnschoo1/static_collected/admin/js/prepopulate.js +0 -43
  37. fnschoo1/static_collected/admin/js/prepopulate_init.js +0 -20
  38. fnschoo1/static_collected/admin/js/theme.js +0 -57
  39. fnschoo1/static_collected/admin/js/urlify.js +0 -529
  40. fnschoo1/static_collected/admin/js/vendor/jquery/jquery.js +0 -10913
  41. fnschoo1/static_collected/admin/js/vendor/jquery/jquery.min.js +0 -2
  42. fnschoo1/static_collected/admin/js/vendor/select2/i18n/af.js +0 -43
  43. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ar.js +0 -36
  44. fnschoo1/static_collected/admin/js/vendor/select2/i18n/az.js +0 -33
  45. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bg.js +0 -38
  46. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bn.js +0 -39
  47. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bs.js +0 -48
  48. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ca.js +0 -41
  49. fnschoo1/static_collected/admin/js/vendor/select2/i18n/cs.js +0 -62
  50. fnschoo1/static_collected/admin/js/vendor/select2/i18n/da.js +0 -37
  51. fnschoo1/static_collected/admin/js/vendor/select2/i18n/de.js +0 -41
  52. fnschoo1/static_collected/admin/js/vendor/select2/i18n/dsb.js +0 -51
  53. fnschoo1/static_collected/admin/js/vendor/select2/i18n/el.js +0 -43
  54. fnschoo1/static_collected/admin/js/vendor/select2/i18n/en.js +0 -41
  55. fnschoo1/static_collected/admin/js/vendor/select2/i18n/es.js +0 -41
  56. fnschoo1/static_collected/admin/js/vendor/select2/i18n/et.js +0 -38
  57. fnschoo1/static_collected/admin/js/vendor/select2/i18n/eu.js +0 -45
  58. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fa.js +0 -42
  59. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fi.js +0 -42
  60. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fr.js +0 -43
  61. fnschoo1/static_collected/admin/js/vendor/select2/i18n/gl.js +0 -40
  62. fnschoo1/static_collected/admin/js/vendor/select2/i18n/he.js +0 -44
  63. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hi.js +0 -40
  64. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hr.js +0 -45
  65. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hsb.js +0 -51
  66. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hu.js +0 -44
  67. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hy.js +0 -40
  68. fnschoo1/static_collected/admin/js/vendor/select2/i18n/id.js +0 -36
  69. fnschoo1/static_collected/admin/js/vendor/select2/i18n/is.js +0 -37
  70. fnschoo1/static_collected/admin/js/vendor/select2/i18n/it.js +0 -43
  71. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ja.js +0 -40
  72. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ka.js +0 -42
  73. fnschoo1/static_collected/admin/js/vendor/select2/i18n/km.js +0 -38
  74. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ko.js +0 -42
  75. fnschoo1/static_collected/admin/js/vendor/select2/i18n/lt.js +0 -45
  76. fnschoo1/static_collected/admin/js/vendor/select2/i18n/lv.js +0 -41
  77. fnschoo1/static_collected/admin/js/vendor/select2/i18n/mk.js +0 -42
  78. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ms.js +0 -38
  79. fnschoo1/static_collected/admin/js/vendor/select2/i18n/nb.js +0 -38
  80. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ne.js +0 -44
  81. fnschoo1/static_collected/admin/js/vendor/select2/i18n/nl.js +0 -46
  82. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pl.js +0 -43
  83. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ps.js +0 -41
  84. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pt-BR.js +0 -39
  85. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pt.js +0 -41
  86. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ro.js +0 -43
  87. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ru.js +0 -48
  88. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sk.js +0 -61
  89. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sl.js +0 -41
  90. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sq.js +0 -43
  91. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sr-Cyrl.js +0 -48
  92. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sr.js +0 -48
  93. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sv.js +0 -40
  94. fnschoo1/static_collected/admin/js/vendor/select2/i18n/th.js +0 -36
  95. fnschoo1/static_collected/admin/js/vendor/select2/i18n/tk.js +0 -36
  96. fnschoo1/static_collected/admin/js/vendor/select2/i18n/tr.js +0 -40
  97. fnschoo1/static_collected/admin/js/vendor/select2/i18n/uk.js +0 -59
  98. fnschoo1/static_collected/admin/js/vendor/select2/i18n/vi.js +0 -37
  99. fnschoo1/static_collected/admin/js/vendor/select2/i18n/zh-CN.js +0 -36
  100. fnschoo1/static_collected/admin/js/vendor/select2/i18n/zh-TW.js +0 -33
  101. fnschoo1/static_collected/admin/js/vendor/select2/select2.full.js +0 -7115
  102. fnschoo1/static_collected/admin/js/vendor/select2/select2.full.min.js +0 -2
  103. fnschoo1/static_collected/admin/js/vendor/xregexp/xregexp.js +0 -4993
  104. fnschoo1/static_collected/admin/js/vendor/xregexp/xregexp.min.js +0 -160
  105. fnschoo1/static_collected/css/bootstrap.min.css +0 -11776
  106. fnschoo1/static_collected/css/fnschool.css +0 -26
  107. fnschoo1/static_collected/js/bootstrap.bundle.min.js +0 -4223
  108. fnschoo1/static_collected/js/bootstrap.min.js +0 -2919
  109. fnschoo1/static_collected/js/fnschool.js +0 -84
  110. fnschoo1/static_collected/js/jquery.min.js +0 -5413
  111. fnschoo1/static_collected/js/jquery.slim.min.js +0 -4331
  112. fnschoo1/static_collected/js/popper.min.js +0 -1306
  113. fnschool-20251011.80531.840.dist-info/RECORD +0 -207
  114. {fnschool-20251011.80531.840.dist-info → fnschool-20251011.81705.829.dist-info}/WHEEL +0 -0
  115. {fnschool-20251011.80531.840.dist-info → fnschool-20251011.81705.829.dist-info}/entry_points.txt +0 -0
  116. {fnschool-20251011.80531.840.dist-info → fnschool-20251011.81705.829.dist-info}/licenses/LICENSE +0 -0
  117. {fnschool-20251011.80531.840.dist-info → fnschool-20251011.81705.829.dist-info}/top_level.txt +0 -0
@@ -1,2919 +0,0 @@
1
- /*!
2
- * Bootstrap v5.3.8 (https://getbootstrap.com/)
3
- * Copyright 2011-2025 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(require("@popperjs/core")))
9
- : "function" == typeof define && define.amd
10
- ? define(["@popperjs/core"], e)
11
- : ((t =
12
- "undefined" != typeof globalThis ? globalThis : t || self).bootstrap =
13
- e(t.Popper));
14
- })(this, function (t) {
15
- "use strict";
16
- function e(t) {
17
- const e = Object.create(null, {
18
- [Symbol.toStringTag]: { value: "Module" },
19
- });
20
- if (t)
21
- for (const i in t)
22
- if ("default" !== i) {
23
- const s = Object.getOwnPropertyDescriptor(t, i);
24
- Object.defineProperty(
25
- e,
26
- i,
27
- s.get ? s : { enumerable: !0, get: () => t[i] },
28
- );
29
- }
30
- return (e.default = t), Object.freeze(e);
31
- }
32
- const i = e(t),
33
- s = new Map(),
34
- n = {
35
- set(t, e, i) {
36
- s.has(t) || s.set(t, new Map());
37
- const n = s.get(t);
38
- n.has(e) || 0 === n.size
39
- ? n.set(e, i)
40
- : console.error(
41
- `Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`,
42
- );
43
- },
44
- get: (t, e) => (s.has(t) && s.get(t).get(e)) || null,
45
- remove(t, e) {
46
- if (!s.has(t)) return;
47
- const i = s.get(t);
48
- i.delete(e), 0 === i.size && s.delete(t);
49
- },
50
- },
51
- o = "transitionend",
52
- r = (t) => (
53
- t &&
54
- window.CSS &&
55
- window.CSS.escape &&
56
- (t = t.replace(/#([^\s"#']+)/g, (t, e) => `#${CSS.escape(e)}`)),
57
- t
58
- ),
59
- a = (t) =>
60
- null == t
61
- ? `${t}`
62
- : Object.prototype.toString
63
- .call(t)
64
- .match(/\s([a-z]+)/i)[1]
65
- .toLowerCase(),
66
- l = (t) => {
67
- t.dispatchEvent(new Event(o));
68
- },
69
- c = (t) =>
70
- !(!t || "object" != typeof t) &&
71
- (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType),
72
- h = (t) =>
73
- c(t)
74
- ? t.jquery
75
- ? t[0]
76
- : t
77
- : "string" == typeof t && t.length > 0
78
- ? document.querySelector(r(t))
79
- : null,
80
- d = (t) => {
81
- if (!c(t) || 0 === t.getClientRects().length) return !1;
82
- const e =
83
- "visible" === getComputedStyle(t).getPropertyValue("visibility"),
84
- i = t.closest("details:not([open])");
85
- if (!i) return e;
86
- if (i !== t) {
87
- const e = t.closest("summary");
88
- if (e && e.parentNode !== i) return !1;
89
- if (null === e) return !1;
90
- }
91
- return e;
92
- },
93
- u = (t) =>
94
- !t ||
95
- t.nodeType !== Node.ELEMENT_NODE ||
96
- !!t.classList.contains("disabled") ||
97
- (void 0 !== t.disabled
98
- ? t.disabled
99
- : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")),
100
- _ = (t) => {
101
- if (!document.documentElement.attachShadow) return null;
102
- if ("function" == typeof t.getRootNode) {
103
- const e = t.getRootNode();
104
- return e instanceof ShadowRoot ? e : null;
105
- }
106
- return t instanceof ShadowRoot
107
- ? t
108
- : t.parentNode
109
- ? _(t.parentNode)
110
- : null;
111
- },
112
- g = () => {},
113
- f = (t) => {
114
- t.offsetHeight;
115
- },
116
- m = () =>
117
- window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")
118
- ? window.jQuery
119
- : null,
120
- p = [],
121
- b = () => "rtl" === document.documentElement.dir,
122
- v = (t) => {
123
- var e;
124
- (e = () => {
125
- const e = m();
126
- if (e) {
127
- const i = t.NAME,
128
- s = e.fn[i];
129
- (e.fn[i] = t.jQueryInterface),
130
- (e.fn[i].Constructor = t),
131
- (e.fn[i].noConflict = () => ((e.fn[i] = s), t.jQueryInterface));
132
- }
133
- }),
134
- "loading" === document.readyState
135
- ? (p.length ||
136
- document.addEventListener("DOMContentLoaded", () => {
137
- for (const t of p) t();
138
- }),
139
- p.push(e))
140
- : e();
141
- },
142
- y = (t, e = [], i = t) => ("function" == typeof t ? t.call(...e) : i),
143
- w = (t, e, i = !0) => {
144
- if (!i) return void y(t);
145
- const s =
146
- ((t) => {
147
- if (!t) return 0;
148
- let { transitionDuration: e, transitionDelay: i } =
149
- window.getComputedStyle(t);
150
- const s = Number.parseFloat(e),
151
- n = Number.parseFloat(i);
152
- return s || n
153
- ? ((e = e.split(",")[0]),
154
- (i = i.split(",")[0]),
155
- 1e3 * (Number.parseFloat(e) + Number.parseFloat(i)))
156
- : 0;
157
- })(e) + 5;
158
- let n = !1;
159
- const r = ({ target: i }) => {
160
- i === e && ((n = !0), e.removeEventListener(o, r), y(t));
161
- };
162
- e.addEventListener(o, r),
163
- setTimeout(() => {
164
- n || l(e);
165
- }, s);
166
- },
167
- A = (t, e, i, s) => {
168
- const n = t.length;
169
- let o = t.indexOf(e);
170
- return -1 === o
171
- ? !i && s
172
- ? t[n - 1]
173
- : t[0]
174
- : ((o += i ? 1 : -1),
175
- s && (o = (o + n) % n),
176
- t[Math.max(0, Math.min(o, n - 1))]);
177
- },
178
- E = /[^.]*(?=\..*)\.|.*/,
179
- C = /\..*/,
180
- T = /::\d+$/,
181
- k = {};
182
- let $ = 1;
183
- const S = { mouseenter: "mouseover", mouseleave: "mouseout" },
184
- L = new Set([
185
- "click",
186
- "dblclick",
187
- "mouseup",
188
- "mousedown",
189
- "contextmenu",
190
- "mousewheel",
191
- "DOMMouseScroll",
192
- "mouseover",
193
- "mouseout",
194
- "mousemove",
195
- "selectstart",
196
- "selectend",
197
- "keydown",
198
- "keypress",
199
- "keyup",
200
- "orientationchange",
201
- "touchstart",
202
- "touchmove",
203
- "touchend",
204
- "touchcancel",
205
- "pointerdown",
206
- "pointermove",
207
- "pointerup",
208
- "pointerleave",
209
- "pointercancel",
210
- "gesturestart",
211
- "gesturechange",
212
- "gestureend",
213
- "focus",
214
- "blur",
215
- "change",
216
- "reset",
217
- "select",
218
- "submit",
219
- "focusin",
220
- "focusout",
221
- "load",
222
- "unload",
223
- "beforeunload",
224
- "resize",
225
- "move",
226
- "DOMContentLoaded",
227
- "readystatechange",
228
- "error",
229
- "abort",
230
- "scroll",
231
- ]);
232
- function O(t, e) {
233
- return (e && `${e}::${$++}`) || t.uidEvent || $++;
234
- }
235
- function I(t) {
236
- const e = O(t);
237
- return (t.uidEvent = e), (k[e] = k[e] || {}), k[e];
238
- }
239
- function D(t, e, i = null) {
240
- return Object.values(t).find(
241
- (t) => t.callable === e && t.delegationSelector === i,
242
- );
243
- }
244
- function N(t, e, i) {
245
- const s = "string" == typeof e,
246
- n = s ? i : e || i;
247
- let o = j(t);
248
- return L.has(o) || (o = t), [s, n, o];
249
- }
250
- function P(t, e, i, s, n) {
251
- if ("string" != typeof e || !t) return;
252
- let [o, r, a] = N(e, i, s);
253
- if (e in S) {
254
- const t = (t) =>
255
- function (e) {
256
- if (
257
- !e.relatedTarget ||
258
- (e.relatedTarget !== e.delegateTarget &&
259
- !e.delegateTarget.contains(e.relatedTarget))
260
- )
261
- return t.call(this, e);
262
- };
263
- r = t(r);
264
- }
265
- const l = I(t),
266
- c = l[a] || (l[a] = {}),
267
- h = D(c, r, o ? i : null);
268
- if (h) return void (h.oneOff = h.oneOff && n);
269
- const d = O(r, e.replace(E, "")),
270
- u = o
271
- ? (function (t, e, i) {
272
- return function s(n) {
273
- const o = t.querySelectorAll(e);
274
- for (let { target: r } = n; r && r !== this; r = r.parentNode)
275
- for (const a of o)
276
- if (a === r)
277
- return (
278
- z(n, { delegateTarget: r }),
279
- s.oneOff && F.off(t, n.type, e, i),
280
- i.apply(r, [n])
281
- );
282
- };
283
- })(t, i, r)
284
- : (function (t, e) {
285
- return function i(s) {
286
- return (
287
- z(s, { delegateTarget: t }),
288
- i.oneOff && F.off(t, s.type, e),
289
- e.apply(t, [s])
290
- );
291
- };
292
- })(t, r);
293
- (u.delegationSelector = o ? i : null),
294
- (u.callable = r),
295
- (u.oneOff = n),
296
- (u.uidEvent = d),
297
- (c[d] = u),
298
- t.addEventListener(a, u, o);
299
- }
300
- function x(t, e, i, s, n) {
301
- const o = D(e[i], s, n);
302
- o && (t.removeEventListener(i, o, Boolean(n)), delete e[i][o.uidEvent]);
303
- }
304
- function M(t, e, i, s) {
305
- const n = e[i] || {};
306
- for (const [o, r] of Object.entries(n))
307
- o.includes(s) && x(t, e, i, r.callable, r.delegationSelector);
308
- }
309
- function j(t) {
310
- return (t = t.replace(C, "")), S[t] || t;
311
- }
312
- const F = {
313
- on(t, e, i, s) {
314
- P(t, e, i, s, !1);
315
- },
316
- one(t, e, i, s) {
317
- P(t, e, i, s, !0);
318
- },
319
- off(t, e, i, s) {
320
- if ("string" != typeof e || !t) return;
321
- const [n, o, r] = N(e, i, s),
322
- a = r !== e,
323
- l = I(t),
324
- c = l[r] || {},
325
- h = e.startsWith(".");
326
- if (void 0 === o) {
327
- if (h) for (const i of Object.keys(l)) M(t, l, i, e.slice(1));
328
- for (const [i, s] of Object.entries(c)) {
329
- const n = i.replace(T, "");
330
- (a && !e.includes(n)) || x(t, l, r, s.callable, s.delegationSelector);
331
- }
332
- } else {
333
- if (!Object.keys(c).length) return;
334
- x(t, l, r, o, n ? i : null);
335
- }
336
- },
337
- trigger(t, e, i) {
338
- if ("string" != typeof e || !t) return null;
339
- const s = m();
340
- let n = null,
341
- o = !0,
342
- r = !0,
343
- a = !1;
344
- e !== j(e) &&
345
- s &&
346
- ((n = s.Event(e, i)),
347
- s(t).trigger(n),
348
- (o = !n.isPropagationStopped()),
349
- (r = !n.isImmediatePropagationStopped()),
350
- (a = n.isDefaultPrevented()));
351
- const l = z(new Event(e, { bubbles: o, cancelable: !0 }), i);
352
- return (
353
- a && l.preventDefault(),
354
- r && t.dispatchEvent(l),
355
- l.defaultPrevented && n && n.preventDefault(),
356
- l
357
- );
358
- },
359
- };
360
- function z(t, e = {}) {
361
- for (const [i, s] of Object.entries(e))
362
- try {
363
- t[i] = s;
364
- } catch (e) {
365
- Object.defineProperty(t, i, { configurable: !0, get: () => s });
366
- }
367
- return t;
368
- }
369
- function H(t) {
370
- if ("true" === t) return !0;
371
- if ("false" === t) return !1;
372
- if (t === Number(t).toString()) return Number(t);
373
- if ("" === t || "null" === t) return null;
374
- if ("string" != typeof t) return t;
375
- try {
376
- return JSON.parse(decodeURIComponent(t));
377
- } catch (e) {
378
- return t;
379
- }
380
- }
381
- function B(t) {
382
- return t.replace(/[A-Z]/g, (t) => `-${t.toLowerCase()}`);
383
- }
384
- const q = {
385
- setDataAttribute(t, e, i) {
386
- t.setAttribute(`data-bs-${B(e)}`, i);
387
- },
388
- removeDataAttribute(t, e) {
389
- t.removeAttribute(`data-bs-${B(e)}`);
390
- },
391
- getDataAttributes(t) {
392
- if (!t) return {};
393
- const e = {},
394
- i = Object.keys(t.dataset).filter(
395
- (t) => t.startsWith("bs") && !t.startsWith("bsConfig"),
396
- );
397
- for (const s of i) {
398
- let i = s.replace(/^bs/, "");
399
- (i = i.charAt(0).toLowerCase() + i.slice(1)), (e[i] = H(t.dataset[s]));
400
- }
401
- return e;
402
- },
403
- getDataAttribute: (t, e) => H(t.getAttribute(`data-bs-${B(e)}`)),
404
- };
405
- class W {
406
- static get Default() {
407
- return {};
408
- }
409
- static get DefaultType() {
410
- return {};
411
- }
412
- static get NAME() {
413
- throw new Error(
414
- 'You have to implement the static method "NAME", for each component!',
415
- );
416
- }
417
- _getConfig(t) {
418
- return (
419
- (t = this._mergeConfigObj(t)),
420
- (t = this._configAfterMerge(t)),
421
- this._typeCheckConfig(t),
422
- t
423
- );
424
- }
425
- _configAfterMerge(t) {
426
- return t;
427
- }
428
- _mergeConfigObj(t, e) {
429
- const i = c(e) ? q.getDataAttribute(e, "config") : {};
430
- return {
431
- ...this.constructor.Default,
432
- ...("object" == typeof i ? i : {}),
433
- ...(c(e) ? q.getDataAttributes(e) : {}),
434
- ...("object" == typeof t ? t : {}),
435
- };
436
- }
437
- _typeCheckConfig(t, e = this.constructor.DefaultType) {
438
- for (const [i, s] of Object.entries(e)) {
439
- const e = t[i],
440
- n = c(e) ? "element" : a(e);
441
- if (!new RegExp(s).test(n))
442
- throw new TypeError(
443
- `${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${n}" but expected type "${s}".`,
444
- );
445
- }
446
- }
447
- }
448
- class R extends W {
449
- constructor(t, e) {
450
- super(),
451
- (t = h(t)) &&
452
- ((this._element = t),
453
- (this._config = this._getConfig(e)),
454
- n.set(this._element, this.constructor.DATA_KEY, this));
455
- }
456
- dispose() {
457
- n.remove(this._element, this.constructor.DATA_KEY),
458
- F.off(this._element, this.constructor.EVENT_KEY);
459
- for (const t of Object.getOwnPropertyNames(this)) this[t] = null;
460
- }
461
- _queueCallback(t, e, i = !0) {
462
- w(t, e, i);
463
- }
464
- _getConfig(t) {
465
- return (
466
- (t = this._mergeConfigObj(t, this._element)),
467
- (t = this._configAfterMerge(t)),
468
- this._typeCheckConfig(t),
469
- t
470
- );
471
- }
472
- static getInstance(t) {
473
- return n.get(h(t), this.DATA_KEY);
474
- }
475
- static getOrCreateInstance(t, e = {}) {
476
- return (
477
- this.getInstance(t) || new this(t, "object" == typeof e ? e : null)
478
- );
479
- }
480
- static get VERSION() {
481
- return "5.3.8";
482
- }
483
- static get DATA_KEY() {
484
- return `bs.${this.NAME}`;
485
- }
486
- static get EVENT_KEY() {
487
- return `.${this.DATA_KEY}`;
488
- }
489
- static eventName(t) {
490
- return `${t}${this.EVENT_KEY}`;
491
- }
492
- }
493
- const K = (t) => {
494
- let e = t.getAttribute("data-bs-target");
495
- if (!e || "#" === e) {
496
- let i = t.getAttribute("href");
497
- if (!i || (!i.includes("#") && !i.startsWith("."))) return null;
498
- i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`),
499
- (e = i && "#" !== i ? i.trim() : null);
500
- }
501
- return e
502
- ? e
503
- .split(",")
504
- .map((t) => r(t))
505
- .join(",")
506
- : null;
507
- },
508
- V = {
509
- find: (t, e = document.documentElement) =>
510
- [].concat(...Element.prototype.querySelectorAll.call(e, t)),
511
- findOne: (t, e = document.documentElement) =>
512
- Element.prototype.querySelector.call(e, t),
513
- children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)),
514
- parents(t, e) {
515
- const i = [];
516
- let s = t.parentNode.closest(e);
517
- for (; s; ) i.push(s), (s = s.parentNode.closest(e));
518
- return i;
519
- },
520
- prev(t, e) {
521
- let i = t.previousElementSibling;
522
- for (; i; ) {
523
- if (i.matches(e)) return [i];
524
- i = i.previousElementSibling;
525
- }
526
- return [];
527
- },
528
- next(t, e) {
529
- let i = t.nextElementSibling;
530
- for (; i; ) {
531
- if (i.matches(e)) return [i];
532
- i = i.nextElementSibling;
533
- }
534
- return [];
535
- },
536
- focusableChildren(t) {
537
- const e = [
538
- "a",
539
- "button",
540
- "input",
541
- "textarea",
542
- "select",
543
- "details",
544
- "[tabindex]",
545
- '[contenteditable="true"]',
546
- ]
547
- .map((t) => `${t}:not([tabindex^="-"])`)
548
- .join(",");
549
- return this.find(e, t).filter((t) => !u(t) && d(t));
550
- },
551
- getSelectorFromElement(t) {
552
- const e = K(t);
553
- return e && V.findOne(e) ? e : null;
554
- },
555
- getElementFromSelector(t) {
556
- const e = K(t);
557
- return e ? V.findOne(e) : null;
558
- },
559
- getMultipleElementsFromSelector(t) {
560
- const e = K(t);
561
- return e ? V.find(e) : [];
562
- },
563
- },
564
- Q = (t, e = "hide") => {
565
- const i = `click.dismiss${t.EVENT_KEY}`,
566
- s = t.NAME;
567
- F.on(document, i, `[data-bs-dismiss="${s}"]`, function (i) {
568
- if (
569
- (["A", "AREA"].includes(this.tagName) && i.preventDefault(), u(this))
570
- )
571
- return;
572
- const n = V.getElementFromSelector(this) || this.closest(`.${s}`);
573
- t.getOrCreateInstance(n)[e]();
574
- });
575
- },
576
- X = ".bs.alert",
577
- Y = `close${X}`,
578
- U = `closed${X}`;
579
- class G extends R {
580
- static get NAME() {
581
- return "alert";
582
- }
583
- close() {
584
- if (F.trigger(this._element, Y).defaultPrevented) return;
585
- this._element.classList.remove("show");
586
- const t = this._element.classList.contains("fade");
587
- this._queueCallback(() => this._destroyElement(), this._element, t);
588
- }
589
- _destroyElement() {
590
- this._element.remove(), F.trigger(this._element, U), this.dispose();
591
- }
592
- static jQueryInterface(t) {
593
- return this.each(function () {
594
- const e = G.getOrCreateInstance(this);
595
- if ("string" == typeof t) {
596
- if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
597
- throw new TypeError(`No method named "${t}"`);
598
- e[t](this);
599
- }
600
- });
601
- }
602
- }
603
- Q(G, "close"), v(G);
604
- const J = '[data-bs-toggle="button"]';
605
- class Z extends R {
606
- static get NAME() {
607
- return "button";
608
- }
609
- toggle() {
610
- this._element.setAttribute(
611
- "aria-pressed",
612
- this._element.classList.toggle("active"),
613
- );
614
- }
615
- static jQueryInterface(t) {
616
- return this.each(function () {
617
- const e = Z.getOrCreateInstance(this);
618
- "toggle" === t && e[t]();
619
- });
620
- }
621
- }
622
- F.on(document, "click.bs.button.data-api", J, (t) => {
623
- t.preventDefault();
624
- const e = t.target.closest(J);
625
- Z.getOrCreateInstance(e).toggle();
626
- }),
627
- v(Z);
628
- const tt = ".bs.swipe",
629
- et = `touchstart${tt}`,
630
- it = `touchmove${tt}`,
631
- st = `touchend${tt}`,
632
- nt = `pointerdown${tt}`,
633
- ot = `pointerup${tt}`,
634
- rt = { endCallback: null, leftCallback: null, rightCallback: null },
635
- at = {
636
- endCallback: "(function|null)",
637
- leftCallback: "(function|null)",
638
- rightCallback: "(function|null)",
639
- };
640
- class lt extends W {
641
- constructor(t, e) {
642
- super(),
643
- (this._element = t),
644
- t &&
645
- lt.isSupported() &&
646
- ((this._config = this._getConfig(e)),
647
- (this._deltaX = 0),
648
- (this._supportPointerEvents = Boolean(window.PointerEvent)),
649
- this._initEvents());
650
- }
651
- static get Default() {
652
- return rt;
653
- }
654
- static get DefaultType() {
655
- return at;
656
- }
657
- static get NAME() {
658
- return "swipe";
659
- }
660
- dispose() {
661
- F.off(this._element, tt);
662
- }
663
- _start(t) {
664
- this._supportPointerEvents
665
- ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX)
666
- : (this._deltaX = t.touches[0].clientX);
667
- }
668
- _end(t) {
669
- this._eventIsPointerPenTouch(t) &&
670
- (this._deltaX = t.clientX - this._deltaX),
671
- this._handleSwipe(),
672
- y(this._config.endCallback);
673
- }
674
- _move(t) {
675
- this._deltaX =
676
- t.touches && t.touches.length > 1
677
- ? 0
678
- : t.touches[0].clientX - this._deltaX;
679
- }
680
- _handleSwipe() {
681
- const t = Math.abs(this._deltaX);
682
- if (t <= 40) return;
683
- const e = t / this._deltaX;
684
- (this._deltaX = 0),
685
- e && y(e > 0 ? this._config.rightCallback : this._config.leftCallback);
686
- }
687
- _initEvents() {
688
- this._supportPointerEvents
689
- ? (F.on(this._element, nt, (t) => this._start(t)),
690
- F.on(this._element, ot, (t) => this._end(t)),
691
- this._element.classList.add("pointer-event"))
692
- : (F.on(this._element, et, (t) => this._start(t)),
693
- F.on(this._element, it, (t) => this._move(t)),
694
- F.on(this._element, st, (t) => this._end(t)));
695
- }
696
- _eventIsPointerPenTouch(t) {
697
- return (
698
- this._supportPointerEvents &&
699
- ("pen" === t.pointerType || "touch" === t.pointerType)
700
- );
701
- }
702
- static isSupported() {
703
- return (
704
- "ontouchstart" in document.documentElement ||
705
- navigator.maxTouchPoints > 0
706
- );
707
- }
708
- }
709
- const ct = ".bs.carousel",
710
- ht = ".data-api",
711
- dt = "ArrowLeft",
712
- ut = "ArrowRight",
713
- _t = "next",
714
- gt = "prev",
715
- ft = "left",
716
- mt = "right",
717
- pt = `slide${ct}`,
718
- bt = `slid${ct}`,
719
- vt = `keydown${ct}`,
720
- yt = `mouseenter${ct}`,
721
- wt = `mouseleave${ct}`,
722
- At = `dragstart${ct}`,
723
- Et = `load${ct}${ht}`,
724
- Ct = `click${ct}${ht}`,
725
- Tt = "carousel",
726
- kt = "active",
727
- $t = ".active",
728
- St = ".carousel-item",
729
- Lt = $t + St,
730
- Ot = { [dt]: mt, [ut]: ft },
731
- It = {
732
- interval: 5e3,
733
- keyboard: !0,
734
- pause: "hover",
735
- ride: !1,
736
- touch: !0,
737
- wrap: !0,
738
- },
739
- Dt = {
740
- interval: "(number|boolean)",
741
- keyboard: "boolean",
742
- pause: "(string|boolean)",
743
- ride: "(boolean|string)",
744
- touch: "boolean",
745
- wrap: "boolean",
746
- };
747
- class Nt extends R {
748
- constructor(t, e) {
749
- super(t, e),
750
- (this._interval = null),
751
- (this._activeElement = null),
752
- (this._isSliding = !1),
753
- (this.touchTimeout = null),
754
- (this._swipeHelper = null),
755
- (this._indicatorsElement = V.findOne(
756
- ".carousel-indicators",
757
- this._element,
758
- )),
759
- this._addEventListeners(),
760
- this._config.ride === Tt && this.cycle();
761
- }
762
- static get Default() {
763
- return It;
764
- }
765
- static get DefaultType() {
766
- return Dt;
767
- }
768
- static get NAME() {
769
- return "carousel";
770
- }
771
- next() {
772
- this._slide(_t);
773
- }
774
- nextWhenVisible() {
775
- !document.hidden && d(this._element) && this.next();
776
- }
777
- prev() {
778
- this._slide(gt);
779
- }
780
- pause() {
781
- this._isSliding && l(this._element), this._clearInterval();
782
- }
783
- cycle() {
784
- this._clearInterval(),
785
- this._updateInterval(),
786
- (this._interval = setInterval(
787
- () => this.nextWhenVisible(),
788
- this._config.interval,
789
- ));
790
- }
791
- _maybeEnableCycle() {
792
- this._config.ride &&
793
- (this._isSliding
794
- ? F.one(this._element, bt, () => this.cycle())
795
- : this.cycle());
796
- }
797
- to(t) {
798
- const e = this._getItems();
799
- if (t > e.length - 1 || t < 0) return;
800
- if (this._isSliding)
801
- return void F.one(this._element, bt, () => this.to(t));
802
- const i = this._getItemIndex(this._getActive());
803
- if (i === t) return;
804
- const s = t > i ? _t : gt;
805
- this._slide(s, e[t]);
806
- }
807
- dispose() {
808
- this._swipeHelper && this._swipeHelper.dispose(), super.dispose();
809
- }
810
- _configAfterMerge(t) {
811
- return (t.defaultInterval = t.interval), t;
812
- }
813
- _addEventListeners() {
814
- this._config.keyboard && F.on(this._element, vt, (t) => this._keydown(t)),
815
- "hover" === this._config.pause &&
816
- (F.on(this._element, yt, () => this.pause()),
817
- F.on(this._element, wt, () => this._maybeEnableCycle())),
818
- this._config.touch &&
819
- lt.isSupported() &&
820
- this._addTouchEventListeners();
821
- }
822
- _addTouchEventListeners() {
823
- for (const t of V.find(".carousel-item img", this._element))
824
- F.on(t, At, (t) => t.preventDefault());
825
- const t = {
826
- leftCallback: () => this._slide(this._directionToOrder(ft)),
827
- rightCallback: () => this._slide(this._directionToOrder(mt)),
828
- endCallback: () => {
829
- "hover" === this._config.pause &&
830
- (this.pause(),
831
- this.touchTimeout && clearTimeout(this.touchTimeout),
832
- (this.touchTimeout = setTimeout(
833
- () => this._maybeEnableCycle(),
834
- 500 + this._config.interval,
835
- )));
836
- },
837
- };
838
- this._swipeHelper = new lt(this._element, t);
839
- }
840
- _keydown(t) {
841
- if (/input|textarea/i.test(t.target.tagName)) return;
842
- const e = Ot[t.key];
843
- e && (t.preventDefault(), this._slide(this._directionToOrder(e)));
844
- }
845
- _getItemIndex(t) {
846
- return this._getItems().indexOf(t);
847
- }
848
- _setActiveIndicatorElement(t) {
849
- if (!this._indicatorsElement) return;
850
- const e = V.findOne($t, this._indicatorsElement);
851
- e.classList.remove(kt), e.removeAttribute("aria-current");
852
- const i = V.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement);
853
- i && (i.classList.add(kt), i.setAttribute("aria-current", "true"));
854
- }
855
- _updateInterval() {
856
- const t = this._activeElement || this._getActive();
857
- if (!t) return;
858
- const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10);
859
- this._config.interval = e || this._config.defaultInterval;
860
- }
861
- _slide(t, e = null) {
862
- if (this._isSliding) return;
863
- const i = this._getActive(),
864
- s = t === _t,
865
- n = e || A(this._getItems(), i, s, this._config.wrap);
866
- if (n === i) return;
867
- const o = this._getItemIndex(n),
868
- r = (e) =>
869
- F.trigger(this._element, e, {
870
- relatedTarget: n,
871
- direction: this._orderToDirection(t),
872
- from: this._getItemIndex(i),
873
- to: o,
874
- });
875
- if (r(pt).defaultPrevented) return;
876
- if (!i || !n) return;
877
- const a = Boolean(this._interval);
878
- this.pause(),
879
- (this._isSliding = !0),
880
- this._setActiveIndicatorElement(o),
881
- (this._activeElement = n);
882
- const l = s ? "carousel-item-start" : "carousel-item-end",
883
- c = s ? "carousel-item-next" : "carousel-item-prev";
884
- n.classList.add(c),
885
- f(n),
886
- i.classList.add(l),
887
- n.classList.add(l),
888
- this._queueCallback(
889
- () => {
890
- n.classList.remove(l, c),
891
- n.classList.add(kt),
892
- i.classList.remove(kt, c, l),
893
- (this._isSliding = !1),
894
- r(bt);
895
- },
896
- i,
897
- this._isAnimated(),
898
- ),
899
- a && this.cycle();
900
- }
901
- _isAnimated() {
902
- return this._element.classList.contains("slide");
903
- }
904
- _getActive() {
905
- return V.findOne(Lt, this._element);
906
- }
907
- _getItems() {
908
- return V.find(St, this._element);
909
- }
910
- _clearInterval() {
911
- this._interval &&
912
- (clearInterval(this._interval), (this._interval = null));
913
- }
914
- _directionToOrder(t) {
915
- return b() ? (t === ft ? gt : _t) : t === ft ? _t : gt;
916
- }
917
- _orderToDirection(t) {
918
- return b() ? (t === gt ? ft : mt) : t === gt ? mt : ft;
919
- }
920
- static jQueryInterface(t) {
921
- return this.each(function () {
922
- const e = Nt.getOrCreateInstance(this, t);
923
- if ("number" != typeof t) {
924
- if ("string" == typeof t) {
925
- if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
926
- throw new TypeError(`No method named "${t}"`);
927
- e[t]();
928
- }
929
- } else e.to(t);
930
- });
931
- }
932
- }
933
- F.on(document, Ct, "[data-bs-slide], [data-bs-slide-to]", function (t) {
934
- const e = V.getElementFromSelector(this);
935
- if (!e || !e.classList.contains(Tt)) return;
936
- t.preventDefault();
937
- const i = Nt.getOrCreateInstance(e),
938
- s = this.getAttribute("data-bs-slide-to");
939
- return s
940
- ? (i.to(s), void i._maybeEnableCycle())
941
- : "next" === q.getDataAttribute(this, "slide")
942
- ? (i.next(), void i._maybeEnableCycle())
943
- : (i.prev(), void i._maybeEnableCycle());
944
- }),
945
- F.on(window, Et, () => {
946
- const t = V.find('[data-bs-ride="carousel"]');
947
- for (const e of t) Nt.getOrCreateInstance(e);
948
- }),
949
- v(Nt);
950
- const Pt = ".bs.collapse",
951
- xt = `show${Pt}`,
952
- Mt = `shown${Pt}`,
953
- jt = `hide${Pt}`,
954
- Ft = `hidden${Pt}`,
955
- zt = `click${Pt}.data-api`,
956
- Ht = "show",
957
- Bt = "collapse",
958
- qt = "collapsing",
959
- Wt = `:scope .${Bt} .${Bt}`,
960
- Rt = '[data-bs-toggle="collapse"]',
961
- Kt = { parent: null, toggle: !0 },
962
- Vt = { parent: "(null|element)", toggle: "boolean" };
963
- class Qt extends R {
964
- constructor(t, e) {
965
- super(t, e), (this._isTransitioning = !1), (this._triggerArray = []);
966
- const i = V.find(Rt);
967
- for (const t of i) {
968
- const e = V.getSelectorFromElement(t),
969
- i = V.find(e).filter((t) => t === this._element);
970
- null !== e && i.length && this._triggerArray.push(t);
971
- }
972
- this._initializeChildren(),
973
- this._config.parent ||
974
- this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()),
975
- this._config.toggle && this.toggle();
976
- }
977
- static get Default() {
978
- return Kt;
979
- }
980
- static get DefaultType() {
981
- return Vt;
982
- }
983
- static get NAME() {
984
- return "collapse";
985
- }
986
- toggle() {
987
- this._isShown() ? this.hide() : this.show();
988
- }
989
- show() {
990
- if (this._isTransitioning || this._isShown()) return;
991
- let t = [];
992
- if (
993
- (this._config.parent &&
994
- (t = this._getFirstLevelChildren(
995
- ".collapse.show, .collapse.collapsing",
996
- )
997
- .filter((t) => t !== this._element)
998
- .map((t) => Qt.getOrCreateInstance(t, { toggle: !1 }))),
999
- t.length && t[0]._isTransitioning)
1000
- )
1001
- return;
1002
- if (F.trigger(this._element, xt).defaultPrevented) return;
1003
- for (const e of t) e.hide();
1004
- const e = this._getDimension();
1005
- this._element.classList.remove(Bt),
1006
- this._element.classList.add(qt),
1007
- (this._element.style[e] = 0),
1008
- this._addAriaAndCollapsedClass(this._triggerArray, !0),
1009
- (this._isTransitioning = !0);
1010
- const i = `scroll${e[0].toUpperCase() + e.slice(1)}`;
1011
- this._queueCallback(
1012
- () => {
1013
- (this._isTransitioning = !1),
1014
- this._element.classList.remove(qt),
1015
- this._element.classList.add(Bt, Ht),
1016
- (this._element.style[e] = ""),
1017
- F.trigger(this._element, Mt);
1018
- },
1019
- this._element,
1020
- !0,
1021
- ),
1022
- (this._element.style[e] = `${this._element[i]}px`);
1023
- }
1024
- hide() {
1025
- if (this._isTransitioning || !this._isShown()) return;
1026
- if (F.trigger(this._element, jt).defaultPrevented) return;
1027
- const t = this._getDimension();
1028
- (this._element.style[t] =
1029
- `${this._element.getBoundingClientRect()[t]}px`),
1030
- f(this._element),
1031
- this._element.classList.add(qt),
1032
- this._element.classList.remove(Bt, Ht);
1033
- for (const t of this._triggerArray) {
1034
- const e = V.getElementFromSelector(t);
1035
- e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1);
1036
- }
1037
- (this._isTransitioning = !0),
1038
- (this._element.style[t] = ""),
1039
- this._queueCallback(
1040
- () => {
1041
- (this._isTransitioning = !1),
1042
- this._element.classList.remove(qt),
1043
- this._element.classList.add(Bt),
1044
- F.trigger(this._element, Ft);
1045
- },
1046
- this._element,
1047
- !0,
1048
- );
1049
- }
1050
- _isShown(t = this._element) {
1051
- return t.classList.contains(Ht);
1052
- }
1053
- _configAfterMerge(t) {
1054
- return (t.toggle = Boolean(t.toggle)), (t.parent = h(t.parent)), t;
1055
- }
1056
- _getDimension() {
1057
- return this._element.classList.contains("collapse-horizontal")
1058
- ? "width"
1059
- : "height";
1060
- }
1061
- _initializeChildren() {
1062
- if (!this._config.parent) return;
1063
- const t = this._getFirstLevelChildren(Rt);
1064
- for (const e of t) {
1065
- const t = V.getElementFromSelector(e);
1066
- t && this._addAriaAndCollapsedClass([e], this._isShown(t));
1067
- }
1068
- }
1069
- _getFirstLevelChildren(t) {
1070
- const e = V.find(Wt, this._config.parent);
1071
- return V.find(t, this._config.parent).filter((t) => !e.includes(t));
1072
- }
1073
- _addAriaAndCollapsedClass(t, e) {
1074
- if (t.length)
1075
- for (const i of t)
1076
- i.classList.toggle("collapsed", !e),
1077
- i.setAttribute("aria-expanded", e);
1078
- }
1079
- static jQueryInterface(t) {
1080
- const e = {};
1081
- return (
1082
- "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1),
1083
- this.each(function () {
1084
- const i = Qt.getOrCreateInstance(this, e);
1085
- if ("string" == typeof t) {
1086
- if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
1087
- i[t]();
1088
- }
1089
- })
1090
- );
1091
- }
1092
- }
1093
- F.on(document, zt, Rt, function (t) {
1094
- ("A" === t.target.tagName ||
1095
- (t.delegateTarget && "A" === t.delegateTarget.tagName)) &&
1096
- t.preventDefault();
1097
- for (const t of V.getMultipleElementsFromSelector(this))
1098
- Qt.getOrCreateInstance(t, { toggle: !1 }).toggle();
1099
- }),
1100
- v(Qt);
1101
- const Xt = "dropdown",
1102
- Yt = ".bs.dropdown",
1103
- Ut = ".data-api",
1104
- Gt = "ArrowUp",
1105
- Jt = "ArrowDown",
1106
- Zt = `hide${Yt}`,
1107
- te = `hidden${Yt}`,
1108
- ee = `show${Yt}`,
1109
- ie = `shown${Yt}`,
1110
- se = `click${Yt}${Ut}`,
1111
- ne = `keydown${Yt}${Ut}`,
1112
- oe = `keyup${Yt}${Ut}`,
1113
- re = "show",
1114
- ae = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
1115
- le = `${ae}.${re}`,
1116
- ce = ".dropdown-menu",
1117
- he = b() ? "top-end" : "top-start",
1118
- de = b() ? "top-start" : "top-end",
1119
- ue = b() ? "bottom-end" : "bottom-start",
1120
- _e = b() ? "bottom-start" : "bottom-end",
1121
- ge = b() ? "left-start" : "right-start",
1122
- fe = b() ? "right-start" : "left-start",
1123
- me = {
1124
- autoClose: !0,
1125
- boundary: "clippingParents",
1126
- display: "dynamic",
1127
- offset: [0, 2],
1128
- popperConfig: null,
1129
- reference: "toggle",
1130
- },
1131
- pe = {
1132
- autoClose: "(boolean|string)",
1133
- boundary: "(string|element)",
1134
- display: "string",
1135
- offset: "(array|string|function)",
1136
- popperConfig: "(null|object|function)",
1137
- reference: "(string|element|object)",
1138
- };
1139
- class be extends R {
1140
- constructor(t, e) {
1141
- super(t, e),
1142
- (this._popper = null),
1143
- (this._parent = this._element.parentNode),
1144
- (this._menu =
1145
- V.next(this._element, ce)[0] ||
1146
- V.prev(this._element, ce)[0] ||
1147
- V.findOne(ce, this._parent)),
1148
- (this._inNavbar = this._detectNavbar());
1149
- }
1150
- static get Default() {
1151
- return me;
1152
- }
1153
- static get DefaultType() {
1154
- return pe;
1155
- }
1156
- static get NAME() {
1157
- return Xt;
1158
- }
1159
- toggle() {
1160
- return this._isShown() ? this.hide() : this.show();
1161
- }
1162
- show() {
1163
- if (u(this._element) || this._isShown()) return;
1164
- const t = { relatedTarget: this._element };
1165
- if (!F.trigger(this._element, ee, t).defaultPrevented) {
1166
- if (
1167
- (this._createPopper(),
1168
- "ontouchstart" in document.documentElement &&
1169
- !this._parent.closest(".navbar-nav"))
1170
- )
1171
- for (const t of [].concat(...document.body.children))
1172
- F.on(t, "mouseover", g);
1173
- this._element.focus(),
1174
- this._element.setAttribute("aria-expanded", !0),
1175
- this._menu.classList.add(re),
1176
- this._element.classList.add(re),
1177
- F.trigger(this._element, ie, t);
1178
- }
1179
- }
1180
- hide() {
1181
- if (u(this._element) || !this._isShown()) return;
1182
- const t = { relatedTarget: this._element };
1183
- this._completeHide(t);
1184
- }
1185
- dispose() {
1186
- this._popper && this._popper.destroy(), super.dispose();
1187
- }
1188
- update() {
1189
- (this._inNavbar = this._detectNavbar()),
1190
- this._popper && this._popper.update();
1191
- }
1192
- _completeHide(t) {
1193
- if (!F.trigger(this._element, Zt, t).defaultPrevented) {
1194
- if ("ontouchstart" in document.documentElement)
1195
- for (const t of [].concat(...document.body.children))
1196
- F.off(t, "mouseover", g);
1197
- this._popper && this._popper.destroy(),
1198
- this._menu.classList.remove(re),
1199
- this._element.classList.remove(re),
1200
- this._element.setAttribute("aria-expanded", "false"),
1201
- q.removeDataAttribute(this._menu, "popper"),
1202
- F.trigger(this._element, te, t);
1203
- }
1204
- }
1205
- _getConfig(t) {
1206
- if (
1207
- "object" == typeof (t = super._getConfig(t)).reference &&
1208
- !c(t.reference) &&
1209
- "function" != typeof t.reference.getBoundingClientRect
1210
- )
1211
- throw new TypeError(
1212
- `${Xt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`,
1213
- );
1214
- return t;
1215
- }
1216
- _createPopper() {
1217
- if (void 0 === i)
1218
- throw new TypeError(
1219
- "Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)",
1220
- );
1221
- let t = this._element;
1222
- "parent" === this._config.reference
1223
- ? (t = this._parent)
1224
- : c(this._config.reference)
1225
- ? (t = h(this._config.reference))
1226
- : "object" == typeof this._config.reference &&
1227
- (t = this._config.reference);
1228
- const e = this._getPopperConfig();
1229
- this._popper = i.createPopper(t, this._menu, e);
1230
- }
1231
- _isShown() {
1232
- return this._menu.classList.contains(re);
1233
- }
1234
- _getPlacement() {
1235
- const t = this._parent;
1236
- if (t.classList.contains("dropend")) return ge;
1237
- if (t.classList.contains("dropstart")) return fe;
1238
- if (t.classList.contains("dropup-center")) return "top";
1239
- if (t.classList.contains("dropdown-center")) return "bottom";
1240
- const e =
1241
- "end" ===
1242
- getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
1243
- return t.classList.contains("dropup") ? (e ? de : he) : e ? _e : ue;
1244
- }
1245
- _detectNavbar() {
1246
- return null !== this._element.closest(".navbar");
1247
- }
1248
- _getOffset() {
1249
- const { offset: t } = this._config;
1250
- return "string" == typeof t
1251
- ? t.split(",").map((t) => Number.parseInt(t, 10))
1252
- : "function" == typeof t
1253
- ? (e) => t(e, this._element)
1254
- : t;
1255
- }
1256
- _getPopperConfig() {
1257
- const t = {
1258
- placement: this._getPlacement(),
1259
- modifiers: [
1260
- {
1261
- name: "preventOverflow",
1262
- options: { boundary: this._config.boundary },
1263
- },
1264
- { name: "offset", options: { offset: this._getOffset() } },
1265
- ],
1266
- };
1267
- return (
1268
- (this._inNavbar || "static" === this._config.display) &&
1269
- (q.setDataAttribute(this._menu, "popper", "static"),
1270
- (t.modifiers = [{ name: "applyStyles", enabled: !1 }])),
1271
- { ...t, ...y(this._config.popperConfig, [void 0, t]) }
1272
- );
1273
- }
1274
- _selectMenuItem({ key: t, target: e }) {
1275
- const i = V.find(
1276
- ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
1277
- this._menu,
1278
- ).filter((t) => d(t));
1279
- i.length && A(i, e, t === Jt, !i.includes(e)).focus();
1280
- }
1281
- static jQueryInterface(t) {
1282
- return this.each(function () {
1283
- const e = be.getOrCreateInstance(this, t);
1284
- if ("string" == typeof t) {
1285
- if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
1286
- e[t]();
1287
- }
1288
- });
1289
- }
1290
- static clearMenus(t) {
1291
- if (2 === t.button || ("keyup" === t.type && "Tab" !== t.key)) return;
1292
- const e = V.find(le);
1293
- for (const i of e) {
1294
- const e = be.getInstance(i);
1295
- if (!e || !1 === e._config.autoClose) continue;
1296
- const s = t.composedPath(),
1297
- n = s.includes(e._menu);
1298
- if (
1299
- s.includes(e._element) ||
1300
- ("inside" === e._config.autoClose && !n) ||
1301
- ("outside" === e._config.autoClose && n)
1302
- )
1303
- continue;
1304
- if (
1305
- e._menu.contains(t.target) &&
1306
- (("keyup" === t.type && "Tab" === t.key) ||
1307
- /input|select|option|textarea|form/i.test(t.target.tagName))
1308
- )
1309
- continue;
1310
- const o = { relatedTarget: e._element };
1311
- "click" === t.type && (o.clickEvent = t), e._completeHide(o);
1312
- }
1313
- }
1314
- static dataApiKeydownHandler(t) {
1315
- const e = /input|textarea/i.test(t.target.tagName),
1316
- i = "Escape" === t.key,
1317
- s = [Gt, Jt].includes(t.key);
1318
- if (!s && !i) return;
1319
- if (e && !i) return;
1320
- t.preventDefault();
1321
- const n = this.matches(ae)
1322
- ? this
1323
- : V.prev(this, ae)[0] ||
1324
- V.next(this, ae)[0] ||
1325
- V.findOne(ae, t.delegateTarget.parentNode),
1326
- o = be.getOrCreateInstance(n);
1327
- if (s) return t.stopPropagation(), o.show(), void o._selectMenuItem(t);
1328
- o._isShown() && (t.stopPropagation(), o.hide(), n.focus());
1329
- }
1330
- }
1331
- F.on(document, ne, ae, be.dataApiKeydownHandler),
1332
- F.on(document, ne, ce, be.dataApiKeydownHandler),
1333
- F.on(document, se, be.clearMenus),
1334
- F.on(document, oe, be.clearMenus),
1335
- F.on(document, se, ae, function (t) {
1336
- t.preventDefault(), be.getOrCreateInstance(this).toggle();
1337
- }),
1338
- v(be);
1339
- const ve = "backdrop",
1340
- ye = "show",
1341
- we = `mousedown.bs.${ve}`,
1342
- Ae = {
1343
- className: "modal-backdrop",
1344
- clickCallback: null,
1345
- isAnimated: !1,
1346
- isVisible: !0,
1347
- rootElement: "body",
1348
- },
1349
- Ee = {
1350
- className: "string",
1351
- clickCallback: "(function|null)",
1352
- isAnimated: "boolean",
1353
- isVisible: "boolean",
1354
- rootElement: "(element|string)",
1355
- };
1356
- class Ce extends W {
1357
- constructor(t) {
1358
- super(),
1359
- (this._config = this._getConfig(t)),
1360
- (this._isAppended = !1),
1361
- (this._element = null);
1362
- }
1363
- static get Default() {
1364
- return Ae;
1365
- }
1366
- static get DefaultType() {
1367
- return Ee;
1368
- }
1369
- static get NAME() {
1370
- return ve;
1371
- }
1372
- show(t) {
1373
- if (!this._config.isVisible) return void y(t);
1374
- this._append();
1375
- const e = this._getElement();
1376
- this._config.isAnimated && f(e),
1377
- e.classList.add(ye),
1378
- this._emulateAnimation(() => {
1379
- y(t);
1380
- });
1381
- }
1382
- hide(t) {
1383
- this._config.isVisible
1384
- ? (this._getElement().classList.remove(ye),
1385
- this._emulateAnimation(() => {
1386
- this.dispose(), y(t);
1387
- }))
1388
- : y(t);
1389
- }
1390
- dispose() {
1391
- this._isAppended &&
1392
- (F.off(this._element, we),
1393
- this._element.remove(),
1394
- (this._isAppended = !1));
1395
- }
1396
- _getElement() {
1397
- if (!this._element) {
1398
- const t = document.createElement("div");
1399
- (t.className = this._config.className),
1400
- this._config.isAnimated && t.classList.add("fade"),
1401
- (this._element = t);
1402
- }
1403
- return this._element;
1404
- }
1405
- _configAfterMerge(t) {
1406
- return (t.rootElement = h(t.rootElement)), t;
1407
- }
1408
- _append() {
1409
- if (this._isAppended) return;
1410
- const t = this._getElement();
1411
- this._config.rootElement.append(t),
1412
- F.on(t, we, () => {
1413
- y(this._config.clickCallback);
1414
- }),
1415
- (this._isAppended = !0);
1416
- }
1417
- _emulateAnimation(t) {
1418
- w(t, this._getElement(), this._config.isAnimated);
1419
- }
1420
- }
1421
- const Te = ".bs.focustrap",
1422
- ke = `focusin${Te}`,
1423
- $e = `keydown.tab${Te}`,
1424
- Se = "backward",
1425
- Le = { autofocus: !0, trapElement: null },
1426
- Oe = { autofocus: "boolean", trapElement: "element" };
1427
- class Ie extends W {
1428
- constructor(t) {
1429
- super(),
1430
- (this._config = this._getConfig(t)),
1431
- (this._isActive = !1),
1432
- (this._lastTabNavDirection = null);
1433
- }
1434
- static get Default() {
1435
- return Le;
1436
- }
1437
- static get DefaultType() {
1438
- return Oe;
1439
- }
1440
- static get NAME() {
1441
- return "focustrap";
1442
- }
1443
- activate() {
1444
- this._isActive ||
1445
- (this._config.autofocus && this._config.trapElement.focus(),
1446
- F.off(document, Te),
1447
- F.on(document, ke, (t) => this._handleFocusin(t)),
1448
- F.on(document, $e, (t) => this._handleKeydown(t)),
1449
- (this._isActive = !0));
1450
- }
1451
- deactivate() {
1452
- this._isActive && ((this._isActive = !1), F.off(document, Te));
1453
- }
1454
- _handleFocusin(t) {
1455
- const { trapElement: e } = this._config;
1456
- if (t.target === document || t.target === e || e.contains(t.target))
1457
- return;
1458
- const i = V.focusableChildren(e);
1459
- 0 === i.length
1460
- ? e.focus()
1461
- : this._lastTabNavDirection === Se
1462
- ? i[i.length - 1].focus()
1463
- : i[0].focus();
1464
- }
1465
- _handleKeydown(t) {
1466
- "Tab" === t.key &&
1467
- (this._lastTabNavDirection = t.shiftKey ? Se : "forward");
1468
- }
1469
- }
1470
- const De = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
1471
- Ne = ".sticky-top",
1472
- Pe = "padding-right",
1473
- xe = "margin-right";
1474
- class Me {
1475
- constructor() {
1476
- this._element = document.body;
1477
- }
1478
- getWidth() {
1479
- const t = document.documentElement.clientWidth;
1480
- return Math.abs(window.innerWidth - t);
1481
- }
1482
- hide() {
1483
- const t = this.getWidth();
1484
- this._disableOverFlow(),
1485
- this._setElementAttributes(this._element, Pe, (e) => e + t),
1486
- this._setElementAttributes(De, Pe, (e) => e + t),
1487
- this._setElementAttributes(Ne, xe, (e) => e - t);
1488
- }
1489
- reset() {
1490
- this._resetElementAttributes(this._element, "overflow"),
1491
- this._resetElementAttributes(this._element, Pe),
1492
- this._resetElementAttributes(De, Pe),
1493
- this._resetElementAttributes(Ne, xe);
1494
- }
1495
- isOverflowing() {
1496
- return this.getWidth() > 0;
1497
- }
1498
- _disableOverFlow() {
1499
- this._saveInitialAttribute(this._element, "overflow"),
1500
- (this._element.style.overflow = "hidden");
1501
- }
1502
- _setElementAttributes(t, e, i) {
1503
- const s = this.getWidth();
1504
- this._applyManipulationCallback(t, (t) => {
1505
- if (t !== this._element && window.innerWidth > t.clientWidth + s)
1506
- return;
1507
- this._saveInitialAttribute(t, e);
1508
- const n = window.getComputedStyle(t).getPropertyValue(e);
1509
- t.style.setProperty(e, `${i(Number.parseFloat(n))}px`);
1510
- });
1511
- }
1512
- _saveInitialAttribute(t, e) {
1513
- const i = t.style.getPropertyValue(e);
1514
- i && q.setDataAttribute(t, e, i);
1515
- }
1516
- _resetElementAttributes(t, e) {
1517
- this._applyManipulationCallback(t, (t) => {
1518
- const i = q.getDataAttribute(t, e);
1519
- null !== i
1520
- ? (q.removeDataAttribute(t, e), t.style.setProperty(e, i))
1521
- : t.style.removeProperty(e);
1522
- });
1523
- }
1524
- _applyManipulationCallback(t, e) {
1525
- if (c(t)) e(t);
1526
- else for (const i of V.find(t, this._element)) e(i);
1527
- }
1528
- }
1529
- const je = ".bs.modal",
1530
- Fe = `hide${je}`,
1531
- ze = `hidePrevented${je}`,
1532
- He = `hidden${je}`,
1533
- Be = `show${je}`,
1534
- qe = `shown${je}`,
1535
- We = `resize${je}`,
1536
- Re = `click.dismiss${je}`,
1537
- Ke = `mousedown.dismiss${je}`,
1538
- Ve = `keydown.dismiss${je}`,
1539
- Qe = `click${je}.data-api`,
1540
- Xe = "modal-open",
1541
- Ye = "show",
1542
- Ue = "modal-static",
1543
- Ge = { backdrop: !0, focus: !0, keyboard: !0 },
1544
- Je = {
1545
- backdrop: "(boolean|string)",
1546
- focus: "boolean",
1547
- keyboard: "boolean",
1548
- };
1549
- class Ze extends R {
1550
- constructor(t, e) {
1551
- super(t, e),
1552
- (this._dialog = V.findOne(".modal-dialog", this._element)),
1553
- (this._backdrop = this._initializeBackDrop()),
1554
- (this._focustrap = this._initializeFocusTrap()),
1555
- (this._isShown = !1),
1556
- (this._isTransitioning = !1),
1557
- (this._scrollBar = new Me()),
1558
- this._addEventListeners();
1559
- }
1560
- static get Default() {
1561
- return Ge;
1562
- }
1563
- static get DefaultType() {
1564
- return Je;
1565
- }
1566
- static get NAME() {
1567
- return "modal";
1568
- }
1569
- toggle(t) {
1570
- return this._isShown ? this.hide() : this.show(t);
1571
- }
1572
- show(t) {
1573
- this._isShown ||
1574
- this._isTransitioning ||
1575
- F.trigger(this._element, Be, { relatedTarget: t }).defaultPrevented ||
1576
- ((this._isShown = !0),
1577
- (this._isTransitioning = !0),
1578
- this._scrollBar.hide(),
1579
- document.body.classList.add(Xe),
1580
- this._adjustDialog(),
1581
- this._backdrop.show(() => this._showElement(t)));
1582
- }
1583
- hide() {
1584
- this._isShown &&
1585
- !this._isTransitioning &&
1586
- (F.trigger(this._element, Fe).defaultPrevented ||
1587
- ((this._isShown = !1),
1588
- (this._isTransitioning = !0),
1589
- this._focustrap.deactivate(),
1590
- this._element.classList.remove(Ye),
1591
- this._queueCallback(
1592
- () => this._hideModal(),
1593
- this._element,
1594
- this._isAnimated(),
1595
- )));
1596
- }
1597
- dispose() {
1598
- F.off(window, je),
1599
- F.off(this._dialog, je),
1600
- this._backdrop.dispose(),
1601
- this._focustrap.deactivate(),
1602
- super.dispose();
1603
- }
1604
- handleUpdate() {
1605
- this._adjustDialog();
1606
- }
1607
- _initializeBackDrop() {
1608
- return new Ce({
1609
- isVisible: Boolean(this._config.backdrop),
1610
- isAnimated: this._isAnimated(),
1611
- });
1612
- }
1613
- _initializeFocusTrap() {
1614
- return new Ie({ trapElement: this._element });
1615
- }
1616
- _showElement(t) {
1617
- document.body.contains(this._element) ||
1618
- document.body.append(this._element),
1619
- (this._element.style.display = "block"),
1620
- this._element.removeAttribute("aria-hidden"),
1621
- this._element.setAttribute("aria-modal", !0),
1622
- this._element.setAttribute("role", "dialog"),
1623
- (this._element.scrollTop = 0);
1624
- const e = V.findOne(".modal-body", this._dialog);
1625
- e && (e.scrollTop = 0),
1626
- f(this._element),
1627
- this._element.classList.add(Ye),
1628
- this._queueCallback(
1629
- () => {
1630
- this._config.focus && this._focustrap.activate(),
1631
- (this._isTransitioning = !1),
1632
- F.trigger(this._element, qe, { relatedTarget: t });
1633
- },
1634
- this._dialog,
1635
- this._isAnimated(),
1636
- );
1637
- }
1638
- _addEventListeners() {
1639
- F.on(this._element, Ve, (t) => {
1640
- "Escape" === t.key &&
1641
- (this._config.keyboard
1642
- ? this.hide()
1643
- : this._triggerBackdropTransition());
1644
- }),
1645
- F.on(window, We, () => {
1646
- this._isShown && !this._isTransitioning && this._adjustDialog();
1647
- }),
1648
- F.on(this._element, Ke, (t) => {
1649
- F.one(this._element, Re, (e) => {
1650
- this._element === t.target &&
1651
- this._element === e.target &&
1652
- ("static" !== this._config.backdrop
1653
- ? this._config.backdrop && this.hide()
1654
- : this._triggerBackdropTransition());
1655
- });
1656
- });
1657
- }
1658
- _hideModal() {
1659
- (this._element.style.display = "none"),
1660
- this._element.setAttribute("aria-hidden", !0),
1661
- this._element.removeAttribute("aria-modal"),
1662
- this._element.removeAttribute("role"),
1663
- (this._isTransitioning = !1),
1664
- this._backdrop.hide(() => {
1665
- document.body.classList.remove(Xe),
1666
- this._resetAdjustments(),
1667
- this._scrollBar.reset(),
1668
- F.trigger(this._element, He);
1669
- });
1670
- }
1671
- _isAnimated() {
1672
- return this._element.classList.contains("fade");
1673
- }
1674
- _triggerBackdropTransition() {
1675
- if (F.trigger(this._element, ze).defaultPrevented) return;
1676
- const t =
1677
- this._element.scrollHeight > document.documentElement.clientHeight,
1678
- e = this._element.style.overflowY;
1679
- "hidden" === e ||
1680
- this._element.classList.contains(Ue) ||
1681
- (t || (this._element.style.overflowY = "hidden"),
1682
- this._element.classList.add(Ue),
1683
- this._queueCallback(() => {
1684
- this._element.classList.remove(Ue),
1685
- this._queueCallback(() => {
1686
- this._element.style.overflowY = e;
1687
- }, this._dialog);
1688
- }, this._dialog),
1689
- this._element.focus());
1690
- }
1691
- _adjustDialog() {
1692
- const t =
1693
- this._element.scrollHeight > document.documentElement.clientHeight,
1694
- e = this._scrollBar.getWidth(),
1695
- i = e > 0;
1696
- if (i && !t) {
1697
- const t = b() ? "paddingLeft" : "paddingRight";
1698
- this._element.style[t] = `${e}px`;
1699
- }
1700
- if (!i && t) {
1701
- const t = b() ? "paddingRight" : "paddingLeft";
1702
- this._element.style[t] = `${e}px`;
1703
- }
1704
- }
1705
- _resetAdjustments() {
1706
- (this._element.style.paddingLeft = ""),
1707
- (this._element.style.paddingRight = "");
1708
- }
1709
- static jQueryInterface(t, e) {
1710
- return this.each(function () {
1711
- const i = Ze.getOrCreateInstance(this, t);
1712
- if ("string" == typeof t) {
1713
- if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
1714
- i[t](e);
1715
- }
1716
- });
1717
- }
1718
- }
1719
- F.on(document, Qe, '[data-bs-toggle="modal"]', function (t) {
1720
- const e = V.getElementFromSelector(this);
1721
- ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
1722
- F.one(e, Be, (t) => {
1723
- t.defaultPrevented ||
1724
- F.one(e, He, () => {
1725
- d(this) && this.focus();
1726
- });
1727
- });
1728
- const i = V.findOne(".modal.show");
1729
- i && Ze.getInstance(i).hide(), Ze.getOrCreateInstance(e).toggle(this);
1730
- }),
1731
- Q(Ze),
1732
- v(Ze);
1733
- const ti = ".bs.offcanvas",
1734
- ei = ".data-api",
1735
- ii = `load${ti}${ei}`,
1736
- si = "show",
1737
- ni = "showing",
1738
- oi = "hiding",
1739
- ri = ".offcanvas.show",
1740
- ai = `show${ti}`,
1741
- li = `shown${ti}`,
1742
- ci = `hide${ti}`,
1743
- hi = `hidePrevented${ti}`,
1744
- di = `hidden${ti}`,
1745
- ui = `resize${ti}`,
1746
- _i = `click${ti}${ei}`,
1747
- gi = `keydown.dismiss${ti}`,
1748
- fi = { backdrop: !0, keyboard: !0, scroll: !1 },
1749
- mi = {
1750
- backdrop: "(boolean|string)",
1751
- keyboard: "boolean",
1752
- scroll: "boolean",
1753
- };
1754
- class pi extends R {
1755
- constructor(t, e) {
1756
- super(t, e),
1757
- (this._isShown = !1),
1758
- (this._backdrop = this._initializeBackDrop()),
1759
- (this._focustrap = this._initializeFocusTrap()),
1760
- this._addEventListeners();
1761
- }
1762
- static get Default() {
1763
- return fi;
1764
- }
1765
- static get DefaultType() {
1766
- return mi;
1767
- }
1768
- static get NAME() {
1769
- return "offcanvas";
1770
- }
1771
- toggle(t) {
1772
- return this._isShown ? this.hide() : this.show(t);
1773
- }
1774
- show(t) {
1775
- this._isShown ||
1776
- F.trigger(this._element, ai, { relatedTarget: t }).defaultPrevented ||
1777
- ((this._isShown = !0),
1778
- this._backdrop.show(),
1779
- this._config.scroll || new Me().hide(),
1780
- this._element.setAttribute("aria-modal", !0),
1781
- this._element.setAttribute("role", "dialog"),
1782
- this._element.classList.add(ni),
1783
- this._queueCallback(
1784
- () => {
1785
- (this._config.scroll && !this._config.backdrop) ||
1786
- this._focustrap.activate(),
1787
- this._element.classList.add(si),
1788
- this._element.classList.remove(ni),
1789
- F.trigger(this._element, li, { relatedTarget: t });
1790
- },
1791
- this._element,
1792
- !0,
1793
- ));
1794
- }
1795
- hide() {
1796
- this._isShown &&
1797
- (F.trigger(this._element, ci).defaultPrevented ||
1798
- (this._focustrap.deactivate(),
1799
- this._element.blur(),
1800
- (this._isShown = !1),
1801
- this._element.classList.add(oi),
1802
- this._backdrop.hide(),
1803
- this._queueCallback(
1804
- () => {
1805
- this._element.classList.remove(si, oi),
1806
- this._element.removeAttribute("aria-modal"),
1807
- this._element.removeAttribute("role"),
1808
- this._config.scroll || new Me().reset(),
1809
- F.trigger(this._element, di);
1810
- },
1811
- this._element,
1812
- !0,
1813
- )));
1814
- }
1815
- dispose() {
1816
- this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
1817
- }
1818
- _initializeBackDrop() {
1819
- const t = Boolean(this._config.backdrop);
1820
- return new Ce({
1821
- className: "offcanvas-backdrop",
1822
- isVisible: t,
1823
- isAnimated: !0,
1824
- rootElement: this._element.parentNode,
1825
- clickCallback: t
1826
- ? () => {
1827
- "static" !== this._config.backdrop
1828
- ? this.hide()
1829
- : F.trigger(this._element, hi);
1830
- }
1831
- : null,
1832
- });
1833
- }
1834
- _initializeFocusTrap() {
1835
- return new Ie({ trapElement: this._element });
1836
- }
1837
- _addEventListeners() {
1838
- F.on(this._element, gi, (t) => {
1839
- "Escape" === t.key &&
1840
- (this._config.keyboard ? this.hide() : F.trigger(this._element, hi));
1841
- });
1842
- }
1843
- static jQueryInterface(t) {
1844
- return this.each(function () {
1845
- const e = pi.getOrCreateInstance(this, t);
1846
- if ("string" == typeof t) {
1847
- if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
1848
- throw new TypeError(`No method named "${t}"`);
1849
- e[t](this);
1850
- }
1851
- });
1852
- }
1853
- }
1854
- F.on(document, _i, '[data-bs-toggle="offcanvas"]', function (t) {
1855
- const e = V.getElementFromSelector(this);
1856
- if ((["A", "AREA"].includes(this.tagName) && t.preventDefault(), u(this)))
1857
- return;
1858
- F.one(e, di, () => {
1859
- d(this) && this.focus();
1860
- });
1861
- const i = V.findOne(ri);
1862
- i && i !== e && pi.getInstance(i).hide(),
1863
- pi.getOrCreateInstance(e).toggle(this);
1864
- }),
1865
- F.on(window, ii, () => {
1866
- for (const t of V.find(ri)) pi.getOrCreateInstance(t).show();
1867
- }),
1868
- F.on(window, ui, () => {
1869
- for (const t of V.find("[aria-modal][class*=show][class*=offcanvas-]"))
1870
- "fixed" !== getComputedStyle(t).position &&
1871
- pi.getOrCreateInstance(t).hide();
1872
- }),
1873
- Q(pi),
1874
- v(pi);
1875
- const bi = {
1876
- "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
1877
- a: ["target", "href", "title", "rel"],
1878
- area: [],
1879
- b: [],
1880
- br: [],
1881
- col: [],
1882
- code: [],
1883
- dd: [],
1884
- div: [],
1885
- dl: [],
1886
- dt: [],
1887
- em: [],
1888
- hr: [],
1889
- h1: [],
1890
- h2: [],
1891
- h3: [],
1892
- h4: [],
1893
- h5: [],
1894
- h6: [],
1895
- i: [],
1896
- img: ["src", "srcset", "alt", "title", "width", "height"],
1897
- li: [],
1898
- ol: [],
1899
- p: [],
1900
- pre: [],
1901
- s: [],
1902
- small: [],
1903
- span: [],
1904
- sub: [],
1905
- sup: [],
1906
- strong: [],
1907
- u: [],
1908
- ul: [],
1909
- },
1910
- vi = new Set([
1911
- "background",
1912
- "cite",
1913
- "href",
1914
- "itemtype",
1915
- "longdesc",
1916
- "poster",
1917
- "src",
1918
- "xlink:href",
1919
- ]),
1920
- yi = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,
1921
- wi = (t, e) => {
1922
- const i = t.nodeName.toLowerCase();
1923
- return e.includes(i)
1924
- ? !vi.has(i) || Boolean(yi.test(t.nodeValue))
1925
- : e.filter((t) => t instanceof RegExp).some((t) => t.test(i));
1926
- },
1927
- Ai = {
1928
- allowList: bi,
1929
- content: {},
1930
- extraClass: "",
1931
- html: !1,
1932
- sanitize: !0,
1933
- sanitizeFn: null,
1934
- template: "<div></div>",
1935
- },
1936
- Ei = {
1937
- allowList: "object",
1938
- content: "object",
1939
- extraClass: "(string|function)",
1940
- html: "boolean",
1941
- sanitize: "boolean",
1942
- sanitizeFn: "(null|function)",
1943
- template: "string",
1944
- },
1945
- Ci = {
1946
- entry: "(string|element|function|null)",
1947
- selector: "(string|element)",
1948
- };
1949
- class Ti extends W {
1950
- constructor(t) {
1951
- super(), (this._config = this._getConfig(t));
1952
- }
1953
- static get Default() {
1954
- return Ai;
1955
- }
1956
- static get DefaultType() {
1957
- return Ei;
1958
- }
1959
- static get NAME() {
1960
- return "TemplateFactory";
1961
- }
1962
- getContent() {
1963
- return Object.values(this._config.content)
1964
- .map((t) => this._resolvePossibleFunction(t))
1965
- .filter(Boolean);
1966
- }
1967
- hasContent() {
1968
- return this.getContent().length > 0;
1969
- }
1970
- changeContent(t) {
1971
- return (
1972
- this._checkContent(t),
1973
- (this._config.content = { ...this._config.content, ...t }),
1974
- this
1975
- );
1976
- }
1977
- toHtml() {
1978
- const t = document.createElement("div");
1979
- t.innerHTML = this._maybeSanitize(this._config.template);
1980
- for (const [e, i] of Object.entries(this._config.content))
1981
- this._setContent(t, i, e);
1982
- const e = t.children[0],
1983
- i = this._resolvePossibleFunction(this._config.extraClass);
1984
- return i && e.classList.add(...i.split(" ")), e;
1985
- }
1986
- _typeCheckConfig(t) {
1987
- super._typeCheckConfig(t), this._checkContent(t.content);
1988
- }
1989
- _checkContent(t) {
1990
- for (const [e, i] of Object.entries(t))
1991
- super._typeCheckConfig({ selector: e, entry: i }, Ci);
1992
- }
1993
- _setContent(t, e, i) {
1994
- const s = V.findOne(i, t);
1995
- s &&
1996
- ((e = this._resolvePossibleFunction(e))
1997
- ? c(e)
1998
- ? this._putElementInTemplate(h(e), s)
1999
- : this._config.html
2000
- ? (s.innerHTML = this._maybeSanitize(e))
2001
- : (s.textContent = e)
2002
- : s.remove());
2003
- }
2004
- _maybeSanitize(t) {
2005
- return this._config.sanitize
2006
- ? (function (t, e, i) {
2007
- if (!t.length) return t;
2008
- if (i && "function" == typeof i) return i(t);
2009
- const s = new window.DOMParser().parseFromString(t, "text/html"),
2010
- n = [].concat(...s.body.querySelectorAll("*"));
2011
- for (const t of n) {
2012
- const i = t.nodeName.toLowerCase();
2013
- if (!Object.keys(e).includes(i)) {
2014
- t.remove();
2015
- continue;
2016
- }
2017
- const s = [].concat(...t.attributes),
2018
- n = [].concat(e["*"] || [], e[i] || []);
2019
- for (const e of s) wi(e, n) || t.removeAttribute(e.nodeName);
2020
- }
2021
- return s.body.innerHTML;
2022
- })(t, this._config.allowList, this._config.sanitizeFn)
2023
- : t;
2024
- }
2025
- _resolvePossibleFunction(t) {
2026
- return y(t, [void 0, this]);
2027
- }
2028
- _putElementInTemplate(t, e) {
2029
- if (this._config.html) return (e.innerHTML = ""), void e.append(t);
2030
- e.textContent = t.textContent;
2031
- }
2032
- }
2033
- const ki = new Set(["sanitize", "allowList", "sanitizeFn"]),
2034
- $i = "fade",
2035
- Si = "show",
2036
- Li = ".tooltip-inner",
2037
- Oi = ".modal",
2038
- Ii = "hide.bs.modal",
2039
- Di = "hover",
2040
- Ni = "focus",
2041
- Pi = "click",
2042
- xi = {
2043
- AUTO: "auto",
2044
- TOP: "top",
2045
- RIGHT: b() ? "left" : "right",
2046
- BOTTOM: "bottom",
2047
- LEFT: b() ? "right" : "left",
2048
- },
2049
- Mi = {
2050
- allowList: bi,
2051
- animation: !0,
2052
- boundary: "clippingParents",
2053
- container: !1,
2054
- customClass: "",
2055
- delay: 0,
2056
- fallbackPlacements: ["top", "right", "bottom", "left"],
2057
- html: !1,
2058
- offset: [0, 6],
2059
- placement: "top",
2060
- popperConfig: null,
2061
- sanitize: !0,
2062
- sanitizeFn: null,
2063
- selector: !1,
2064
- template:
2065
- '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
2066
- title: "",
2067
- trigger: "hover focus",
2068
- },
2069
- ji = {
2070
- allowList: "object",
2071
- animation: "boolean",
2072
- boundary: "(string|element)",
2073
- container: "(string|element|boolean)",
2074
- customClass: "(string|function)",
2075
- delay: "(number|object)",
2076
- fallbackPlacements: "array",
2077
- html: "boolean",
2078
- offset: "(array|string|function)",
2079
- placement: "(string|function)",
2080
- popperConfig: "(null|object|function)",
2081
- sanitize: "boolean",
2082
- sanitizeFn: "(null|function)",
2083
- selector: "(string|boolean)",
2084
- template: "string",
2085
- title: "(string|element|function)",
2086
- trigger: "string",
2087
- };
2088
- class Fi extends R {
2089
- constructor(t, e) {
2090
- if (void 0 === i)
2091
- throw new TypeError(
2092
- "Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)",
2093
- );
2094
- super(t, e),
2095
- (this._isEnabled = !0),
2096
- (this._timeout = 0),
2097
- (this._isHovered = null),
2098
- (this._activeTrigger = {}),
2099
- (this._popper = null),
2100
- (this._templateFactory = null),
2101
- (this._newContent = null),
2102
- (this.tip = null),
2103
- this._setListeners(),
2104
- this._config.selector || this._fixTitle();
2105
- }
2106
- static get Default() {
2107
- return Mi;
2108
- }
2109
- static get DefaultType() {
2110
- return ji;
2111
- }
2112
- static get NAME() {
2113
- return "tooltip";
2114
- }
2115
- enable() {
2116
- this._isEnabled = !0;
2117
- }
2118
- disable() {
2119
- this._isEnabled = !1;
2120
- }
2121
- toggleEnabled() {
2122
- this._isEnabled = !this._isEnabled;
2123
- }
2124
- toggle() {
2125
- this._isEnabled && (this._isShown() ? this._leave() : this._enter());
2126
- }
2127
- dispose() {
2128
- clearTimeout(this._timeout),
2129
- F.off(this._element.closest(Oi), Ii, this._hideModalHandler),
2130
- this._element.getAttribute("data-bs-original-title") &&
2131
- this._element.setAttribute(
2132
- "title",
2133
- this._element.getAttribute("data-bs-original-title"),
2134
- ),
2135
- this._disposePopper(),
2136
- super.dispose();
2137
- }
2138
- show() {
2139
- if ("none" === this._element.style.display)
2140
- throw new Error("Please use show on visible elements");
2141
- if (!this._isWithContent() || !this._isEnabled) return;
2142
- const t = F.trigger(this._element, this.constructor.eventName("show")),
2143
- e = (
2144
- _(this._element) || this._element.ownerDocument.documentElement
2145
- ).contains(this._element);
2146
- if (t.defaultPrevented || !e) return;
2147
- this._disposePopper();
2148
- const i = this._getTipElement();
2149
- this._element.setAttribute("aria-describedby", i.getAttribute("id"));
2150
- const { container: s } = this._config;
2151
- if (
2152
- (this._element.ownerDocument.documentElement.contains(this.tip) ||
2153
- (s.append(i),
2154
- F.trigger(this._element, this.constructor.eventName("inserted"))),
2155
- (this._popper = this._createPopper(i)),
2156
- i.classList.add(Si),
2157
- "ontouchstart" in document.documentElement)
2158
- )
2159
- for (const t of [].concat(...document.body.children))
2160
- F.on(t, "mouseover", g);
2161
- this._queueCallback(
2162
- () => {
2163
- F.trigger(this._element, this.constructor.eventName("shown")),
2164
- !1 === this._isHovered && this._leave(),
2165
- (this._isHovered = !1);
2166
- },
2167
- this.tip,
2168
- this._isAnimated(),
2169
- );
2170
- }
2171
- hide() {
2172
- if (
2173
- this._isShown() &&
2174
- !F.trigger(this._element, this.constructor.eventName("hide"))
2175
- .defaultPrevented
2176
- ) {
2177
- if (
2178
- (this._getTipElement().classList.remove(Si),
2179
- "ontouchstart" in document.documentElement)
2180
- )
2181
- for (const t of [].concat(...document.body.children))
2182
- F.off(t, "mouseover", g);
2183
- (this._activeTrigger[Pi] = !1),
2184
- (this._activeTrigger[Ni] = !1),
2185
- (this._activeTrigger[Di] = !1),
2186
- (this._isHovered = null),
2187
- this._queueCallback(
2188
- () => {
2189
- this._isWithActiveTrigger() ||
2190
- (this._isHovered || this._disposePopper(),
2191
- this._element.removeAttribute("aria-describedby"),
2192
- F.trigger(this._element, this.constructor.eventName("hidden")));
2193
- },
2194
- this.tip,
2195
- this._isAnimated(),
2196
- );
2197
- }
2198
- }
2199
- update() {
2200
- this._popper && this._popper.update();
2201
- }
2202
- _isWithContent() {
2203
- return Boolean(this._getTitle());
2204
- }
2205
- _getTipElement() {
2206
- return (
2207
- this.tip ||
2208
- (this.tip = this._createTipElement(
2209
- this._newContent || this._getContentForTemplate(),
2210
- )),
2211
- this.tip
2212
- );
2213
- }
2214
- _createTipElement(t) {
2215
- const e = this._getTemplateFactory(t).toHtml();
2216
- if (!e) return null;
2217
- e.classList.remove($i, Si),
2218
- e.classList.add(`bs-${this.constructor.NAME}-auto`);
2219
- const i = ((t) => {
2220
- do {
2221
- t += Math.floor(1e6 * Math.random());
2222
- } while (document.getElementById(t));
2223
- return t;
2224
- })(this.constructor.NAME).toString();
2225
- return (
2226
- e.setAttribute("id", i), this._isAnimated() && e.classList.add($i), e
2227
- );
2228
- }
2229
- setContent(t) {
2230
- (this._newContent = t),
2231
- this._isShown() && (this._disposePopper(), this.show());
2232
- }
2233
- _getTemplateFactory(t) {
2234
- return (
2235
- this._templateFactory
2236
- ? this._templateFactory.changeContent(t)
2237
- : (this._templateFactory = new Ti({
2238
- ...this._config,
2239
- content: t,
2240
- extraClass: this._resolvePossibleFunction(
2241
- this._config.customClass,
2242
- ),
2243
- })),
2244
- this._templateFactory
2245
- );
2246
- }
2247
- _getContentForTemplate() {
2248
- return { [Li]: this._getTitle() };
2249
- }
2250
- _getTitle() {
2251
- return (
2252
- this._resolvePossibleFunction(this._config.title) ||
2253
- this._element.getAttribute("data-bs-original-title")
2254
- );
2255
- }
2256
- _initializeOnDelegatedTarget(t) {
2257
- return this.constructor.getOrCreateInstance(
2258
- t.delegateTarget,
2259
- this._getDelegateConfig(),
2260
- );
2261
- }
2262
- _isAnimated() {
2263
- return (
2264
- this._config.animation || (this.tip && this.tip.classList.contains($i))
2265
- );
2266
- }
2267
- _isShown() {
2268
- return this.tip && this.tip.classList.contains(Si);
2269
- }
2270
- _createPopper(t) {
2271
- const e = y(this._config.placement, [this, t, this._element]),
2272
- s = xi[e.toUpperCase()];
2273
- return i.createPopper(this._element, t, this._getPopperConfig(s));
2274
- }
2275
- _getOffset() {
2276
- const { offset: t } = this._config;
2277
- return "string" == typeof t
2278
- ? t.split(",").map((t) => Number.parseInt(t, 10))
2279
- : "function" == typeof t
2280
- ? (e) => t(e, this._element)
2281
- : t;
2282
- }
2283
- _resolvePossibleFunction(t) {
2284
- return y(t, [this._element, this._element]);
2285
- }
2286
- _getPopperConfig(t) {
2287
- const e = {
2288
- placement: t,
2289
- modifiers: [
2290
- {
2291
- name: "flip",
2292
- options: { fallbackPlacements: this._config.fallbackPlacements },
2293
- },
2294
- { name: "offset", options: { offset: this._getOffset() } },
2295
- {
2296
- name: "preventOverflow",
2297
- options: { boundary: this._config.boundary },
2298
- },
2299
- {
2300
- name: "arrow",
2301
- options: { element: `.${this.constructor.NAME}-arrow` },
2302
- },
2303
- {
2304
- name: "preSetPlacement",
2305
- enabled: !0,
2306
- phase: "beforeMain",
2307
- fn: (t) => {
2308
- this._getTipElement().setAttribute(
2309
- "data-popper-placement",
2310
- t.state.placement,
2311
- );
2312
- },
2313
- },
2314
- ],
2315
- };
2316
- return { ...e, ...y(this._config.popperConfig, [void 0, e]) };
2317
- }
2318
- _setListeners() {
2319
- const t = this._config.trigger.split(" ");
2320
- for (const e of t)
2321
- if ("click" === e)
2322
- F.on(
2323
- this._element,
2324
- this.constructor.eventName("click"),
2325
- this._config.selector,
2326
- (t) => {
2327
- const e = this._initializeOnDelegatedTarget(t);
2328
- (e._activeTrigger[Pi] = !(e._isShown() && e._activeTrigger[Pi])),
2329
- e.toggle();
2330
- },
2331
- );
2332
- else if ("manual" !== e) {
2333
- const t =
2334
- e === Di
2335
- ? this.constructor.eventName("mouseenter")
2336
- : this.constructor.eventName("focusin"),
2337
- i =
2338
- e === Di
2339
- ? this.constructor.eventName("mouseleave")
2340
- : this.constructor.eventName("focusout");
2341
- F.on(this._element, t, this._config.selector, (t) => {
2342
- const e = this._initializeOnDelegatedTarget(t);
2343
- (e._activeTrigger["focusin" === t.type ? Ni : Di] = !0), e._enter();
2344
- }),
2345
- F.on(this._element, i, this._config.selector, (t) => {
2346
- const e = this._initializeOnDelegatedTarget(t);
2347
- (e._activeTrigger["focusout" === t.type ? Ni : Di] =
2348
- e._element.contains(t.relatedTarget)),
2349
- e._leave();
2350
- });
2351
- }
2352
- (this._hideModalHandler = () => {
2353
- this._element && this.hide();
2354
- }),
2355
- F.on(this._element.closest(Oi), Ii, this._hideModalHandler);
2356
- }
2357
- _fixTitle() {
2358
- const t = this._element.getAttribute("title");
2359
- t &&
2360
- (this._element.getAttribute("aria-label") ||
2361
- this._element.textContent.trim() ||
2362
- this._element.setAttribute("aria-label", t),
2363
- this._element.setAttribute("data-bs-original-title", t),
2364
- this._element.removeAttribute("title"));
2365
- }
2366
- _enter() {
2367
- this._isShown() || this._isHovered
2368
- ? (this._isHovered = !0)
2369
- : ((this._isHovered = !0),
2370
- this._setTimeout(() => {
2371
- this._isHovered && this.show();
2372
- }, this._config.delay.show));
2373
- }
2374
- _leave() {
2375
- this._isWithActiveTrigger() ||
2376
- ((this._isHovered = !1),
2377
- this._setTimeout(() => {
2378
- this._isHovered || this.hide();
2379
- }, this._config.delay.hide));
2380
- }
2381
- _setTimeout(t, e) {
2382
- clearTimeout(this._timeout), (this._timeout = setTimeout(t, e));
2383
- }
2384
- _isWithActiveTrigger() {
2385
- return Object.values(this._activeTrigger).includes(!0);
2386
- }
2387
- _getConfig(t) {
2388
- const e = q.getDataAttributes(this._element);
2389
- for (const t of Object.keys(e)) ki.has(t) && delete e[t];
2390
- return (
2391
- (t = { ...e, ...("object" == typeof t && t ? t : {}) }),
2392
- (t = this._mergeConfigObj(t)),
2393
- (t = this._configAfterMerge(t)),
2394
- this._typeCheckConfig(t),
2395
- t
2396
- );
2397
- }
2398
- _configAfterMerge(t) {
2399
- return (
2400
- (t.container = !1 === t.container ? document.body : h(t.container)),
2401
- "number" == typeof t.delay &&
2402
- (t.delay = { show: t.delay, hide: t.delay }),
2403
- "number" == typeof t.title && (t.title = t.title.toString()),
2404
- "number" == typeof t.content && (t.content = t.content.toString()),
2405
- t
2406
- );
2407
- }
2408
- _getDelegateConfig() {
2409
- const t = {};
2410
- for (const [e, i] of Object.entries(this._config))
2411
- this.constructor.Default[e] !== i && (t[e] = i);
2412
- return (t.selector = !1), (t.trigger = "manual"), t;
2413
- }
2414
- _disposePopper() {
2415
- this._popper && (this._popper.destroy(), (this._popper = null)),
2416
- this.tip && (this.tip.remove(), (this.tip = null));
2417
- }
2418
- static jQueryInterface(t) {
2419
- return this.each(function () {
2420
- const e = Fi.getOrCreateInstance(this, t);
2421
- if ("string" == typeof t) {
2422
- if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2423
- e[t]();
2424
- }
2425
- });
2426
- }
2427
- }
2428
- v(Fi);
2429
- const zi = ".popover-header",
2430
- Hi = ".popover-body",
2431
- Bi = {
2432
- ...Fi.Default,
2433
- content: "",
2434
- offset: [0, 8],
2435
- placement: "right",
2436
- template:
2437
- '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
2438
- trigger: "click",
2439
- },
2440
- qi = { ...Fi.DefaultType, content: "(null|string|element|function)" };
2441
- class Wi extends Fi {
2442
- static get Default() {
2443
- return Bi;
2444
- }
2445
- static get DefaultType() {
2446
- return qi;
2447
- }
2448
- static get NAME() {
2449
- return "popover";
2450
- }
2451
- _isWithContent() {
2452
- return this._getTitle() || this._getContent();
2453
- }
2454
- _getContentForTemplate() {
2455
- return { [zi]: this._getTitle(), [Hi]: this._getContent() };
2456
- }
2457
- _getContent() {
2458
- return this._resolvePossibleFunction(this._config.content);
2459
- }
2460
- static jQueryInterface(t) {
2461
- return this.each(function () {
2462
- const e = Wi.getOrCreateInstance(this, t);
2463
- if ("string" == typeof t) {
2464
- if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2465
- e[t]();
2466
- }
2467
- });
2468
- }
2469
- }
2470
- v(Wi);
2471
- const Ri = ".bs.scrollspy",
2472
- Ki = `activate${Ri}`,
2473
- Vi = `click${Ri}`,
2474
- Qi = `load${Ri}.data-api`,
2475
- Xi = "active",
2476
- Yi = "[href]",
2477
- Ui = ".nav-link",
2478
- Gi = `${Ui}, .nav-item > ${Ui}, .list-group-item`,
2479
- Ji = {
2480
- offset: null,
2481
- rootMargin: "0px 0px -25%",
2482
- smoothScroll: !1,
2483
- target: null,
2484
- threshold: [0.1, 0.5, 1],
2485
- },
2486
- Zi = {
2487
- offset: "(number|null)",
2488
- rootMargin: "string",
2489
- smoothScroll: "boolean",
2490
- target: "element",
2491
- threshold: "array",
2492
- };
2493
- class ts extends R {
2494
- constructor(t, e) {
2495
- super(t, e),
2496
- (this._targetLinks = new Map()),
2497
- (this._observableSections = new Map()),
2498
- (this._rootElement =
2499
- "visible" === getComputedStyle(this._element).overflowY
2500
- ? null
2501
- : this._element),
2502
- (this._activeTarget = null),
2503
- (this._observer = null),
2504
- (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }),
2505
- this.refresh();
2506
- }
2507
- static get Default() {
2508
- return Ji;
2509
- }
2510
- static get DefaultType() {
2511
- return Zi;
2512
- }
2513
- static get NAME() {
2514
- return "scrollspy";
2515
- }
2516
- refresh() {
2517
- this._initializeTargetsAndObservables(),
2518
- this._maybeEnableSmoothScroll(),
2519
- this._observer
2520
- ? this._observer.disconnect()
2521
- : (this._observer = this._getNewObserver());
2522
- for (const t of this._observableSections.values())
2523
- this._observer.observe(t);
2524
- }
2525
- dispose() {
2526
- this._observer.disconnect(), super.dispose();
2527
- }
2528
- _configAfterMerge(t) {
2529
- return (
2530
- (t.target = h(t.target) || document.body),
2531
- (t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin),
2532
- "string" == typeof t.threshold &&
2533
- (t.threshold = t.threshold
2534
- .split(",")
2535
- .map((t) => Number.parseFloat(t))),
2536
- t
2537
- );
2538
- }
2539
- _maybeEnableSmoothScroll() {
2540
- this._config.smoothScroll &&
2541
- (F.off(this._config.target, Vi),
2542
- F.on(this._config.target, Vi, Yi, (t) => {
2543
- const e = this._observableSections.get(t.target.hash);
2544
- if (e) {
2545
- t.preventDefault();
2546
- const i = this._rootElement || window,
2547
- s = e.offsetTop - this._element.offsetTop;
2548
- if (i.scrollTo)
2549
- return void i.scrollTo({ top: s, behavior: "smooth" });
2550
- i.scrollTop = s;
2551
- }
2552
- }));
2553
- }
2554
- _getNewObserver() {
2555
- const t = {
2556
- root: this._rootElement,
2557
- threshold: this._config.threshold,
2558
- rootMargin: this._config.rootMargin,
2559
- };
2560
- return new IntersectionObserver((t) => this._observerCallback(t), t);
2561
- }
2562
- _observerCallback(t) {
2563
- const e = (t) => this._targetLinks.get(`#${t.target.id}`),
2564
- i = (t) => {
2565
- (this._previousScrollData.visibleEntryTop = t.target.offsetTop),
2566
- this._process(e(t));
2567
- },
2568
- s = (this._rootElement || document.documentElement).scrollTop,
2569
- n = s >= this._previousScrollData.parentScrollTop;
2570
- this._previousScrollData.parentScrollTop = s;
2571
- for (const o of t) {
2572
- if (!o.isIntersecting) {
2573
- (this._activeTarget = null), this._clearActiveClass(e(o));
2574
- continue;
2575
- }
2576
- const t =
2577
- o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
2578
- if (n && t) {
2579
- if ((i(o), !s)) return;
2580
- } else n || t || i(o);
2581
- }
2582
- }
2583
- _initializeTargetsAndObservables() {
2584
- (this._targetLinks = new Map()), (this._observableSections = new Map());
2585
- const t = V.find(Yi, this._config.target);
2586
- for (const e of t) {
2587
- if (!e.hash || u(e)) continue;
2588
- const t = V.findOne(decodeURI(e.hash), this._element);
2589
- d(t) &&
2590
- (this._targetLinks.set(decodeURI(e.hash), e),
2591
- this._observableSections.set(e.hash, t));
2592
- }
2593
- }
2594
- _process(t) {
2595
- this._activeTarget !== t &&
2596
- (this._clearActiveClass(this._config.target),
2597
- (this._activeTarget = t),
2598
- t.classList.add(Xi),
2599
- this._activateParents(t),
2600
- F.trigger(this._element, Ki, { relatedTarget: t }));
2601
- }
2602
- _activateParents(t) {
2603
- if (t.classList.contains("dropdown-item"))
2604
- V.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(Xi);
2605
- else
2606
- for (const e of V.parents(t, ".nav, .list-group"))
2607
- for (const t of V.prev(e, Gi)) t.classList.add(Xi);
2608
- }
2609
- _clearActiveClass(t) {
2610
- t.classList.remove(Xi);
2611
- const e = V.find(`${Yi}.${Xi}`, t);
2612
- for (const t of e) t.classList.remove(Xi);
2613
- }
2614
- static jQueryInterface(t) {
2615
- return this.each(function () {
2616
- const e = ts.getOrCreateInstance(this, t);
2617
- if ("string" == typeof t) {
2618
- if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
2619
- throw new TypeError(`No method named "${t}"`);
2620
- e[t]();
2621
- }
2622
- });
2623
- }
2624
- }
2625
- F.on(window, Qi, () => {
2626
- for (const t of V.find('[data-bs-spy="scroll"]')) ts.getOrCreateInstance(t);
2627
- }),
2628
- v(ts);
2629
- const es = ".bs.tab",
2630
- is = `hide${es}`,
2631
- ss = `hidden${es}`,
2632
- ns = `show${es}`,
2633
- os = `shown${es}`,
2634
- rs = `click${es}`,
2635
- as = `keydown${es}`,
2636
- ls = `load${es}`,
2637
- cs = "ArrowLeft",
2638
- hs = "ArrowRight",
2639
- ds = "ArrowUp",
2640
- us = "ArrowDown",
2641
- _s = "Home",
2642
- gs = "End",
2643
- fs = "active",
2644
- ms = "fade",
2645
- ps = "show",
2646
- bs = ".dropdown-toggle",
2647
- vs = `:not(${bs})`,
2648
- ys =
2649
- '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
2650
- ws = `.nav-link${vs}, .list-group-item${vs}, [role="tab"]${vs}, ${ys}`,
2651
- As = `.${fs}[data-bs-toggle="tab"], .${fs}[data-bs-toggle="pill"], .${fs}[data-bs-toggle="list"]`;
2652
- class Es extends R {
2653
- constructor(t) {
2654
- super(t),
2655
- (this._parent = this._element.closest(
2656
- '.list-group, .nav, [role="tablist"]',
2657
- )),
2658
- this._parent &&
2659
- (this._setInitialAttributes(this._parent, this._getChildren()),
2660
- F.on(this._element, as, (t) => this._keydown(t)));
2661
- }
2662
- static get NAME() {
2663
- return "tab";
2664
- }
2665
- show() {
2666
- const t = this._element;
2667
- if (this._elemIsActive(t)) return;
2668
- const e = this._getActiveElem(),
2669
- i = e ? F.trigger(e, is, { relatedTarget: t }) : null;
2670
- F.trigger(t, ns, { relatedTarget: e }).defaultPrevented ||
2671
- (i && i.defaultPrevented) ||
2672
- (this._deactivate(e, t), this._activate(t, e));
2673
- }
2674
- _activate(t, e) {
2675
- t &&
2676
- (t.classList.add(fs),
2677
- this._activate(V.getElementFromSelector(t)),
2678
- this._queueCallback(
2679
- () => {
2680
- "tab" === t.getAttribute("role")
2681
- ? (t.removeAttribute("tabindex"),
2682
- t.setAttribute("aria-selected", !0),
2683
- this._toggleDropDown(t, !0),
2684
- F.trigger(t, os, { relatedTarget: e }))
2685
- : t.classList.add(ps);
2686
- },
2687
- t,
2688
- t.classList.contains(ms),
2689
- ));
2690
- }
2691
- _deactivate(t, e) {
2692
- t &&
2693
- (t.classList.remove(fs),
2694
- t.blur(),
2695
- this._deactivate(V.getElementFromSelector(t)),
2696
- this._queueCallback(
2697
- () => {
2698
- "tab" === t.getAttribute("role")
2699
- ? (t.setAttribute("aria-selected", !1),
2700
- t.setAttribute("tabindex", "-1"),
2701
- this._toggleDropDown(t, !1),
2702
- F.trigger(t, ss, { relatedTarget: e }))
2703
- : t.classList.remove(ps);
2704
- },
2705
- t,
2706
- t.classList.contains(ms),
2707
- ));
2708
- }
2709
- _keydown(t) {
2710
- if (![cs, hs, ds, us, _s, gs].includes(t.key)) return;
2711
- t.stopPropagation(), t.preventDefault();
2712
- const e = this._getChildren().filter((t) => !u(t));
2713
- let i;
2714
- if ([_s, gs].includes(t.key)) i = e[t.key === _s ? 0 : e.length - 1];
2715
- else {
2716
- const s = [hs, us].includes(t.key);
2717
- i = A(e, t.target, s, !0);
2718
- }
2719
- i && (i.focus({ preventScroll: !0 }), Es.getOrCreateInstance(i).show());
2720
- }
2721
- _getChildren() {
2722
- return V.find(ws, this._parent);
2723
- }
2724
- _getActiveElem() {
2725
- return this._getChildren().find((t) => this._elemIsActive(t)) || null;
2726
- }
2727
- _setInitialAttributes(t, e) {
2728
- this._setAttributeIfNotExists(t, "role", "tablist");
2729
- for (const t of e) this._setInitialAttributesOnChild(t);
2730
- }
2731
- _setInitialAttributesOnChild(t) {
2732
- t = this._getInnerElement(t);
2733
- const e = this._elemIsActive(t),
2734
- i = this._getOuterElement(t);
2735
- t.setAttribute("aria-selected", e),
2736
- i !== t && this._setAttributeIfNotExists(i, "role", "presentation"),
2737
- e || t.setAttribute("tabindex", "-1"),
2738
- this._setAttributeIfNotExists(t, "role", "tab"),
2739
- this._setInitialAttributesOnTargetPanel(t);
2740
- }
2741
- _setInitialAttributesOnTargetPanel(t) {
2742
- const e = V.getElementFromSelector(t);
2743
- e &&
2744
- (this._setAttributeIfNotExists(e, "role", "tabpanel"),
2745
- t.id && this._setAttributeIfNotExists(e, "aria-labelledby", `${t.id}`));
2746
- }
2747
- _toggleDropDown(t, e) {
2748
- const i = this._getOuterElement(t);
2749
- if (!i.classList.contains("dropdown")) return;
2750
- const s = (t, s) => {
2751
- const n = V.findOne(t, i);
2752
- n && n.classList.toggle(s, e);
2753
- };
2754
- s(bs, fs), s(".dropdown-menu", ps), i.setAttribute("aria-expanded", e);
2755
- }
2756
- _setAttributeIfNotExists(t, e, i) {
2757
- t.hasAttribute(e) || t.setAttribute(e, i);
2758
- }
2759
- _elemIsActive(t) {
2760
- return t.classList.contains(fs);
2761
- }
2762
- _getInnerElement(t) {
2763
- return t.matches(ws) ? t : V.findOne(ws, t);
2764
- }
2765
- _getOuterElement(t) {
2766
- return t.closest(".nav-item, .list-group-item") || t;
2767
- }
2768
- static jQueryInterface(t) {
2769
- return this.each(function () {
2770
- const e = Es.getOrCreateInstance(this);
2771
- if ("string" == typeof t) {
2772
- if (void 0 === e[t] || t.startsWith("_") || "constructor" === t)
2773
- throw new TypeError(`No method named "${t}"`);
2774
- e[t]();
2775
- }
2776
- });
2777
- }
2778
- }
2779
- F.on(document, rs, ys, function (t) {
2780
- ["A", "AREA"].includes(this.tagName) && t.preventDefault(),
2781
- u(this) || Es.getOrCreateInstance(this).show();
2782
- }),
2783
- F.on(window, ls, () => {
2784
- for (const t of V.find(As)) Es.getOrCreateInstance(t);
2785
- }),
2786
- v(Es);
2787
- const Cs = ".bs.toast",
2788
- Ts = `mouseover${Cs}`,
2789
- ks = `mouseout${Cs}`,
2790
- $s = `focusin${Cs}`,
2791
- Ss = `focusout${Cs}`,
2792
- Ls = `hide${Cs}`,
2793
- Os = `hidden${Cs}`,
2794
- Is = `show${Cs}`,
2795
- Ds = `shown${Cs}`,
2796
- Ns = "hide",
2797
- Ps = "show",
2798
- xs = "showing",
2799
- Ms = { animation: "boolean", autohide: "boolean", delay: "number" },
2800
- js = { animation: !0, autohide: !0, delay: 5e3 };
2801
- class Fs extends R {
2802
- constructor(t, e) {
2803
- super(t, e),
2804
- (this._timeout = null),
2805
- (this._hasMouseInteraction = !1),
2806
- (this._hasKeyboardInteraction = !1),
2807
- this._setListeners();
2808
- }
2809
- static get Default() {
2810
- return js;
2811
- }
2812
- static get DefaultType() {
2813
- return Ms;
2814
- }
2815
- static get NAME() {
2816
- return "toast";
2817
- }
2818
- show() {
2819
- F.trigger(this._element, Is).defaultPrevented ||
2820
- (this._clearTimeout(),
2821
- this._config.animation && this._element.classList.add("fade"),
2822
- this._element.classList.remove(Ns),
2823
- f(this._element),
2824
- this._element.classList.add(Ps, xs),
2825
- this._queueCallback(
2826
- () => {
2827
- this._element.classList.remove(xs),
2828
- F.trigger(this._element, Ds),
2829
- this._maybeScheduleHide();
2830
- },
2831
- this._element,
2832
- this._config.animation,
2833
- ));
2834
- }
2835
- hide() {
2836
- this.isShown() &&
2837
- (F.trigger(this._element, Ls).defaultPrevented ||
2838
- (this._element.classList.add(xs),
2839
- this._queueCallback(
2840
- () => {
2841
- this._element.classList.add(Ns),
2842
- this._element.classList.remove(xs, Ps),
2843
- F.trigger(this._element, Os);
2844
- },
2845
- this._element,
2846
- this._config.animation,
2847
- )));
2848
- }
2849
- dispose() {
2850
- this._clearTimeout(),
2851
- this.isShown() && this._element.classList.remove(Ps),
2852
- super.dispose();
2853
- }
2854
- isShown() {
2855
- return this._element.classList.contains(Ps);
2856
- }
2857
- _maybeScheduleHide() {
2858
- this._config.autohide &&
2859
- (this._hasMouseInteraction ||
2860
- this._hasKeyboardInteraction ||
2861
- (this._timeout = setTimeout(() => {
2862
- this.hide();
2863
- }, this._config.delay)));
2864
- }
2865
- _onInteraction(t, e) {
2866
- switch (t.type) {
2867
- case "mouseover":
2868
- case "mouseout":
2869
- this._hasMouseInteraction = e;
2870
- break;
2871
- case "focusin":
2872
- case "focusout":
2873
- this._hasKeyboardInteraction = e;
2874
- }
2875
- if (e) return void this._clearTimeout();
2876
- const i = t.relatedTarget;
2877
- this._element === i ||
2878
- this._element.contains(i) ||
2879
- this._maybeScheduleHide();
2880
- }
2881
- _setListeners() {
2882
- F.on(this._element, Ts, (t) => this._onInteraction(t, !0)),
2883
- F.on(this._element, ks, (t) => this._onInteraction(t, !1)),
2884
- F.on(this._element, $s, (t) => this._onInteraction(t, !0)),
2885
- F.on(this._element, Ss, (t) => this._onInteraction(t, !1));
2886
- }
2887
- _clearTimeout() {
2888
- clearTimeout(this._timeout), (this._timeout = null);
2889
- }
2890
- static jQueryInterface(t) {
2891
- return this.each(function () {
2892
- const e = Fs.getOrCreateInstance(this, t);
2893
- if ("string" == typeof t) {
2894
- if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
2895
- e[t](this);
2896
- }
2897
- });
2898
- }
2899
- }
2900
- return (
2901
- Q(Fs),
2902
- v(Fs),
2903
- {
2904
- Alert: G,
2905
- Button: Z,
2906
- Carousel: Nt,
2907
- Collapse: Qt,
2908
- Dropdown: be,
2909
- Modal: Ze,
2910
- Offcanvas: pi,
2911
- Popover: Wi,
2912
- ScrollSpy: ts,
2913
- Tab: Es,
2914
- Toast: Fs,
2915
- Tooltip: Fi,
2916
- }
2917
- );
2918
- });
2919
- //# sourceMappingURL=bootstrap.min.js.map