vanilla-drawers 1.0.14 → 1.0.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,45 +1,45 @@
1
- var J = (n, t, e) => {
1
+ var W = (n, t, e) => {
2
2
  if (!t.has(n))
3
3
  throw TypeError("Cannot " + e);
4
4
  };
5
- var r = (n, t, e) => (J(n, t, "read from private field"), e ? e.call(n) : t.get(n)), y = (n, t, e) => {
5
+ var r = (n, t, e) => (W(n, t, "read from private field"), e ? e.call(n) : t.get(n)), y = (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
- }, b = (n, t, e, l) => (J(n, t, "write to private field"), l ? l.call(n, e) : t.set(n, e), e);
10
- function te(n) {
9
+ }, b = (n, t, e, o) => (W(n, t, "write to private field"), o ? o.call(n, e) : t.set(n, e), e);
10
+ function ne(n) {
11
11
  return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
12
12
  }
13
- var ne = { exports: {} };
13
+ var re = { exports: {} };
14
14
  (function(n) {
15
15
  var t = Object.prototype.hasOwnProperty, e = "~";
16
- function l() {
16
+ function o() {
17
17
  }
18
- Object.create && (l.prototype = /* @__PURE__ */ Object.create(null), new l().__proto__ || (e = !1));
19
- function s(h, i, o) {
20
- this.fn = h, this.context = i, this.once = o || !1;
18
+ Object.create && (o.prototype = /* @__PURE__ */ Object.create(null), new o().__proto__ || (e = !1));
19
+ function s(h, i, l) {
20
+ this.fn = h, this.context = i, this.once = l || !1;
21
21
  }
22
- function f(h, i, o, c, O) {
23
- if (typeof o != "function")
22
+ function f(h, i, l, c, O) {
23
+ if (typeof l != "function")
24
24
  throw new TypeError("The listener must be a function");
25
- var g = new s(o, c || h, O), w = e ? e + i : i;
25
+ var g = new s(l, c || h, O), w = e ? e + i : i;
26
26
  return h._events[w] ? h._events[w].fn ? h._events[w] = [h._events[w], g] : h._events[w].push(g) : (h._events[w] = g, h._eventsCount++), h;
27
27
  }
28
28
  function d(h, i) {
29
- --h._eventsCount === 0 ? h._events = new l() : delete h._events[i];
29
+ --h._eventsCount === 0 ? h._events = new o() : delete h._events[i];
30
30
  }
31
31
  function u() {
32
- this._events = new l(), this._eventsCount = 0;
32
+ this._events = new o(), this._eventsCount = 0;
33
33
  }
34
34
  u.prototype.eventNames = function() {
35
- var i = [], o, c;
35
+ var i = [], l, c;
36
36
  if (this._eventsCount === 0)
37
37
  return i;
38
- for (c in o = this._events)
39
- t.call(o, c) && i.push(e ? c.slice(1) : c);
40
- return Object.getOwnPropertySymbols ? i.concat(Object.getOwnPropertySymbols(o)) : i;
38
+ for (c in l = this._events)
39
+ t.call(l, c) && i.push(e ? c.slice(1) : c);
40
+ return Object.getOwnPropertySymbols ? i.concat(Object.getOwnPropertySymbols(l)) : i;
41
41
  }, u.prototype.listeners = function(i) {
42
- var o = e ? e + i : i, c = this._events[o];
42
+ var l = e ? e + i : i, c = this._events[l];
43
43
  if (!c)
44
44
  return [];
45
45
  if (c.fn)
@@ -48,172 +48,172 @@ var ne = { exports: {} };
48
48
  w[O] = c[O].fn;
49
49
  return w;
50
50
  }, u.prototype.listenerCount = function(i) {
51
- var o = e ? e + i : i, c = this._events[o];
51
+ var l = e ? e + i : i, c = this._events[l];
52
52
  return c ? c.fn ? 1 : c.length : 0;
53
- }, u.prototype.emit = function(i, o, c, O, g, w) {
53
+ }, u.prototype.emit = function(i, l, c, O, g, w) {
54
54
  var _ = e ? e + i : i;
55
55
  if (!this._events[_])
56
56
  return !1;
57
- var a = this._events[_], S = arguments.length, k, m;
57
+ var a = this._events[_], k = arguments.length, S, m;
58
58
  if (a.fn) {
59
- switch (a.once && this.removeListener(i, a.fn, void 0, !0), S) {
59
+ switch (a.once && this.removeListener(i, a.fn, void 0, !0), k) {
60
60
  case 1:
61
61
  return a.fn.call(a.context), !0;
62
62
  case 2:
63
- return a.fn.call(a.context, o), !0;
63
+ return a.fn.call(a.context, l), !0;
64
64
  case 3:
65
- return a.fn.call(a.context, o, c), !0;
65
+ return a.fn.call(a.context, l, c), !0;
66
66
  case 4:
67
- return a.fn.call(a.context, o, c, O), !0;
67
+ return a.fn.call(a.context, l, c, O), !0;
68
68
  case 5:
69
- return a.fn.call(a.context, o, c, O, g), !0;
69
+ return a.fn.call(a.context, l, c, O, g), !0;
70
70
  case 6:
71
- return a.fn.call(a.context, o, c, O, g, w), !0;
71
+ return a.fn.call(a.context, l, c, O, g, w), !0;
72
72
  }
73
- for (m = 1, k = new Array(S - 1); m < S; m++)
74
- k[m - 1] = arguments[m];
75
- a.fn.apply(a.context, k);
73
+ for (m = 1, S = new Array(k - 1); m < k; m++)
74
+ S[m - 1] = arguments[m];
75
+ a.fn.apply(a.context, S);
76
76
  } else {
77
- var se = a.length, N;
78
- for (m = 0; m < se; m++)
79
- switch (a[m].once && this.removeListener(i, a[m].fn, void 0, !0), S) {
77
+ var oe = a.length, N;
78
+ for (m = 0; m < oe; m++)
79
+ switch (a[m].once && this.removeListener(i, a[m].fn, void 0, !0), k) {
80
80
  case 1:
81
81
  a[m].fn.call(a[m].context);
82
82
  break;
83
83
  case 2:
84
- a[m].fn.call(a[m].context, o);
84
+ a[m].fn.call(a[m].context, l);
85
85
  break;
86
86
  case 3:
87
- a[m].fn.call(a[m].context, o, c);
87
+ a[m].fn.call(a[m].context, l, c);
88
88
  break;
89
89
  case 4:
90
- a[m].fn.call(a[m].context, o, c, O);
90
+ a[m].fn.call(a[m].context, l, c, O);
91
91
  break;
92
92
  default:
93
- if (!k)
94
- for (N = 1, k = new Array(S - 1); N < S; N++)
95
- k[N - 1] = arguments[N];
96
- a[m].fn.apply(a[m].context, k);
93
+ if (!S)
94
+ for (N = 1, S = new Array(k - 1); N < k; N++)
95
+ S[N - 1] = arguments[N];
96
+ a[m].fn.apply(a[m].context, S);
97
97
  }
98
98
  }
99
99
  return !0;
100
- }, u.prototype.on = function(i, o, c) {
101
- return f(this, i, o, c, !1);
102
- }, u.prototype.once = function(i, o, c) {
103
- return f(this, i, o, c, !0);
104
- }, u.prototype.removeListener = function(i, o, c, O) {
100
+ }, u.prototype.on = function(i, l, c) {
101
+ return f(this, i, l, c, !1);
102
+ }, u.prototype.once = function(i, l, c) {
103
+ return f(this, i, l, c, !0);
104
+ }, u.prototype.removeListener = function(i, l, c, O) {
105
105
  var g = e ? e + i : i;
106
106
  if (!this._events[g])
107
107
  return this;
108
- if (!o)
108
+ if (!l)
109
109
  return d(this, g), this;
110
110
  var w = this._events[g];
111
111
  if (w.fn)
112
- w.fn === o && (!O || w.once) && (!c || w.context === c) && d(this, g);
112
+ w.fn === l && (!O || w.once) && (!c || w.context === c) && d(this, g);
113
113
  else {
114
- for (var _ = 0, a = [], S = w.length; _ < S; _++)
115
- (w[_].fn !== o || O && !w[_].once || c && w[_].context !== c) && a.push(w[_]);
114
+ for (var _ = 0, a = [], k = w.length; _ < k; _++)
115
+ (w[_].fn !== l || O && !w[_].once || c && w[_].context !== c) && a.push(w[_]);
116
116
  a.length ? this._events[g] = a.length === 1 ? a[0] : a : d(this, g);
117
117
  }
118
118
  return this;
119
119
  }, u.prototype.removeAllListeners = function(i) {
120
- var o;
121
- return i ? (o = e ? e + i : i, this._events[o] && d(this, o)) : (this._events = new l(), this._eventsCount = 0), this;
120
+ var l;
121
+ return i ? (l = e ? e + i : i, this._events[l] && d(this, l)) : (this._events = new o(), this._eventsCount = 0), this;
122
122
  }, u.prototype.off = u.prototype.removeListener, u.prototype.addListener = u.prototype.on, u.prefixed = e, u.EventEmitter = u, n.exports = u;
123
- })(ne);
124
- var ie = ne.exports;
125
- const oe = /* @__PURE__ */ te(ie);
126
- var le = function(t) {
127
- return ae(t) && !ce(t);
123
+ })(re);
124
+ var ie = re.exports;
125
+ const le = /* @__PURE__ */ ne(ie);
126
+ var ae = function(t) {
127
+ return ce(t) && !he(t);
128
128
  };
129
- function ae(n) {
129
+ function ce(n) {
130
130
  return !!n && typeof n == "object";
131
131
  }
132
- function ce(n) {
132
+ function he(n) {
133
133
  var t = Object.prototype.toString.call(n);
134
- return t === "[object RegExp]" || t === "[object Date]" || fe(n);
135
- }
136
- var he = typeof Symbol == "function" && Symbol.for, ue = he ? Symbol.for("react.element") : 60103;
137
- function fe(n) {
138
- return n.$$typeof === ue;
134
+ return t === "[object RegExp]" || t === "[object Date]" || de(n);
139
135
  }
136
+ var ue = typeof Symbol == "function" && Symbol.for, fe = ue ? Symbol.for("react.element") : 60103;
140
137
  function de(n) {
138
+ return n.$$typeof === fe;
139
+ }
140
+ function pe(n) {
141
141
  return Array.isArray(n) ? [] : {};
142
142
  }
143
- function R(n, t) {
144
- return t.clone !== !1 && t.isMergeableObject(n) ? U(de(n), n, t) : n;
143
+ function B(n, t) {
144
+ return t.clone !== !1 && t.isMergeableObject(n) ? U(pe(n), n, t) : n;
145
145
  }
146
- function pe(n, t, e) {
147
- return n.concat(t).map(function(l) {
148
- return R(l, e);
146
+ function we(n, t, e) {
147
+ return n.concat(t).map(function(o) {
148
+ return B(o, e);
149
149
  });
150
150
  }
151
- function we(n, t) {
151
+ function me(n, t) {
152
152
  if (!t.customMerge)
153
153
  return U;
154
154
  var e = t.customMerge(n);
155
155
  return typeof e == "function" ? e : U;
156
156
  }
157
- function me(n) {
157
+ function ye(n) {
158
158
  return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(n).filter(function(t) {
159
159
  return Object.propertyIsEnumerable.call(n, t);
160
160
  }) : [];
161
161
  }
162
- function Q(n) {
163
- return Object.keys(n).concat(me(n));
162
+ function X(n) {
163
+ return Object.keys(n).concat(ye(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 {
169
169
  return !1;
170
170
  }
171
171
  }
172
- function ye(n, t) {
173
- return re(n, t) && !(Object.hasOwnProperty.call(n, t) && Object.propertyIsEnumerable.call(n, t));
172
+ function ge(n, t) {
173
+ return se(n, t) && !(Object.hasOwnProperty.call(n, t) && Object.propertyIsEnumerable.call(n, t));
174
174
  }
175
175
  function be(n, t, e) {
176
- var l = {};
177
- return e.isMergeableObject(n) && Q(n).forEach(function(s) {
178
- l[s] = R(n[s], e);
179
- }), Q(t).forEach(function(s) {
180
- ye(n, s) || (re(n, s) && e.isMergeableObject(t[s]) ? l[s] = we(s, e)(n[s], t[s], e) : l[s] = R(t[s], e));
181
- }), l;
176
+ var o = {};
177
+ return e.isMergeableObject(n) && X(n).forEach(function(s) {
178
+ o[s] = B(n[s], e);
179
+ }), X(t).forEach(function(s) {
180
+ ge(n, s) || (se(n, s) && e.isMergeableObject(t[s]) ? o[s] = me(s, e)(n[s], t[s], e) : o[s] = B(t[s], e));
181
+ }), o;
182
182
  }
183
183
  function U(n, t, e) {
184
- e = e || {}, e.arrayMerge = e.arrayMerge || pe, e.isMergeableObject = e.isMergeableObject || le, e.cloneUnlessOtherwiseSpecified = R;
185
- var l = Array.isArray(t), s = Array.isArray(n), f = l === s;
186
- return f ? l ? e.arrayMerge(n, t, e) : be(n, t, e) : R(t, e);
184
+ e = e || {}, e.arrayMerge = e.arrayMerge || we, e.isMergeableObject = e.isMergeableObject || ae, e.cloneUnlessOtherwiseSpecified = B;
185
+ var o = Array.isArray(t), s = Array.isArray(n), f = o === s;
186
+ return f ? o ? e.arrayMerge(n, t, e) : be(n, t, e) : B(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(l, s) {
192
- return U(l, s, e);
191
+ return t.reduce(function(o, s) {
192
+ return U(o, s, e);
193
193
  }, {});
194
194
  };
195
- var ge = U, Oe = ge;
196
- const ve = /* @__PURE__ */ te(Oe);
195
+ var Oe = U, ve = Oe;
196
+ const Ee = /* @__PURE__ */ ne(ve);
197
197
  /*!
198
198
  * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
199
199
  *
200
200
  * Copyright (c) 2014-2017, Jon Schlinkert.
201
201
  * Released under the MIT License.
202
202
  */
203
- function W(n) {
203
+ function Z(n) {
204
204
  return Object.prototype.toString.call(n) === "[object Object]";
205
205
  }
206
- function Ee(n) {
206
+ function Ae(n) {
207
207
  var t, e;
208
- return W(n) === !1 ? !1 : (t = n.constructor, t === void 0 ? !0 : (e = t.prototype, !(W(e) === !1 || e.hasOwnProperty("isPrototypeOf") === !1)));
208
+ return Z(n) === !1 ? !1 : (t = n.constructor, t === void 0 ? !0 : (e = t.prototype, !(Z(e) === !1 || e.hasOwnProperty("isPrototypeOf") === !1)));
209
209
  }
210
- function Y(n) {
210
+ function Q(n) {
211
211
  return n instanceof Element ? n : document.querySelector(n);
212
212
  }
213
- async function F(n) {
213
+ async function V(n) {
214
214
  return await new Promise((t) => setTimeout(t, n));
215
215
  }
216
- const Ae = '[data-elem="drawer.panel"]', $ = "data-drawers-group", Ce = [
216
+ const Ce = '[data-elem="drawer.panel"]', F = "data-drawers-group", _e = [
217
217
  "a[href]",
218
218
  "area[href]",
219
219
  'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
@@ -225,7 +225,7 @@ const Ae = '[data-elem="drawer.panel"]', $ = "data-drawers-group", Ce = [
225
225
  "embed",
226
226
  "[contenteditable]",
227
227
  '[tabindex]:not([tabindex^="-"])'
228
- ], X = {
228
+ ], ee = {
229
229
  modal: !0,
230
230
  focusOnChild: !0,
231
231
  closeOnEsc: !0,
@@ -243,26 +243,26 @@ const Ae = '[data-elem="drawer.panel"]', $ = "data-drawers-group", Ce = [
243
243
  closeAnimationDuration: 0,
244
244
  lockPageScroll: !0
245
245
  };
246
- function Z(n) {
247
- return ve.all(n, {
248
- isMergeableObject: Ee
246
+ function te(n) {
247
+ return Ee.all(n, {
248
+ isMergeableObject: Ae
249
249
  });
250
250
  }
251
- var E, v, P, B;
252
- class H {
253
- constructor({ target: t, type: e, owner: l }) {
251
+ var E, v, P, $;
252
+ class Y {
253
+ constructor({ target: t, type: e, owner: o }) {
254
254
  y(this, E, void 0);
255
255
  y(this, v, void 0);
256
256
  y(this, P, void 0);
257
- y(this, B, !1);
258
- const s = Y(t);
257
+ y(this, $, !1);
258
+ const s = Q(t);
259
259
  if (!s)
260
260
  throw new Error("Trigger element cannot be found");
261
- b(this, E, s), b(this, v, l), b(this, P, e), this.init();
261
+ b(this, E, s), b(this, v, o), b(this, P, e), this.init();
262
262
  }
263
263
  // Accessors
264
264
  get isActive() {
265
- return r(this, B);
265
+ return r(this, $);
266
266
  }
267
267
  get owner() {
268
268
  return r(this, v);
@@ -275,22 +275,22 @@ class H {
275
275
  t.__drawerTrigger = this, r(this, P) === "open" ? r(this, v).isOpen || r(this, v).open(r(this, E)) : r(this, P) === "close" ? r(this, v).isOpen && r(this, v).close(r(this, E)) : r(this, v).isOpen ? r(this, v).close(r(this, E)) : r(this, v).open(r(this, E));
276
276
  }
277
277
  setActive(t) {
278
- b(this, B, t), t ? r(this, E).classList.add("drawer-trigger_active") : r(this, E).classList.remove("drawer-trigger_active");
278
+ b(this, $, t), t ? r(this, E).classList.add("drawer-trigger_active") : r(this, E).classList.remove("drawer-trigger_active");
279
279
  }
280
280
  }
281
- E = new WeakMap(), v = new WeakMap(), P = new WeakMap(), B = new WeakMap();
282
- var p, G, M, K, T;
283
- class _e extends oe {
284
- constructor({ target: e, options: l }) {
281
+ E = new WeakMap(), v = new WeakMap(), P = new WeakMap(), $ = new WeakMap();
282
+ var p, K, j, H, T;
283
+ class ke extends le {
284
+ constructor({ target: e, options: o }) {
285
285
  super();
286
286
  y(this, p, void 0);
287
- y(this, G, void 0);
288
- y(this, M, void 0);
289
287
  y(this, K, void 0);
288
+ y(this, j, void 0);
289
+ y(this, H, void 0);
290
290
  y(this, T, void 0);
291
291
  this.handleDocumentClick = async (u) => {
292
- var o;
293
- if (((o = u.__drawerTrigger) == null ? void 0 : o.owner) === this)
292
+ var l;
293
+ if (((l = u.__drawerTrigger) == null ? void 0 : l.owner) === this)
294
294
  return;
295
295
  const h = u.target;
296
296
  if (u.composedPath(), this.dom.panel.contains(h))
@@ -300,11 +300,11 @@ class _e extends oe {
300
300
  }, this.handleKeydown = (u) => {
301
301
  r(this, p).closeOnEsc && u.key === "Escape" && this.close();
302
302
  };
303
- const s = Z(l ? [X, l] : [X]), f = Y(e);
303
+ const s = te(o ? [ee, o] : [ee]), f = Q(e);
304
304
  if (f === null)
305
305
  throw new Error("Drawer's root cannot be found");
306
306
  b(this, T, f.getAttribute("data-drawer"));
307
- const d = f.querySelector(Ae);
307
+ const d = f.querySelector(Ce);
308
308
  if (d === null)
309
309
  throw new Error(`Drawer's panel cannot be found. Alias: ${r(this, T)}`);
310
310
  this.dom = {
@@ -320,7 +320,7 @@ class _e extends oe {
320
320
  }
321
321
  // Accessors
322
322
  get isOpen() {
323
- return r(this, M);
323
+ return r(this, j);
324
324
  }
325
325
  get isModal() {
326
326
  return r(this, p).modal;
@@ -332,17 +332,17 @@ class _e extends oe {
332
332
  return r(this, p).lockPageScroll;
333
333
  }
334
334
  set zIndex(e) {
335
- this.dom.root.style.setProperty("--z-index", String(e)), b(this, G, e);
335
+ this.dom.root.style.setProperty("--z-index", String(e)), b(this, K, e);
336
336
  }
337
337
  get zIndex() {
338
- return r(this, G);
338
+ return r(this, K);
339
339
  }
340
340
  // Methods
341
341
  async open(e) {
342
- await F(0), !r(this, M) && (this.emit("beforeOpen", { drawer: this, trigger: e }), b(this, M, !0), this.dom.root.classList.add(r(this, p).openClass), this.emit("open", { drawer: this, trigger: e }), typeof r(this, p).openAnimationDuration == "number" && await F(r(this, p).openAnimationDuration), this.emit("openAnimationEnd", { drawer: this, trigger: e }), this.focus(), this.addEventListeners());
342
+ await V(0), !r(this, j) && (this.emit("beforeOpen", { drawer: this, trigger: e }), b(this, j, !0), this.dom.root.classList.add(r(this, p).openClass), this.emit("open", { drawer: this, trigger: e }), typeof r(this, p).openAnimationDuration == "number" && await V(r(this, p).openAnimationDuration), this.emit("openAnimationEnd", { drawer: this, trigger: e }), this.focus(), this.addEventListeners());
343
343
  }
344
344
  async close(e) {
345
- r(this, p).onCloseConfirm && !r(this, p).onCloseConfirm(this, e) || (this.emit("beforeClose", { drawer: this, trigger: e }), this.removeEventListeners(), b(this, M, !1), this.dom.root.classList.remove(r(this, p).openClass), this.emit("close", { drawer: this, trigger: e }), typeof r(this, p).closeAnimationDuration == "number" && await F(r(this, p).closeAnimationDuration), this.emit("closeAnimationEnd", { drawer: this, trigger: e }));
345
+ r(this, p).onCloseConfirm && !r(this, p).onCloseConfirm(this, e) || (this.emit("beforeClose", { drawer: this, trigger: e }), this.removeEventListeners(), b(this, j, !1), this.dom.root.classList.remove(r(this, p).openClass), this.emit("close", { drawer: this, trigger: e }), typeof r(this, p).closeAnimationDuration == "number" && await V(r(this, p).closeAnimationDuration), this.emit("closeAnimationEnd", { drawer: this, trigger: e }));
346
346
  }
347
347
  handleOtherDrawerClick(e) {
348
348
  }
@@ -359,118 +359,134 @@ class _e extends oe {
359
359
  this.dom.panel.focus();
360
360
  }
361
361
  focusChild() {
362
- const e = this.dom.panel.querySelector(Ce.join(","));
362
+ const e = this.dom.panel.querySelector(_e.join(","));
363
363
  return e ? (e.focus(), !0) : !1;
364
364
  }
365
365
  setOptions(e) {
366
- var l;
367
- e.hasOwnProperty("modal") && ((l = r(this, p)) == null ? void 0 : l.modal) !== e.modal && (this.isModal = e.modal), b(this, p, r(this, p) ? Z([r(this, p), e]) : e);
366
+ var o;
367
+ e.hasOwnProperty("modal") && ((o = r(this, p)) == null ? void 0 : o.modal) !== e.modal && (this.isModal = e.modal), b(this, p, r(this, p) ? te([r(this, p), e]) : e);
368
368
  }
369
369
  assignGroup(e) {
370
- b(this, K, e);
370
+ b(this, H, e);
371
+ }
372
+ }
373
+ p = new WeakMap(), K = new WeakMap(), j = new WeakMap(), H = new WeakMap(), T = new WeakMap();
374
+ var M;
375
+ class Le {
376
+ constructor() {
377
+ y(this, M, /* @__PURE__ */ new Map());
378
+ }
379
+ lock(t, e) {
380
+ r(this, M).has(t) || r(this, M).set(t, /* @__PURE__ */ new Set());
381
+ const o = r(this, M).get(t);
382
+ o.size === 0 && t.classList.add("scroll-lock-by-drawer"), o.add(e);
383
+ }
384
+ unlock(t, e) {
385
+ const o = r(this, M).get(t);
386
+ o == null || o.delete(e), (!o || o.size === 0) && t.classList.remove("scroll-lock-by-drawer");
371
387
  }
372
388
  }
373
- p = new WeakMap(), G = new WeakMap(), M = new WeakMap(), K = new WeakMap(), T = new WeakMap();
374
- var x, A, C, D, L, j;
375
- class ee {
389
+ M = new WeakMap();
390
+ var x, A, C, D, L;
391
+ const q = class q {
376
392
  constructor(t) {
377
393
  y(this, x, void 0);
378
394
  y(this, A, void 0);
379
395
  y(this, C, void 0);
380
396
  y(this, D, void 0);
381
397
  y(this, L, void 0);
382
- y(this, j, void 0);
383
- b(this, A, []), b(this, C, []), b(this, L, /* @__PURE__ */ new Set()), b(this, j, /* @__PURE__ */ new Map()), this.onBeforeOpen = ({ drawer: s, trigger: f }) => {
384
- s.isModal ? (r(this, j).set(s, r(this, A).length), r(this, A).push(s), s.zIndex = r(this, C).length + r(this, A).length) : (r(this, j).set(s, r(this, C).length), r(this, C).push(s), s.zIndex = r(this, C).length, r(this, A).length > 0 && r(this, A).forEach((d, u) => d.zIndex = r(this, C).length + u + 1)), s.willLockScroll && this.lockScroll(s);
398
+ b(this, A, []), b(this, C, []), b(this, L, /* @__PURE__ */ new Map()), this.onBeforeOpen = ({ drawer: s, trigger: f }) => {
399
+ s.isModal ? (r(this, L).set(s, r(this, A).length), r(this, A).push(s), s.zIndex = r(this, C).length + r(this, A).length) : (r(this, L).set(s, r(this, C).length), r(this, C).push(s), s.zIndex = r(this, C).length, r(this, A).length > 0 && r(this, A).forEach((d, u) => d.zIndex = r(this, C).length + u + 1)), s.willLockScroll && this.lockScroll(s);
385
400
  }, this.onCloseAnimationEnd = ({ drawer: s, trigger: f }) => {
386
401
  const d = s.isModal ? r(this, A) : r(this, C);
387
- for (delete d[r(this, j).get(s)]; d.length && !d.at(-1); )
402
+ for (delete d[r(this, L).get(s)]; d.length && !d.at(-1); )
388
403
  d.pop();
389
- r(this, j).delete(s), this.unlockScroll(s);
404
+ r(this, L).delete(s), this.unlockScroll(s);
390
405
  };
391
- const e = Y(t);
406
+ const e = Q(t);
392
407
  if (e === null)
393
408
  throw new Error("Drawer's group root cannot be found");
394
409
  b(this, x, e);
395
- const l = r(this, x).closest("[data-scrollable], html") || r(this, x).matches("[data-scrollable], html") && r(this, x);
396
- if (l === null)
410
+ const o = r(this, x).closest("[data-scrollable], html") || r(this, x).matches("[data-scrollable], html") && r(this, x);
411
+ if (o === null)
397
412
  throw new Error("Scrollable container for group root cannot be found");
398
- b(this, D, l);
413
+ b(this, D, o);
399
414
  }
400
415
  add(t) {
401
416
  t.on("beforeOpen", this.onBeforeOpen), t.on("closeAnimationEnd", this.onCloseAnimationEnd), t.assignGroup(this);
402
417
  }
403
418
  lockScroll(t) {
404
- r(this, L).size === 0 && r(this, D).classList.add("scroll-lock-by-drawer"), r(this, L).add(t);
419
+ q.scrollLock.lock(r(this, D), t);
405
420
  }
406
421
  unlockScroll(t) {
407
- r(this, L).delete(t), r(this, L).size === 0 && r(this, D).classList.remove("scroll-lock-by-drawer");
422
+ q.scrollLock.unlock(r(this, D), t);
408
423
  }
409
- }
410
- x = new WeakMap(), A = new WeakMap(), C = new WeakMap(), D = new WeakMap(), L = new WeakMap(), j = new WeakMap();
424
+ };
425
+ x = new WeakMap(), A = new WeakMap(), C = new WeakMap(), D = new WeakMap(), L = new WeakMap(), q.scrollLock = new Le();
426
+ let G = q;
411
427
  var I, z;
412
- const q = class q {
428
+ const R = class R {
413
429
  constructor() {
414
430
  y(this, I, /* @__PURE__ */ new Map());
415
431
  y(this, z, /* @__PURE__ */ new Map());
416
- if (q.instance)
417
- return q.instance;
418
- q.instance = this;
432
+ if (R.instance)
433
+ return R.instance;
434
+ R.instance = this;
419
435
  }
420
436
  init(t) {
421
- document.querySelectorAll(`[${$}]`).forEach((f) => {
422
- const d = f.getAttribute($);
423
- typeof d == "string" && r(this, z).set(d, new ee(f));
424
- }), r(this, z).set("default", new ee(document.documentElement)), document.querySelectorAll("[data-drawer]").forEach((f) => {
425
- var o;
437
+ document.querySelectorAll(`[${F}]`).forEach((f) => {
438
+ const d = f.getAttribute(F);
439
+ typeof d == "string" && r(this, z).set(d, new G(f));
440
+ }), r(this, z).set("default", new G(document.documentElement)), document.querySelectorAll("[data-drawer]").forEach((f) => {
441
+ var l;
426
442
  const d = f.getAttribute("data-drawer");
427
443
  if (typeof d != "string")
428
444
  return;
429
- const u = new _e({ target: f, options: t });
445
+ const u = new ke({ target: f, options: t });
430
446
  r(this, I).set(d, u);
431
- const h = f.closest(`[${$}]`), i = h ? h.getAttribute($) : "default";
447
+ const h = f.closest(`[${F}]`), i = h ? h.getAttribute(F) : "default";
432
448
  if (typeof i != "string")
433
449
  throw new Error("Group doesn't have alias set correctly");
434
- (o = r(this, z).get(i)) == null || o.add(u);
450
+ (l = r(this, z).get(i)) == null || l.add(u);
435
451
  }), document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach((f) => {
436
452
  if (f.hasAttribute("data-drawer-open")) {
437
453
  const d = f.getAttribute("data-drawer-open");
438
- new H({ target: f, type: "open", owner: this.get(d) });
454
+ new Y({ target: f, type: "open", owner: this.get(d) });
439
455
  } else if (f.hasAttribute("data-drawer-close")) {
440
456
  const d = f.getAttribute("data-drawer-close");
441
- new H({ target: f, type: "close", owner: this.get(d) });
457
+ new Y({ target: f, type: "close", owner: this.get(d) });
442
458
  } else {
443
459
  const d = f.getAttribute("data-drawer-toggle");
444
- new H({ target: f, type: "toggle", owner: this.get(d) });
460
+ new Y({ target: f, type: "toggle", owner: this.get(d) });
445
461
  }
446
462
  });
447
463
  }
448
- open(t, { trigger: e, options: l } = {}) {
464
+ open(t, { trigger: e, options: o } = {}) {
449
465
  var s;
450
466
  (s = this.get(t)) == null || s.open(e);
451
467
  }
452
- close(t, { trigger: e, options: l } = {}) {
468
+ close(t, { trigger: e, options: o } = {}) {
453
469
  var s;
454
470
  (s = this.get(t)) == null || s.close(e);
455
471
  }
456
472
  get(t) {
457
473
  return typeof t == "string" && r(this, I).get(t) || null;
458
474
  }
459
- on(t, e, l) {
475
+ on(t, e, o) {
460
476
  var s;
461
477
  if (t)
462
- (s = this.get(t)) == null || s.on(e, l);
478
+ (s = this.get(t)) == null || s.on(e, o);
463
479
  else
464
480
  for (const [f, d] of r(this, I))
465
- d.on(e, l);
481
+ d.on(e, o);
466
482
  }
467
483
  };
468
484
  I = new WeakMap(), z = new WeakMap();
469
- let V = q;
470
- typeof window < "u" && (window.hasOwnProperty("app") || (window.app = {}), window.app.drawers = new V());
485
+ let J = R;
486
+ typeof window < "u" && (window.hasOwnProperty("app") || (window.app = {}), window.app.drawers = new J());
471
487
  export {
472
- _e as Drawer,
473
- ee as DrawersGroup,
474
- H as Trigger,
475
- V as default
488
+ ke as Drawer,
489
+ G as DrawersGroup,
490
+ Y as Trigger,
491
+ J as default
476
492
  };
@@ -1,6 +1,6 @@
1
- (function(w,b){typeof exports=="object"&&typeof module<"u"?b(exports):typeof define=="function"&&define.amd?define(["exports"],b):(w=typeof globalThis<"u"?globalThis:w||self,b(w.Drawers={}))})(this,function(w){"use strict";var oe=(w,b,C)=>{if(!b.has(w))throw TypeError("Cannot "+C)};var t=(w,b,C)=>(oe(w,b,"read from private field"),C?C.call(w):b.get(w)),g=(w,b,C)=>{if(b.has(w))throw TypeError("Cannot add the same private member more than once");b instanceof WeakSet?b.add(w):b.set(w,C)},O=(w,b,C,H)=>(oe(w,b,"write to private field"),H?H.call(w,C):b.set(w,C),C);var _,E,z,B,p,$,T,Q,U,P,S,j,N,M,k,q,G;function b(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var C={exports:{}};(function(r){var n=Object.prototype.hasOwnProperty,e="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(e=!1));function s(u,i,o){this.fn=u,this.context=i,this.once=o||!1}function f(u,i,o,c,A){if(typeof o!="function")throw new TypeError("The listener must be a function");var v=new s(o,c||u,A),m=e?e+i:i;return u._events[m]?u._events[m].fn?u._events[m]=[u._events[m],v]:u._events[m].push(v):(u._events[m]=v,u._eventsCount++),u}function d(u,i){--u._eventsCount===0?u._events=new a:delete u._events[i]}function h(){this._events=new a,this._eventsCount=0}h.prototype.eventNames=function(){var i=[],o,c;if(this._eventsCount===0)return i;for(c in o=this._events)n.call(o,c)&&i.push(e?c.slice(1):c);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(o)):i},h.prototype.listeners=function(i){var o=e?e+i:i,c=this._events[o];if(!c)return[];if(c.fn)return[c.fn];for(var A=0,v=c.length,m=new Array(v);A<v;A++)m[A]=c[A].fn;return m},h.prototype.listenerCount=function(i){var o=e?e+i:i,c=this._events[o];return c?c.fn?1:c.length:0},h.prototype.emit=function(i,o,c,A,v,m){var L=e?e+i:i;if(!this._events[L])return!1;var l=this._events[L],x=arguments.length,D,y;if(l.fn){switch(l.once&&this.removeListener(i,l.fn,void 0,!0),x){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,o),!0;case 3:return l.fn.call(l.context,o,c),!0;case 4:return l.fn.call(l.context,o,c,A),!0;case 5:return l.fn.call(l.context,o,c,A,v),!0;case 6:return l.fn.call(l.context,o,c,A,v,m),!0}for(y=1,D=new Array(x-1);y<x;y++)D[y-1]=arguments[y];l.fn.apply(l.context,D)}else{var Se=l.length,F;for(y=0;y<Se;y++)switch(l[y].once&&this.removeListener(i,l[y].fn,void 0,!0),x){case 1:l[y].fn.call(l[y].context);break;case 2:l[y].fn.call(l[y].context,o);break;case 3:l[y].fn.call(l[y].context,o,c);break;case 4:l[y].fn.call(l[y].context,o,c,A);break;default:if(!D)for(F=1,D=new Array(x-1);F<x;F++)D[F-1]=arguments[F];l[y].fn.apply(l[y].context,D)}}return!0},h.prototype.on=function(i,o,c){return f(this,i,o,c,!1)},h.prototype.once=function(i,o,c){return f(this,i,o,c,!0)},h.prototype.removeListener=function(i,o,c,A){var v=e?e+i:i;if(!this._events[v])return this;if(!o)return d(this,v),this;var m=this._events[v];if(m.fn)m.fn===o&&(!A||m.once)&&(!c||m.context===c)&&d(this,v);else{for(var L=0,l=[],x=m.length;L<x;L++)(m[L].fn!==o||A&&!m[L].once||c&&m[L].context!==c)&&l.push(m[L]);l.length?this._events[v]=l.length===1?l[0]:l:d(this,v)}return this},h.prototype.removeAllListeners=function(i){var o;return i?(o=e?e+i:i,this._events[o]&&d(this,o)):(this._events=new a,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=e,h.EventEmitter=h,r.exports=h})(C);var H=C.exports;const le=b(H);var ae=function(n){return ce(n)&&!ue(n)};function ce(r){return!!r&&typeof r=="object"}function ue(r){var n=Object.prototype.toString.call(r);return n==="[object RegExp]"||n==="[object Date]"||de(r)}var he=typeof Symbol=="function"&&Symbol.for,fe=he?Symbol.for("react.element"):60103;function de(r){return r.$$typeof===fe}function pe(r){return Array.isArray(r)?[]:{}}function R(r,n){return n.clone!==!1&&n.isMergeableObject(r)?I(pe(r),r,n):r}function we(r,n,e){return r.concat(n).map(function(a){return R(a,e)})}function me(r,n){if(!n.customMerge)return I;var e=n.customMerge(r);return typeof e=="function"?e:I}function ye(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(n){return Object.propertyIsEnumerable.call(r,n)}):[]}function ee(r){return Object.keys(r).concat(ye(r))}function te(r,n){try{return n in r}catch{return!1}}function be(r,n){return te(r,n)&&!(Object.hasOwnProperty.call(r,n)&&Object.propertyIsEnumerable.call(r,n))}function ge(r,n,e){var a={};return e.isMergeableObject(r)&&ee(r).forEach(function(s){a[s]=R(r[s],e)}),ee(n).forEach(function(s){be(r,s)||(te(r,s)&&e.isMergeableObject(n[s])?a[s]=me(s,e)(r[s],n[s],e):a[s]=R(n[s],e))}),a}function I(r,n,e){e=e||{},e.arrayMerge=e.arrayMerge||we,e.isMergeableObject=e.isMergeableObject||ae,e.cloneUnlessOtherwiseSpecified=R;var a=Array.isArray(n),s=Array.isArray(r),f=a===s;return f?a?e.arrayMerge(r,n,e):ge(r,n,e):R(n,e)}I.all=function(n,e){if(!Array.isArray(n))throw new Error("first argument should be an array");return n.reduce(function(a,s){return I(a,s,e)},{})};var Oe=I,ve=Oe;const Ee=b(ve);/*!
1
+ (function(w,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(w=typeof globalThis<"u"?globalThis:w||self,g(w.Drawers={}))})(this,function(w){"use strict";var le=(w,g,C)=>{if(!g.has(w))throw TypeError("Cannot "+C)};var n=(w,g,C)=>(le(w,g,"read from private field"),C?C.call(w):g.get(w)),b=(w,g,C)=>{if(g.has(w))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(w):g.set(w,C)},v=(w,g,C,Y)=>(le(w,g,"write to private field"),Y?Y.call(w,C):g.set(w,C),C);var _,E,z,K,p,F,x,X,U,T,P,S,k,N,j,q,R;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 i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(e=!1));function s(u,o,l){this.fn=u,this.context=o,this.once=l||!1}function f(u,o,l,c,A){if(typeof l!="function")throw new TypeError("The listener must be a function");var O=new s(l,c||u,A),m=e?e+o:o;return u._events[m]?u._events[m].fn?u._events[m]=[u._events[m],O]:u._events[m].push(O):(u._events[m]=O,u._eventsCount++),u}function d(u,o){--u._eventsCount===0?u._events=new i:delete u._events[o]}function h(){this._events=new i,this._eventsCount=0}h.prototype.eventNames=function(){var o=[],l,c;if(this._eventsCount===0)return o;for(c in l=this._events)t.call(l,c)&&o.push(e?c.slice(1):c);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(l)):o},h.prototype.listeners=function(o){var l=e?e+o:o,c=this._events[l];if(!c)return[];if(c.fn)return[c.fn];for(var A=0,O=c.length,m=new Array(O);A<O;A++)m[A]=c[A].fn;return m},h.prototype.listenerCount=function(o){var l=e?e+o:o,c=this._events[l];return c?c.fn?1:c.length:0},h.prototype.emit=function(o,l,c,A,O,m){var L=e?e+o:o;if(!this._events[L])return!1;var a=this._events[L],M=arguments.length,D,y;if(a.fn){switch(a.once&&this.removeListener(o,a.fn,void 0,!0),M){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,l),!0;case 3:return a.fn.call(a.context,l,c),!0;case 4:return a.fn.call(a.context,l,c,A),!0;case 5:return a.fn.call(a.context,l,c,A,O),!0;case 6:return a.fn.call(a.context,l,c,A,O,m),!0}for(y=1,D=new Array(M-1);y<M;y++)D[y-1]=arguments[y];a.fn.apply(a.context,D)}else{var Le=a.length,V;for(y=0;y<Le;y++)switch(a[y].once&&this.removeListener(o,a[y].fn,void 0,!0),M){case 1:a[y].fn.call(a[y].context);break;case 2:a[y].fn.call(a[y].context,l);break;case 3:a[y].fn.call(a[y].context,l,c);break;case 4:a[y].fn.call(a[y].context,l,c,A);break;default:if(!D)for(V=1,D=new Array(M-1);V<M;V++)D[V-1]=arguments[V];a[y].fn.apply(a[y].context,D)}}return!0},h.prototype.on=function(o,l,c){return f(this,o,l,c,!1)},h.prototype.once=function(o,l,c){return f(this,o,l,c,!0)},h.prototype.removeListener=function(o,l,c,A){var O=e?e+o:o;if(!this._events[O])return this;if(!l)return d(this,O),this;var m=this._events[O];if(m.fn)m.fn===l&&(!A||m.once)&&(!c||m.context===c)&&d(this,O);else{for(var L=0,a=[],M=m.length;L<M;L++)(m[L].fn!==l||A&&!m[L].once||c&&m[L].context!==c)&&a.push(m[L]);a.length?this._events[O]=a.length===1?a[0]:a:d(this,O)}return this},h.prototype.removeAllListeners=function(o){var l;return o?(l=e?e+o:o,this._events[l]&&d(this,l)):(this._events=new i,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=e,h.EventEmitter=h,r.exports=h})(C);var Y=C.exports;const ae=g(Y);var ce=function(t){return ue(t)&&!he(t)};function ue(r){return!!r&&typeof r=="object"}function he(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 B(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(i){return B(i,e)})}function ye(r,t){if(!t.customMerge)return I;var e=t.customMerge(r);return typeof e=="function"?e:I}function ge(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(t){return Object.propertyIsEnumerable.call(r,t)}):[]}function te(r){return Object.keys(r).concat(ge(r))}function ne(r,t){try{return t in r}catch{return!1}}function be(r,t){return ne(r,t)&&!(Object.hasOwnProperty.call(r,t)&&Object.propertyIsEnumerable.call(r,t))}function Oe(r,t,e){var i={};return e.isMergeableObject(r)&&te(r).forEach(function(s){i[s]=B(r[s],e)}),te(t).forEach(function(s){be(r,s)||(ne(r,s)&&e.isMergeableObject(t[s])?i[s]=ye(s,e)(r[s],t[s],e):i[s]=B(t[s],e))}),i}function I(r,t,e){e=e||{},e.arrayMerge=e.arrayMerge||me,e.isMergeableObject=e.isMergeableObject||ce,e.cloneUnlessOtherwiseSpecified=B;var i=Array.isArray(t),s=Array.isArray(r),f=i===s;return f?i?e.arrayMerge(r,t,e):Oe(r,t,e):B(t,e)}I.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(i,s){return I(i,s,e)},{})};var ve=I,Ee=ve;const Ae=g(Ee);/*!
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 ne(r){return Object.prototype.toString.call(r)==="[object Object]"}function Ae(r){var n,e;return ne(r)===!1?!1:(n=r.constructor,n===void 0?!0:(e=n.prototype,!(ne(e)===!1||e.hasOwnProperty("isPrototypeOf")===!1)))}function W(r){return r instanceof Element?r:document.querySelector(r)}async function X(r){return await new Promise(n=>setTimeout(n,r))}const Ce='[data-elem="drawer.panel"]',V="data-drawers-group",_e=["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^="-"])'],re={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",openAnimationDuration:0,closeAnimationDuration:0,lockPageScroll:!0};function se(r){return Ee.all(r,{isMergeableObject:Ae})}class Y{constructor({target:n,type:e,owner:a}){g(this,_,void 0);g(this,E,void 0);g(this,z,void 0);g(this,B,!1);const s=W(n);if(!s)throw new Error("Trigger element cannot be found");O(this,_,s),O(this,E,a),O(this,z,e),this.init()}get isActive(){return t(this,B)}get owner(){return t(this,E)}init(){t(this,_).addEventListener("click",n=>this.clickHandler(n)),t(this,E).on("open",()=>this.setActive(!0)),t(this,E).on("close",()=>this.setActive(!1))}clickHandler(n){n.__drawerTrigger=this,t(this,z)==="open"?t(this,E).isOpen||t(this,E).open(t(this,_)):t(this,z)==="close"?t(this,E).isOpen&&t(this,E).close(t(this,_)):t(this,E).isOpen?t(this,E).close(t(this,_)):t(this,E).open(t(this,_))}setActive(n){O(this,B,n),n?t(this,_).classList.add("drawer-trigger_active"):t(this,_).classList.remove("drawer-trigger_active")}}_=new WeakMap,E=new WeakMap,z=new WeakMap,B=new WeakMap;class ie extends le{constructor({target:e,options:a}){super();g(this,p,void 0);g(this,$,void 0);g(this,T,void 0);g(this,Q,void 0);g(this,U,void 0);this.handleDocumentClick=async h=>{var o;if(((o=h.__drawerTrigger)==null?void 0:o.owner)===this)return;const u=h.target;if(h.composedPath(),this.dom.panel.contains(u))return;const i=u==null?void 0:u.closest("[data-drawer]");i?i.getAttribute("data-drawer")===t(this,U)?this.handleUnderlayClick(h):this.handleOtherDrawerClick(h):this.handleOutsideClick(h)},this.handleKeydown=h=>{t(this,p).closeOnEsc&&h.key==="Escape"&&this.close()};const s=se(a?[re,a]:[re]),f=W(e);if(f===null)throw new Error("Drawer's root cannot be found");O(this,U,f.getAttribute("data-drawer"));const d=f.querySelector(Ce);if(d===null)throw new Error(`Drawer's panel cannot be found. Alias: ${t(this,U)}`);this.dom={root:f,panel:d},this.setOptions(s),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 t(this,T)}get isModal(){return t(this,p).modal}set isModal(e){this.dom.root.classList[e?"add":"remove"]("drawer_modal")}get willLockScroll(){return t(this,p).lockPageScroll}set zIndex(e){this.dom.root.style.setProperty("--z-index",String(e)),O(this,$,e)}get zIndex(){return t(this,$)}async open(e){await X(0),!t(this,T)&&(this.emit("beforeOpen",{drawer:this,trigger:e}),O(this,T,!0),this.dom.root.classList.add(t(this,p).openClass),this.emit("open",{drawer:this,trigger:e}),typeof t(this,p).openAnimationDuration=="number"&&await X(t(this,p).openAnimationDuration),this.emit("openAnimationEnd",{drawer:this,trigger:e}),this.focus(),this.addEventListeners())}async close(e){t(this,p).onCloseConfirm&&!t(this,p).onCloseConfirm(this,e)||(this.emit("beforeClose",{drawer:this,trigger:e}),this.removeEventListeners(),O(this,T,!1),this.dom.root.classList.remove(t(this,p).openClass),this.emit("close",{drawer:this,trigger:e}),typeof t(this,p).closeAnimationDuration=="number"&&await X(t(this,p).closeAnimationDuration),this.emit("closeAnimationEnd",{drawer:this,trigger:e}))}handleOtherDrawerClick(e){}handleOutsideClick(e){t(this,p).closeOnOutsideClick&&(typeof t(this,p).closeOnOutsideClick=="object"&&t(this,p).closeOnOutsideClick.hasOwnProperty("checkTarget")?t(this,p).closeOnOutsideClick.checkTarget(e.target)&&this.close():this.close())}handleUnderlayClick(e){t(this,p).closeOnOutsideClick&&this.close()}focus(){t(this,p).focusOnChild&&this.focusChild()||this.focusSelf()}focusSelf(){this.dom.panel.focus()}focusChild(){const e=this.dom.panel.querySelector(_e.join(","));return e?(e.focus(),!0):!1}setOptions(e){var a;e.hasOwnProperty("modal")&&((a=t(this,p))==null?void 0:a.modal)!==e.modal&&(this.isModal=e.modal),O(this,p,t(this,p)?se([t(this,p),e]):e)}assignGroup(e){O(this,Q,e)}}p=new WeakMap,$=new WeakMap,T=new WeakMap,Q=new WeakMap,U=new WeakMap;class Z{constructor(n){g(this,P,void 0);g(this,S,void 0);g(this,j,void 0);g(this,N,void 0);g(this,M,void 0);g(this,k,void 0);O(this,S,[]),O(this,j,[]),O(this,M,new Set),O(this,k,new Map),this.onBeforeOpen=({drawer:s,trigger:f})=>{s.isModal?(t(this,k).set(s,t(this,S).length),t(this,S).push(s),s.zIndex=t(this,j).length+t(this,S).length):(t(this,k).set(s,t(this,j).length),t(this,j).push(s),s.zIndex=t(this,j).length,t(this,S).length>0&&t(this,S).forEach((d,h)=>d.zIndex=t(this,j).length+h+1)),s.willLockScroll&&this.lockScroll(s)},this.onCloseAnimationEnd=({drawer:s,trigger:f})=>{const d=s.isModal?t(this,S):t(this,j);for(delete d[t(this,k).get(s)];d.length&&!d.at(-1);)d.pop();t(this,k).delete(s),this.unlockScroll(s)};const e=W(n);if(e===null)throw new Error("Drawer's group root cannot be found");O(this,P,e);const a=t(this,P).closest("[data-scrollable], html")||t(this,P).matches("[data-scrollable], html")&&t(this,P);if(a===null)throw new Error("Scrollable container for group root cannot be found");O(this,N,a)}add(n){n.on("beforeOpen",this.onBeforeOpen),n.on("closeAnimationEnd",this.onCloseAnimationEnd),n.assignGroup(this)}lockScroll(n){t(this,M).size===0&&t(this,N).classList.add("scroll-lock-by-drawer"),t(this,M).add(n)}unlockScroll(n){t(this,M).delete(n),t(this,M).size===0&&t(this,N).classList.remove("scroll-lock-by-drawer")}}P=new WeakMap,S=new WeakMap,j=new WeakMap,N=new WeakMap,M=new WeakMap,k=new WeakMap;const K=class K{constructor(){g(this,q,new Map);g(this,G,new Map);if(K.instance)return K.instance;K.instance=this}init(n){document.querySelectorAll(`[${V}]`).forEach(f=>{const d=f.getAttribute(V);typeof d=="string"&&t(this,G).set(d,new Z(f))}),t(this,G).set("default",new Z(document.documentElement)),document.querySelectorAll("[data-drawer]").forEach(f=>{var o;const d=f.getAttribute("data-drawer");if(typeof d!="string")return;const h=new ie({target:f,options:n});t(this,q).set(d,h);const u=f.closest(`[${V}]`),i=u?u.getAttribute(V):"default";if(typeof i!="string")throw new Error("Group doesn't have alias set correctly");(o=t(this,G).get(i))==null||o.add(h)}),document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach(f=>{if(f.hasAttribute("data-drawer-open")){const d=f.getAttribute("data-drawer-open");new Y({target:f,type:"open",owner:this.get(d)})}else if(f.hasAttribute("data-drawer-close")){const d=f.getAttribute("data-drawer-close");new Y({target:f,type:"close",owner:this.get(d)})}else{const d=f.getAttribute("data-drawer-toggle");new Y({target:f,type:"toggle",owner:this.get(d)})}})}open(n,{trigger:e,options:a}={}){var s;(s=this.get(n))==null||s.open(e)}close(n,{trigger:e,options:a}={}){var s;(s=this.get(n))==null||s.close(e)}get(n){return typeof n=="string"&&t(this,q).get(n)||null}on(n,e,a){var s;if(n)(s=this.get(n))==null||s.on(e,a);else for(const[f,d]of t(this,q))d.on(e,a)}};q=new WeakMap,G=new WeakMap;let J=K;typeof window<"u"&&(window.hasOwnProperty("app")||(window.app={}),window.app.drawers=new J),w.Drawer=ie,w.DrawersGroup=Z,w.Trigger=Y,w.default=J,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
6
+ */function re(r){return Object.prototype.toString.call(r)==="[object Object]"}function Ce(r){var t,e;return re(r)===!1?!1:(t=r.constructor,t===void 0?!0:(e=t.prototype,!(re(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",Se=["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^="-"])'],se={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",openAnimationDuration:0,closeAnimationDuration:0,lockPageScroll:!0};function ie(r){return Ae.all(r,{isMergeableObject:Ce})}class Q{constructor({target:t,type:e,owner:i}){b(this,_,void 0);b(this,E,void 0);b(this,z,void 0);b(this,K,!1);const s=Z(t);if(!s)throw new Error("Trigger element cannot be found");v(this,_,s),v(this,E,i),v(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){v(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 oe extends ae{constructor({target:e,options:i}){super();b(this,p,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 h=>{var l;if(((l=h.__drawerTrigger)==null?void 0:l.owner)===this)return;const u=h.target;if(h.composedPath(),this.dom.panel.contains(u))return;const o=u==null?void 0:u.closest("[data-drawer]");o?o.getAttribute("data-drawer")===n(this,U)?this.handleUnderlayClick(h):this.handleOtherDrawerClick(h):this.handleOutsideClick(h)},this.handleKeydown=h=>{n(this,p).closeOnEsc&&h.key==="Escape"&&this.close()};const s=ie(i?[se,i]:[se]),f=Z(e);if(f===null)throw new Error("Drawer's root cannot be found");v(this,U,f.getAttribute("data-drawer"));const d=f.querySelector(_e);if(d===null)throw new Error(`Drawer's panel cannot be found. Alias: ${n(this,U)}`);this.dom={root:f,panel:d},this.setOptions(s),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,p).modal}set isModal(e){this.dom.root.classList[e?"add":"remove"]("drawer_modal")}get willLockScroll(){return n(this,p).lockPageScroll}set zIndex(e){this.dom.root.style.setProperty("--z-index",String(e)),v(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}),v(this,x,!0),this.dom.root.classList.add(n(this,p).openClass),this.emit("open",{drawer:this,trigger:e}),typeof n(this,p).openAnimationDuration=="number"&&await ee(n(this,p).openAnimationDuration),this.emit("openAnimationEnd",{drawer:this,trigger:e}),this.focus(),this.addEventListeners())}async close(e){n(this,p).onCloseConfirm&&!n(this,p).onCloseConfirm(this,e)||(this.emit("beforeClose",{drawer:this,trigger:e}),this.removeEventListeners(),v(this,x,!1),this.dom.root.classList.remove(n(this,p).openClass),this.emit("close",{drawer:this,trigger:e}),typeof n(this,p).closeAnimationDuration=="number"&&await ee(n(this,p).closeAnimationDuration),this.emit("closeAnimationEnd",{drawer:this,trigger:e}))}handleOtherDrawerClick(e){}handleOutsideClick(e){n(this,p).closeOnOutsideClick&&(typeof n(this,p).closeOnOutsideClick=="object"&&n(this,p).closeOnOutsideClick.hasOwnProperty("checkTarget")?n(this,p).closeOnOutsideClick.checkTarget(e.target)&&this.close():this.close())}handleUnderlayClick(e){n(this,p).closeOnOutsideClick&&this.close()}focus(){n(this,p).focusOnChild&&this.focusChild()||this.focusSelf()}focusSelf(){this.dom.panel.focus()}focusChild(){const e=this.dom.panel.querySelector(Se.join(","));return e?(e.focus(),!0):!1}setOptions(e){var i;e.hasOwnProperty("modal")&&((i=n(this,p))==null?void 0:i.modal)!==e.modal&&(this.isModal=e.modal),v(this,p,n(this,p)?ie([n(this,p),e]):e)}assignGroup(e){v(this,X,e)}}p=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 i=n(this,T).get(t);i.size===0&&t.classList.add("scroll-lock-by-drawer"),i.add(e)}unlock(t,e){const i=n(this,T).get(t);i==null||i.delete(e),(!i||i.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,S,void 0);b(this,k,void 0);b(this,N,void 0);b(this,j,void 0);v(this,S,[]),v(this,k,[]),v(this,j,new Map),this.onBeforeOpen=({drawer:s,trigger:f})=>{s.isModal?(n(this,j).set(s,n(this,S).length),n(this,S).push(s),s.zIndex=n(this,k).length+n(this,S).length):(n(this,j).set(s,n(this,k).length),n(this,k).push(s),s.zIndex=n(this,k).length,n(this,S).length>0&&n(this,S).forEach((d,h)=>d.zIndex=n(this,k).length+h+1)),s.willLockScroll&&this.lockScroll(s)},this.onCloseAnimationEnd=({drawer:s,trigger:f})=>{const d=s.isModal?n(this,S):n(this,k);for(delete d[n(this,j).get(s)];d.length&&!d.at(-1);)d.pop();n(this,j).delete(s),this.unlockScroll(s)};const e=Z(t);if(e===null)throw new Error("Drawer's group root cannot be found");v(this,P,e);const i=n(this,P).closest("[data-scrollable], html")||n(this,P).matches("[data-scrollable], html")&&n(this,P);if(i===null)throw new Error("Scrollable container for group root cannot be found");v(this,N,i)}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,S=new WeakMap,k=new WeakMap,N=new WeakMap,j=new WeakMap,G.scrollLock=new ke;let $=G;const H=class H{constructor(){b(this,q,new Map);b(this,R,new Map);if(H.instance)return H.instance;H.instance=this}init(t){document.querySelectorAll(`[${J}]`).forEach(f=>{const d=f.getAttribute(J);typeof d=="string"&&n(this,R).set(d,new $(f))}),n(this,R).set("default",new $(document.documentElement)),document.querySelectorAll("[data-drawer]").forEach(f=>{var l;const d=f.getAttribute("data-drawer");if(typeof d!="string")return;const h=new oe({target:f,options:t});n(this,q).set(d,h);const u=f.closest(`[${J}]`),o=u?u.getAttribute(J):"default";if(typeof o!="string")throw new Error("Group doesn't have alias set correctly");(l=n(this,R).get(o))==null||l.add(h)}),document.querySelectorAll("[data-drawer-open], [data-drawer-close], [data-drawer-toggle]").forEach(f=>{if(f.hasAttribute("data-drawer-open")){const d=f.getAttribute("data-drawer-open");new Q({target:f,type:"open",owner:this.get(d)})}else if(f.hasAttribute("data-drawer-close")){const d=f.getAttribute("data-drawer-close");new Q({target:f,type:"close",owner:this.get(d)})}else{const d=f.getAttribute("data-drawer-toggle");new Q({target:f,type:"toggle",owner:this.get(d)})}})}open(t,{trigger:e,options:i}={}){var s;(s=this.get(t))==null||s.open(e)}close(t,{trigger:e,options:i}={}){var s;(s=this.get(t))==null||s.close(e)}get(t){return typeof t=="string"&&n(this,q).get(t)||null}on(t,e,i){var s;if(t)(s=this.get(t))==null||s.on(e,i);else for(const[f,d]of n(this,q))d.on(e,i)}};q=new WeakMap,R=new WeakMap;let W=H;typeof window<"u"&&(window.hasOwnProperty("app")||(window.app={}),window.app.drawers=new W),w.Drawer=oe,w.DrawersGroup=$,w.Trigger=Q,w.default=W,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- html{overflow-x:hidden;scroll-behavior:auto}body{position:fixed;left:0;top:0;width:100%;background-color:#fff;height:100vh;overflow:hidden;margin:0;scroll-behavior:auto}.drawers-group{position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none}.drawers-group>*{pointer-events:all}.drawer{display:flex;justify-content:center;position:fixed;z-index:var(--z-index);left:0;top:0;width:100%;height:100%;overflow:hidden;background-color:#4e4e4e57}.drawer__panel{display:flex;height:100%;width:100%;max-width:600px;max-height:400px;margin:auto;overflow-x:hidden}.drawer__panel{transition:visibility .4s,opacity .4s,transform .4s}.drawer:not(.drawer_open),.drawer:not(.drawer_open) .drawer__panel{visibility:hidden;opacity:0;transform:none}.drawer__body{width:100%}.drawer:nth-child(1) .drawer__body{background-color:#0ff}.drawer:nth-child(2) .drawer__body{background-color:#8a2be2}.drawer:nth-child(3) .drawer__body{background-color:brown}
1
+ html{overflow-x:hidden;scroll-behavior:auto}body{position:fixed;left:0;top:0;width:100%;background-color:#fff;height:100vh;overflow:hidden;margin:0;scroll-behavior:auto}.drawers-group{position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none}.drawers-group>*{pointer-events:all}.drawer{display:flex;justify-content:center;position:fixed;z-index:var(--z-index);left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.drawer_modal{background-color:#4e4e4e57;pointer-events:all}.drawer__panel{display:flex;height:100%;width:100%;max-width:600px;max-height:400px;margin:auto;overflow-x:hidden;pointer-events:all}.drawer__panel{transition:visibility .4s,opacity .4s,transform .4s}.drawer:not(.drawer_open),.drawer:not(.drawer_open) .drawer__panel{visibility:hidden;opacity:0;transform:none}.drawer__body{width:100%}.drawer:nth-child(1) .drawer__body{background-color:#0ff}.drawer:nth-child(2) .drawer__body{background-color:#8a2be2}.drawer:nth-child(3) .drawer__body{background-color:brown}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanilla-drawers",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Drawers controller.",
5
5
  "files": [
6
6
  "dist"