@himanshu-sorathiya/react-kit 1.0.17 → 1.0.18

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.
package/dist/index.js CHANGED
@@ -1,1062 +1,5 @@
1
- import { createContext as e, useCallback as t, useContext as n, useEffect as r, useLayoutEffect as i, useMemo as a, useRef as o, useState as s } from "react";
2
- import { Fragment as c, jsx as l } from "react/jsx-runtime";
3
- import { createPortal as u } from "react-dom";
4
- //#region src/ui/FuzzyHighlighter/FuzzyHighlighter.tsx
5
- function d({ text: e, query: t, className: n = "", caseSensitive: r = !1 }) {
6
- let i = t.trim();
7
- if (!i || !e) return /* @__PURE__ */ l(c, { children: e });
8
- let a = i.split(/\s+/).filter((e) => e.length > 0);
9
- if (a.length === 0) return /* @__PURE__ */ l(c, { children: e });
10
- let o = `fuzzy-highlight ${n}`.trim(), s = [...a].sort((e, t) => t.length - e.length).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")), u = [...s];
11
- if (s.length > 1) {
12
- let e = a.map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s+");
13
- u.unshift(e);
14
- }
15
- if (i.length > 1 && i === i.toUpperCase() && /^[A-Z]+$/.test(i)) {
16
- let e = i.split("").map((e) => `\\b${e}`).join("[^a-z0-9]*");
17
- u.unshift(e);
18
- }
19
- let d = `(${u.join("|")})`, f = new RegExp(d, r ? "g" : "gi");
20
- return /* @__PURE__ */ l(c, { children: e.split(f).map((e, t) => f.test(e) ? /* @__PURE__ */ l("strong", {
21
- className: o,
22
- children: e
23
- }, t) : e) });
24
- }
25
- //#endregion
26
- //#region src/ui/useModal/ModalContext.tsx
27
- var f = e(null), p = e(null);
28
- //#endregion
29
- //#region src/ui/useModal/useModal.ts
30
- function m() {
31
- let e = n(f);
32
- if (!e) throw Error("useModalState must be used within a ModalProvider");
33
- return e;
34
- }
35
- function h() {
36
- let e = n(p);
37
- if (!e) throw Error("useModalActions must be used within a ModalProvider");
38
- return e;
39
- }
40
- function g() {
41
- return {
42
- ...m(),
43
- ...h()
44
- };
45
- }
46
- //#endregion
47
- //#region src/ui/useModal/ModalLayout.tsx
48
- function _({ modalId: e, children: t, wrapperClassName: n = "", wrapperStyle: i, containerClassName: a = "", containerStyle: c }) {
49
- let { isOpen: d, id: f } = m(), { closeModal: p, clearModal: g } = h(), [_, v] = s(!1), y = o(null), b = o(null), x = f === e, S = d && x;
50
- return r(() => {
51
- let e = y.current;
52
- e && (S && !e.open ? (document.activeElement && (b.current = document.activeElement), v(!1), e.showModal()) : !S && e.open && v(!0));
53
- }, [S]), typeof document > "u" || !x && !_ ? null : u(/* @__PURE__ */ l("dialog", {
54
- ref: y,
55
- onCancel: (e) => {
56
- e.preventDefault(), p();
57
- },
58
- onClose: p,
59
- onClick: (e) => {
60
- let t = y.current;
61
- if (!t) return;
62
- let n = t.getBoundingClientRect();
63
- (e.clientX < n.x || e.clientX > n.x + n.width || e.clientY < n.y || e.clientY > n.y + n.height) && p();
64
- },
65
- onAnimationEnd: () => {
66
- if (_) {
67
- let e = y.current;
68
- e && e.close(), v(!1), x && g(), b.current &&= (b.current.focus(), null);
69
- }
70
- },
71
- className: `universal-modal ${n}`.trim(),
72
- style: i,
73
- children: /* @__PURE__ */ l("div", {
74
- className: `modal-container ${a}`.trim(),
75
- style: c,
76
- children: t
77
- })
78
- }), document.body);
79
- }
80
- //#endregion
81
- //#region src/shared/utils.ts
82
- function v(e, t, n) {
83
- if (typeof e != "object" || !e) return e;
84
- let r = t ?? n ?? "";
85
- return Array.isArray(r) ? r.reduce((e, t) => e?.[t], e) : r.includes(".") ? r.split(".").reduce((e, t) => e?.[t], e) : e?.[r];
86
- }
87
- //#endregion
88
- //#region src/state/useFilter/utils.ts
89
- var y = {
90
- text: {
91
- contains: (e, t, n) => e == null ? !1 : n?.caseSensitive ? String(e).includes(String(t)) : String(e).toLowerCase().includes(String(t).toLowerCase()),
92
- equals: (e, t, n) => e == null ? !1 : n?.caseSensitive ? String(e) === String(t) : String(e).toLowerCase() === String(t).toLowerCase(),
93
- startsWith: (e, t, n) => e == null ? !1 : n?.caseSensitive ? String(e).startsWith(String(t)) : String(e).toLowerCase().startsWith(String(t).toLowerCase()),
94
- endsWith: (e, t, n) => e == null ? !1 : n?.caseSensitive ? String(e).endsWith(String(t)) : String(e).toLowerCase().endsWith(String(t).toLowerCase()),
95
- notContains: (e, t, n) => e == null ? !0 : n?.caseSensitive ? !String(e).includes(String(t)) : !String(e).toLowerCase().includes(String(t).toLowerCase())
96
- },
97
- number: {
98
- equals: (e, t) => Number(e) === Number(t),
99
- greaterThan: (e, t) => Number(e) > Number(t),
100
- lessThan: (e, t) => Number(e) < Number(t),
101
- greaterThanOrEqual: (e, t) => Number(e) >= Number(t),
102
- lessThanOrEqual: (e, t) => Number(e) <= Number(t),
103
- between: (e, t) => {
104
- if (typeof t != "object" || !t) return !1;
105
- let { min: n, max: r } = t;
106
- return n == null || r == null ? !1 : Number(e) >= Number(n) && Number(e) <= Number(r);
107
- }
108
- },
109
- boolean: { equals: (e, t) => !!e == !!t },
110
- date: {
111
- equals: (e, t) => {
112
- if (!e || !t) return !1;
113
- let n = new Date(e), r = new Date(t);
114
- return Number.isNaN(n.getTime()) || Number.isNaN(r.getTime()) ? !1 : n.getFullYear() === r.getFullYear() && n.getMonth() === r.getMonth() && n.getDate() === r.getDate();
115
- },
116
- before: (e, t) => {
117
- if (!e || !t) return !1;
118
- let n = new Date(e).setHours(0, 0, 0, 0), r = new Date(t).setHours(0, 0, 0, 0);
119
- return Number.isNaN(n) || Number.isNaN(r) ? !1 : n < r;
120
- },
121
- after: (e, t) => {
122
- if (!e || !t) return !1;
123
- let n = new Date(e).setHours(0, 0, 0, 0), r = new Date(t).setHours(0, 0, 0, 0);
124
- return Number.isNaN(n) || Number.isNaN(r) ? !1 : n > r;
125
- },
126
- between: (e, t) => {
127
- if (!e || typeof t != "object" || !t) return !1;
128
- let { min: n, max: r } = t;
129
- if (n == null || r == null) return !1;
130
- let i = new Date(e).setHours(0, 0, 0, 0), a = new Date(n).setHours(0, 0, 0, 0), o = new Date(r).setHours(0, 0, 0, 0);
131
- return Number.isNaN(i) || Number.isNaN(a) || Number.isNaN(o) ? !1 : i >= a && i <= o;
132
- }
133
- },
134
- select: {
135
- equals: (e, t) => e === t,
136
- notEquals: (e, t) => e !== t
137
- },
138
- multiselect: {
139
- in: (e, t) => t.includes(e),
140
- notIn: (e, t) => !t.includes(e),
141
- intersects: (e, t) => e.some((e) => t.includes(e))
142
- }
143
- };
144
- //#endregion
145
- //#region src/state/useFilter/useFilter.ts
146
- function b(e, n = []) {
147
- let r = o(n), [i, c] = s(() => n), l = a(() => {
148
- let t = i.filter((e) => e.isActive !== !1).map((e) => ({
149
- ...e,
150
- pathArray: (e.field || e.id).split(".")
151
- }));
152
- return e.filter((e) => t.every((t) => {
153
- let { id: n, type: r, operator: i, value: a, compare: o, pathArray: s } = t, c = v(e, s, n);
154
- if (r === "custom") return !o || o(c, a, e);
155
- let l = y[r];
156
- if (!l) return !0;
157
- let u = l[i];
158
- return !u || u(c, a, t);
159
- }));
160
- }, [e, i]), u = t((e) => {
161
- c((t) => t.some((t) => t.id === e.id) ? t.map((t) => t.id === e.id ? e : t) : [...t, e]);
162
- }, []), d = t((e) => {
163
- c((t) => Array.isArray(e) ? t.filter((t) => !e.includes(t.id)) : t.filter((t) => t.id !== e));
164
- }, []), f = t(() => {
165
- c([]);
166
- }, []), p = t(() => {
167
- c(r.current);
168
- }, []), m = t((e) => {
169
- c(e);
170
- }, []);
171
- return {
172
- filteredItems: l,
173
- filters: i,
174
- upsertFilter: u,
175
- removeFilter: d,
176
- clearFilters: f,
177
- resetFilters: p,
178
- toggleFilter: t((e) => {
179
- c((t) => t.some((t) => t.id === e.id) ? t.map((t) => t.id === e.id ? {
180
- ...t,
181
- isActive: t.isActive === !1
182
- } : t) : [...t, {
183
- ...e,
184
- isActive: !0
185
- }]);
186
- }, []),
187
- updateFilterConfig: t((e, t) => {
188
- c((n) => n.map((n) => n.id === e ? {
189
- ...n,
190
- ...t
191
- } : n));
192
- }, []),
193
- replaceFilters: m,
194
- getFilterValue: t((e) => i.find((t) => t.id === e)?.value, [i]),
195
- updateFilterValue: t((e, t) => {
196
- c((n) => n.map((n) => n.id === e ? {
197
- ...n,
198
- value: t
199
- } : n));
200
- }, []),
201
- isFilterActive: t((e) => {
202
- let t = i.find((t) => t.id === e);
203
- return t ? t.isActive !== !1 : !1;
204
- }, [i])
205
- };
206
- }
207
- //#endregion
208
- //#region src/state/useFuzzySearch/utils.ts
209
- function x(e, t, n = !1) {
210
- let r = e.trim(), i = t.trim(), a = r.length > 1 && r === r.toUpperCase() && /^[A-Z]+$/.test(r);
211
- if (n || (r = r.toLowerCase(), i = i.toLowerCase()), r === i) return 1;
212
- if (r === "" || i === "") return 0;
213
- if (a) {
214
- let e = i.split(/[^a-z0-9]+/i).filter((e) => e.length > 0);
215
- if (e.length >= r.length) {
216
- let t = 0, n = 0;
217
- for (let i = 0; i < r.length; i++) {
218
- let a = r[i];
219
- for (; n < e.length;) {
220
- if ((e[n] ?? "")[0] === a) {
221
- t++, n++;
222
- break;
223
- }
224
- n++;
225
- }
226
- }
227
- if (t === r.length) return .85;
228
- }
229
- }
230
- let o = !1;
231
- for (let e = 0; e < r.length; e++) if (i.includes(r[e] ?? "")) {
232
- o = !0;
233
- break;
234
- }
235
- if (!o) return 0;
236
- let s = i.indexOf(r);
237
- if (s !== -1) {
238
- let e = s === 0, t = s / i.length * (e ? .01 : .1), n = (i.length - r.length) / i.length * (e ? .01 : .05);
239
- return Math.max(.7, .95 - t - n);
240
- }
241
- let c = 0, l = -1, u = 0, d = 0, f = 0;
242
- for (let e = 0; e < r.length; e++) {
243
- let t = r[e];
244
- if (!t) continue;
245
- let n = i.indexOf(t, f);
246
- if (n !== -1) c++, l !== -1 && (n > l ? u += n - l : (d++, u += 1)), l = n, f = n + 1, f >= i.length && (f = 0);
247
- else {
248
- let e = i.indexOf(t);
249
- e !== -1 && (c++, d++, l = e, f = e + 1);
250
- }
251
- }
252
- if (c < r.length / 2) return 0;
253
- let p = c / r.length, m = .6 ** d, h = c > 1 ? u / (c - 1) : 1, g = Math.max(.4, 1 - h / i.length), _ = p * m * g;
254
- return Math.max(0, _ * .45);
255
- }
256
- //#endregion
257
- //#region src/state/useFuzzySearch/useFuzzySearch.ts
258
- function S(e, t, n, r = {}) {
259
- let i = r.threshold ?? .01, o = r.caseSensitive ?? !1, s = r.matchStrategy ?? "any", c = r.exactPhraseBonus ?? !0, l = a(() => n.length === 0 || e.length === 0 ? [] : e.map((e, t) => {
260
- let r = [], i = [];
261
- for (let { field: t, weight: a } of n) {
262
- let n = v(e, t);
263
- if (Array.isArray(n)) {
264
- for (let e of n) if (e != null && e !== "" && typeof e != "object") {
265
- let t = String(e);
266
- i.push(t);
267
- let n = t.split(/[^a-z0-9]+/i).filter((e) => e.length > 0);
268
- for (let e of n) r.push({
269
- text: e,
270
- weight: a
271
- });
272
- }
273
- } else if (n != null && n !== "" && typeof n != "object") {
274
- let e = String(n);
275
- i.push(e);
276
- let t = e.split(/[^a-z0-9]+/i).filter((e) => e.length > 0);
277
- for (let e of t) r.push({
278
- text: e,
279
- weight: a
280
- });
281
- }
282
- }
283
- return {
284
- item: e,
285
- index: t,
286
- tokens: r,
287
- combinedFlatText: i.join(" ")
288
- };
289
- }), [e, n]);
290
- return a(() => {
291
- let n = t.trim();
292
- if (!n || l.length === 0) return e;
293
- let r = n.split(/\s+/).filter((e) => e.length > 0);
294
- if (r.length === 0) return e;
295
- let a = [], u = .3;
296
- for (let e of l) {
297
- let t = 0, n = 0, l = !1;
298
- for (let i of r) {
299
- let r = 0, a = o ? i : i.toLowerCase();
300
- for (let t of e.tokens) {
301
- let e = (o ? t.text : t.text.toLowerCase()).split(/\s+/).filter((e) => e.length > 0);
302
- for (let n of e) {
303
- if (!n.includes(a)) {
304
- if (n.length < i.length / 2) continue;
305
- let e = Math.abs(i.length - n.length), t = Math.max(i.length, n.length);
306
- if (t > 0 && (t - e) / t < u) continue;
307
- }
308
- let e = x(i, n, o) * t.weight;
309
- e > r && (r = e);
310
- }
311
- }
312
- r >= u && n++, t += r;
313
- }
314
- if (s === "all" && n < r.length && (l = !0), !l) {
315
- let n = t / r.length;
316
- if (c && r.length > 1) {
317
- let t = r.map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s+");
318
- new RegExp(t, o ? "g" : "gi").test(e.combinedFlatText) && (n += .15);
319
- }
320
- n >= i && a.push({
321
- item: e.item,
322
- score: n,
323
- index: e.index
324
- });
325
- }
326
- }
327
- return a.toSorted((e, t) => t.score === e.score ? e.index - t.index : t.score - e.score).map((e) => e.item);
328
- }, [
329
- l,
330
- e,
331
- t,
332
- i,
333
- o,
334
- s,
335
- c
336
- ]);
337
- }
338
- //#endregion
339
- //#region src/state/useGrouping/useGrouping.ts
340
- function C({ items: e, initialGroupBy: n }) {
341
- let [r, i] = s(n), o = a(() => r ? e.reduce((e, t) => {
342
- let n = v(t, r), i = n == null ? "Unknown" : String(n);
343
- return e[i] || (e[i] = []), e[i].push(t), e;
344
- }, {}) : { Ungrouped: e }, [e, r]), c = a(() => Object.keys(o).map((e) => ({
345
- key: e,
346
- items: o[e]
347
- })), [o]), l = a(() => Object.keys(o), [o]), u = t((e) => {
348
- i(e);
349
- }, []), d = t(() => {
350
- i(void 0);
351
- }, []), f = t(() => {
352
- i(n);
353
- }, [n]), p = t((e) => o[e] || [], [o]);
354
- return {
355
- groupedRecord: o,
356
- groupedArray: c,
357
- groupKeys: l,
358
- totalGroups: l.length,
359
- activeGroupBy: r,
360
- changeGroupBy: u,
361
- clearGrouping: d,
362
- resetGrouping: f,
363
- getGroupItems: p
364
- };
365
- }
366
- //#endregion
367
- //#region src/state/useMultipleSelection/useMultipleSelection.ts
368
- function w({ items: e, field: n, initialSelectedIds: r = [] }) {
369
- let i = o(r), [c, l] = s(() => new Set(r)), u = t((e) => {
370
- l((t) => {
371
- let r = new Set(t), i = v(e, n);
372
- return r.add(i), r;
373
- });
374
- }, [n]), d = t((e) => {
375
- l((t) => {
376
- let r = new Set(t), i = v(e, n);
377
- return r.delete(i), r;
378
- });
379
- }, [n]), f = t((e) => {
380
- l((t) => {
381
- let r = new Set(t), i = v(e, n);
382
- return r.has(i) ? r.delete(i) : r.add(i), r;
383
- });
384
- }, [n]), p = t((e) => {
385
- let t = v(e, n);
386
- return c.has(t);
387
- }, [c, n]), m = t(() => l(new Set(i.current)), []), h = t((e) => {
388
- let t = e.map((e) => v(e, n));
389
- l(new Set(t));
390
- }, [n]), g = t(() => {
391
- let t = e.map((e) => v(e, n));
392
- l(new Set(t));
393
- }, [e, n]), _ = t(() => {
394
- l(/* @__PURE__ */ new Set());
395
- }, []), y = t(() => l((t) => {
396
- if (t.size === e.length) return /* @__PURE__ */ new Set();
397
- let r = e.map((e) => v(e, n));
398
- return new Set(r);
399
- }), [e, n]), b = t(() => l((t) => {
400
- if (t.size === e.length) return /* @__PURE__ */ new Set();
401
- let r = e.filter((e) => !t.has(v(e, n))).map((e) => v(e, n));
402
- return new Set(r);
403
- }), [e, n]), x = t((e) => {
404
- l((t) => {
405
- let r = new Set(t);
406
- return e.map((e) => v(e, n)).forEach((e) => r.add(e)), r;
407
- });
408
- }, [n]), S = t((e) => {
409
- l((t) => {
410
- let r = new Set(t);
411
- return e.map((e) => v(e, n)).forEach((e) => r.delete(e)), r;
412
- });
413
- }, [n]), C = t((e) => {
414
- l((t) => {
415
- let r = /* @__PURE__ */ new Set();
416
- return e.map((e) => v(e, n)).forEach((e) => t.has(e) && r.add(e)), r;
417
- });
418
- }, [n]), w = a(() => e.filter((e) => {
419
- let t = v(e, n);
420
- return c.has(t);
421
- }), [
422
- e,
423
- n,
424
- c
425
- ]);
426
- return {
427
- selectedIds: [...c],
428
- selectedCount: c.size,
429
- selectedItems: w,
430
- isEmpty: c.size === 0,
431
- select: u,
432
- deselect: d,
433
- toggle: f,
434
- isSelected: p,
435
- replaceSelection: h,
436
- resetSelection: m,
437
- selectAll: g,
438
- deselectAll: _,
439
- toggleAll: y,
440
- invertSelection: b,
441
- selectMultiple: x,
442
- deselectMultiple: S,
443
- retainOnly: C
444
- };
445
- }
446
- //#endregion
447
- //#region src/state/useOrder/useOrder.ts
448
- function T(e) {
449
- let n = o(e), [r, i] = s(() => e), a = t((e) => {
450
- typeof e == "number" && i((t) => {
451
- if (e <= 0 || e >= t.length) return t;
452
- let n = [...t];
453
- return [n[e], n[e - 1]] = [n[e - 1], n[e]], n;
454
- });
455
- }, []), c = t((e) => {
456
- typeof e == "number" && i((t) => {
457
- if (e < 0 || e >= t.length - 1) return t;
458
- let n = [...t];
459
- return [n[e], n[e + 1]] = [n[e + 1], n[e]], n;
460
- });
461
- }, []), l = t((e) => e > 0, []), u = t((e) => e < r.length - 1, [r.length]), d = t((e) => {
462
- typeof e == "number" && i((t) => {
463
- if (e <= 0 || e >= t.length) return t;
464
- let n = [...t], [r] = n.splice(e, 1);
465
- return n.unshift(r), n;
466
- });
467
- }, []), f = t((e) => {
468
- typeof e == "number" && i((t) => {
469
- if (e < 0 || e >= t.length - 1) return t;
470
- let n = [...t], [r] = n.splice(e, 1);
471
- return n.push(r), n;
472
- });
473
- }, []), p = t((e, t) => {
474
- typeof e != "number" || typeof t != "number" || e === t || i((n) => {
475
- if (e < 0 || e >= n.length || t < 0 || t >= n.length) return n;
476
- let r = [...n], [i] = r.splice(e, 1);
477
- return r.splice(t, 0, i), r;
478
- });
479
- }, []), m = t((e, t) => {
480
- typeof e != "number" || typeof t != "number" || e === t || i((n) => {
481
- if (e < 0 || e >= n.length || t < 0 || t >= n.length) return n;
482
- let r = [...n];
483
- return [r[e], r[t]] = [r[t], r[e]], r;
484
- });
485
- }, []), h = t(() => {
486
- i(n.current);
487
- }, []);
488
- return {
489
- orderedItems: r,
490
- moveUp: a,
491
- moveDown: c,
492
- canMoveUp: l,
493
- canMoveDown: u,
494
- moveToTop: d,
495
- moveToBottom: f,
496
- move: p,
497
- swap: m,
498
- replaceOrder: t((e) => {
499
- i(e);
500
- }, []),
501
- resetOrder: h
502
- };
503
- }
504
- //#endregion
505
- //#region src/state/usePagination/usePagination.ts
506
- function E(e, n, r = 0) {
507
- let [i, o] = s(n), [c, l] = s(r), u = Math.max(1, Math.ceil(e.length / Math.max(1, i))), d = Math.min(Math.max(0, c), u - 1);
508
- return c !== d && l(d), {
509
- pageItems: a(() => typeof i != "number" || i < 1 ? [] : e.slice(c * i, (c + 1) * i), [
510
- c,
511
- i,
512
- e
513
- ]),
514
- pageSize: i,
515
- pageIndex: c,
516
- totalPages: u,
517
- canPrevious: c > 0,
518
- canNext: c < u - 1,
519
- nextPage: t(() => {
520
- l((e) => e < u - 1 ? e + 1 : e);
521
- }, [u]),
522
- previousPage: t(() => {
523
- l((e) => e > 0 ? e - 1 : e);
524
- }, []),
525
- goToFirstPage: t(() => {
526
- l(0);
527
- }, []),
528
- goToLastPage: t(() => {
529
- l(u - 1);
530
- }, [u]),
531
- goToPage: t((e) => {
532
- typeof e == "number" && e >= 0 && e <= u - 1 && l(e);
533
- }, [u]),
534
- changePageSize: t((t) => {
535
- if (typeof t == "number" && t > 0) {
536
- o(t);
537
- let n = Math.max(1, Math.ceil(e.length / Math.max(1, t)));
538
- l((e) => Math.min(Math.max(0, e), n - 1));
539
- }
540
- }, [e.length]),
541
- resetPageIndex: t(() => {
542
- l(Math.min(Math.max(0, r), u - 1));
543
- }, [r, u]),
544
- resetPageSize: t(() => {
545
- o(Math.max(1, n));
546
- let t = Math.max(1, Math.ceil(e.length / Math.max(1, n)));
547
- l((e) => Math.min(Math.max(0, e), t - 1));
548
- }, [n, e.length]),
549
- resetPagination: t(() => {
550
- o(Math.max(1, n));
551
- let t = Math.max(1, Math.ceil(e.length / Math.max(1, n)));
552
- l(Math.min(Math.max(0, r), t - 1));
553
- }, [
554
- n,
555
- r,
556
- e.length
557
- ])
558
- };
559
- }
560
- //#endregion
561
- //#region src/state/useSingleSelection/useSingleSelection.ts
562
- function D(e) {
563
- let [n, r] = s(e), i = t((e) => r(e), []), a = t(() => r(void 0), []), o = t((e) => r((t) => t === e ? void 0 : e), []), c = t((e) => n === e, [n]), l = t(() => r(e), [e]);
564
- return {
565
- selectedId: n,
566
- hasSelection: !!n,
567
- select: i,
568
- deselect: a,
569
- toggle: o,
570
- isSelected: c,
571
- resetSelection: l
572
- };
573
- }
574
- //#endregion
575
- //#region src/state/useSort/utils.ts
576
- function O(e, t, n = {}) {
577
- let { sortUndefined: r, desc: i = !1 } = n, a = F(e, t, r, i);
578
- if (a !== null) return a;
579
- let o = !!e;
580
- return o === !!t ? 0 : o ? 1 : -1;
581
- }
582
- function k(e, t, n = {}) {
583
- let { sortUndefined: r, desc: i = !1 } = n, a = F(e, t, r, i);
584
- if (a !== null) return a;
585
- let o = Number(e), s = Number(t), c = Number.isNaN(o), l = Number.isNaN(s);
586
- return c || l ? F(c ? void 0 : o, l ? void 0 : s, r, i) ?? 0 : o - s;
587
- }
588
- function A(e, t, n = {}) {
589
- let { desc: r = !1, sortUndefined: i, caseSensitive: a = !1 } = n, o = F(e, t, i, r);
590
- if (o !== null) return o;
591
- let s = String(e), c = String(t);
592
- return s.localeCompare(c, void 0, { sensitivity: a ? "variant" : "base" });
593
- }
594
- function j(e, t, n = {}) {
595
- let { desc: r = !1, sortUndefined: i, caseSensitive: a = !1 } = n, o = F(e, t, i, r);
596
- if (o !== null) return o;
597
- let s = String(e), c = String(t);
598
- return s.localeCompare(c, void 0, {
599
- numeric: !0,
600
- sensitivity: a ? "variant" : "base"
601
- });
602
- }
603
- function M(e, t, n = {}) {
604
- let { desc: r = !1, sortUndefined: i } = n, a = F(e, t, i, r);
605
- if (a !== null) return a;
606
- let o = new Date(e).getTime(), s = new Date(t).getTime(), c = Number.isNaN(o), l = Number.isNaN(s);
607
- return (c || l) && (a = F(c ? void 0 : o, l ? void 0 : s, i, r), a !== null) ? a : o - s;
608
- }
609
- function N(e, t, n = {}) {
610
- let { desc: r = !1, sortUndefined: i } = n, a = F(e, t, i, r);
611
- return a === null ? e < t ? -1 : +(e > t) : a;
612
- }
613
- function P(e, t, n = {}) {
614
- let { desc: r = !1, sortUndefined: i, compare: a } = n, o = F(e, t, i, r);
615
- return o === null ? typeof a == "function" ? a(e, t) : e < t ? -1 : +(e > t) : o;
616
- }
617
- function F(e, t, n = "last", r) {
618
- let i = e == null || e === "", a = t == null || t === "";
619
- if (i && a) return 0;
620
- if (!i && !a) return null;
621
- if (n === "first") return i ? -1 : 1;
622
- if (n === "last") return i ? 1 : -1;
623
- if (n === -1) {
624
- let e = r ? 1 : -1;
625
- return i ? e : -e;
626
- }
627
- if (n === 1) {
628
- let e = r ? 1 : -1;
629
- return i ? -e : e;
630
- }
631
- return null;
632
- }
633
- //#endregion
634
- //#region src/state/useSort/useSort.ts
635
- function I(e, n = []) {
636
- let r = o(n), [i, c] = s(() => n), l = a(() => {
637
- let t = i.map((e) => ({
638
- ...e,
639
- pathArray: (e.field || e.id).split(".")
640
- }));
641
- return [...e].sort((e, n) => {
642
- for (let r of t) {
643
- let { type: t, id: i, desc: a = !1, invertSorting: o = !1, pathArray: s } = r, c = v(e, s, i), l = v(n, s, i), u;
644
- switch (t) {
645
- case "numeric":
646
- u = k(c, l, r);
647
- break;
648
- case "alphabetical":
649
- u = A(c, l, r);
650
- break;
651
- case "alphanumeric":
652
- u = j(c, l, r);
653
- break;
654
- case "boolean":
655
- u = O(c, l, r);
656
- break;
657
- case "date":
658
- u = M(c, l, r);
659
- break;
660
- case "basic":
661
- u = N(c, l, r);
662
- break;
663
- case "custom":
664
- u = P(c, l, r);
665
- break;
666
- default: u = N(c, l, r);
667
- }
668
- if (u !== 0) return u * (a === o ? 1 : -1);
669
- }
670
- return 0;
671
- });
672
- }, [i, e]), u = t((e) => c((t) => t.some((t) => t.id === e.id) ? t.map((t) => t.id === e.id ? e : t) : [...t, e]), []), d = t((e) => {
673
- c((t) => Array.isArray(e) ? t.filter((t) => !e.includes(t.id)) : t.filter((t) => t.id !== e));
674
- }, []), f = t(() => c([]), []), p = t(() => c(r.current), []), m = t((e) => c(e), []), h = t((e, t, n) => {
675
- let { multi: r = !1, ...i } = n || {};
676
- c((n) => {
677
- let a = n.find((t) => t.id === e);
678
- if (!a) {
679
- let a = {
680
- id: e,
681
- type: t,
682
- ...i,
683
- desc: !1
684
- };
685
- return r ? [...n, a] : [a];
686
- }
687
- if (!a.desc) {
688
- let t = {
689
- ...a,
690
- ...i,
691
- desc: !0
692
- };
693
- return r ? n.map((n) => n.id === e ? t : n) : [t];
694
- }
695
- if (a.disableSortRemoval || i.disableSortRemoval) {
696
- let t = {
697
- ...a,
698
- ...i,
699
- desc: !1
700
- };
701
- return r ? n.map((n) => n.id === e ? t : n) : [t];
702
- }
703
- return r ? n.filter((t) => t.id !== e) : [];
704
- });
705
- }, []);
706
- return {
707
- sortedItems: l,
708
- sorts: i,
709
- upsertSorts: u,
710
- removeSort: d,
711
- clearSorts: f,
712
- resetSorts: p,
713
- replaceSorts: m,
714
- getSortDirection: t((e) => {
715
- let t = i.find((t) => t.id === e);
716
- return t ? t.desc ? "desc" : "asc" : void 0;
717
- }, [i]),
718
- toggleSort: h,
719
- getNextSortingOrder: t((e) => {
720
- let t = i.find((t) => t.id === e);
721
- return t ? t.desc ? t.disableSortRemoval ? "asc" : "none" : "desc" : "asc";
722
- }, [i]),
723
- getSortIndex: t((e) => {
724
- let t = i.findIndex((t) => t.id === e);
725
- return t === -1 ? void 0 : t + 1;
726
- }, [i])
727
- };
728
- }
729
- //#endregion
730
- //#region src/ui/useExpansion/useExpansion.ts
731
- function L({ items: e = [], field: n, initialExpandedIds: r = [], multiple: i = !1 } = {}) {
732
- let c = o(r), [l, u] = s(() => new Set(r)), d = t((e) => {
733
- let t = v(e, n);
734
- return l.has(t);
735
- }, [l, n]), f = t((e) => {
736
- u((t) => {
737
- let r = v(e, n);
738
- if (t.has(r)) return t;
739
- let a = i ? new Set(t) : /* @__PURE__ */ new Set();
740
- return a.add(r), a;
741
- });
742
- }, [n, i]), p = t((e) => {
743
- u((t) => {
744
- let r = v(e, n);
745
- if (!t.has(r)) return t;
746
- let i = new Set(t);
747
- return i.delete(r), i;
748
- });
749
- }, [n]), m = t((e) => {
750
- u((t) => {
751
- let r = v(e, n), a = i ? new Set(t) : /* @__PURE__ */ new Set();
752
- return t.has(r) ? i && a.delete(r) : a.add(r), a;
753
- });
754
- }, [n, i]), h = t(() => {
755
- if (!i) return;
756
- let t = e.map((e) => v(e, n));
757
- u(new Set(t));
758
- }, [
759
- e,
760
- n,
761
- i
762
- ]), g = t(() => {
763
- u(/* @__PURE__ */ new Set());
764
- }, []), _ = t(() => {
765
- u(new Set(c.current));
766
- }, []), y = t((e) => {
767
- let t = e.map((e) => v(e, n));
768
- u(new Set(t));
769
- }, [n]), b = a(() => e.filter((e) => l.has(v(e, n))), [
770
- e,
771
- n,
772
- l
773
- ]);
774
- return {
775
- expandedIds: [...l],
776
- expandedItems: b,
777
- isExpanded: d,
778
- expand: f,
779
- collapse: p,
780
- toggle: m,
781
- expandAll: h,
782
- collapseAll: g,
783
- resetExpansion: _,
784
- replaceExpansion: y
785
- };
786
- }
787
- //#endregion
788
- //#region src/ui/usePin/usePin.ts
789
- function R({ items: e, field: n, initialPinnedIds: r = [], maxPins: i = 2 ** 53 - 1 }) {
790
- let c = o(r), [l, u] = s(() => new Set(r)), d = t((e) => {
791
- u((t) => {
792
- if (t.size >= i) return t;
793
- let r = new Set(t), a = v(e, n);
794
- return r.add(a), r;
795
- });
796
- }, [n, i]), f = t((e) => {
797
- u((t) => {
798
- let r = new Set(t), i = v(e, n);
799
- return r.delete(i), r;
800
- });
801
- }, [n]), p = t((e) => {
802
- u((t) => {
803
- let r = new Set(t), a = v(e, n);
804
- if (r.has(a)) r.delete(a);
805
- else {
806
- if (r.size >= i) return t;
807
- r.add(a);
808
- }
809
- return r;
810
- });
811
- }, [n, i]), m = t((e) => {
812
- let t = v(e, n);
813
- return l.has(t);
814
- }, [l, n]), h = t(() => u(/* @__PURE__ */ new Set()), []), g = t(() => u(new Set(c.current)), [c]), _ = t((e) => {
815
- let t = e.map((e) => v(e, n));
816
- u(new Set(t.slice(0, i)));
817
- }, [n, i]), y = t((e) => {
818
- u((t) => {
819
- let r = new Set(t), a = e.map((e) => v(e, n));
820
- for (let e of a) {
821
- if (r.size >= i && !r.has(e)) break;
822
- r.add(e);
823
- }
824
- return r;
825
- });
826
- }, [n, i]), b = t((e) => {
827
- u((t) => {
828
- let r = new Set(t);
829
- return e.map((e) => v(e, n)).forEach((e) => r.delete(e)), r;
830
- });
831
- }, [n]), x = a(() => e.filter((e) => {
832
- let t = v(e, n);
833
- return l.has(t);
834
- }), [
835
- e,
836
- n,
837
- l
838
- ]), S = a(() => e.filter((e) => {
839
- let t = v(e, n);
840
- return !l.has(t);
841
- }), [
842
- e,
843
- n,
844
- l
845
- ]);
846
- return {
847
- pinnedIds: [...l],
848
- pinnedItems: x,
849
- unpinnedItems: S,
850
- pinnedCount: l.size,
851
- hasPins: l.size > 0,
852
- isAtMaxLimit: l.size >= i,
853
- pin: d,
854
- unpin: f,
855
- togglePin: p,
856
- isPinned: m,
857
- clearPins: h,
858
- resetPins: g,
859
- replacePins: _,
860
- pinMultiple: y,
861
- unpinMultiple: b
862
- };
863
- }
864
- //#endregion
865
- //#region src/ui/useVisibility/useVisibility.ts
866
- function z({ items: e, field: n, initialVisibleIds: r = [] }) {
867
- let i = o(r), [c, l] = s(() => new Set(r)), u = t((e) => {
868
- let t = v(e, n);
869
- return c.has(t);
870
- }, [c, n]), d = t((e) => {
871
- l((t) => {
872
- let r = new Set(t), i = v(e, n);
873
- return r.add(i), r;
874
- });
875
- }, [n]), f = t((e) => {
876
- l((t) => {
877
- let r = new Set(t), i = v(e, n);
878
- return r.delete(i), r;
879
- });
880
- }, [n]), p = t((e) => {
881
- l((t) => {
882
- let r = new Set(t), i = v(e, n);
883
- return r.has(i) ? r.delete(i) : r.add(i), r;
884
- });
885
- }, [n]), m = t((t) => {
886
- l((r) => {
887
- let i = new Set(r);
888
- return (t ?? e).forEach((e) => {
889
- i.add(v(e, n));
890
- }), i;
891
- });
892
- }, [e, n]), h = t((t) => {
893
- l((r) => {
894
- let i = new Set(r);
895
- return (t ?? e).forEach((e) => {
896
- i.delete(v(e, n));
897
- }), i;
898
- });
899
- }, [e, n]), g = t(() => {
900
- l(() => new Set(i.current));
901
- }, []), _ = t((e) => {
902
- let t = e.map((e) => v(e, n));
903
- l(() => new Set(t));
904
- }, [n]), y = a(() => e.filter((e) => {
905
- let t = v(e, n);
906
- return c.has(t);
907
- }), [
908
- e,
909
- n,
910
- c
911
- ]), b = a(() => e.filter((e) => {
912
- let t = v(e, n);
913
- return !c.has(t);
914
- }), [
915
- e,
916
- n,
917
- c
918
- ]);
919
- return {
920
- visibleIds: [...c],
921
- visibleItems: y,
922
- hiddenItems: b,
923
- visibleCount: c.size,
924
- isVisible: u,
925
- show: d,
926
- hide: f,
927
- toggleVisibility: p,
928
- showAll: m,
929
- hideAll: h,
930
- replaceVisibility: _,
931
- resetVisibility: g
932
- };
933
- }
934
- //#endregion
935
- //#region src/performance/useDebounce/useDebounce.ts
936
- function B(e, n, i = {}) {
937
- let [a, c] = s(!1), l = i.maxWait, u = !!i.leading, d = !u && i.trailing === !1 ? !0 : i.trailing ?? !u, f = o(e), p = o(null), m = o(-1), h = o(-1), g = o(null);
938
- r(() => {
939
- f.current = e;
940
- }, [e]);
941
- let _ = t(() => {
942
- p.current &&= (clearTimeout(p.current), null), m.current = -1, h.current = -1, g.current = null, c(!1);
943
- }, []), v = t(() => {
944
- p.current && g.current && (clearTimeout(p.current), p.current = null, f.current(...g.current), m.current = Date.now(), h.current = -1, g.current = null, c(!1));
945
- }, []);
946
- return r(() => () => {
947
- _();
948
- }, [_]), {
949
- debouncedFunc: t((...e) => {
950
- c(!0), h.current = Date.now(), g.current = e, m.current === -1 && (m.current = Date.now(), u === !0 && f.current(...e)), l !== void 0 && Date.now() - m.current >= l ? (p.current && clearTimeout(p.current), f.current(...e), m.current = -1, c(!1)) : (p.current && clearTimeout(p.current), p.current = setTimeout(() => {
951
- h.current !== m.current && d !== !1 && f.current(...e), m.current = -1, c(!1);
952
- }, n));
953
- }, [
954
- n,
955
- l,
956
- d,
957
- u
958
- ]),
959
- cancel: _,
960
- flush: v,
961
- isPending: a
962
- };
963
- }
964
- //#endregion
965
- //#region src/performance/useDebounce/useDebouncedValue.ts
966
- function V(e, t, n = {}) {
967
- let [i, a] = s(e), { debouncedFunc: o } = B((e) => {
968
- a(e);
969
- }, t, n);
970
- return r(() => {
971
- o(e);
972
- }, [e, o]), i;
973
- }
974
- //#endregion
975
- //#region src/performance/useThrottle/useThrottle.ts
976
- function H(e, n, i = {}) {
977
- let [a, c] = s(!1), l = i.leading ?? !0, u = i.trailing ?? !0, d = o(e), f = o(null), p = o(-1), m = o(null);
978
- r(() => {
979
- d.current = e;
980
- }, [e]);
981
- let h = t(() => {
982
- f.current &&= (clearTimeout(f.current), null), p.current = -1, m.current = null, c(!1);
983
- }, []), g = t(() => {
984
- m.current && (f.current &&= (clearTimeout(f.current), null), d.current(...m.current), p.current = l ? Date.now() : -1, m.current = null, c(!1));
985
- }, [l]);
986
- return r(() => () => {
987
- h();
988
- }, [h]), {
989
- throttledFunc: t((...e) => {
990
- c(!0);
991
- let t = Date.now();
992
- if (m.current = e, p.current === -1 ? l : t - p.current >= n) f.current &&= (clearTimeout(f.current), null), d.current(...e), p.current = t, m.current = null, c(!1);
993
- else if (!f.current) {
994
- let e = n - (p.current === -1 ? 0 : t - p.current);
995
- f.current = setTimeout(() => {
996
- u && m.current ? (d.current(...m.current), p.current = l ? Date.now() : -1) : p.current = -1, m.current = null, f.current = null, c(!1);
997
- }, e);
998
- }
999
- }, [
1000
- n,
1001
- l,
1002
- u
1003
- ]),
1004
- cancel: h,
1005
- flush: g,
1006
- isPending: a
1007
- };
1008
- }
1009
- //#endregion
1010
- //#region src/events/useKey/constants.ts
1011
- var U = [
1012
- "keydown",
1013
- "keyup",
1014
- "keypress"
1015
- ];
1016
- //#endregion
1017
- //#region src/events/useKey/useKey.ts
1018
- function W(e, t, { enabled: n = !0, preventDefault: a = !0, stopPropagation: s = !0, eventType: c = "keydown", preventRepeat: l = !1, ignoreWhenFocusedInInputs: u = !0, ctrlKey: d = !1, shiftKey: f = !1, altKey: p = !1, metaKey: m = !1, target: h = window } = {}) {
1019
- let g = o(t), _ = o(n), v = o(!1);
1020
- i(() => {
1021
- g.current = t;
1022
- }, [t]), r(() => {
1023
- _.current = n;
1024
- }, [n]), r(() => {
1025
- let t = h && "current" in h ? h.current : h;
1026
- if (!t) return;
1027
- let n = e.toLowerCase(), r = U.includes(c) ? c : "keydown", i = l && r !== "keyup";
1028
- function o() {
1029
- v.current = !1;
1030
- }
1031
- function y(e) {
1032
- if (!(e instanceof KeyboardEvent)) return;
1033
- let t = e.key.toLowerCase();
1034
- (t === n || d && t === "control" || f && t === "shift" || p && t === "alt" || m && t === "meta") && (v.current = !1);
1035
- }
1036
- function b(e) {
1037
- if (!(e instanceof KeyboardEvent) || !_.current) return;
1038
- let t = e.target;
1039
- if (!(u && t instanceof HTMLElement && (t instanceof HTMLInputElement || t instanceof HTMLTextAreaElement || t instanceof HTMLSelectElement || t.isContentEditable)) && e.ctrlKey === d && e.shiftKey === f && e.altKey === p && e.metaKey === m && n === e.key.toLowerCase()) {
1040
- if (i && v.current) return;
1041
- v.current = !0, g.current(e), a && e.preventDefault(), s && e.stopPropagation();
1042
- }
1043
- }
1044
- return t.addEventListener(r, b), i && (t.addEventListener("keyup", y), window.addEventListener("blur", o)), () => {
1045
- t.removeEventListener(r, b), i && (t.removeEventListener("keyup", y), window.removeEventListener("blur", o));
1046
- };
1047
- }, [
1048
- e,
1049
- a,
1050
- s,
1051
- c,
1052
- l,
1053
- u,
1054
- d,
1055
- f,
1056
- p,
1057
- m,
1058
- h
1059
- ]);
1060
- }
1061
- //#endregion
1062
- export { d as FuzzyHighlighter, _ as ModalLayout, B as useDebounce, V as useDebouncedValue, L as useExpansion, b as useFilter, S as useFuzzySearch, C as useGrouping, W as useKey, g as useModal, h as useModalActions, m as useModalState, w as useMultipleSelection, T as useOrder, E as usePagination, R as usePin, D as useSingleSelection, I as useSort, H as useThrottle, z as useVisibility };
1
+ import { t as e } from "./events2.js";
2
+ import { n as t, r as n, t as r } from "./performance2.js";
3
+ import { a as i, c as a, i as o, n as s, o as c, r as l, s as u, t as d } from "./state2.js";
4
+ import { a as f, c as p, i as m, n as h, o as g, r as _, s as v, t as y } from "./ui2.js";
5
+ export { p as FuzzyHighlighter, m as ModalLayout, n as useDebounce, t as useDebouncedValue, _ as useExpansion, a as useFilter, u as useFuzzySearch, c as useGrouping, e as useKey, f as useModal, g as useModalActions, v as useModalState, i as useMultipleSelection, o as useOrder, l as usePagination, h as usePin, s as useSingleSelection, d as useSort, r as useThrottle, y as useVisibility };