vanilla-drawers 1.1.19 → 1.1.20

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.
@@ -2,7 +2,7 @@ var X = (n, t, e) => {
2
2
  if (!t.has(n))
3
3
  throw TypeError("Cannot " + e);
4
4
  };
5
- var s = (n, t, e) => (X(n, t, "read from private field"), e ? e.call(n) : t.get(n)), m = (n, t, e) => {
5
+ var r = (n, t, e) => (X(n, t, "read from private field"), e ? e.call(n) : t.get(n)), m = (n, t, e) => {
6
6
  if (t.has(n))
7
7
  throw TypeError("Cannot add the same private member more than once");
8
8
  t instanceof WeakSet ? t.add(n) : t.set(n, e);
@@ -10,7 +10,7 @@ var s = (n, t, e) => (X(n, t, "read from private field"), e ? e.call(n) : t.get(
10
10
  function ne(n) {
11
11
  return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
12
12
  }
13
- var se = { exports: {} };
13
+ var re = { exports: {} };
14
14
  (function(n) {
15
15
  var t = Object.prototype.hasOwnProperty, e = "~";
16
16
  function l() {
@@ -28,17 +28,17 @@ var se = { exports: {} };
28
28
  function p(o, i) {
29
29
  --o._eventsCount === 0 ? o._events = new l() : delete o._events[i];
30
30
  }
31
- function r() {
31
+ function s() {
32
32
  this._events = new l(), this._eventsCount = 0;
33
33
  }
34
- r.prototype.eventNames = function() {
34
+ s.prototype.eventNames = function() {
35
35
  var i = [], c, h;
36
36
  if (this._eventsCount === 0)
37
37
  return i;
38
38
  for (h in c = this._events)
39
39
  t.call(c, h) && i.push(e ? h.slice(1) : h);
40
40
  return Object.getOwnPropertySymbols ? i.concat(Object.getOwnPropertySymbols(c)) : i;
41
- }, r.prototype.listeners = function(i) {
41
+ }, s.prototype.listeners = function(i) {
42
42
  var c = e ? e + i : i, h = this._events[c];
43
43
  if (!h)
44
44
  return [];
@@ -47,10 +47,10 @@ var se = { exports: {} };
47
47
  for (var b = 0, y = h.length, f = new Array(y); b < y; b++)
48
48
  f[b] = h[b].fn;
49
49
  return f;
50
- }, r.prototype.listenerCount = function(i) {
50
+ }, s.prototype.listenerCount = function(i) {
51
51
  var c = e ? e + i : i, h = this._events[c];
52
52
  return h ? h.fn ? 1 : h.length : 0;
53
- }, r.prototype.emit = function(i, c, h, b, y, f) {
53
+ }, s.prototype.emit = function(i, c, h, b, y, f) {
54
54
  var _ = e ? e + i : i;
55
55
  if (!this._events[_])
56
56
  return !1;
@@ -97,11 +97,11 @@ var se = { exports: {} };
97
97
  }
98
98
  }
99
99
  return !0;
100
- }, r.prototype.on = function(i, c, h) {
100
+ }, s.prototype.on = function(i, c, h) {
101
101
  return g(this, i, c, h, !1);
102
- }, r.prototype.once = function(i, c, h) {
102
+ }, s.prototype.once = function(i, c, h) {
103
103
  return g(this, i, c, h, !0);
104
- }, r.prototype.removeListener = function(i, c, h, b) {
104
+ }, s.prototype.removeListener = function(i, c, h, b) {
105
105
  var y = e ? e + i : i;
106
106
  if (!this._events[y])
107
107
  return this;
@@ -116,12 +116,12 @@ var se = { exports: {} };
116
116
  u.length ? this._events[y] = u.length === 1 ? u[0] : u : p(this, y);
117
117
  }
118
118
  return this;
119
- }, r.prototype.removeAllListeners = function(i) {
119
+ }, s.prototype.removeAllListeners = function(i) {
120
120
  var c;
121
121
  return i ? (c = e ? e + i : i, this._events[c] && p(this, c)) : (this._events = new l(), this._eventsCount = 0), this;
122
- }, r.prototype.off = r.prototype.removeListener, r.prototype.addListener = r.prototype.on, r.prefixed = e, r.EventEmitter = r, n.exports = r;
123
- })(se);
124
- var ie = se.exports;
122
+ }, s.prototype.off = s.prototype.removeListener, s.prototype.addListener = s.prototype.on, s.prefixed = e, s.EventEmitter = s, n.exports = s;
123
+ })(re);
124
+ var ie = re.exports;
125
125
  const ae = /* @__PURE__ */ ne(ie);
126
126
  var le = function(t) {
127
127
  return ce(t) && !he(t);
@@ -162,7 +162,7 @@ function be(n) {
162
162
  function Z(n) {
163
163
  return Object.keys(n).concat(be(n));
164
164
  }
165
- function re(n, t) {
165
+ function se(n, t) {
166
166
  try {
167
167
  return t in n;
168
168
  } catch {
@@ -170,14 +170,14 @@ function re(n, t) {
170
170
  }
171
171
  }
172
172
  function ge(n, t) {
173
- return re(n, t) && !(Object.hasOwnProperty.call(n, t) && Object.propertyIsEnumerable.call(n, t));
173
+ return se(n, t) && !(Object.hasOwnProperty.call(n, t) && Object.propertyIsEnumerable.call(n, t));
174
174
  }
175
175
  function ye(n, t, e) {
176
176
  var l = {};
177
177
  return e.isMergeableObject(n) && Z(n).forEach(function(a) {
178
178
  l[a] = R(n[a], e);
179
179
  }), Z(t).forEach(function(a) {
180
- ge(n, a) || (re(n, a) && e.isMergeableObject(t[a]) ? l[a] = me(a, e)(n[a], t[a], e) : l[a] = R(t[a], e));
180
+ ge(n, a) || (se(n, a) && e.isMergeableObject(t[a]) ? l[a] = me(a, e)(n[a], t[a], e) : l[a] = R(t[a], e));
181
181
  }), l;
182
182
  }
183
183
  function U(n, t, e) {
@@ -266,20 +266,20 @@ class Y {
266
266
  }
267
267
  // Accessors
268
268
  get isActive() {
269
- return s(this, B);
269
+ return r(this, B);
270
270
  }
271
271
  get owner() {
272
- return s(this, O);
272
+ return r(this, O);
273
273
  }
274
274
  // Methods
275
275
  init() {
276
- s(this, A).addEventListener("click", (t) => this.clickHandler(t)), s(this, O).on("open", () => this.setActive(!0)), s(this, O).on("close", () => this.setActive(!1));
276
+ r(this, A).addEventListener("click", (t) => this.clickHandler(t)), r(this, O).on("open", () => this.setActive(!0)), r(this, O).on("close", () => this.setActive(!1));
277
277
  }
278
278
  clickHandler(t) {
279
- t.__drawerTrigger = this, s(this, P) === "open" ? s(this, O).isOpen || s(this, O).open(s(this, A)) : s(this, P) === "close" ? s(this, O).isOpen && s(this, O).close(s(this, A)) : s(this, O).isOpen ? s(this, O).close(s(this, A)) : s(this, O).open(s(this, A));
279
+ t.__drawerTrigger = this, r(this, P) === "open" ? r(this, O).isOpen || r(this, O).open(r(this, A)) : r(this, P) === "close" ? r(this, O).isOpen && r(this, O).close(r(this, A)) : r(this, O).isOpen ? r(this, O).close(r(this, A)) : r(this, O).open(r(this, A));
280
280
  }
281
281
  setActive(t) {
282
- v(this, B, t), t ? s(this, A).classList.add("drawer-trigger_active") : s(this, A).classList.remove("drawer-trigger_active");
282
+ v(this, B, t), t ? r(this, A).classList.add("drawer-trigger_active") : r(this, A).classList.remove("drawer-trigger_active");
283
283
  }
284
284
  }
285
285
  A = new WeakMap(), O = new WeakMap(), P = new WeakMap(), B = new WeakMap();
@@ -292,17 +292,17 @@ class Le extends ae {
292
292
  m(this, j, void 0);
293
293
  m(this, H, void 0);
294
294
  m(this, T, void 0);
295
- this.handleDocumentClick = async (r) => {
295
+ this.handleDocumentClick = async (s) => {
296
296
  var c;
297
- if (((c = r.__drawerTrigger) == null ? void 0 : c.owner) === this)
297
+ if (((c = s.__drawerTrigger) == null ? void 0 : c.owner) === this)
298
298
  return;
299
- const o = r.target;
300
- if (r.composedPath(), this.dom.panel.contains(o))
299
+ const o = s.target;
300
+ if (s.composedPath(), this.dom.panel.contains(o))
301
301
  return;
302
302
  const i = o == null ? void 0 : o.closest("[data-drawer]");
303
- i ? i.getAttribute("data-drawer") === s(this, T) ? this.handleUnderlayClick(r) : this.handleOtherDrawerClick(r) : this.handleOutsideClick(r);
304
- }, this.handleKeydown = (r) => {
305
- s(this, d).closeOnEsc && r.key === "Escape" && this.close();
303
+ i ? i.getAttribute("data-drawer") === r(this, T) ? this.handleUnderlayClick(s) : this.handleOtherDrawerClick(s) : this.handleOutsideClick(s);
304
+ }, this.handleKeydown = (s) => {
305
+ r(this, d).closeOnEsc && s.key === "Escape" && this.close();
306
306
  };
307
307
  const a = te(l ? [J, l] : [J]), g = W(e);
308
308
  if (g === null)
@@ -310,7 +310,7 @@ class Le extends ae {
310
310
  v(this, T, g.getAttribute("data-drawer"));
311
311
  const p = g.querySelector(Ce);
312
312
  if (p === null)
313
- throw new Error(`Drawer's panel cannot be found. Alias: ${s(this, T)}`);
313
+ throw new Error(`Drawer's panel cannot be found. Alias: ${r(this, T)}`);
314
314
  this.dom = {
315
315
  root: g,
316
316
  panel: p
@@ -324,40 +324,40 @@ class Le extends ae {
324
324
  }
325
325
  // Accessors
326
326
  get isOpen() {
327
- return s(this, j);
327
+ return r(this, j);
328
328
  }
329
329
  get isModal() {
330
- return s(this, d).modal;
330
+ return r(this, d).modal;
331
331
  }
332
332
  set isModal(e) {
333
333
  this.dom.root.classList[e ? "add" : "remove"]("drawer_modal");
334
334
  }
335
335
  get willLockScroll() {
336
- return s(this, d).lockPageScroll;
336
+ return r(this, d).lockPageScroll;
337
337
  }
338
338
  set zIndex(e) {
339
339
  this.dom.root.style.setProperty("--z-index", String(e)), v(this, K, e);
340
340
  }
341
341
  get zIndex() {
342
- return s(this, K);
342
+ return r(this, K);
343
343
  }
344
344
  // Methods
345
345
  async open(e) {
346
- await V(0), !s(this, j) && (this.emit("beforeOpen", { drawer: this, trigger: e }), v(this, j, !0), this.dom.root.classList.add(s(this, d).openingClass), this.emit("open", { drawer: this, trigger: e }), typeof s(this, d).openAnimationDuration == "number" && await V(s(this, d).openAnimationDuration), this.dom.root.classList.remove(s(this, d).openingClass), this.dom.root.classList.add(s(this, d).openClass), this.emit("openAnimationEnd", { drawer: this, trigger: e }), this.focus(), this.addEventListeners());
346
+ await V(0), !r(this, j) && (this.emit("beforeOpen", { drawer: this, trigger: e }), v(this, j, !0), this.dom.root.classList.add(r(this, d).openingClass), this.emit("open", { drawer: this, trigger: e }), typeof r(this, d).openAnimationDuration == "number" && await V(r(this, d).openAnimationDuration), this.dom.root.classList.remove(r(this, d).openingClass), this.dom.root.classList.add(r(this, d).openClass), this.emit("openAnimationEnd", { drawer: this, trigger: e }), this.focus(), this.addEventListeners());
347
347
  }
348
348
  async close(e) {
349
- s(this, d).onCloseConfirm && !s(this, d).onCloseConfirm(this, e) || (this.emit("beforeClose", { drawer: this, trigger: e }), this.removeEventListeners(), v(this, j, !1), this.dom.root.classList.remove(s(this, d).openClass), this.dom.root.classList.add(s(this, d).closingClass), this.emit("close", { drawer: this, trigger: e }), typeof s(this, d).closeAnimationDuration == "number" && await V(s(this, d).closeAnimationDuration), this.dom.root.classList.remove(s(this, d).closingClass), this.emit("closeAnimationEnd", { drawer: this, trigger: e }));
349
+ r(this, d).onCloseConfirm && !r(this, d).onCloseConfirm(this, e) || (this.emit("beforeClose", { drawer: this, trigger: e }), this.removeEventListeners(), v(this, j, !1), this.dom.root.classList.remove(r(this, d).openClass), this.dom.root.classList.add(r(this, d).closingClass), this.emit("close", { drawer: this, trigger: e }), typeof r(this, d).closeAnimationDuration == "number" && await V(r(this, d).closeAnimationDuration), this.dom.root.classList.remove(r(this, d).closingClass), this.emit("closeAnimationEnd", { drawer: this, trigger: e }));
350
350
  }
351
351
  handleOtherDrawerClick(e) {
352
352
  }
353
353
  handleOutsideClick(e) {
354
- s(this, d).closeOnOutsideClick && (typeof s(this, d).closeOnOutsideClick == "object" && s(this, d).closeOnOutsideClick.hasOwnProperty("checkTarget") ? s(this, d).closeOnOutsideClick.checkTarget(e.target) && this.close() : this.close());
354
+ r(this, d).closeOnOutsideClick && (typeof r(this, d).closeOnOutsideClick == "object" && r(this, d).closeOnOutsideClick.hasOwnProperty("checkTarget") ? r(this, d).closeOnOutsideClick.checkTarget(e.target) && this.close() : this.close());
355
355
  }
356
356
  handleUnderlayClick(e) {
357
- s(this, d).closeOnOutsideClick && this.close();
357
+ r(this, d).closeOnOutsideClick && this.close();
358
358
  }
359
359
  focus() {
360
- s(this, d).focusOnChild && this.focusChild() || this.focusSelf();
360
+ r(this, d).focusOnChild && this.focusChild() || this.focusSelf();
361
361
  }
362
362
  focusSelf() {
363
363
  this.dom.panel.focus();
@@ -368,7 +368,7 @@ class Le extends ae {
368
368
  }
369
369
  setOptions(e) {
370
370
  var l;
371
- e.hasOwnProperty("modal") && ((l = s(this, d)) == null ? void 0 : l.modal) !== e.modal && (this.isModal = e.modal), v(this, d, s(this, d) ? te([s(this, d), e]) : e);
371
+ e.hasOwnProperty("modal") && ((l = r(this, d)) == null ? void 0 : l.modal) !== e.modal && (this.isModal = e.modal), v(this, d, r(this, d) ? te([r(this, d), e]) : e);
372
372
  }
373
373
  assignGroup(e) {
374
374
  v(this, H, e);
@@ -381,12 +381,12 @@ class ke {
381
381
  m(this, M, /* @__PURE__ */ new Map());
382
382
  }
383
383
  lock(t, e) {
384
- s(this, M).has(t) || s(this, M).set(t, /* @__PURE__ */ new Set());
385
- const l = s(this, M).get(t);
384
+ r(this, M).has(t) || r(this, M).set(t, /* @__PURE__ */ new Set());
385
+ const l = r(this, M).get(t);
386
386
  l.size === 0 && t.classList.add("scroll-lock-by-drawer"), l.add(e);
387
387
  }
388
388
  unlock(t, e) {
389
- const l = s(this, M).get(t);
389
+ const l = r(this, M).get(t);
390
390
  l == null || l.delete(e), (!l || l.size === 0) && t.classList.remove("scroll-lock-by-drawer");
391
391
  }
392
392
  }
@@ -400,18 +400,18 @@ const $ = class $ {
400
400
  m(this, D, void 0);
401
401
  m(this, k, void 0);
402
402
  v(this, E, []), v(this, C, []), v(this, k, /* @__PURE__ */ new Map()), this.onBeforeOpen = ({ drawer: a, trigger: g }) => {
403
- a.isModal ? (s(this, k).set(a, s(this, E).length), s(this, E).push(a), a.zIndex = s(this, C).length + s(this, E).length) : (s(this, k).set(a, s(this, C).length), s(this, C).push(a), a.zIndex = s(this, C).length, s(this, E).length > 0 && s(this, E).forEach((p, r) => p.zIndex = s(this, C).length + r + 1)), a.willLockScroll && this.lockScroll(a);
403
+ a.isModal ? (r(this, k).set(a, r(this, E).length), r(this, E).push(a), a.zIndex = r(this, C).length + r(this, E).length) : (r(this, k).set(a, r(this, C).length), r(this, C).push(a), a.zIndex = r(this, C).length, r(this, E).length > 0 && r(this, E).forEach((p, s) => p.zIndex = r(this, C).length + s + 1)), a.willLockScroll && this.lockScroll(a);
404
404
  }, this.onCloseAnimationEnd = ({ drawer: a, trigger: g }) => {
405
- const p = a.isModal ? s(this, E) : s(this, C);
406
- for (delete p[s(this, k).get(a)]; p.length && !p.at(-1); )
405
+ const p = a.isModal ? r(this, E) : r(this, C);
406
+ for (delete p[r(this, k).get(a)]; p.length && !p.at(-1); )
407
407
  p.pop();
408
- s(this, k).delete(a), this.unlockScroll(a);
408
+ r(this, k).delete(a), this.unlockScroll(a);
409
409
  };
410
410
  const e = W(t);
411
411
  if (e === null)
412
412
  throw new Error("Drawer's group root cannot be found");
413
413
  v(this, x, e);
414
- const l = s(this, x).closest("[data-scrollable], html") || s(this, x).matches("[data-scrollable], html") && s(this, x);
414
+ const l = r(this, x).closest("[data-scrollable], html") || r(this, x).matches("[data-scrollable], html") && r(this, x);
415
415
  if (l === null)
416
416
  throw new Error("Scrollable container for group root cannot be found");
417
417
  v(this, D, l);
@@ -420,10 +420,10 @@ const $ = class $ {
420
420
  t.on("beforeOpen", this.onBeforeOpen), t.on("closeAnimationEnd", this.onCloseAnimationEnd), t.assignGroup(this);
421
421
  }
422
422
  lockScroll(t) {
423
- $.scrollLock.lock(s(this, D), t);
423
+ $.scrollLock.lock(r(this, D), t);
424
424
  }
425
425
  unlockScroll(t) {
426
- $.scrollLock.unlock(s(this, D), t);
426
+ $.scrollLock.unlock(r(this, D), t);
427
427
  }
428
428
  };
429
429
  x = new WeakMap(), E = new WeakMap(), C = new WeakMap(), D = new WeakMap(), k = new WeakMap(), $.scrollLock = new ke();
@@ -438,45 +438,45 @@ const q = class q {
438
438
  q.instance = this;
439
439
  }
440
440
  init(t = J) {
441
- document.querySelectorAll(`[${F}]`).forEach((r) => {
442
- const o = r.getAttribute(F);
443
- typeof o == "string" && s(this, z).set(o, new G(r));
444
- }), s(this, z).set("default", new G(document.documentElement)), document.querySelectorAll("[data-drawer]").forEach((r) => {
441
+ document.querySelectorAll(`[${F}]`).forEach((s) => {
442
+ const o = s.getAttribute(F);
443
+ typeof o == "string" && r(this, z).set(o, new G(s));
444
+ }), r(this, z).set("default", new G(document.documentElement)), document.querySelectorAll("[data-drawer]").forEach((s) => {
445
445
  var b;
446
- const o = r.getAttribute("data-drawer");
446
+ const o = s.getAttribute("data-drawer");
447
447
  if (typeof o != "string")
448
448
  return;
449
- const i = new Le({ target: r, options: { ...t, modal: r.matches('*:not([data-modal="false"])') || !r.matches("[data-modal]") && t.modal } });
450
- s(this, I).set(o, i);
451
- const c = r.closest(`[${F}]`), h = c ? c.getAttribute(F) : "default";
449
+ const i = new Le({ target: s, options: { ...t, modal: s.matches('[data-modal]:not([data-modal="false"])') || t.modal } });
450
+ r(this, I).set(o, i);
451
+ const c = s.closest(`[${F}]`), h = c ? c.getAttribute(F) : "default";
452
452
  if (typeof h != "string")
453
453
  throw new Error("Group doesn't have alias set correctly");
454
- (b = s(this, z).get(h)) == null || b.add(i);
455
- }), document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach((r) => {
456
- if (r.hasAttribute("data-drawer-open")) {
457
- const o = r.getAttribute("data-drawer-open");
458
- g(r, o);
454
+ (b = r(this, z).get(h)) == null || b.add(i);
455
+ }), document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach((s) => {
456
+ if (s.hasAttribute("data-drawer-open")) {
457
+ const o = s.getAttribute("data-drawer-open");
458
+ g(s, o);
459
459
  const i = this.get(o);
460
- p(r, i, o), new Y({ target: r, type: "open", owner: i });
461
- } else if (r.hasAttribute("data-drawer-close")) {
462
- const o = r.getAttribute("data-drawer-close");
463
- g(r, o);
460
+ p(s, i, o), new Y({ target: s, type: "open", owner: i });
461
+ } else if (s.hasAttribute("data-drawer-close")) {
462
+ const o = s.getAttribute("data-drawer-close");
463
+ g(s, o);
464
464
  const i = this.get(o);
465
- p(r, i, o), new Y({ target: r, type: "close", owner: i });
465
+ p(s, i, o), new Y({ target: s, type: "close", owner: i });
466
466
  } else {
467
- const o = r.getAttribute("data-drawer-toggle");
468
- g(r, o);
467
+ const o = s.getAttribute("data-drawer-toggle");
468
+ g(s, o);
469
469
  const i = this.get(o);
470
- p(r, i, o), new Y({ target: r, type: "toggle", owner: i });
470
+ p(s, i, o), new Y({ target: s, type: "toggle", owner: i });
471
471
  }
472
472
  });
473
- function g(r, o) {
473
+ function g(s, o) {
474
474
  if (!o)
475
- throw new Error(`Drawer alias should be specified in the trigger attribute. Trigger elem: ${r}`);
475
+ throw new Error(`Drawer alias should be specified in the trigger attribute. Trigger elem: ${s}`);
476
476
  }
477
- function p(r, o, i) {
477
+ function p(s, o, i) {
478
478
  if (!o)
479
- throw new Error(`Drawer hasn't been found for the trigger elem: ${r}. Alias: ${i}`);
479
+ throw new Error(`Drawer hasn't been found for the trigger elem: ${s}. Alias: ${i}`);
480
480
  }
481
481
  }
482
482
  open(t, { trigger: e, options: l } = {}) {
@@ -488,14 +488,14 @@ const q = class q {
488
488
  (a = this.get(t)) == null || a.close(e);
489
489
  }
490
490
  get(t) {
491
- return typeof t == "string" && s(this, I).get(t) || null;
491
+ return typeof t == "string" && r(this, I).get(t) || null;
492
492
  }
493
493
  on(t, e, l) {
494
494
  var a;
495
495
  if (t)
496
496
  (a = this.get(t)) == null || a.on(e, l);
497
497
  else
498
- for (const [g, p] of s(this, I))
498
+ for (const [g, p] of r(this, I))
499
499
  p.on(e, l);
500
500
  }
501
501
  };
@@ -1,6 +1,6 @@
1
- (function(f,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(f=typeof globalThis<"u"?globalThis:f||self,g(f.Drawers={}))})(this,function(f){"use strict";var le=(f,g,C)=>{if(!g.has(f))throw TypeError("Cannot "+C)};var n=(f,g,C)=>(le(f,g,"read from private field"),C?C.call(f):g.get(f)),b=(f,g,C)=>{if(g.has(f))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(f):g.set(f,C)},A=(f,g,C,Y)=>(le(f,g,"write to private field"),Y?Y.call(f,C):g.set(f,C),C);var _,E,z,K,d,F,x,X,U,T,P,L,k,N,j,$,q;function g(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var C={exports:{}};(function(s){var t=Object.prototype.hasOwnProperty,e="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(e=!1));function l(o,i,c){this.fn=o,this.context=i,this.once=c||!1}function v(o,i,c,h,y){if(typeof c!="function")throw new TypeError("The listener must be a function");var O=new l(c,h||o,y),p=e?e+i:i;return o._events[p]?o._events[p].fn?o._events[p]=[o._events[p],O]:o._events[p].push(O):(o._events[p]=O,o._eventsCount++),o}function w(o,i){--o._eventsCount===0?o._events=new a:delete o._events[i]}function r(){this._events=new a,this._eventsCount=0}r.prototype.eventNames=function(){var i=[],c,h;if(this._eventsCount===0)return i;for(h in c=this._events)t.call(c,h)&&i.push(e?h.slice(1):h);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(c)):i},r.prototype.listeners=function(i){var c=e?e+i:i,h=this._events[c];if(!h)return[];if(h.fn)return[h.fn];for(var y=0,O=h.length,p=new Array(O);y<O;y++)p[y]=h[y].fn;return p},r.prototype.listenerCount=function(i){var c=e?e+i:i,h=this._events[c];return h?h.fn?1:h.length:0},r.prototype.emit=function(i,c,h,y,O,p){var S=e?e+i:i;if(!this._events[S])return!1;var u=this._events[S],M=arguments.length,D,m;if(u.fn){switch(u.once&&this.removeListener(i,u.fn,void 0,!0),M){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,c),!0;case 3:return u.fn.call(u.context,c,h),!0;case 4:return u.fn.call(u.context,c,h,y),!0;case 5:return u.fn.call(u.context,c,h,y,O),!0;case 6:return u.fn.call(u.context,c,h,y,O,p),!0}for(m=1,D=new Array(M-1);m<M;m++)D[m-1]=arguments[m];u.fn.apply(u.context,D)}else{var Se=u.length,V;for(m=0;m<Se;m++)switch(u[m].once&&this.removeListener(i,u[m].fn,void 0,!0),M){case 1:u[m].fn.call(u[m].context);break;case 2:u[m].fn.call(u[m].context,c);break;case 3:u[m].fn.call(u[m].context,c,h);break;case 4:u[m].fn.call(u[m].context,c,h,y);break;default:if(!D)for(V=1,D=new Array(M-1);V<M;V++)D[V-1]=arguments[V];u[m].fn.apply(u[m].context,D)}}return!0},r.prototype.on=function(i,c,h){return v(this,i,c,h,!1)},r.prototype.once=function(i,c,h){return v(this,i,c,h,!0)},r.prototype.removeListener=function(i,c,h,y){var O=e?e+i:i;if(!this._events[O])return this;if(!c)return w(this,O),this;var p=this._events[O];if(p.fn)p.fn===c&&(!y||p.once)&&(!h||p.context===h)&&w(this,O);else{for(var S=0,u=[],M=p.length;S<M;S++)(p[S].fn!==c||y&&!p[S].once||h&&p[S].context!==h)&&u.push(p[S]);u.length?this._events[O]=u.length===1?u[0]:u:w(this,O)}return this},r.prototype.removeAllListeners=function(i){var c;return i?(c=e?e+i:i,this._events[c]&&w(this,c)):(this._events=new a,this._eventsCount=0),this},r.prototype.off=r.prototype.removeListener,r.prototype.addListener=r.prototype.on,r.prefixed=e,r.EventEmitter=r,s.exports=r})(C);var Y=C.exports;const ae=g(Y);var ce=function(t){return he(t)&&!ue(t)};function he(s){return!!s&&typeof s=="object"}function ue(s){var t=Object.prototype.toString.call(s);return t==="[object RegExp]"||t==="[object Date]"||pe(s)}var de=typeof Symbol=="function"&&Symbol.for,fe=de?Symbol.for("react.element"):60103;function pe(s){return s.$$typeof===fe}function we(s){return Array.isArray(s)?[]:{}}function R(s,t){return t.clone!==!1&&t.isMergeableObject(s)?I(we(s),s,t):s}function me(s,t,e){return s.concat(t).map(function(a){return R(a,e)})}function ge(s,t){if(!t.customMerge)return I;var e=t.customMerge(s);return typeof e=="function"?e:I}function be(s){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(s).filter(function(t){return Object.propertyIsEnumerable.call(s,t)}):[]}function ne(s){return Object.keys(s).concat(be(s))}function se(s,t){try{return t in s}catch{return!1}}function ye(s,t){return se(s,t)&&!(Object.hasOwnProperty.call(s,t)&&Object.propertyIsEnumerable.call(s,t))}function ve(s,t,e){var a={};return e.isMergeableObject(s)&&ne(s).forEach(function(l){a[l]=R(s[l],e)}),ne(t).forEach(function(l){ye(s,l)||(se(s,l)&&e.isMergeableObject(t[l])?a[l]=ge(l,e)(s[l],t[l],e):a[l]=R(t[l],e))}),a}function I(s,t,e){e=e||{},e.arrayMerge=e.arrayMerge||me,e.isMergeableObject=e.isMergeableObject||ce,e.cloneUnlessOtherwiseSpecified=R;var a=Array.isArray(t),l=Array.isArray(s),v=a===l;return v?a?e.arrayMerge(s,t,e):ve(s,t,e):R(t,e)}I.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,l){return I(a,l,e)},{})};var Oe=I,Ae=Oe;const Ee=g(Ae);/*!
1
+ (function(f,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(f=typeof globalThis<"u"?globalThis:f||self,g(f.Drawers={}))})(this,function(f){"use strict";var le=(f,g,C)=>{if(!g.has(f))throw TypeError("Cannot "+C)};var n=(f,g,C)=>(le(f,g,"read from private field"),C?C.call(f):g.get(f)),b=(f,g,C)=>{if(g.has(f))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(f):g.set(f,C)},A=(f,g,C,Y)=>(le(f,g,"write to private field"),Y?Y.call(f,C):g.set(f,C),C);var _,E,z,K,d,F,x,X,U,T,P,L,k,N,j,$,q;function g(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var C={exports:{}};(function(r){var t=Object.prototype.hasOwnProperty,e="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(e=!1));function l(o,i,c){this.fn=o,this.context=i,this.once=c||!1}function v(o,i,c,h,y){if(typeof c!="function")throw new TypeError("The listener must be a function");var O=new l(c,h||o,y),p=e?e+i:i;return o._events[p]?o._events[p].fn?o._events[p]=[o._events[p],O]:o._events[p].push(O):(o._events[p]=O,o._eventsCount++),o}function w(o,i){--o._eventsCount===0?o._events=new a:delete o._events[i]}function s(){this._events=new a,this._eventsCount=0}s.prototype.eventNames=function(){var i=[],c,h;if(this._eventsCount===0)return i;for(h in c=this._events)t.call(c,h)&&i.push(e?h.slice(1):h);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(c)):i},s.prototype.listeners=function(i){var c=e?e+i:i,h=this._events[c];if(!h)return[];if(h.fn)return[h.fn];for(var y=0,O=h.length,p=new Array(O);y<O;y++)p[y]=h[y].fn;return p},s.prototype.listenerCount=function(i){var c=e?e+i:i,h=this._events[c];return h?h.fn?1:h.length:0},s.prototype.emit=function(i,c,h,y,O,p){var S=e?e+i:i;if(!this._events[S])return!1;var u=this._events[S],M=arguments.length,D,m;if(u.fn){switch(u.once&&this.removeListener(i,u.fn,void 0,!0),M){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,c),!0;case 3:return u.fn.call(u.context,c,h),!0;case 4:return u.fn.call(u.context,c,h,y),!0;case 5:return u.fn.call(u.context,c,h,y,O),!0;case 6:return u.fn.call(u.context,c,h,y,O,p),!0}for(m=1,D=new Array(M-1);m<M;m++)D[m-1]=arguments[m];u.fn.apply(u.context,D)}else{var Se=u.length,V;for(m=0;m<Se;m++)switch(u[m].once&&this.removeListener(i,u[m].fn,void 0,!0),M){case 1:u[m].fn.call(u[m].context);break;case 2:u[m].fn.call(u[m].context,c);break;case 3:u[m].fn.call(u[m].context,c,h);break;case 4:u[m].fn.call(u[m].context,c,h,y);break;default:if(!D)for(V=1,D=new Array(M-1);V<M;V++)D[V-1]=arguments[V];u[m].fn.apply(u[m].context,D)}}return!0},s.prototype.on=function(i,c,h){return v(this,i,c,h,!1)},s.prototype.once=function(i,c,h){return v(this,i,c,h,!0)},s.prototype.removeListener=function(i,c,h,y){var O=e?e+i:i;if(!this._events[O])return this;if(!c)return w(this,O),this;var p=this._events[O];if(p.fn)p.fn===c&&(!y||p.once)&&(!h||p.context===h)&&w(this,O);else{for(var S=0,u=[],M=p.length;S<M;S++)(p[S].fn!==c||y&&!p[S].once||h&&p[S].context!==h)&&u.push(p[S]);u.length?this._events[O]=u.length===1?u[0]:u:w(this,O)}return this},s.prototype.removeAllListeners=function(i){var c;return i?(c=e?e+i:i,this._events[c]&&w(this,c)):(this._events=new a,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=e,s.EventEmitter=s,r.exports=s})(C);var Y=C.exports;const ae=g(Y);var ce=function(t){return he(t)&&!ue(t)};function he(r){return!!r&&typeof r=="object"}function ue(r){var t=Object.prototype.toString.call(r);return t==="[object RegExp]"||t==="[object Date]"||pe(r)}var de=typeof Symbol=="function"&&Symbol.for,fe=de?Symbol.for("react.element"):60103;function pe(r){return r.$$typeof===fe}function we(r){return Array.isArray(r)?[]:{}}function R(r,t){return t.clone!==!1&&t.isMergeableObject(r)?I(we(r),r,t):r}function me(r,t,e){return r.concat(t).map(function(a){return R(a,e)})}function ge(r,t){if(!t.customMerge)return I;var e=t.customMerge(r);return typeof e=="function"?e:I}function be(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(t){return Object.propertyIsEnumerable.call(r,t)}):[]}function ne(r){return Object.keys(r).concat(be(r))}function re(r,t){try{return t in r}catch{return!1}}function ye(r,t){return re(r,t)&&!(Object.hasOwnProperty.call(r,t)&&Object.propertyIsEnumerable.call(r,t))}function ve(r,t,e){var a={};return e.isMergeableObject(r)&&ne(r).forEach(function(l){a[l]=R(r[l],e)}),ne(t).forEach(function(l){ye(r,l)||(re(r,l)&&e.isMergeableObject(t[l])?a[l]=ge(l,e)(r[l],t[l],e):a[l]=R(t[l],e))}),a}function I(r,t,e){e=e||{},e.arrayMerge=e.arrayMerge||me,e.isMergeableObject=e.isMergeableObject||ce,e.cloneUnlessOtherwiseSpecified=R;var a=Array.isArray(t),l=Array.isArray(r),v=a===l;return v?a?e.arrayMerge(r,t,e):ve(r,t,e):R(t,e)}I.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,l){return I(a,l,e)},{})};var Oe=I,Ae=Oe;const Ee=g(Ae);/*!
2
2
  * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
3
3
  *
4
4
  * Copyright (c) 2014-2017, Jon Schlinkert.
5
5
  * Released under the MIT License.
6
- */function re(s){return Object.prototype.toString.call(s)==="[object Object]"}function Ce(s){var t,e;return re(s)===!1?!1:(t=s.constructor,t===void 0?!0:(e=t.prototype,!(re(e)===!1||e.hasOwnProperty("isPrototypeOf")===!1)))}function Z(s){return s instanceof Element?s:document.querySelector(s)}async function ee(s){return await new Promise(t=>setTimeout(t,s))}const _e='[data-elem="drawer.panel"]',J="data-drawers-group",Le=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'],te={modal:!0,focusOnChild:!0,closeOnEsc:!0,closeOnOutsideClick:!0,closeOnUnderlayClick:!0,onCloseConfirm:()=>!0,onBeforeClose:null,onClose:null,onCloseAnimationEnd:null,onBeforeOpen:null,onOpen:null,onOpenAnimationEnd:null,openClass:"drawer_open",closingClass:"drawer_closing",openingClass:"drawer_opening",openAnimationDuration:0,closeAnimationDuration:0,lockPageScroll:!0};function oe(s){return Ee.all(s,{isMergeableObject:Ce})}class Q{constructor({target:t,type:e,owner:a}){b(this,_,void 0);b(this,E,void 0);b(this,z,void 0);b(this,K,!1);const l=Z(t);if(!l)throw new Error("Trigger element cannot be found");if(!a)throw new Error("Owning drawer instance hasn't been provided");A(this,_,l),A(this,E,a),A(this,z,e),this.init()}get isActive(){return n(this,K)}get owner(){return n(this,E)}init(){n(this,_).addEventListener("click",t=>this.clickHandler(t)),n(this,E).on("open",()=>this.setActive(!0)),n(this,E).on("close",()=>this.setActive(!1))}clickHandler(t){t.__drawerTrigger=this,n(this,z)==="open"?n(this,E).isOpen||n(this,E).open(n(this,_)):n(this,z)==="close"?n(this,E).isOpen&&n(this,E).close(n(this,_)):n(this,E).isOpen?n(this,E).close(n(this,_)):n(this,E).open(n(this,_))}setActive(t){A(this,K,t),t?n(this,_).classList.add("drawer-trigger_active"):n(this,_).classList.remove("drawer-trigger_active")}}_=new WeakMap,E=new WeakMap,z=new WeakMap,K=new WeakMap;class ie extends ae{constructor({target:e,options:a}){super();b(this,d,void 0);b(this,F,void 0);b(this,x,void 0);b(this,X,void 0);b(this,U,void 0);this.handleDocumentClick=async r=>{var c;if(((c=r.__drawerTrigger)==null?void 0:c.owner)===this)return;const o=r.target;if(r.composedPath(),this.dom.panel.contains(o))return;const i=o==null?void 0:o.closest("[data-drawer]");i?i.getAttribute("data-drawer")===n(this,U)?this.handleUnderlayClick(r):this.handleOtherDrawerClick(r):this.handleOutsideClick(r)},this.handleKeydown=r=>{n(this,d).closeOnEsc&&r.key==="Escape"&&this.close()};const l=oe(a?[te,a]:[te]),v=Z(e);if(v===null)throw new Error("Drawer's root cannot be found");A(this,U,v.getAttribute("data-drawer"));const w=v.querySelector(_e);if(w===null)throw new Error(`Drawer's panel cannot be found. Alias: ${n(this,U)}`);this.dom={root:v,panel:w},this.setOptions(l),this.dom.panel.setAttribute("tabindex","-1"),this.dom.root.classList.add("drawer_initialized")}addEventListeners(){this.dom.root.addEventListener("keydown",this.handleKeydown),document.addEventListener("click",this.handleDocumentClick)}removeEventListeners(){this.dom.root.removeEventListener("keydown",this.handleKeydown),document.removeEventListener("click",this.handleDocumentClick)}get isOpen(){return n(this,x)}get isModal(){return n(this,d).modal}set isModal(e){this.dom.root.classList[e?"add":"remove"]("drawer_modal")}get willLockScroll(){return n(this,d).lockPageScroll}set zIndex(e){this.dom.root.style.setProperty("--z-index",String(e)),A(this,F,e)}get zIndex(){return n(this,F)}async open(e){await ee(0),!n(this,x)&&(this.emit("beforeOpen",{drawer:this,trigger:e}),A(this,x,!0),this.dom.root.classList.add(n(this,d).openingClass),this.emit("open",{drawer:this,trigger:e}),typeof n(this,d).openAnimationDuration=="number"&&await ee(n(this,d).openAnimationDuration),this.dom.root.classList.remove(n(this,d).openingClass),this.dom.root.classList.add(n(this,d).openClass),this.emit("openAnimationEnd",{drawer:this,trigger:e}),this.focus(),this.addEventListeners())}async close(e){n(this,d).onCloseConfirm&&!n(this,d).onCloseConfirm(this,e)||(this.emit("beforeClose",{drawer:this,trigger:e}),this.removeEventListeners(),A(this,x,!1),this.dom.root.classList.remove(n(this,d).openClass),this.dom.root.classList.add(n(this,d).closingClass),this.emit("close",{drawer:this,trigger:e}),typeof n(this,d).closeAnimationDuration=="number"&&await ee(n(this,d).closeAnimationDuration),this.dom.root.classList.remove(n(this,d).closingClass),this.emit("closeAnimationEnd",{drawer:this,trigger:e}))}handleOtherDrawerClick(e){}handleOutsideClick(e){n(this,d).closeOnOutsideClick&&(typeof n(this,d).closeOnOutsideClick=="object"&&n(this,d).closeOnOutsideClick.hasOwnProperty("checkTarget")?n(this,d).closeOnOutsideClick.checkTarget(e.target)&&this.close():this.close())}handleUnderlayClick(e){n(this,d).closeOnOutsideClick&&this.close()}focus(){n(this,d).focusOnChild&&this.focusChild()||this.focusSelf()}focusSelf(){this.dom.panel.focus()}focusChild(){const e=this.dom.panel.querySelector(Le.join(","));return e?(e.focus(),!0):!1}setOptions(e){var a;e.hasOwnProperty("modal")&&((a=n(this,d))==null?void 0:a.modal)!==e.modal&&(this.isModal=e.modal),A(this,d,n(this,d)?oe([n(this,d),e]):e)}assignGroup(e){A(this,X,e)}}d=new WeakMap,F=new WeakMap,x=new WeakMap,X=new WeakMap,U=new WeakMap;class ke{constructor(){b(this,T,new Map)}lock(t,e){n(this,T).has(t)||n(this,T).set(t,new Set);const a=n(this,T).get(t);a.size===0&&t.classList.add("scroll-lock-by-drawer"),a.add(e)}unlock(t,e){const a=n(this,T).get(t);a==null||a.delete(e),(!a||a.size===0)&&t.classList.remove("scroll-lock-by-drawer")}}T=new WeakMap;const G=class G{constructor(t){b(this,P,void 0);b(this,L,void 0);b(this,k,void 0);b(this,N,void 0);b(this,j,void 0);A(this,L,[]),A(this,k,[]),A(this,j,new Map),this.onBeforeOpen=({drawer:l,trigger:v})=>{l.isModal?(n(this,j).set(l,n(this,L).length),n(this,L).push(l),l.zIndex=n(this,k).length+n(this,L).length):(n(this,j).set(l,n(this,k).length),n(this,k).push(l),l.zIndex=n(this,k).length,n(this,L).length>0&&n(this,L).forEach((w,r)=>w.zIndex=n(this,k).length+r+1)),l.willLockScroll&&this.lockScroll(l)},this.onCloseAnimationEnd=({drawer:l,trigger:v})=>{const w=l.isModal?n(this,L):n(this,k);for(delete w[n(this,j).get(l)];w.length&&!w.at(-1);)w.pop();n(this,j).delete(l),this.unlockScroll(l)};const e=Z(t);if(e===null)throw new Error("Drawer's group root cannot be found");A(this,P,e);const a=n(this,P).closest("[data-scrollable], html")||n(this,P).matches("[data-scrollable], html")&&n(this,P);if(a===null)throw new Error("Scrollable container for group root cannot be found");A(this,N,a)}add(t){t.on("beforeOpen",this.onBeforeOpen),t.on("closeAnimationEnd",this.onCloseAnimationEnd),t.assignGroup(this)}lockScroll(t){G.scrollLock.lock(n(this,N),t)}unlockScroll(t){G.scrollLock.unlock(n(this,N),t)}};P=new WeakMap,L=new WeakMap,k=new WeakMap,N=new WeakMap,j=new WeakMap,G.scrollLock=new ke;let B=G;const H=class H{constructor(){b(this,$,new Map);b(this,q,new Map);if(H.instance)return H.instance;H.instance=this}init(t=te){document.querySelectorAll(`[${J}]`).forEach(r=>{const o=r.getAttribute(J);typeof o=="string"&&n(this,q).set(o,new B(r))}),n(this,q).set("default",new B(document.documentElement)),document.querySelectorAll("[data-drawer]").forEach(r=>{var y;const o=r.getAttribute("data-drawer");if(typeof o!="string")return;const i=new ie({target:r,options:{...t,modal:r.matches('*:not([data-modal="false"])')||!r.matches("[data-modal]")&&t.modal}});n(this,$).set(o,i);const c=r.closest(`[${J}]`),h=c?c.getAttribute(J):"default";if(typeof h!="string")throw new Error("Group doesn't have alias set correctly");(y=n(this,q).get(h))==null||y.add(i)}),document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach(r=>{if(r.hasAttribute("data-drawer-open")){const o=r.getAttribute("data-drawer-open");v(r,o);const i=this.get(o);w(r,i,o),new Q({target:r,type:"open",owner:i})}else if(r.hasAttribute("data-drawer-close")){const o=r.getAttribute("data-drawer-close");v(r,o);const i=this.get(o);w(r,i,o),new Q({target:r,type:"close",owner:i})}else{const o=r.getAttribute("data-drawer-toggle");v(r,o);const i=this.get(o);w(r,i,o),new Q({target:r,type:"toggle",owner:i})}});function v(r,o){if(!o)throw new Error(`Drawer alias should be specified in the trigger attribute. Trigger elem: ${r}`)}function w(r,o,i){if(!o)throw new Error(`Drawer hasn't been found for the trigger elem: ${r}. Alias: ${i}`)}}open(t,{trigger:e,options:a}={}){var l;(l=this.get(t))==null||l.open(e)}close(t,{trigger:e,options:a}={}){var l;(l=this.get(t))==null||l.close(e)}get(t){return typeof t=="string"&&n(this,$).get(t)||null}on(t,e,a){var l;if(t)(l=this.get(t))==null||l.on(e,a);else for(const[v,w]of n(this,$))w.on(e,a)}};$=new WeakMap,q=new WeakMap;let W=H;typeof window<"u"&&(window.hasOwnProperty("app")||(window.app={}),window.app.drawers=new W),f.Drawer=ie,f.DrawersGroup=B,f.Trigger=Q,f.default=W,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
6
+ */function se(r){return Object.prototype.toString.call(r)==="[object Object]"}function Ce(r){var t,e;return se(r)===!1?!1:(t=r.constructor,t===void 0?!0:(e=t.prototype,!(se(e)===!1||e.hasOwnProperty("isPrototypeOf")===!1)))}function Z(r){return r instanceof Element?r:document.querySelector(r)}async function ee(r){return await new Promise(t=>setTimeout(t,r))}const _e='[data-elem="drawer.panel"]',J="data-drawers-group",Le=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'],te={modal:!0,focusOnChild:!0,closeOnEsc:!0,closeOnOutsideClick:!0,closeOnUnderlayClick:!0,onCloseConfirm:()=>!0,onBeforeClose:null,onClose:null,onCloseAnimationEnd:null,onBeforeOpen:null,onOpen:null,onOpenAnimationEnd:null,openClass:"drawer_open",closingClass:"drawer_closing",openingClass:"drawer_opening",openAnimationDuration:0,closeAnimationDuration:0,lockPageScroll:!0};function oe(r){return Ee.all(r,{isMergeableObject:Ce})}class Q{constructor({target:t,type:e,owner:a}){b(this,_,void 0);b(this,E,void 0);b(this,z,void 0);b(this,K,!1);const l=Z(t);if(!l)throw new Error("Trigger element cannot be found");if(!a)throw new Error("Owning drawer instance hasn't been provided");A(this,_,l),A(this,E,a),A(this,z,e),this.init()}get isActive(){return n(this,K)}get owner(){return n(this,E)}init(){n(this,_).addEventListener("click",t=>this.clickHandler(t)),n(this,E).on("open",()=>this.setActive(!0)),n(this,E).on("close",()=>this.setActive(!1))}clickHandler(t){t.__drawerTrigger=this,n(this,z)==="open"?n(this,E).isOpen||n(this,E).open(n(this,_)):n(this,z)==="close"?n(this,E).isOpen&&n(this,E).close(n(this,_)):n(this,E).isOpen?n(this,E).close(n(this,_)):n(this,E).open(n(this,_))}setActive(t){A(this,K,t),t?n(this,_).classList.add("drawer-trigger_active"):n(this,_).classList.remove("drawer-trigger_active")}}_=new WeakMap,E=new WeakMap,z=new WeakMap,K=new WeakMap;class ie extends ae{constructor({target:e,options:a}){super();b(this,d,void 0);b(this,F,void 0);b(this,x,void 0);b(this,X,void 0);b(this,U,void 0);this.handleDocumentClick=async s=>{var c;if(((c=s.__drawerTrigger)==null?void 0:c.owner)===this)return;const o=s.target;if(s.composedPath(),this.dom.panel.contains(o))return;const i=o==null?void 0:o.closest("[data-drawer]");i?i.getAttribute("data-drawer")===n(this,U)?this.handleUnderlayClick(s):this.handleOtherDrawerClick(s):this.handleOutsideClick(s)},this.handleKeydown=s=>{n(this,d).closeOnEsc&&s.key==="Escape"&&this.close()};const l=oe(a?[te,a]:[te]),v=Z(e);if(v===null)throw new Error("Drawer's root cannot be found");A(this,U,v.getAttribute("data-drawer"));const w=v.querySelector(_e);if(w===null)throw new Error(`Drawer's panel cannot be found. Alias: ${n(this,U)}`);this.dom={root:v,panel:w},this.setOptions(l),this.dom.panel.setAttribute("tabindex","-1"),this.dom.root.classList.add("drawer_initialized")}addEventListeners(){this.dom.root.addEventListener("keydown",this.handleKeydown),document.addEventListener("click",this.handleDocumentClick)}removeEventListeners(){this.dom.root.removeEventListener("keydown",this.handleKeydown),document.removeEventListener("click",this.handleDocumentClick)}get isOpen(){return n(this,x)}get isModal(){return n(this,d).modal}set isModal(e){this.dom.root.classList[e?"add":"remove"]("drawer_modal")}get willLockScroll(){return n(this,d).lockPageScroll}set zIndex(e){this.dom.root.style.setProperty("--z-index",String(e)),A(this,F,e)}get zIndex(){return n(this,F)}async open(e){await ee(0),!n(this,x)&&(this.emit("beforeOpen",{drawer:this,trigger:e}),A(this,x,!0),this.dom.root.classList.add(n(this,d).openingClass),this.emit("open",{drawer:this,trigger:e}),typeof n(this,d).openAnimationDuration=="number"&&await ee(n(this,d).openAnimationDuration),this.dom.root.classList.remove(n(this,d).openingClass),this.dom.root.classList.add(n(this,d).openClass),this.emit("openAnimationEnd",{drawer:this,trigger:e}),this.focus(),this.addEventListeners())}async close(e){n(this,d).onCloseConfirm&&!n(this,d).onCloseConfirm(this,e)||(this.emit("beforeClose",{drawer:this,trigger:e}),this.removeEventListeners(),A(this,x,!1),this.dom.root.classList.remove(n(this,d).openClass),this.dom.root.classList.add(n(this,d).closingClass),this.emit("close",{drawer:this,trigger:e}),typeof n(this,d).closeAnimationDuration=="number"&&await ee(n(this,d).closeAnimationDuration),this.dom.root.classList.remove(n(this,d).closingClass),this.emit("closeAnimationEnd",{drawer:this,trigger:e}))}handleOtherDrawerClick(e){}handleOutsideClick(e){n(this,d).closeOnOutsideClick&&(typeof n(this,d).closeOnOutsideClick=="object"&&n(this,d).closeOnOutsideClick.hasOwnProperty("checkTarget")?n(this,d).closeOnOutsideClick.checkTarget(e.target)&&this.close():this.close())}handleUnderlayClick(e){n(this,d).closeOnOutsideClick&&this.close()}focus(){n(this,d).focusOnChild&&this.focusChild()||this.focusSelf()}focusSelf(){this.dom.panel.focus()}focusChild(){const e=this.dom.panel.querySelector(Le.join(","));return e?(e.focus(),!0):!1}setOptions(e){var a;e.hasOwnProperty("modal")&&((a=n(this,d))==null?void 0:a.modal)!==e.modal&&(this.isModal=e.modal),A(this,d,n(this,d)?oe([n(this,d),e]):e)}assignGroup(e){A(this,X,e)}}d=new WeakMap,F=new WeakMap,x=new WeakMap,X=new WeakMap,U=new WeakMap;class ke{constructor(){b(this,T,new Map)}lock(t,e){n(this,T).has(t)||n(this,T).set(t,new Set);const a=n(this,T).get(t);a.size===0&&t.classList.add("scroll-lock-by-drawer"),a.add(e)}unlock(t,e){const a=n(this,T).get(t);a==null||a.delete(e),(!a||a.size===0)&&t.classList.remove("scroll-lock-by-drawer")}}T=new WeakMap;const G=class G{constructor(t){b(this,P,void 0);b(this,L,void 0);b(this,k,void 0);b(this,N,void 0);b(this,j,void 0);A(this,L,[]),A(this,k,[]),A(this,j,new Map),this.onBeforeOpen=({drawer:l,trigger:v})=>{l.isModal?(n(this,j).set(l,n(this,L).length),n(this,L).push(l),l.zIndex=n(this,k).length+n(this,L).length):(n(this,j).set(l,n(this,k).length),n(this,k).push(l),l.zIndex=n(this,k).length,n(this,L).length>0&&n(this,L).forEach((w,s)=>w.zIndex=n(this,k).length+s+1)),l.willLockScroll&&this.lockScroll(l)},this.onCloseAnimationEnd=({drawer:l,trigger:v})=>{const w=l.isModal?n(this,L):n(this,k);for(delete w[n(this,j).get(l)];w.length&&!w.at(-1);)w.pop();n(this,j).delete(l),this.unlockScroll(l)};const e=Z(t);if(e===null)throw new Error("Drawer's group root cannot be found");A(this,P,e);const a=n(this,P).closest("[data-scrollable], html")||n(this,P).matches("[data-scrollable], html")&&n(this,P);if(a===null)throw new Error("Scrollable container for group root cannot be found");A(this,N,a)}add(t){t.on("beforeOpen",this.onBeforeOpen),t.on("closeAnimationEnd",this.onCloseAnimationEnd),t.assignGroup(this)}lockScroll(t){G.scrollLock.lock(n(this,N),t)}unlockScroll(t){G.scrollLock.unlock(n(this,N),t)}};P=new WeakMap,L=new WeakMap,k=new WeakMap,N=new WeakMap,j=new WeakMap,G.scrollLock=new ke;let B=G;const H=class H{constructor(){b(this,$,new Map);b(this,q,new Map);if(H.instance)return H.instance;H.instance=this}init(t=te){document.querySelectorAll(`[${J}]`).forEach(s=>{const o=s.getAttribute(J);typeof o=="string"&&n(this,q).set(o,new B(s))}),n(this,q).set("default",new B(document.documentElement)),document.querySelectorAll("[data-drawer]").forEach(s=>{var y;const o=s.getAttribute("data-drawer");if(typeof o!="string")return;const i=new ie({target:s,options:{...t,modal:s.matches('[data-modal]:not([data-modal="false"])')||t.modal}});n(this,$).set(o,i);const c=s.closest(`[${J}]`),h=c?c.getAttribute(J):"default";if(typeof h!="string")throw new Error("Group doesn't have alias set correctly");(y=n(this,q).get(h))==null||y.add(i)}),document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach(s=>{if(s.hasAttribute("data-drawer-open")){const o=s.getAttribute("data-drawer-open");v(s,o);const i=this.get(o);w(s,i,o),new Q({target:s,type:"open",owner:i})}else if(s.hasAttribute("data-drawer-close")){const o=s.getAttribute("data-drawer-close");v(s,o);const i=this.get(o);w(s,i,o),new Q({target:s,type:"close",owner:i})}else{const o=s.getAttribute("data-drawer-toggle");v(s,o);const i=this.get(o);w(s,i,o),new Q({target:s,type:"toggle",owner:i})}});function v(s,o){if(!o)throw new Error(`Drawer alias should be specified in the trigger attribute. Trigger elem: ${s}`)}function w(s,o,i){if(!o)throw new Error(`Drawer hasn't been found for the trigger elem: ${s}. Alias: ${i}`)}}open(t,{trigger:e,options:a}={}){var l;(l=this.get(t))==null||l.open(e)}close(t,{trigger:e,options:a}={}){var l;(l=this.get(t))==null||l.close(e)}get(t){return typeof t=="string"&&n(this,$).get(t)||null}on(t,e,a){var l;if(t)(l=this.get(t))==null||l.on(e,a);else for(const[v,w]of n(this,$))w.on(e,a)}};$=new WeakMap,q=new WeakMap;let W=H;typeof window<"u"&&(window.hasOwnProperty("app")||(window.app={}),window.app.drawers=new W),f.Drawer=ie,f.DrawersGroup=B,f.Trigger=Q,f.default=W,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanilla-drawers",
3
- "version": "1.1.19",
3
+ "version": "1.1.20",
4
4
  "description": "Drawers controller.",
5
5
  "files": [
6
6
  "dist"