@sth87/shadcn-design-system 0.1.7 → 0.1.8

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.
Files changed (52) hide show
  1. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  2. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  3. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  4. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  5. package/dist/cjs/components/Table/data-table-toolbar.cjs +2 -0
  6. package/dist/cjs/components/Table/data-table-toolbar.cjs.map +1 -0
  7. package/dist/cjs/components/Table/data-table-view-options.cjs +2 -0
  8. package/dist/cjs/components/Table/data-table-view-options.cjs.map +1 -0
  9. package/dist/cjs/components/Table/select-column.cjs +2 -0
  10. package/dist/cjs/components/Table/select-column.cjs.map +1 -0
  11. package/dist/cjs/index.cjs +1 -1
  12. package/dist/cjs/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs +2 -0
  13. package/dist/cjs/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs.map +1 -0
  14. package/dist/cjs/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.cjs +6 -0
  15. package/dist/cjs/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.cjs.map +1 -0
  16. package/dist/cjs/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs +2 -0
  17. package/dist/cjs/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs.map +1 -0
  18. package/dist/cjs/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs +2 -0
  19. package/dist/cjs/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs.map +1 -0
  20. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  21. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  22. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  23. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  24. package/dist/esm/components/Table/data-table-toolbar.js +116 -0
  25. package/dist/esm/components/Table/data-table-toolbar.js.map +1 -0
  26. package/dist/esm/components/Table/data-table-view-options.js +258 -0
  27. package/dist/esm/components/Table/data-table-view-options.js.map +1 -0
  28. package/dist/esm/components/Table/select-column.js +33 -0
  29. package/dist/esm/components/Table/select-column.js.map +1 -0
  30. package/dist/esm/index.js +211 -197
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +57 -0
  33. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +1 -0
  34. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.js +2345 -0
  35. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.js.map +1 -0
  36. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +440 -0
  37. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -0
  38. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +236 -0
  39. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +1 -0
  40. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts +1 -2
  41. package/dist/types/components/Table/TableFilter/data-table-date-filter.d.ts.map +1 -1
  42. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts +1 -2
  43. package/dist/types/components/Table/TableFilter/data-table-filter-popover.d.ts.map +1 -1
  44. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts +1 -2
  45. package/dist/types/components/Table/TableFilter/data-table-slider-filter.d.ts.map +1 -1
  46. package/dist/types/components/Table/data-table-column-header.d.ts +1 -2
  47. package/dist/types/components/Table/data-table-column-header.d.ts.map +1 -1
  48. package/dist/types/components/Table/data-table-toolbar.d.ts +1 -2
  49. package/dist/types/components/Table/data-table-toolbar.d.ts.map +1 -1
  50. package/dist/types/components/Table/index.d.ts +7 -0
  51. package/dist/types/components/Table/index.d.ts.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,440 @@
