vanilla-drawers 1.1.18 → 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,55 +2,55 @@ 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);
9
- }, v = (n, t, e, a) => (X(n, t, "write to private field"), a ? a.call(n, e) : t.set(n, e), e);
9
+ }, v = (n, t, e, l) => (X(n, t, "write to private field"), l ? l.call(n, e) : t.set(n, e), e);
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
- function a() {
16
+ function l() {
17
17
  }
18
- Object.create && (a.prototype = /* @__PURE__ */ Object.create(null), new a().__proto__ || (e = !1));
19
- function l(o, i, c) {
18
+ Object.create && (l.prototype = /* @__PURE__ */ Object.create(null), new l().__proto__ || (e = !1));
19
+ function a(o, i, c) {
20
20
  this.fn = o, this.context = i, this.once = c || !1;
21
21
  }
22
22
  function g(o, i, c, h, b) {
23
23
  if (typeof c != "function")
24
24
  throw new TypeError("The listener must be a function");
25
- var y = new l(c, h || o, b), d = e ? e + i : i;
26
- return o._events[d] ? o._events[d].fn ? o._events[d] = [o._events[d], y] : o._events[d].push(y) : (o._events[d] = y, o._eventsCount++), o;
25
+ var y = new a(c, h || o, b), f = e ? e + i : i;
26
+ return o._events[f] ? o._events[f].fn ? o._events[f] = [o._events[f], y] : o._events[f].push(y) : (o._events[f] = y, o._eventsCount++), o;
27
27
  }
28
28
  function p(o, i) {
29
- --o._eventsCount === 0 ? o._events = new a() : delete o._events[i];
29
+ --o._eventsCount === 0 ? o._events = new l() : delete o._events[i];
30
30
  }
31
- function r() {
32
- this._events = new a(), this._eventsCount = 0;
31
+ function s() {
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 [];
45
45
  if (h.fn)
46
46
  return [h.fn];
47
- for (var b = 0, y = h.length, d = new Array(y); b < y; b++)
48
- d[b] = h[b].fn;
49
- return d;
50
- }, r.prototype.listenerCount = function(i) {
47
+ for (var b = 0, y = h.length, f = new Array(y); b < y; b++)
48
+ f[b] = h[b].fn;
49
+ return f;
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, d) {
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;
@@ -68,7 +68,7 @@ var se = { exports: {} };
68
68
  case 5:
69
69
  return u.fn.call(u.context, c, h, b, y), !0;
70
70
  case 6:
71
- return u.fn.call(u.context, c, h, b, y, d), !0;
71
+ return u.fn.call(u.context, c, h, b, y, f), !0;
72
72
  }
73
73
  for (w = 1, S = new Array(L - 1); w < L; w++)
74
74
  S[w - 1] = arguments[w];
@@ -97,33 +97,33 @@ 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;
108
108
  if (!c)
109
109
  return p(this, y), this;
110
- var d = this._events[y];
111
- if (d.fn)
112
- d.fn === c && (!b || d.once) && (!h || d.context === h) && p(this, y);
110
+ var f = this._events[y];
111
+ if (f.fn)
112
+ f.fn === c && (!b || f.once) && (!h || f.context === h) && p(this, y);
113
113
  else {
114
- for (var _ = 0, u = [], L = d.length; _ < L; _++)
115
- (d[_].fn !== c || b && !d[_].once || h && d[_].context !== h) && u.push(d[_]);
114
+ for (var _ = 0, u = [], L = f.length; _ < L; _++)
115
+ (f[_].fn !== c || b && !f[_].once || h && f[_].context !== h) && u.push(f[_]);
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
- return i ? (c = e ? e + i : i, this._events[c] && p(this, c)) : (this._events = new a(), 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;
125
- const le = /* @__PURE__ */ ne(ie);
126
- var ae = function(t) {
121
+ return i ? (c = e ? e + i : i, this._events[c] && p(this, c)) : (this._events = new l(), this._eventsCount = 0), this;
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
+ const ae = /* @__PURE__ */ ne(ie);
126
+ var le = function(t) {
127
127
  return ce(t) && !he(t);
128
128
  };
129
129
  function ce(n) {
@@ -131,11 +131,11 @@ function ce(n) {
131
131
  }
132
132
  function he(n) {
133
133
  var t = Object.prototype.toString.call(n);
134
- return t === "[object RegExp]" || t === "[object Date]" || de(n);
134
+ return t === "[object RegExp]" || t === "[object Date]" || fe(n);
135
135
  }
136
- var ue = typeof Symbol == "function" && Symbol.for, fe = ue ? Symbol.for("react.element") : 60103;
137
- function de(n) {
138
- return n.$$typeof === fe;
136
+ var ue = typeof Symbol == "function" && Symbol.for, de = ue ? Symbol.for("react.element") : 60103;
137
+ function fe(n) {
138
+ return n.$$typeof === de;
139
139
  }
140
140
  function pe(n) {
141
141
  return Array.isArray(n) ? [] : {};
@@ -144,8 +144,8 @@ function R(n, t) {
144
144
  return t.clone !== !1 && t.isMergeableObject(n) ? U(pe(n), n, t) : n;
145
145
  }
146
146
  function we(n, t, e) {
147
- return n.concat(t).map(function(a) {
148
- return R(a, e);
147
+ return n.concat(t).map(function(l) {
148
+ return R(l, e);
149
149
  });
150
150
  }
151
151
  function me(n, 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,26 +170,26 @@ 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
- var a = {};
177
- return e.isMergeableObject(n) && Z(n).forEach(function(l) {
178
- a[l] = R(n[l], e);
179
- }), Z(t).forEach(function(l) {
180
- ge(n, l) || (re(n, l) && e.isMergeableObject(t[l]) ? a[l] = me(l, e)(n[l], t[l], e) : a[l] = R(t[l], e));
181
- }), a;
176
+ var l = {};
177
+ return e.isMergeableObject(n) && Z(n).forEach(function(a) {
178
+ l[a] = R(n[a], e);
179
+ }), Z(t).forEach(function(a) {
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
+ }), l;
182
182
  }
183
183
  function U(n, t, e) {
184
- e = e || {}, e.arrayMerge = e.arrayMerge || we, e.isMergeableObject = e.isMergeableObject || ae, e.cloneUnlessOtherwiseSpecified = R;
185
- var a = Array.isArray(t), l = Array.isArray(n), g = a === l;
186
- return g ? a ? e.arrayMerge(n, t, e) : ye(n, t, e) : R(t, e);
184
+ e = e || {}, e.arrayMerge = e.arrayMerge || we, e.isMergeableObject = e.isMergeableObject || le, e.cloneUnlessOtherwiseSpecified = R;
185
+ var l = Array.isArray(t), a = Array.isArray(n), g = l === a;
186
+ return g ? l ? e.arrayMerge(n, t, e) : ye(n, t, e) : R(t, e);
187
187
  }
188
188
  U.all = function(t, e) {
189
189
  if (!Array.isArray(t))
190
190
  throw new Error("first argument should be an array");
191
- return t.reduce(function(a, l) {
192
- return U(a, l, e);
191
+ return t.reduce(function(l, a) {
192
+ return U(l, a, e);
193
193
  }, {});
194
194
  };
195
195
  var ve = U, Oe = ve;
@@ -252,69 +252,69 @@ function te(n) {
252
252
  }
253
253
  var A, O, P, B;
254
254
  class Y {
255
- constructor({ target: t, type: e, owner: a }) {
255
+ constructor({ target: t, type: e, owner: l }) {
256
256
  m(this, A, void 0);
257
257
  m(this, O, void 0);
258
258
  m(this, P, void 0);
259
259
  m(this, B, !1);
260
- const l = W(t);
261
- if (!l)
262
- throw new Error("Trigger element cannot be found");
260
+ const a = W(t);
263
261
  if (!a)
262
+ throw new Error("Trigger element cannot be found");
263
+ if (!l)
264
264
  throw new Error("Owning drawer instance hasn't been provided");
265
- v(this, A, l), v(this, O, a), v(this, P, e), this.init();
265
+ v(this, A, a), v(this, O, l), v(this, P, e), this.init();
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();
286
- var f, K, j, H, T;
287
- class Le extends le {
288
- constructor({ target: e, options: a }) {
286
+ var d, K, j, H, T;
287
+ class Le extends ae {
288
+ constructor({ target: e, options: l }) {
289
289
  super();
290
- m(this, f, void 0);
290
+ m(this, d, void 0);
291
291
  m(this, K, void 0);
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, f).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
- const l = te(a ? [J, a] : [J]), g = W(e);
307
+ const a = te(l ? [J, l] : [J]), g = W(e);
308
308
  if (g === null)
309
309
  throw new Error("Drawer's root cannot be found");
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
317
- }, this.setOptions(l), this.dom.panel.setAttribute("tabindex", "-1"), this.dom.root.classList.add("drawer_initialized");
317
+ }, this.setOptions(a), this.dom.panel.setAttribute("tabindex", "-1"), this.dom.root.classList.add("drawer_initialized");
318
318
  }
319
319
  addEventListeners() {
320
320
  this.dom.root.addEventListener("keydown", this.handleKeydown), document.addEventListener("click", this.handleDocumentClick);
@@ -324,40 +324,40 @@ class Le extends le {
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, f).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, f).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, f).openingClass), this.emit("open", { drawer: this, trigger: e }), typeof s(this, f).openAnimationDuration == "number" && await V(s(this, f).openAnimationDuration), this.dom.root.classList.remove(s(this, f).openingClass), this.dom.root.classList.add(s(this, f).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, f).onCloseConfirm && !s(this, f).onCloseConfirm(this, e) || (this.emit("beforeClose", { drawer: this, trigger: e }), this.removeEventListeners(), v(this, j, !1), this.dom.root.classList.remove(s(this, f).openClass), this.dom.root.classList.add(s(this, f).closingClass), this.emit("close", { drawer: this, trigger: e }), typeof s(this, f).closeAnimationDuration == "number" && await V(s(this, f).closeAnimationDuration), this.dom.root.classList.remove(s(this, f).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, f).closeOnOutsideClick && (typeof s(this, f).closeOnOutsideClick == "object" && s(this, f).closeOnOutsideClick.hasOwnProperty("checkTarget") ? s(this, f).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, f).closeOnOutsideClick && this.close();
357
+ r(this, d).closeOnOutsideClick && this.close();
358
358
  }
359
359
  focus() {
360
- s(this, f).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();
@@ -367,27 +367,27 @@ class Le extends le {
367
367
  return e ? (e.focus(), !0) : !1;
368
368
  }
369
369
  setOptions(e) {
370
- var a;
371
- e.hasOwnProperty("modal") && ((a = s(this, f)) == null ? void 0 : a.modal) !== e.modal && (this.isModal = e.modal), v(this, f, s(this, f) ? te([s(this, f), e]) : e);
370
+ var l;
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);
375
375
  }
376
376
  }
377
- f = new WeakMap(), K = new WeakMap(), j = new WeakMap(), H = new WeakMap(), T = new WeakMap();
377
+ d = new WeakMap(), K = new WeakMap(), j = new WeakMap(), H = new WeakMap(), T = new WeakMap();
378
378
  var M;
379
379
  class ke {
380
380
  constructor() {
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 a = s(this, M).get(t);
386
- a.size === 0 && t.classList.add("scroll-lock-by-drawer"), a.add(e);
384
+ r(this, M).has(t) || r(this, M).set(t, /* @__PURE__ */ new Set());
385
+ const l = r(this, M).get(t);
386
+ l.size === 0 && t.classList.add("scroll-lock-by-drawer"), l.add(e);
387
387
  }
388
388
  unlock(t, e) {
389
- const a = s(this, M).get(t);
390
- a == null || a.delete(e), (!a || a.size === 0) && t.classList.remove("scroll-lock-by-drawer");
389
+ const l = r(this, M).get(t);
390
+ l == null || l.delete(e), (!l || l.size === 0) && t.classList.remove("scroll-lock-by-drawer");
391
391
  }
392
392
  }
393
393
  M = new WeakMap();
@@ -399,31 +399,31 @@ const $ = class $ {
399
399
  m(this, C, void 0);
400
400
  m(this, D, void 0);
401
401
  m(this, k, void 0);
402
- v(this, E, []), v(this, C, []), v(this, k, /* @__PURE__ */ new Map()), this.onBeforeOpen = ({ drawer: l, trigger: g }) => {
403
- l.isModal ? (s(this, k).set(l, s(this, E).length), s(this, E).push(l), l.zIndex = s(this, C).length + s(this, E).length) : (s(this, k).set(l, s(this, C).length), s(this, C).push(l), l.zIndex = s(this, C).length, s(this, E).length > 0 && s(this, E).forEach((p, r) => p.zIndex = s(this, C).length + r + 1)), l.willLockScroll && this.lockScroll(l);
404
- }, this.onCloseAnimationEnd = ({ drawer: l, trigger: g }) => {
405
- const p = l.isModal ? s(this, E) : s(this, C);
406
- for (delete p[s(this, k).get(l)]; p.length && !p.at(-1); )
402
+ v(this, E, []), v(this, C, []), v(this, k, /* @__PURE__ */ new Map()), this.onBeforeOpen = ({ drawer: a, trigger: g }) => {
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
+ }, this.onCloseAnimationEnd = ({ drawer: a, trigger: g }) => {
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(l), this.unlockScroll(l);
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 a = s(this, x).closest("[data-scrollable], html") || s(this, x).matches("[data-scrollable], html") && s(this, x);
415
- if (a === null)
414
+ const l = r(this, x).closest("[data-scrollable], html") || r(this, x).matches("[data-scrollable], html") && r(this, x);
415
+ if (l === null)
416
416
  throw new Error("Scrollable container for group root cannot be found");
417
- v(this, D, a);
417
+ v(this, D, l);
418
418
  }
419
419
  add(t) {
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,65 +438,65 @@ 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"])') } });
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
- open(t, { trigger: e, options: a } = {}) {
483
- var l;
484
- (l = this.get(t)) == null || l.open(e);
482
+ open(t, { trigger: e, options: l } = {}) {
483
+ var a;
484
+ (a = this.get(t)) == null || a.open(e);
485
485
  }
486
- close(t, { trigger: e, options: a } = {}) {
487
- var l;
488
- (l = this.get(t)) == null || l.close(e);
486
+ close(t, { trigger: e, options: l } = {}) {
487
+ var a;
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
- on(t, e, a) {
494
- var l;
493
+ on(t, e, l) {
494
+ var a;
495
495
  if (t)
496
- (l = this.get(t)) == null || l.on(e, a);
496
+ (a = this.get(t)) == null || a.on(e, l);
497
497
  else
498
- for (const [g, p] of s(this, I))
499
- p.on(e, a);
498
+ for (const [g, p] of r(this, I))
499
+ p.on(e, l);
500
500
  }
501
501
  };
502
502
  I = new WeakMap(), z = new WeakMap();
@@ -1,6 +1,6 @@
1
- (function(d,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(d=typeof globalThis<"u"?globalThis:d||self,g(d.Drawers={}))})(this,function(d){"use strict";var le=(d,g,C)=>{if(!g.has(d))throw TypeError("Cannot "+C)};var n=(d,g,C)=>(le(d,g,"read from private field"),C?C.call(d):g.get(d)),b=(d,g,C)=>{if(g.has(d))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(d):g.set(d,C)},A=(d,g,C,Y)=>(le(d,g,"write to private field"),Y?Y.call(d,C):g.set(d,C),C);var _,E,z,K,f,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 fe=typeof Symbol=="function"&&Symbol.for,de=fe?Symbol.for("react.element"):60103;function pe(r){return r.$$typeof===de}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);/*!
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 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,f,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,f).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,f).modal}set isModal(e){this.dom.root.classList[e?"add":"remove"]("drawer_modal")}get willLockScroll(){return n(this,f).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,f).openingClass),this.emit("open",{drawer:this,trigger:e}),typeof n(this,f).openAnimationDuration=="number"&&await ee(n(this,f).openAnimationDuration),this.dom.root.classList.remove(n(this,f).openingClass),this.dom.root.classList.add(n(this,f).openClass),this.emit("openAnimationEnd",{drawer:this,trigger:e}),this.focus(),this.addEventListeners())}async close(e){n(this,f).onCloseConfirm&&!n(this,f).onCloseConfirm(this,e)||(this.emit("beforeClose",{drawer:this,trigger:e}),this.removeEventListeners(),A(this,x,!1),this.dom.root.classList.remove(n(this,f).openClass),this.dom.root.classList.add(n(this,f).closingClass),this.emit("close",{drawer:this,trigger:e}),typeof n(this,f).closeAnimationDuration=="number"&&await ee(n(this,f).closeAnimationDuration),this.dom.root.classList.remove(n(this,f).closingClass),this.emit("closeAnimationEnd",{drawer:this,trigger:e}))}handleOtherDrawerClick(e){}handleOutsideClick(e){n(this,f).closeOnOutsideClick&&(typeof n(this,f).closeOnOutsideClick=="object"&&n(this,f).closeOnOutsideClick.hasOwnProperty("checkTarget")?n(this,f).closeOnOutsideClick.checkTarget(e.target)&&this.close():this.close())}handleUnderlayClick(e){n(this,f).closeOnOutsideClick&&this.close()}focus(){n(this,f).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,f))==null?void 0:a.modal)!==e.modal&&(this.isModal=e.modal),A(this,f,n(this,f)?oe([n(this,f),e]):e)}assignGroup(e){A(this,X,e)}}f=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('*:not([data-modal="false"])')}});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),d.Drawer=ie,d.DrawersGroup=B,d.Trigger=Q,d.default=W,Object.defineProperties(d,{__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.18",
3
+ "version": "1.1.20",
4
4
  "description": "Drawers controller.",
5
5
  "files": [
6
6
  "dist"