collapse.mjs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { B as D, d as H, c as v, o as L, p as S, W as T, h as l, G as c, a as g, _ as k, t as G, m as C, Z as f, q as d, x as h, s as x, Q as _, y as I, e as P, E as Q, r as W, v as Z, N as q } from "./base-component-BMXjNJAi.mjs";
  2. import { d as y } from "./dataBsToggle-B84TS15h.mjs";
  3. import { c as m } from "./collapsingClass-BxKtDBMH.mjs";
  4. import { s as u } from "./showClass-C8hdJfjQ.mjs";
  5. import { g as E } from "./getTargetElement-px782XHx.mjs";
  6. import { i as A } from "./isDisabled-BG5MoQVt.mjs";
  7. const n = "collapse", N = "Collapse", O = `.${n}`, B = `[${y}="${n}"]`, j = { parent: null }, p = (a) => G(a, N), z = (a) => new R(a), $ = C(`show.bs.${n}`), F = C(`shown.bs.${n}`), b = C(`hide.bs.${n}`), J = C(`hidden.bs.${n}`), K = (a) => {
  8. const { element: e, parent: t, triggers: s } = a;
  9. f(e, $), $.defaultPrevented || (l.set(e, d, 17), t && l.set(t, d, 17), c(e, m), g(e, n), h(e, { height: `${e.scrollHeight}px` }), x(e, () => {
  10. l.clear(e), t && l.clear(t), s.forEach((o) => _(o, I, "true")), g(e, m), c(e, n), c(e, u), h(e, { height: "" }), f(e, F);
  11. }));
  12. }, w = (a) => {
  13. const { element: e, parent: t, triggers: s } = a;
  14. f(e, b), b.defaultPrevented || (l.set(e, d, 17), t && l.set(t, d, 17), h(e, { height: `${e.scrollHeight}px` }), g(e, n), g(e, u), c(e, m), P(e), h(e, { height: "0px" }), x(e, () => {
  15. l.clear(e), t && l.clear(t), s.forEach((o) => _(o, I, "false")), g(e, m), c(e, n), h(e, { height: "" }), f(e, J);
  16. }));
  17. }, M = (a) => {
  18. const { target: e } = a, t = e && q(e, B), s = t && E(t), o = s && p(s);
  19. t && A(t) || o && (o.toggle(), t?.tagName === "A" && a.preventDefault());
  20. };
  21. class R extends D {
  22. static selector = O;
  23. static init = z;
  24. static getInstance = p;
  25. constructor(e, t) {
  26. super(e, t);
  27. const { element: s, options: o } = this, i = H(s);
  28. this.triggers = [...v(B, i)].filter(
  29. (r) => E(r) === s
  30. ), this.parent = L(o.parent) ? o.parent : S(o.parent) ? E(s) || T(o.parent, i) : null, this._toggleEventListeners(!0);
  31. }
  32. get name() {
  33. return N;
  34. }
  35. get defaults() {
  36. return j;
  37. }
  38. hide() {
  39. const { triggers: e, element: t } = this;
  40. l.get(t) || (w(this), e.length && e.forEach((s) => c(s, `${n}d`)));
  41. }
  42. show() {
  43. const { element: e, parent: t, triggers: s } = this;
  44. let o, i;
  45. t && (o = [
  46. ...v(`.${n}.${u}`, t)
  47. ].find((r) => p(r)), i = o && p(o)), (!t || !l.get(t)) && !l.get(e) && (i && o !== e && (w(i), i.triggers.forEach((r) => {
  48. c(r, `${n}d`);
  49. })), K(this), s.length && s.forEach((r) => g(r, `${n}d`)));
  50. }
  51. toggle() {
  52. k(this.element, u) ? this.hide() : this.show();
  53. }
  54. _toggleEventListeners = (e) => {
  55. const t = e ? Q : W, { triggers: s } = this;
  56. s.length && s.forEach((o) => {
  57. t(o, Z, M);
  58. });
  59. };
  60. dispose() {
  61. this._toggleEventListeners(), super.dispose();
  62. }
  63. }
  64. export {
  65. R as default
  66. };
  67. //# sourceMappingURL=collapse.mjs.map