1
+ import j, { useMemo as L, useRef as P, useEffect as _, useContext as ge, useState as pe } from "react";
2
+ import { useDndContext as be, KeyboardCode as x, closestCorners as ve, getFirstCollision as he, getScrollableAncestors as me, useDroppable as Ie, useDraggable as xe, getClientRect as ye } from "../../../../../@dnd-kit_core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/@dnd-kit/core/dist/core.esm.js";
3
+ import { useUniqueId as Re, useIsomorphicLayoutEffect as q, subtract as Ce, useCombinedRefs as we, CSS as B, isKeyboardEvent as De } from "../../../../../@dnd-kit_utilities@3.2.2_react@19.1.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js";
4
+ function H(e, t, n) {
5
+ const r = e.slice();
6
+ return r.splice(n < 0 ? r.length + n : n, 0, r.splice(t, 1)[0]), r;
7
+ }
8
+ function Se(e, t) {
9
+ return e.reduce((n, r, o) => {
10
+ const i = t.get(r);
11
+ return i && (n[o] = i), n;
12
+ }, Array(e.length));
13
+ }
14
+ function O(e) {
15
+ return e !== null && e >= 0;
16
+ }
17
+ function Ae(e, t) {
18
+ if (e === t)
19
+ return !0;
20
+ if (e.length !== t.length)
21
+ return !1;
22
+ for (let n = 0; n < e.length; n++)
23
+ if (e[n] !== t[n])
24
+ return !1;
25
+ return !0;
26
+ }
27
+ function Te(e) {
28
+ return typeof e == "boolean" ? {
29
+ draggable: e,
30
+ droppable: e
31
+ } : e;
32
+ }
33
+ const V = (e) => {
34
+ let {
35
+ rects: t,
36
+ activeIndex: n,
37
+ overIndex: r,
38
+ index: o
39
+ } = e;
40
+ const i = H(t, r, n), s = t[o], c = i[o];
41
+ return !c || !s ? null : {
42
+ x: c.left - s.left,
43
+ y: c.top - s.top,
44
+ scaleX: c.width / s.width,
45
+ scaleY: c.height / s.height
46
+ };
47
+ }, E = {
48
+ scaleX: 1,
49
+ scaleY: 1
50
+ }, Ue = (e) => {
51
+ var t;
52
+ let {
53
+ activeIndex: n,
54
+ activeNodeRect: r,
55
+ index: o,
56
+ rects: i,
57
+ overIndex: s
58
+ } = e;
59
+ const c = (t = i[n]) != null ? t : r;
60
+ if (!c)
61
+ return null;
62
+ if (o === n) {
63
+ const d = i[s];
64
+ return d ? {
65
+ x: 0,
66
+ y: n < s ? d.top + d.height - (c.top + c.height) : d.top - c.top,
67
+ ...E
68
+ } : null;
69
+ }
70
+ const f = Ne(i, o, n);
71
+ return o > n && o <= s ? {
72
+ x: 0,
73
+ y: -c.height - f,
74
+ ...E
75
+ } : o < n && o >= s ? {
76
+ x: 0,
77
+ y: c.height + f,
78
+ ...E
79
+ } : {
80
+ x: 0,
81
+ y: 0,
82
+ ...E
83
+ };
84
+ };
85
+ function Ne(e, t, n) {
86
+ const r = e[t], o = e[t - 1], i = e[t + 1];
87
+ return r ? n < t ? o ? r.top - (o.top + o.height) : i ? i.top - (r.top + r.height) : 0 : i ? i.top - (r.top + r.height) : o ? r.top - (o.top + o.height) : 0 : 0;
88
+ }
89
+ const J = "Sortable", Q = /* @__PURE__ */ j.createContext({
90
+ activeIndex: -1,
91
+ containerId: J,
92
+ disableTransforms: !1,
93
+ items: [],
94
+ overIndex: -1,
95
+ useDragOverlay: !1,
96
+ sortedRects: [],
97
+ strategy: V,
98
+ disabled: {
99
+ draggable: !1,
100
+ droppable: !1
101
+ }
102
+ });
103
+ function Ye(e) {
104
+ let {
105
+ children: t,
106
+ id: n,
107
+ items: r,
108
+ strategy: o = V,
109
+ disabled: i = !1
110
+ } = e;
111
+ const {
112
+ active: s,
113
+ dragOverlay: c,
114
+ droppableRects: f,
115
+ over: d,
116
+ measureDroppableContainers: a
117
+ } = be(), l = Re(J, n), u = c.rect !== null, g = L(() => r.map((I) => typeof I == "object" && "id" in I ? I.id : I), [r]), y = s != null, R = s ? g.indexOf(s.id) : -1, v = d ? g.indexOf(d.id) : -1, C = P(g), m = !Ae(g, C.current), h = v !== -1 && R === -1 || m, b = Te(i);
118
+ q(() => {
119
+ m && y && a(g);
120
+ }, [m, g, y, a]), _(() => {
121
+ C.current = g;
122
+ }, [g]);
123
+ const w = L(
124
+ () => ({
125
+ activeIndex: R,
126
+ containerId: l,
127
+ disabled: b,
128
+ disableTransforms: h,
129
+ items: g,
130
+ overIndex: v,
131
+ useDragOverlay: u,
132
+ sortedRects: Se(g, f),
133
+ strategy: o
134
+ }),
135
+ // eslint-disable-next-line react-hooks/exhaustive-deps
136
+ [R, l, b.draggable, b.droppable, h, g, v, f, u, o]
137
+ );
138
+ return j.createElement(Q.Provider, {
139
+ value: w
140
+ }, t);
141
+ }
142
+ const Oe = (e) => {
143
+ let {
144
+ id: t,
145
+ items: n,
146
+ activeIndex: r,
147
+ overIndex: o
148
+ } = e;
149
+ return H(n, r, o).indexOf(t);
150
+ }, Ee = (e) => {
151
+ let {
152
+ containerId: t,
153
+ isSorting: n,
154
+ wasDragging: r,
155
+ index: o,
156
+ items: i,
157
+ newIndex: s,
158
+ previousItems: c,
159
+ previousContainerId: f,
160
+ transition: d
161
+ } = e;
162
+ return !d || !r || c !== i && o === s ? !1 : n ? !0 : s !== o && t === f;
163
+ }, Le = {
164
+ duration: 200,
165
+ easing: "ease"
166
+ }, W = "transform", _e = /* @__PURE__ */ B.Transition.toString({
167
+ property: W,
168
+ duration: 0,
169
+ easing: "linear"
170
+ }), ke = {
171
+ roleDescription: "sortable"
172
+ };
173
+ function $e(e) {
174
+ let {
175
+ disabled: t,
176
+ index: n,
177
+ node: r,
178
+ rect: o
179
+ } = e;
180
+ const [i, s] = pe(null), c = P(n);
181
+ return q(() => {
182
+ if (!t && n !== c.current && r.current) {
183
+ const f = o.current;
184
+ if (f) {
185
+ const d = ye(r.current, {
186
+ ignoreTransform: !0
187
+ }), a = {
188
+ x: f.left - d.left,
189
+ y: f.top - d.top,
190
+ scaleX: f.width / d.width,
191
+ scaleY: f.height / d.height
192
+ };
193
+ (a.x || a.y) && s(a);
194
+ }
195
+ }
196
+ n !== c.current && (c.current = n);
197
+ }, [t, n, r, o]), _(() => {
198
+ i && s(null);
199
+ }, [i]), i;
200
+ }
201
+ function je(e) {
202
+ let {
203
+ animateLayoutChanges: t = Ee,
204
+ attributes: n,
205
+ disabled: r,
206
+ data: o,
207
+ getNewIndex: i = Oe,
208
+ id: s,
209
+ strategy: c,
210
+ resizeObserverConfig: f,
211
+ transition: d = Le
212
+ } = e;
213
+ const {
214
+ items: a,
215
+ containerId: l,
216
+ activeIndex: u,
217
+ disabled: g,
218
+ disableTransforms: y,
219
+ sortedRects: R,
220
+ overIndex: v,
221
+ useDragOverlay: C,
222
+ strategy: m
223
+ } = ge(Q), h = ze(r, g), b = a.indexOf(s), w = L(() => ({
224
+ sortable: {
225
+ containerId: l,
226
+ index: b,
227
+ items: a
228
+ },
229
+ ...o
230
+ }), [l, o, b, a]), I = L(() => a.slice(a.indexOf(s)), [a, s]), {
231
+ rect: N,
232
+ node: X,
233
+ isOver: ee,
234
+ setNodeRef: F
235
+ } = Ie({
236
+ id: s,
237
+ data: w,
238
+ disabled: h.droppable,
239
+ resizeObserverConfig: {
240
+ updateMeasurementsFor: I,
241
+ ...f
242
+ }
243
+ }), {
244
+ active: A,
245
+ activatorEvent: te,
246
+ activeNodeRect: re,
247
+ attributes: ne,
248
+ setNodeRef: G,
249
+ listeners: oe,
250
+ isDragging: $,
251
+ over: se,
252
+ setActivatorNodeRef: ie,
253
+ transform: ae
254
+ } = xe({
255
+ id: s,
256
+ data: w,
257
+ attributes: {
258
+ ...ke,
259
+ ...n
260
+ },
261
+ disabled: h.draggable
262
+ }), ce = we(F, G), D = !!A, K = D && !y && O(u) && O(v), M = !C && $, U = M && K ? ae : null, le = K ? U ?? (c ?? m)({
263
+ rects: R,
264
+ activeNodeRect: re,
265
+ activeIndex: u,
266
+ overIndex: v,
267
+ index: b
268
+ }) : null, T = O(u) && O(v) ? i({
269
+ id: s,
270
+ items: a,
271
+ activeIndex: u,
272
+ overIndex: v
273
+ }) : b, S = A?.id, p = P({
274
+ activeId: S,
275
+ items: a,
276
+ newIndex: T,
277
+ containerId: l
278
+ }), de = a !== p.current.items, Y = t({
279
+ active: A,
280
+ containerId: l,
281
+ isDragging: $,
282
+ isSorting: D,
283
+ id: s,
284
+ index: b,
285
+ items: a,
286
+ newIndex: p.current.newIndex,
287
+ previousItems: p.current.items,
288
+ previousContainerId: p.current.containerId,
289
+ transition: d,
290
+ wasDragging: p.current.activeId != null
291
+ }), z = $e({
292
+ disabled: !Y,
293
+ index: b,
294
+ node: X,
295
+ rect: N
296
+ });
297
+ return _(() => {
298
+ D && p.current.newIndex !== T && (p.current.newIndex = T), l !== p.current.containerId && (p.current.containerId = l), a !== p.current.items && (p.current.items = a);
299
+ }, [D, T, l, a]), _(() => {
300
+ if (S === p.current.activeId)
301
+ return;
302
+ if (S != null && p.current.activeId == null) {
303
+ p.current.activeId = S;
304
+ return;
305
+ }
306
+ const fe = setTimeout(() => {
307
+ p.current.activeId = S;
308
+ }, 50);
309
+ return () => clearTimeout(fe);
310
+ }, [S]), {
311
+ active: A,
312
+ activeIndex: u,
313
+ attributes: ne,
314
+ data: w,
315
+ rect: N,
316
+ index: b,
317
+ newIndex: T,
318
+ items: a,
319
+ isOver: ee,
320
+ isSorting: D,
321
+ isDragging: $,
322
+ listeners: oe,
323
+ node: X,
324
+ overIndex: v,
325
+ over: se,
326
+ setNodeRef: ce,
327
+ setActivatorNodeRef: ie,
328
+ setDroppableNodeRef: F,
329
+ setDraggableNodeRef: G,
330
+ transform: z ?? le,
331
+ transition: ue()
332
+ };
333
+ function ue() {
334
+ if (
335
+ // Temporarily disable transitions for a single frame to set up derived transforms
336
+ z || // Or to prevent items jumping to back to their "new" position when items change
337
+ de && p.current.newIndex === b
338
+ )
339
+ return _e;
340
+ if (!(M && !De(te) || !d) && (D || Y))
341
+ return B.Transition.toString({
342
+ ...d,
343
+ property: W
344
+ });
345
+ }
346
+ }
347
+ function ze(e, t) {
348
+ var n, r;
349
+ return typeof e == "boolean" ? {
350
+ draggable: e,
351
+ // Backwards compatibility
352
+ droppable: !1
353
+ } : {
354
+ draggable: (n = e?.draggable) != null ? n : t.draggable,
355
+ droppable: (r = e?.droppable) != null ? r : t.droppable
356
+ };
357
+ }
358
+ function k(e) {
359
+ if (!e)
360
+ return !1;
361
+ const t = e.data.current;
362
+ return !!(t && "sortable" in t && typeof t.sortable == "object" && "containerId" in t.sortable && "items" in t.sortable && "index" in t.sortable);
363
+ }
364
+ const Pe = [x.Down, x.Right, x.Up, x.Left], qe = (e, t) => {
365
+ let {
366
+ context: {
367
+ active: n,
368
+ collisionRect: r,
369
+ droppableRects: o,
370
+ droppableContainers: i,
371
+ over: s,
372
+ scrollableAncestors: c
373
+ }
374
+ } = t;
375
+ if (Pe.includes(e.code)) {
376
+ if (e.preventDefault(), !n || !r)
377
+ return;
378
+ const f = [];
379
+ i.getEnabled().forEach((l) => {
380
+ if (!l || l != null && l.disabled)
381
+ return;
382
+ const u = o.get(l.id);
383
+ if (u)
384
+ switch (e.code) {
385
+ case x.Down:
386
+ r.top < u.top && f.push(l);
387
+ break;
388
+ case x.Up:
389
+ r.top > u.top && f.push(l);
390
+ break;
391
+ case x.Left:
392
+ r.left > u.left && f.push(l);
393
+ break;
394
+ case x.Right:
395
+ r.left < u.left && f.push(l);
396
+ break;
397
+ }
398
+ });
399
+ const d = ve({
400
+ collisionRect: r,
401
+ droppableRects: o,
402
+ droppableContainers: f
403
+ });
404
+ let a = he(d, "id");
405
+ if (a === s?.id && d.length > 1 && (a = d[1].id), a != null) {
406
+ const l = i.get(n.id), u = i.get(a), g = u ? o.get(u.id) : null, y = u?.node.current;
407
+ if (y && g && l && u) {
408
+ const v = me(y).some((I, N) => c[N] !== I), C = Z(l, u), m = Xe(l, u), h = v || !C ? {
409
+ x: 0,
410
+ y: 0
411
+ } : {
412
+ x: m ? r.width - g.width : 0,
413
+ y: m ? r.height - g.height : 0
414
+ }, b = {
415
+ x: g.left,
416
+ y: g.top
417
+ };
418
+ return h.x && h.y ? b : Ce(b, h);
419
+ }
420
+ }
421
+ }
422
+ };
423
+ function Z(e, t) {
424
+ return !k(e) || !k(t) ? !1 : e.data.current.sortable.containerId === t.data.current.sortable.containerId;
425
+ }
426
+ function Xe(e, t) {
427
+ return !k(e) || !k(t) || !Z(e, t) ? !1 : e.data.current.sortable.index < t.data.current.sortable.index;
428
+ }
429
+ export {
430
+ Ye as SortableContext,
431
+ H as arrayMove,
432
+ Ee as defaultAnimateLayoutChanges,
433
+ Oe as defaultNewIndexGetter,
434
+ k as hasSortableData,
435
+ V as rectSortingStrategy,
436
+ qe as sortableKeyboardCoordinates,
437
+ je as useSortable,
438
+ Ue as verticalListSortingStrategy
439
+ };
440
+ //# sourceMappingURL=sortable.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortable.esm.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js"],"sourcesContent":["import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n"],"names":["arrayMove","array","from","to","newArray","getSortedRects","items","rects","accumulator","id","index","rect","isValidIndex","itemsEqual","a","b","i","normalizeDisabled","disabled","rectSortingStrategy","_ref","activeIndex","overIndex","newRects","oldRect","newRect","defaultScale$1","verticalListSortingStrategy","_rects$activeIndex","fallbackActiveRect","activeNodeRect","overIndexRect","itemGap","getItemGap$1","clientRects","currentRect","previousRect","nextRect","ID_PREFIX","Context","React","SortableContext","children","userDefinedItems","strategy","disabledProp","active","dragOverlay","droppableRects","over","measureDroppableContainers","useDndContext","containerId","useUniqueId","useDragOverlay","useMemo","item","isDragging","previousItemsRef","useRef","itemsHaveChanged","disableTransforms","useIsomorphicLayoutEffect","useEffect","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","_ref2","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transition","defaultTransition","transitionProperty","disabledTransition","CSS","defaultAttributes","useDerivedTransform","node","derivedTransform","setDerivedtransform","useState","previousIndex","initial","current","getClientRect","delta","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","resizeObserverConfig","globalDisabled","sortedRects","globalStrategy","useContext","normalizeLocalDisabled","data","itemsAfterCurrentSortable","isOver","setDroppableNodeRef","useDroppable","activatorEvent","attributes","setDraggableNodeRef","listeners","setActivatorNodeRef","transform","useDraggable","setNodeRef","useCombinedRefs","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","finalTransform","activeId","previous","shouldAnimateLayoutChanges","timeoutId","getTransition","isKeyboardEvent","_localDisabled$dragga","_localDisabled$droppa","hasSortableData","entry","directions","KeyboardCode","sortableKeyboardCoordinates","event","collisionRect","droppableContainers","scrollableAncestors","filteredContainers","collisions","closestCorners","closestId","getFirstCollision","activeDroppable","newDroppable","newNode","hasDifferentScrollAncestors","getScrollableAncestors","element","hasSameContainer","isSameContainer","isAfterActive","isAfter","offset","rectCoordinates","subtract"],"mappings":";;;AAOA,SAASA,EAAUC,GAAOC,GAAMC,GAAI;AAClC,QAAMC,IAAWH,EAAM,MAAK;AAC5B,SAAAG,EAAS,OAAOD,IAAK,IAAIC,EAAS,SAASD,IAAKA,GAAI,GAAGC,EAAS,OAAOF,GAAM,CAAC,EAAE,CAAC,CAAC,GAC3EE;AACT;AAYA,SAASC,GAAeC,GAAOC,GAAO;AACpC,SAAOD,EAAM,OAAO,CAACE,GAAaC,GAAIC,MAAU;AAC9C,UAAMC,IAAOJ,EAAM,IAAIE,CAAE;AAEzB,WAAIE,MACFH,EAAYE,CAAK,IAAIC,IAGhBH;AAAA,EACT,GAAG,MAAMF,EAAM,MAAM,CAAC;AACxB;AAEA,SAASM,EAAaF,GAAO;AAC3B,SAAOA,MAAU,QAAQA,KAAS;AACpC;AAEA,SAASG,GAAWC,GAAGC,GAAG;AACxB,MAAID,MAAMC;AACR,WAAO;AAGT,MAAID,EAAE,WAAWC,EAAE;AACjB,WAAO;AAGT,WAASC,IAAI,GAAGA,IAAIF,EAAE,QAAQE;AAC5B,QAAIF,EAAEE,CAAC,MAAMD,EAAEC,CAAC;AACd,aAAO;AAIX,SAAO;AACT;AAEA,SAASC,GAAkBC,GAAU;AACnC,SAAI,OAAOA,KAAa,YACf;AAAA,IACL,WAAWA;AAAA,IACX,WAAWA;AAAA,EACjB,IAGSA;AACT;AA8EK,MAACC,IAAsB,CAAAC,MAAQ;AAClC,MAAI;AAAA,IACF,OAAAb;AAAA,IACA,aAAAc;AAAA,IACA,WAAAC;AAAA,IACA,OAAAZ;AAAA,EACJ,IAAMU;AACJ,QAAMG,IAAWvB,EAAUO,GAAOe,GAAWD,CAAW,GAClDG,IAAUjB,EAAMG,CAAK,GACrBe,IAAUF,EAASb,CAAK;AAE9B,SAAI,CAACe,KAAW,CAACD,IACR,OAGF;AAAA,IACL,GAAGC,EAAQ,OAAOD,EAAQ;AAAA,IAC1B,GAAGC,EAAQ,MAAMD,EAAQ;AAAA,IACzB,QAAQC,EAAQ,QAAQD,EAAQ;AAAA,IAChC,QAAQC,EAAQ,SAASD,EAAQ;AAAA,EACrC;AACA,GAmCME,IAAiB;AAAA,EACrB,QAAQ;AAAA,EACR,QAAQ;AACV,GACMC,KAA8B,CAAAP,MAAQ;AAC1C,MAAIQ;AAEJ,MAAI;AAAA,IACF,aAAAP;AAAA,IACA,gBAAgBQ;AAAA,IAChB,OAAAnB;AAAA,IACA,OAAAH;AAAA,IACA,WAAAe;AAAA,EACJ,IAAMF;AACJ,QAAMU,KAAkBF,IAAqBrB,EAAMc,CAAW,MAAM,OAAOO,IAAqBC;AAEhG,MAAI,CAACC;AACH,WAAO;AAGT,MAAIpB,MAAUW,GAAa;AACzB,UAAMU,IAAgBxB,EAAMe,CAAS;AAErC,WAAKS,IAIE;AAAA,MACL,GAAG;AAAA,MACH,GAAGV,IAAcC,IAAYS,EAAc,MAAMA,EAAc,UAAUD,EAAe,MAAMA,EAAe,UAAUC,EAAc,MAAMD,EAAe;AAAA,MAC1J,GAAGJ;AAAA,IACT,IAPa;AAAA,EAQX;AAEA,QAAMM,IAAUC,GAAa1B,GAAOG,GAAOW,CAAW;AAEtD,SAAIX,IAAQW,KAAeX,KAASY,IAC3B;AAAA,IACL,GAAG;AAAA,IACH,GAAG,CAACQ,EAAe,SAASE;AAAA,IAC5B,GAAGN;AAAA,EACT,IAGMhB,IAAQW,KAAeX,KAASY,IAC3B;AAAA,IACL,GAAG;AAAA,IACH,GAAGQ,EAAe,SAASE;AAAA,IAC3B,GAAGN;AAAA,EACT,IAGS;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAGA;AAAA,EACP;AACA;AAEA,SAASO,GAAaC,GAAaxB,GAAOW,GAAa;AACrD,QAAMc,IAAcD,EAAYxB,CAAK,GAC/B0B,IAAeF,EAAYxB,IAAQ,CAAC,GACpC2B,IAAWH,EAAYxB,IAAQ,CAAC;AAEtC,SAAKyB,IAIDd,IAAcX,IACT0B,IAAeD,EAAY,OAAOC,EAAa,MAAMA,EAAa,UAAUC,IAAWA,EAAS,OAAOF,EAAY,MAAMA,EAAY,UAAU,IAGjJE,IAAWA,EAAS,OAAOF,EAAY,MAAMA,EAAY,UAAUC,IAAeD,EAAY,OAAOC,EAAa,MAAMA,EAAa,UAAU,IAP7I;AAQX;AAEA,MAAME,IAAY,YACZC,IAAuBC,gBAAAA,EAAM,cAAc;AAAA,EAC/C,aAAa;AAAA,EACb,aAAaF;AAAA,EACb,mBAAmB;AAAA,EACnB,OAAO,CAAA;AAAA,EACP,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,aAAa,CAAA;AAAA,EACb,UAAUnB;AAAA,EACV,UAAU;AAAA,IACR,WAAW;AAAA,IACX,WAAW;AAAA,EACf;AACA,CAAC;AACD,SAASsB,GAAgBrB,GAAM;AAC7B,MAAI;AAAA,IACF,UAAAsB;AAAA,IACA,IAAAjC;AAAA,IACA,OAAOkC;AAAA,IACP,UAAAC,IAAWzB;AAAA,IACX,UAAU0B,IAAe;AAAA,EAC7B,IAAMzB;AACJ,QAAM;AAAA,IACJ,QAAA0B;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,4BAAAC;AAAA,EACJ,IAAMC,GAAa,GACXC,IAAcC,GAAYf,GAAW7B,CAAE,GACvC6C,IAAyBP,EAAY,SAAS,MAC9CzC,IAAQiD,EAAQ,MAAMZ,EAAiB,IAAI,CAAAa,MAAQ,OAAOA,KAAS,YAAY,QAAQA,IAAOA,EAAK,KAAKA,CAAI,GAAG,CAACb,CAAgB,CAAC,GACjIc,IAAaX,KAAU,MACvBzB,IAAcyB,IAASxC,EAAM,QAAQwC,EAAO,EAAE,IAAI,IAClDxB,IAAY2B,IAAO3C,EAAM,QAAQ2C,EAAK,EAAE,IAAI,IAC5CS,IAAmBC,EAAOrD,CAAK,GAC/BsD,IAAmB,CAAC/C,GAAWP,GAAOoD,EAAiB,OAAO,GAC9DG,IAAoBvC,MAAc,MAAMD,MAAgB,MAAMuC,GAC9D1C,IAAWD,GAAkB4B,CAAY;AAC/C,EAAAiB,EAA0B,MAAM;AAC9B,IAAIF,KAAoBH,KACtBP,EAA2B5C,CAAK;AAAA,EAEpC,GAAG,CAACsD,GAAkBtD,GAAOmD,GAAYP,CAA0B,CAAC,GACpEa,EAAU,MAAM;AACd,IAAAL,EAAiB,UAAUpD;AAAA,EAC7B,GAAG,CAACA,CAAK,CAAC;AACV,QAAM0D,IAAeT;AAAA,IAAQ,OAAO;AAAA,MAClC,aAAAlC;AAAA,MACA,aAAA+B;AAAA,MACA,UAAAlC;AAAA,MACA,mBAAA2C;AAAA,MACA,OAAAvD;AAAA,MACA,WAAAgB;AAAA,MACA,gBAAAgC;AAAA,MACA,aAAajD,GAAeC,GAAO0C,CAAc;AAAA,MACjD,UAAAJ;AAAA,IACJ;AAAA;AAAA,IACE,CAACvB,GAAa+B,GAAalC,EAAS,WAAWA,EAAS,WAAW2C,GAAmBvD,GAAOgB,GAAW0B,GAAgBM,GAAgBV,CAAQ;AAAA,EAAC;AACjJ,SAAOJ,EAAM,cAAcD,EAAQ,UAAU;AAAA,IAC3C,OAAOyB;AAAA,EACX,GAAKtB,CAAQ;AACb;AAEK,MAACuB,KAAwB,CAAA7C,MAAQ;AACpC,MAAI;AAAA,IACF,IAAAX;AAAA,IACA,OAAAH;AAAA,IACA,aAAAe;AAAA,IACA,WAAAC;AAAA,EACJ,IAAMF;AACJ,SAAOpB,EAAUM,GAAOe,GAAaC,CAAS,EAAE,QAAQb,CAAE;AAC5D,GACMyD,KAA8B,CAAAC,MAAS;AAC3C,MAAI;AAAA,IACF,aAAAf;AAAA,IACA,WAAAgB;AAAA,IACA,aAAAC;AAAA,IACA,OAAA3D;AAAA,IACA,OAAAJ;AAAA,IACA,UAAAgE;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,YAAAC;AAAA,EACJ,IAAMN;AAMJ,SAJI,CAACM,KAAc,CAACJ,KAIhBE,MAAkBjE,KAASI,MAAU4D,IAChC,KAGLF,IACK,KAGFE,MAAa5D,KAAS0C,MAAgBoB;AAC/C,GACME,KAAoB;AAAA,EACxB,UAAU;AAAA,EACV,QAAQ;AACV,GACMC,IAAqB,aACrBC,KAAkC,gBAAAC,EAAI,WAAW,SAAS;AAAA,EAC9D,UAAUF;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACV,CAAC,GACKG,KAAoB;AAAA,EACxB,iBAAiB;AACnB;AAOA,SAASC,GAAoB3D,GAAM;AACjC,MAAI;AAAA,IACF,UAAAF;AAAA,IACA,OAAAR;AAAA,IACA,MAAAsE;AAAA,IACA,MAAArE;AAAA,EACJ,IAAMS;AACJ,QAAM,CAAC6D,GAAkBC,CAAmB,IAAIC,GAAS,IAAI,GACvDC,IAAgBzB,EAAOjD,CAAK;AAClC,SAAAoD,EAA0B,MAAM;AAC9B,QAAI,CAAC5C,KAAYR,MAAU0E,EAAc,WAAWJ,EAAK,SAAS;AAChE,YAAMK,IAAU1E,EAAK;AAErB,UAAI0E,GAAS;AACX,cAAMC,IAAUC,GAAcP,EAAK,SAAS;AAAA,UAC1C,iBAAiB;AAAA,QAC3B,CAAS,GACKQ,IAAQ;AAAA,UACZ,GAAGH,EAAQ,OAAOC,EAAQ;AAAA,UAC1B,GAAGD,EAAQ,MAAMC,EAAQ;AAAA,UACzB,QAAQD,EAAQ,QAAQC,EAAQ;AAAA,UAChC,QAAQD,EAAQ,SAASC,EAAQ;AAAA,QAC3C;AAEQ,SAAIE,EAAM,KAAKA,EAAM,MACnBN,EAAoBM,CAAK;AAAA,MAE7B;AAAA,IACF;AAEA,IAAI9E,MAAU0E,EAAc,YAC1BA,EAAc,UAAU1E;AAAA,EAE5B,GAAG,CAACQ,GAAUR,GAAOsE,GAAMrE,CAAI,CAAC,GAChCoD,EAAU,MAAM;AACd,IAAIkB,KACFC,EAAoB,IAAI;AAAA,EAE5B,GAAG,CAACD,CAAgB,CAAC,GACdA;AACT;AAEA,SAASQ,GAAYrE,GAAM;AACzB,MAAI;AAAA,IACF,sBAAAsE,IAAuBxB;AAAA,IACvB,YAAYyB;AAAA,IACZ,UAAUC;AAAA,IACV,MAAMC;AAAA,IACN,aAAAC,IAAc7B;AAAA,IACd,IAAAxD;AAAA,IACA,UAAUsF;AAAA,IACV,sBAAAC;AAAA,IACA,YAAAvB,IAAaC;AAAA,EACjB,IAAMtD;AACJ,QAAM;AAAA,IACJ,OAAAd;AAAA,IACA,aAAA8C;AAAA,IACA,aAAA/B;AAAA,IACA,UAAU4E;AAAA,IACV,mBAAApC;AAAA,IACA,aAAAqC;AAAA,IACA,WAAA5E;AAAA,IACA,gBAAAgC;AAAA,IACA,UAAU6C;AAAA,EACd,IAAMC,GAAW7D,CAAO,GAChBrB,IAAWmF,GAAuBT,GAAeK,CAAc,GAC/DvF,IAAQJ,EAAM,QAAQG,CAAE,GACxB6F,IAAO/C,EAAQ,OAAO;AAAA,IAC1B,UAAU;AAAA,MACR,aAAAH;AAAA,MACA,OAAA1C;AAAA,MACA,OAAAJ;AAAA,IACN;AAAA,IACI,GAAGuF;AAAA,EACP,IAAM,CAACzC,GAAayC,GAAYnF,GAAOJ,CAAK,CAAC,GACrCiG,IAA4BhD,EAAQ,MAAMjD,EAAM,MAAMA,EAAM,QAAQG,CAAE,CAAC,GAAG,CAACH,GAAOG,CAAE,CAAC,GACrF;AAAA,IACJ,MAAAE;AAAA,IACA,MAAAqE;AAAA,IACA,QAAAwB;AAAA,IACA,YAAYC;AAAA,EAChB,IAAMC,GAAa;AAAA,IACf,IAAAjG;AAAA,IACA,MAAA6F;AAAA,IACA,UAAUpF,EAAS;AAAA,IACnB,sBAAsB;AAAA,MACpB,uBAAuBqF;AAAA,MACvB,GAAGP;AAAA,IACT;AAAA,EACA,CAAG,GACK;AAAA,IACJ,QAAAlD;AAAA,IACA,gBAAA6D;AAAA,IACA,gBAAA7E;AAAA,IACA,YAAA8E;AAAA,IACA,YAAYC;AAAA,IACZ,WAAAC;AAAA,IACA,YAAArD;AAAA,IACA,MAAAR;AAAA,IACA,qBAAA8D;AAAA,IACA,WAAAC;AAAA,EACJ,IAAMC,GAAa;AAAA,IACf,IAAAxG;AAAA,IACA,MAAA6F;AAAA,IACA,YAAY;AAAA,MAAE,GAAGxB;AAAA,MACf,GAAGa;AAAA,IACT;AAAA,IACI,UAAUzE,EAAS;AAAA,EACvB,CAAG,GACKgG,KAAaC,GAAgBV,GAAqBI,CAAmB,GACrEzC,IAAY,EAAQtB,GACpBsE,IAAehD,KAAa,CAACP,KAAqBjD,EAAaS,CAAW,KAAKT,EAAaU,CAAS,GACrG+F,IAA2B,CAAC/D,KAAkBG,GAC9C6D,IAAyBD,KAA4BD,IAAeJ,KAAY,MAEhFO,KAAiBH,IAAeE,MADrBvB,KAAwCI,GACgD;AAAA,IACvG,OAAOD;AAAA,IACP,gBAAApE;AAAA,IACA,aAAAT;AAAA,IACA,WAAAC;AAAA,IACA,OAAAZ;AAAA,EACJ,CAAG,IAAI,MACC4D,IAAW1D,EAAaS,CAAW,KAAKT,EAAaU,CAAS,IAAIwE,EAAY;AAAA,IAClF,IAAArF;AAAA,IACA,OAAAH;AAAA,IACA,aAAAe;AAAA,IACA,WAAAC;AAAA,EACJ,CAAG,IAAIZ,GACC8G,IAAqC1E,GAAO,IAC5C2E,IAAW9D,EAAO;AAAA,IACtB,UAAA6D;AAAA,IACA,OAAAlH;AAAA,IACA,UAAAgE;AAAA,IACA,aAAAlB;AAAA,EACJ,CAAG,GACKQ,KAAmBtD,MAAUmH,EAAS,QAAQ,OAC9CC,IAA6BhC,EAAqB;AAAA,IACtD,QAAA5C;AAAA,IACA,aAAAM;AAAA,IACA,YAAAK;AAAA,IACA,WAAAW;AAAA,IACA,IAAA3D;AAAA,IACA,OAAAC;AAAA,IACA,OAAAJ;AAAA,IACA,UAAUmH,EAAS,QAAQ;AAAA,IAC3B,eAAeA,EAAS,QAAQ;AAAA,IAChC,qBAAqBA,EAAS,QAAQ;AAAA,IACtC,YAAAhD;AAAA,IACA,aAAagD,EAAS,QAAQ,YAAY;AAAA,EAC9C,CAAG,GACKxC,IAAmBF,GAAoB;AAAA,IAC3C,UAAU,CAAC2C;AAAA,IACX,OAAAhH;AAAA,IACA,MAAAsE;AAAA,IACA,MAAArE;AAAA,EACJ,CAAG;AACD,SAAAoD,EAAU,MAAM;AACd,IAAIK,KAAaqD,EAAS,QAAQ,aAAanD,MAC7CmD,EAAS,QAAQ,WAAWnD,IAG1BlB,MAAgBqE,EAAS,QAAQ,gBACnCA,EAAS,QAAQ,cAAcrE,IAG7B9C,MAAUmH,EAAS,QAAQ,UAC7BA,EAAS,QAAQ,QAAQnH;AAAA,EAE7B,GAAG,CAAC8D,GAAWE,GAAUlB,GAAa9C,CAAK,CAAC,GAC5CyD,EAAU,MAAM;AACd,QAAIyD,MAAaC,EAAS,QAAQ;AAChC;AAGF,QAAID,KAAY,QAAQC,EAAS,QAAQ,YAAY,MAAM;AACzD,MAAAA,EAAS,QAAQ,WAAWD;AAC5B;AAAA,IACF;AAEA,UAAMG,KAAY,WAAW,MAAM;AACjC,MAAAF,EAAS,QAAQ,WAAWD;AAAA,IAC9B,GAAG,EAAE;AACL,WAAO,MAAM,aAAaG,EAAS;AAAA,EACrC,GAAG,CAACH,CAAQ,CAAC,GACN;AAAA,IACL,QAAA1E;AAAA,IACA,aAAAzB;AAAA,IACA,YAAAuF;AAAA,IACA,MAAAN;AAAA,IACA,MAAA3F;AAAA,IACA,OAAAD;AAAA,IACA,UAAA4D;AAAA,IACA,OAAAhE;AAAA,IACA,QAAAkG;AAAA,IACA,WAAApC;AAAA,IACA,YAAAX;AAAA,IACA,WAAAqD;AAAA,IACA,MAAA9B;AAAA,IACA,WAAA1D;AAAA,IACA,MAAA2B;AAAA,IACA,YAAAiE;AAAA,IACA,qBAAAH;AAAA,IACA,qBAAAN;AAAA,IACA,qBAAAI;AAAA,IACA,WAAW5B,KAA8CsC;AAAA,IACzD,YAAYK,GAAa;AAAA,EAC7B;AAEE,WAASA,KAAgB;AACvB;AAAA;AAAA,MACA3C;AAAA,MACArB,MAAoB6D,EAAS,QAAQ,aAAa/G;AAAA;AAChD,aAAOkE;AAGT,QAAI,EAAAyC,KAA4B,CAACQ,GAAgBlB,EAAc,KAAK,CAAClC,OAIjEL,KAAasD;AACf,aAAO7C,EAAI,WAAW,SAAS;AAAA,QAAE,GAAGJ;AAAA,QAClC,UAAUE;AAAA,MAClB,CAAO;AAAA,EAIL;AACF;AAEA,SAAS0B,GAAuBT,GAAeK,GAAgB;AAC7D,MAAI6B,GAAuBC;AAE3B,SAAI,OAAOnC,KAAkB,YACpB;AAAA,IACL,WAAWA;AAAA;AAAA,IAEX,WAAW;AAAA,EACjB,IAGS;AAAA,IACL,YAAYkC,IAAyDlC,GAAc,cAAc,OAAOkC,IAAwB7B,EAAe;AAAA,IAC/I,YAAY8B,IAAyDnC,GAAc,cAAc,OAAOmC,IAAwB9B,EAAe;AAAA,EACnJ;AACA;AAEA,SAAS+B,EAAgBC,GAAO;AAC9B,MAAI,CAACA;AACH,WAAO;AAGT,QAAM3B,IAAO2B,EAAM,KAAK;AAExB,SAAI,GAAA3B,KAAQ,cAAcA,KAAQ,OAAOA,EAAK,YAAa,YAAY,iBAAiBA,EAAK,YAAY,WAAWA,EAAK,YAAY,WAAWA,EAAK;AAKvJ;AAEA,MAAM4B,KAAa,CAACC,EAAa,MAAMA,EAAa,OAAOA,EAAa,IAAIA,EAAa,IAAI,GACvFC,KAA8B,CAACC,GAAOjH,MAAS;AACnD,MAAI;AAAA,IACF,SAAS;AAAA,MACP,QAAA0B;AAAA,MACA,eAAAwF;AAAA,MACA,gBAAAtF;AAAA,MACA,qBAAAuF;AAAA,MACA,MAAAtF;AAAA,MACA,qBAAAuF;AAAA,IACN;AAAA,EACA,IAAMpH;AAEJ,MAAI8G,GAAW,SAASG,EAAM,IAAI,GAAG;AAGnC,QAFAA,EAAM,eAAc,GAEhB,CAACvF,KAAU,CAACwF;AACd;AAGF,UAAMG,IAAqB,CAAA;AAC3B,IAAAF,EAAoB,WAAU,EAAG,QAAQ,CAAAN,MAAS;AAChD,UAAI,CAACA,KAASA,KAAS,QAAQA,EAAM;AACnC;AAGF,YAAMtH,IAAOqC,EAAe,IAAIiF,EAAM,EAAE;AAExC,UAAKtH;AAIL,gBAAQ0H,EAAM,MAAI;AAAA,UAChB,KAAKF,EAAa;AAChB,YAAIG,EAAc,MAAM3H,EAAK,OAC3B8H,EAAmB,KAAKR,CAAK;AAG/B;AAAA,UAEF,KAAKE,EAAa;AAChB,YAAIG,EAAc,MAAM3H,EAAK,OAC3B8H,EAAmB,KAAKR,CAAK;AAG/B;AAAA,UAEF,KAAKE,EAAa;AAChB,YAAIG,EAAc,OAAO3H,EAAK,QAC5B8H,EAAmB,KAAKR,CAAK;AAG/B;AAAA,UAEF,KAAKE,EAAa;AAChB,YAAIG,EAAc,OAAO3H,EAAK,QAC5B8H,EAAmB,KAAKR,CAAK;AAG/B;AAAA,QACV;AAAA,IACI,CAAC;AACD,UAAMS,IAAaC,GAAe;AAAA,MAEhC,eAAeL;AAAA,MACf,gBAAAtF;AAAA,MACA,qBAAqByF;AAAA,IAEvB,CAAC;AACD,QAAIG,IAAYC,GAAkBH,GAAY,IAAI;AAMlD,QAJIE,MAAuC3F,GAAK,MAAOyF,EAAW,SAAS,MACzEE,IAAYF,EAAW,CAAC,EAAE,KAGxBE,KAAa,MAAM;AACrB,YAAME,IAAkBP,EAAoB,IAAIzF,EAAO,EAAE,GACnDiG,IAAeR,EAAoB,IAAIK,CAAS,GAChDnH,IAAUsH,IAAe/F,EAAe,IAAI+F,EAAa,EAAE,IAAI,MAC/DC,IAA0CD,GAAa,KAAK;AAElE,UAAIC,KAAWvH,KAAWqH,KAAmBC,GAAc;AAEzD,cAAME,IADqBC,GAAuBF,CAAO,EACF,KAAK,CAACG,GAASzI,MAAU8H,EAAoB9H,CAAK,MAAMyI,CAAO,GAChHC,IAAmBC,EAAgBP,GAAiBC,CAAY,GAChEO,IAAgBC,GAAQT,GAAiBC,CAAY,GACrDS,IAASP,KAA+B,CAACG,IAAmB;AAAA,UAChE,GAAG;AAAA,UACH,GAAG;AAAA,QACb,IAAY;AAAA,UACF,GAAGE,IAAgBhB,EAAc,QAAQ7G,EAAQ,QAAQ;AAAA,UACzD,GAAG6H,IAAgBhB,EAAc,SAAS7G,EAAQ,SAAS;AAAA,QACrE,GACcgI,IAAkB;AAAA,UACtB,GAAGhI,EAAQ;AAAA,UACX,GAAGA,EAAQ;AAAA,QACrB;AAEQ,eADuB+H,EAAO,KAAKA,EAAO,IAAIC,IAAkBC,GAASD,GAAiBD,CAAM;AAAA,MAElG;AAAA,IACF;AAAA,EACF;AAGF;AAEA,SAASH,EAAgBvI,GAAGC,GAAG;AAC7B,SAAI,CAACiH,EAAgBlH,CAAC,KAAK,CAACkH,EAAgBjH,CAAC,IACpC,KAGFD,EAAE,KAAK,QAAQ,SAAS,gBAAgBC,EAAE,KAAK,QAAQ,SAAS;AACzE;AAEA,SAASwI,GAAQzI,GAAGC,GAAG;AAKrB,SAJI,CAACiH,EAAgBlH,CAAC,KAAK,CAACkH,EAAgBjH,CAAC,KAIzC,CAACsI,EAAgBvI,GAAGC,CAAC,IAChB,KAGFD,EAAE,KAAK,QAAQ,SAAS,QAAQC,EAAE,KAAK,QAAQ,SAAS;AACjE;","x_google_ignoreList":[0]}