@zentauri-ui/zentauri-components 2.1.6 → 2.1.7
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/README.md +10 -8
- package/cli/cli.integration.test.ts +36 -0
- package/cli/index.mjs +43 -7
- package/cli/props.json +273 -0
- package/cli/registry.json +20 -0
- package/cli/rewrite-imports.mjs +29 -4
- package/cli/rewrite-imports.test.ts +35 -0
- package/dist/{chunk-QE7OJW4J.js → chunk-5ELR6MIN.js} +6 -6
- package/dist/{chunk-QE7OJW4J.js.map → chunk-5ELR6MIN.js.map} +1 -1
- package/dist/chunk-5FU57ZVQ.js +19 -0
- package/dist/{chunk-3W2UUKWP.js.map → chunk-5FU57ZVQ.js.map} +1 -1
- package/dist/chunk-74SKXGTM.js +4 -0
- package/dist/chunk-74SKXGTM.js.map +1 -0
- package/dist/{chunk-CHI6MBTI.mjs → chunk-7UXPXCKV.mjs} +3 -3
- package/dist/{chunk-CHI6MBTI.mjs.map → chunk-7UXPXCKV.mjs.map} +1 -1
- package/dist/chunk-CYKSS5S5.mjs +128 -0
- package/dist/chunk-CYKSS5S5.mjs.map +1 -0
- package/dist/chunk-DBNGLT5U.mjs +221 -0
- package/dist/chunk-DBNGLT5U.mjs.map +1 -0
- package/dist/{chunk-A4IB3C23.mjs → chunk-FUCW5GPE.mjs} +22 -6
- package/dist/chunk-FUCW5GPE.mjs.map +1 -0
- package/dist/chunk-G7FVHZRB.js +225 -0
- package/dist/chunk-G7FVHZRB.js.map +1 -0
- package/dist/chunk-HMDH4BQJ.js +123 -0
- package/dist/chunk-HMDH4BQJ.js.map +1 -0
- package/dist/chunk-I7EBE7BD.js +98 -0
- package/dist/chunk-I7EBE7BD.js.map +1 -0
- package/dist/{chunk-WWKAJHIV.mjs → chunk-KVSRUAXP.mjs} +3 -3
- package/dist/{chunk-WWKAJHIV.mjs.map → chunk-KVSRUAXP.mjs.map} +1 -1
- package/dist/chunk-LHBJD57K.mjs +143 -0
- package/dist/chunk-LHBJD57K.mjs.map +1 -0
- package/dist/chunk-OYAJG2BO.js +83 -0
- package/dist/chunk-OYAJG2BO.js.map +1 -0
- package/dist/chunk-PTU5ZAYX.js +145 -0
- package/dist/chunk-PTU5ZAYX.js.map +1 -0
- package/dist/chunk-QKO5DA4N.mjs +81 -0
- package/dist/chunk-QKO5DA4N.mjs.map +1 -0
- package/dist/chunk-T7PIKDUZ.js +130 -0
- package/dist/chunk-T7PIKDUZ.js.map +1 -0
- package/dist/chunk-TDK5TVJE.mjs +3 -0
- package/dist/chunk-TDK5TVJE.mjs.map +1 -0
- package/dist/{chunk-VA6SB6NN.js → chunk-TJ2EWPER.js} +28 -5
- package/dist/chunk-TJ2EWPER.js.map +1 -0
- package/dist/chunk-VBNW2B4D.mjs +3 -0
- package/dist/chunk-VBNW2B4D.mjs.map +1 -0
- package/dist/chunk-W6DO36XD.mjs +96 -0
- package/dist/chunk-W6DO36XD.mjs.map +1 -0
- package/dist/chunk-XR3J46TZ.js +4 -0
- package/dist/chunk-XR3J46TZ.js.map +1 -0
- package/dist/chunk-ZOHCADDL.mjs +121 -0
- package/dist/chunk-ZOHCADDL.mjs.map +1 -0
- package/dist/design-system/data-table.d.ts +8 -0
- package/dist/design-system/data-table.d.ts.map +1 -0
- package/dist/design-system/facade.js +5 -5
- package/dist/design-system/facade.mjs +4 -4
- package/dist/design-system/index.d.ts +1 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/hooks/useTableFilter.js +6 -116
- package/dist/hooks/useTableFilter.js.map +1 -1
- package/dist/hooks/useTableFilter.mjs +1 -118
- package/dist/hooks/useTableFilter.mjs.map +1 -1
- package/dist/hooks/useTableSort.js +6 -91
- package/dist/hooks/useTableSort.js.map +1 -1
- package/dist/hooks/useTableSort.mjs +1 -93
- package/dist/hooks/useTableSort.mjs.map +1 -1
- package/dist/hooks/useVirtualList.js +6 -76
- package/dist/hooks/useVirtualList.js.map +1 -1
- package/dist/hooks/useVirtualList.mjs +1 -78
- package/dist/hooks/useVirtualList.mjs.map +1 -1
- package/dist/ui/buttons/animated.js +7 -7
- package/dist/ui/buttons/animated.mjs +5 -5
- package/dist/ui/buttons.js +9 -8
- package/dist/ui/buttons.mjs +7 -6
- package/dist/ui/checkbox.js +7 -123
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/checkbox.mjs +2 -126
- package/dist/ui/checkbox.mjs.map +1 -1
- package/dist/ui/data-table/data-table-base.d.ts +6 -0
- package/dist/ui/data-table/data-table-base.d.ts.map +1 -0
- package/dist/ui/data-table/data-table.d.ts +6 -0
- package/dist/ui/data-table/data-table.d.ts.map +1 -0
- package/dist/ui/data-table/index.d.ts +4 -0
- package/dist/ui/data-table/index.d.ts.map +1 -0
- package/dist/ui/data-table/types.d.ts +92 -0
- package/dist/ui/data-table/types.d.ts.map +1 -0
- package/dist/ui/data-table/variants.d.ts +8 -0
- package/dist/ui/data-table/variants.d.ts.map +1 -0
- package/dist/ui/data-table.js +620 -0
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/data-table.mjs +611 -0
- package/dist/ui/data-table.mjs.map +1 -0
- package/dist/ui/dynamic-stepper.js +17 -17
- package/dist/ui/dynamic-stepper.mjs +6 -6
- package/dist/ui/inputs.js +7 -138
- package/dist/ui/inputs.js.map +1 -1
- package/dist/ui/inputs.mjs +2 -141
- package/dist/ui/inputs.mjs.map +1 -1
- package/dist/ui/pagination.js +19 -220
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +7 -222
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/table.js +1 -0
- package/dist/ui/table.mjs +1 -0
- package/package.json +1 -1
- package/src/design-system/data-table.ts +20 -0
- package/src/design-system/index.ts +1 -0
- package/src/ui/data-table/data-table-base.tsx +701 -0
- package/src/ui/data-table/data-table.test.tsx +389 -0
- package/src/ui/data-table/data-table.tsx +11 -0
- package/src/ui/data-table/index.ts +24 -0
- package/src/ui/data-table/types.ts +121 -0
- package/src/ui/data-table/variants.ts +21 -0
- package/dist/chunk-3W2UUKWP.js +0 -19
- package/dist/chunk-A4IB3C23.mjs.map +0 -1
- package/dist/chunk-VA6SB6NN.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useTableFilter/useTableFilter.ts"],"names":[],"mappings":"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","file":"chunk-ZOHCADDL.mjs","sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\n\nimport type {\n TableFilterState,\n UseTableFilterParams,\n UseTableFilterResult,\n} from \"./types\";\n\nfunction normalizeFilters<TKey extends string>(\n filters: TableFilterState<TKey> | null | undefined,\n): TableFilterState<TKey> {\n if (!filters || typeof filters !== \"object\") {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(filters).filter(\n (entry): entry is [TKey, string] =>\n typeof entry[1] === \"string\" && entry[1].trim().length > 0,\n ),\n ) as TableFilterState<TKey>;\n}\n\nfunction defaultColumnValue<TData, TKey extends string>(\n row: TData,\n filterKey: TKey,\n): unknown {\n if (row && typeof row === \"object\" && filterKey in row) {\n return (row as Record<TKey, unknown>)[filterKey];\n }\n return undefined;\n}\n\nexport function useTableFilter<TData, TKey extends string = string>({\n data,\n filters,\n defaultFilters = {},\n onFiltersChange,\n getColumnValue = defaultColumnValue,\n filterPredicate,\n}: UseTableFilterParams<TData, TKey>): UseTableFilterResult<TData, TKey> {\n const [internalFilters, setInternalFilters] = useState<\n TableFilterState<TKey>\n >(() => normalizeFilters(defaultFilters));\n\n const isControlled = filters !== undefined;\n const currentFilters = useMemo(\n () => normalizeFilters(isControlled ? filters : internalFilters),\n [filters, internalFilters, isControlled],\n );\n\n const setFilters = useCallback(\n (nextFilters: TableFilterState<TKey>) => {\n const normalized = normalizeFilters(nextFilters);\n if (!isControlled) {\n setInternalFilters(normalized);\n }\n onFiltersChange?.(normalized);\n },\n [isControlled, onFiltersChange],\n );\n\n const updateFilters = useCallback(\n (\n updater: (\n previousFilters: TableFilterState<TKey>,\n ) => TableFilterState<TKey>,\n ) => {\n if (isControlled) {\n const normalized = normalizeFilters(updater(currentFilters));\n onFiltersChange?.(normalized);\n return;\n }\n\n setInternalFilters((previousFilters) => {\n const normalized = normalizeFilters(updater(previousFilters));\n onFiltersChange?.(normalized);\n return normalized;\n });\n },\n [currentFilters, isControlled, onFiltersChange],\n );\n\n const setFilter = useCallback(\n (filterKey: TKey, value: string) => {\n updateFilters((previousFilters) => ({\n ...previousFilters,\n [filterKey]: value,\n }));\n },\n [updateFilters],\n );\n\n const clearFilter = useCallback(\n (filterKey: TKey) => {\n updateFilters((previousFilters) => {\n const nextFilters = { ...previousFilters };\n delete nextFilters[filterKey];\n return nextFilters;\n });\n },\n [updateFilters],\n );\n\n const clearFilters = useCallback(() => {\n setFilters({});\n }, [setFilters]);\n\n const activeFilters = useMemo(\n () =>\n (Object.entries(currentFilters) as [TKey, string][]).map(\n ([filterKey, filterValue]) => ({\n filterKey,\n filterValue,\n lowerFilterValue: filterValue.toLowerCase(),\n }),\n ),\n [currentFilters],\n );\n\n const filteredData = useMemo(() => {\n if (activeFilters.length === 0) {\n return [...data];\n }\n\n return data.filter((row) =>\n activeFilters.every(({ filterKey, filterValue, lowerFilterValue }) => {\n if (filterPredicate) {\n return filterPredicate(row, filterValue, filterKey);\n }\n\n const columnValue = getColumnValue(row, filterKey);\n if (columnValue == null) {\n return false;\n }\n\n return String(columnValue).toLowerCase().includes(lowerFilterValue);\n }),\n );\n }, [activeFilters, data, filterPredicate, getColumnValue]);\n\n return {\n filters: currentFilters,\n filteredData,\n hasActiveFilters: activeFilters.length > 0,\n setFilter,\n setFilters,\n clearFilter,\n clearFilters,\n };\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const zuiDataTableRootBase = "w-full space-y-3 text-[color:var(--zui-data-table-fg,var(--zui-fg,oklch(37.2%_0.044_257.287)))] dark:text-[color:var(--zui-data-table-fg-dark,var(--zui-fg-dark,oklch(92.9%_0.013_255.508)))]";
|
|
2
|
+
export declare const zuiDataTableToolbarBase = "flex flex-col gap-3 rounded-lg border border-[color:var(--zui-data-table-toolbar-border,var(--zui-border,#0000001a))] bg-[var(--zui-data-table-toolbar-bg,var(--zui-surface,#ffffff))] p-3 dark:border-[color:var(--zui-data-table-toolbar-border-dark,var(--zui-border-dark,#ffffff1a))] dark:bg-[var(--zui-data-table-toolbar-bg-dark,var(--zui-surface-dark,#020617))] sm:flex-row sm:items-center sm:justify-between";
|
|
3
|
+
export declare const zuiDataTableToolbarGroupBase = "flex min-w-0 flex-wrap items-center gap-2";
|
|
4
|
+
export declare const zuiDataTableColumnPanelBase = "absolute right-0 z-20 mt-2 grid min-w-48 gap-2 rounded-lg border border-[color:var(--zui-data-table-column-panel-border,var(--zui-border,#0000001a))] bg-[var(--zui-data-table-column-panel-bg,var(--zui-surface,#ffffff))] p-3 shadow-lg shadow-black/10 dark:border-[color:var(--zui-data-table-column-panel-border-dark,var(--zui-border-dark,#ffffff1a))] dark:bg-[var(--zui-data-table-column-panel-bg-dark,var(--zui-surface-dark,#020617))] dark:shadow-black/40";
|
|
5
|
+
export declare const zuiDataTableStatusBase = "text-sm text-[color:var(--zui-data-table-muted-fg,var(--zui-muted-fg,oklch(55.4%_0.046_257.417)))] dark:text-[color:var(--zui-data-table-muted-fg-dark,var(--zui-muted-fg-dark,oklch(70.4%_0.04_256.788)))]";
|
|
6
|
+
export declare const zuiDataTableStateCellBase = "p-8 text-center text-[color:var(--zui-data-table-state-fg,var(--zui-muted-fg,oklch(55.4%_0.046_257.417)))] dark:text-[color:var(--zui-data-table-state-fg-dark,var(--zui-muted-fg-dark,oklch(70.4%_0.04_256.788)))]";
|
|
7
|
+
export declare const zuiDataTableVirtualScrollBase = "overflow-auto rounded-lg border border-[color:var(--zui-data-table-virtual-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-data-table-virtual-border-dark,var(--zui-border-dark,#ffffff1a))]";
|
|
8
|
+
//# sourceMappingURL=data-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/design-system/data-table.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,kMACgK,CAAC;AAElM,eAAO,MAAM,uBAAuB,6ZACwX,CAAC;AAE7Z,eAAO,MAAM,4BAA4B,8CACI,CAAC;AAE9C,eAAO,MAAM,2BAA2B,4cACma,CAAC;AAE5c,eAAO,MAAM,sBAAsB,gNAC4K,CAAC;AAEhN,eAAO,MAAM,yBAAyB,wNACiL,CAAC;AAExN,eAAO,MAAM,6BAA6B,mNACwK,CAAC"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTJ2EWPER_js = require('../chunk-TJ2EWPER.js');
|
|
4
4
|
require('../chunk-FBUY6K6S.js');
|
|
5
|
+
require('../chunk-Y7BU5RC4.js');
|
|
5
6
|
require('../chunk-NDF3HORF.js');
|
|
6
7
|
require('../chunk-USLNTKVQ.js');
|
|
7
8
|
require('../chunk-D7ATXPVI.js');
|
|
8
9
|
require('../chunk-IEHY6KNM.js');
|
|
9
10
|
require('../chunk-3MK7CWEX.js');
|
|
11
|
+
require('../chunk-22FJROCI.js');
|
|
10
12
|
require('../chunk-UJXFD4SK.js');
|
|
11
13
|
require('../chunk-3EJCQXGV.js');
|
|
12
14
|
require('../chunk-6KVTKYTB.js');
|
|
13
15
|
require('../chunk-L7W4NRK6.js');
|
|
14
16
|
require('../chunk-KWBGLH7G.js');
|
|
15
17
|
require('../chunk-OH5VOGNW.js');
|
|
16
|
-
require('../chunk-
|
|
18
|
+
require('../chunk-WGN2CBG6.js');
|
|
17
19
|
require('../chunk-SRSRY5K2.js');
|
|
18
20
|
require('../chunk-UG3GF2BD.js');
|
|
19
21
|
require('../chunk-BZTAA3MK.js');
|
|
20
22
|
require('../chunk-PZ25OHJE.js');
|
|
21
23
|
require('../chunk-HOOZYA4N.js');
|
|
22
24
|
require('../chunk-CJCOURVM.js');
|
|
23
|
-
require('../chunk-22FJROCI.js');
|
|
24
25
|
require('../chunk-KJMW7S5X.js');
|
|
25
26
|
require('../chunk-3CYJQ6KF.js');
|
|
26
27
|
require('../chunk-3453DQNL.js');
|
|
27
28
|
require('../chunk-DYSXCJGL.js');
|
|
28
29
|
require('../chunk-A7MU6SFI.js');
|
|
29
|
-
require('../chunk-WGN2CBG6.js');
|
|
30
30
|
require('../chunk-NYO3W5GY.js');
|
|
31
31
|
require('../chunk-HNRCPZCK.js');
|
|
32
32
|
require('../chunk-J2SUGU3X.js');
|
|
@@ -242,7 +242,7 @@ function classifyVariables(raw) {
|
|
|
242
242
|
};
|
|
243
243
|
});
|
|
244
244
|
}
|
|
245
|
-
var tokenEntries = Object.entries(
|
|
245
|
+
var tokenEntries = Object.entries(chunkTJ2EWPER_js.design_system_exports);
|
|
246
246
|
function flattenClassStrings(value) {
|
|
247
247
|
if (typeof value === "string") {
|
|
248
248
|
return [value];
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { design_system_exports } from '../chunk-
|
|
1
|
+
import { design_system_exports } from '../chunk-FUCW5GPE.mjs';
|
|
2
2
|
import '../chunk-2NQKFH26.mjs';
|
|
3
|
+
import '../chunk-FX5KR2GP.mjs';
|
|
3
4
|
import '../chunk-ZBAKTM2R.mjs';
|
|
4
5
|
import '../chunk-4ZBMDWWY.mjs';
|
|
5
6
|
import '../chunk-YH6MOKHR.mjs';
|
|
6
7
|
import '../chunk-T4ZLTKV2.mjs';
|
|
7
8
|
import '../chunk-PUSCPBT2.mjs';
|
|
9
|
+
import '../chunk-523VQLCW.mjs';
|
|
8
10
|
import '../chunk-3VW4HMJT.mjs';
|
|
9
11
|
import '../chunk-LRYKMXKI.mjs';
|
|
10
12
|
import '../chunk-XFJIX2YP.mjs';
|
|
11
13
|
import '../chunk-4WG3VNVL.mjs';
|
|
12
14
|
import '../chunk-YPTHTFVF.mjs';
|
|
13
15
|
import '../chunk-XY3TKIIH.mjs';
|
|
14
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-JEDMUBYI.mjs';
|
|
15
17
|
import '../chunk-EJ3UMMCS.mjs';
|
|
16
18
|
import '../chunk-EE53BIXR.mjs';
|
|
17
19
|
import '../chunk-YXU2MJMT.mjs';
|
|
18
20
|
import '../chunk-3IE4IELX.mjs';
|
|
19
21
|
import '../chunk-BUEI4RMR.mjs';
|
|
20
22
|
import '../chunk-5AOVTY2X.mjs';
|
|
21
|
-
import '../chunk-523VQLCW.mjs';
|
|
22
23
|
import '../chunk-SS3T3BUL.mjs';
|
|
23
24
|
import '../chunk-SCWQSQBJ.mjs';
|
|
24
25
|
import '../chunk-ZPGYR2UP.mjs';
|
|
25
26
|
import '../chunk-MBEQ4GQ7.mjs';
|
|
26
27
|
import '../chunk-34LHS26H.mjs';
|
|
27
|
-
import '../chunk-JEDMUBYI.mjs';
|
|
28
28
|
import '../chunk-YKTANA3H.mjs';
|
|
29
29
|
import '../chunk-ENYZGL4R.mjs';
|
|
30
30
|
import '../chunk-2VPXQ2LA.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/design-system/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/design-system/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -1,124 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var chunkHMDH4BQJ_js = require('../chunk-HMDH4BQJ.js');
|
|
4
5
|
require('../chunk-PZ5AY32C.js');
|
|
5
|
-
var react = require('react');
|
|
6
6
|
|
|
7
|
-
function normalizeFilters(filters) {
|
|
8
|
-
if (!filters || typeof filters !== "object") {
|
|
9
|
-
return {};
|
|
10
|
-
}
|
|
11
|
-
return Object.fromEntries(
|
|
12
|
-
Object.entries(filters).filter(
|
|
13
|
-
(entry) => typeof entry[1] === "string" && entry[1].trim().length > 0
|
|
14
|
-
)
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
function defaultColumnValue(row, filterKey) {
|
|
18
|
-
if (row && typeof row === "object" && filterKey in row) {
|
|
19
|
-
return row[filterKey];
|
|
20
|
-
}
|
|
21
|
-
return void 0;
|
|
22
|
-
}
|
|
23
|
-
function useTableFilter({
|
|
24
|
-
data,
|
|
25
|
-
filters,
|
|
26
|
-
defaultFilters = {},
|
|
27
|
-
onFiltersChange,
|
|
28
|
-
getColumnValue = defaultColumnValue,
|
|
29
|
-
filterPredicate
|
|
30
|
-
}) {
|
|
31
|
-
const [internalFilters, setInternalFilters] = react.useState(() => normalizeFilters(defaultFilters));
|
|
32
|
-
const isControlled = filters !== void 0;
|
|
33
|
-
const currentFilters = react.useMemo(
|
|
34
|
-
() => normalizeFilters(isControlled ? filters : internalFilters),
|
|
35
|
-
[filters, internalFilters, isControlled]
|
|
36
|
-
);
|
|
37
|
-
const setFilters = react.useCallback(
|
|
38
|
-
(nextFilters) => {
|
|
39
|
-
const normalized = normalizeFilters(nextFilters);
|
|
40
|
-
if (!isControlled) {
|
|
41
|
-
setInternalFilters(normalized);
|
|
42
|
-
}
|
|
43
|
-
onFiltersChange?.(normalized);
|
|
44
|
-
},
|
|
45
|
-
[isControlled, onFiltersChange]
|
|
46
|
-
);
|
|
47
|
-
const updateFilters = react.useCallback(
|
|
48
|
-
(updater) => {
|
|
49
|
-
if (isControlled) {
|
|
50
|
-
const normalized = normalizeFilters(updater(currentFilters));
|
|
51
|
-
onFiltersChange?.(normalized);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
setInternalFilters((previousFilters) => {
|
|
55
|
-
const normalized = normalizeFilters(updater(previousFilters));
|
|
56
|
-
onFiltersChange?.(normalized);
|
|
57
|
-
return normalized;
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
[currentFilters, isControlled, onFiltersChange]
|
|
61
|
-
);
|
|
62
|
-
const setFilter = react.useCallback(
|
|
63
|
-
(filterKey, value) => {
|
|
64
|
-
updateFilters((previousFilters) => ({
|
|
65
|
-
...previousFilters,
|
|
66
|
-
[filterKey]: value
|
|
67
|
-
}));
|
|
68
|
-
},
|
|
69
|
-
[updateFilters]
|
|
70
|
-
);
|
|
71
|
-
const clearFilter = react.useCallback(
|
|
72
|
-
(filterKey) => {
|
|
73
|
-
updateFilters((previousFilters) => {
|
|
74
|
-
const nextFilters = { ...previousFilters };
|
|
75
|
-
delete nextFilters[filterKey];
|
|
76
|
-
return nextFilters;
|
|
77
|
-
});
|
|
78
|
-
},
|
|
79
|
-
[updateFilters]
|
|
80
|
-
);
|
|
81
|
-
const clearFilters = react.useCallback(() => {
|
|
82
|
-
setFilters({});
|
|
83
|
-
}, [setFilters]);
|
|
84
|
-
const activeFilters = react.useMemo(
|
|
85
|
-
() => Object.entries(currentFilters).map(
|
|
86
|
-
([filterKey, filterValue]) => ({
|
|
87
|
-
filterKey,
|
|
88
|
-
filterValue,
|
|
89
|
-
lowerFilterValue: filterValue.toLowerCase()
|
|
90
|
-
})
|
|
91
|
-
),
|
|
92
|
-
[currentFilters]
|
|
93
|
-
);
|
|
94
|
-
const filteredData = react.useMemo(() => {
|
|
95
|
-
if (activeFilters.length === 0) {
|
|
96
|
-
return [...data];
|
|
97
|
-
}
|
|
98
|
-
return data.filter(
|
|
99
|
-
(row) => activeFilters.every(({ filterKey, filterValue, lowerFilterValue }) => {
|
|
100
|
-
if (filterPredicate) {
|
|
101
|
-
return filterPredicate(row, filterValue, filterKey);
|
|
102
|
-
}
|
|
103
|
-
const columnValue = getColumnValue(row, filterKey);
|
|
104
|
-
if (columnValue == null) {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return String(columnValue).toLowerCase().includes(lowerFilterValue);
|
|
108
|
-
})
|
|
109
|
-
);
|
|
110
|
-
}, [activeFilters, data, filterPredicate, getColumnValue]);
|
|
111
|
-
return {
|
|
112
|
-
filters: currentFilters,
|
|
113
|
-
filteredData,
|
|
114
|
-
hasActiveFilters: activeFilters.length > 0,
|
|
115
|
-
setFilter,
|
|
116
|
-
setFilters,
|
|
117
|
-
clearFilter,
|
|
118
|
-
clearFilters
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
7
|
|
|
122
|
-
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "useTableFilter", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunkHMDH4BQJ_js.useTableFilter; }
|
|
12
|
+
});
|
|
123
13
|
//# sourceMappingURL=useTableFilter.js.map
|
|
124
14
|
//# sourceMappingURL=useTableFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"useTableFilter.js"}
|
|
@@ -1,122 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
export { useTableFilter } from '../chunk-ZOHCADDL.mjs';
|
|
2
3
|
import '../chunk-J5LGTIGS.mjs';
|
|
3
|
-
import { useState, useMemo, useCallback } from 'react';
|
|
4
|
-
|
|
5
|
-
function normalizeFilters(filters) {
|
|
6
|
-
if (!filters || typeof filters !== "object") {
|
|
7
|
-
return {};
|
|
8
|
-
}
|
|
9
|
-
return Object.fromEntries(
|
|
10
|
-
Object.entries(filters).filter(
|
|
11
|
-
(entry) => typeof entry[1] === "string" && entry[1].trim().length > 0
|
|
12
|
-
)
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
function defaultColumnValue(row, filterKey) {
|
|
16
|
-
if (row && typeof row === "object" && filterKey in row) {
|
|
17
|
-
return row[filterKey];
|
|
18
|
-
}
|
|
19
|
-
return void 0;
|
|
20
|
-
}
|
|
21
|
-
function useTableFilter({
|
|
22
|
-
data,
|
|
23
|
-
filters,
|
|
24
|
-
defaultFilters = {},
|
|
25
|
-
onFiltersChange,
|
|
26
|
-
getColumnValue = defaultColumnValue,
|
|
27
|
-
filterPredicate
|
|
28
|
-
}) {
|
|
29
|
-
const [internalFilters, setInternalFilters] = useState(() => normalizeFilters(defaultFilters));
|
|
30
|
-
const isControlled = filters !== void 0;
|
|
31
|
-
const currentFilters = useMemo(
|
|
32
|
-
() => normalizeFilters(isControlled ? filters : internalFilters),
|
|
33
|
-
[filters, internalFilters, isControlled]
|
|
34
|
-
);
|
|
35
|
-
const setFilters = useCallback(
|
|
36
|
-
(nextFilters) => {
|
|
37
|
-
const normalized = normalizeFilters(nextFilters);
|
|
38
|
-
if (!isControlled) {
|
|
39
|
-
setInternalFilters(normalized);
|
|
40
|
-
}
|
|
41
|
-
onFiltersChange?.(normalized);
|
|
42
|
-
},
|
|
43
|
-
[isControlled, onFiltersChange]
|
|
44
|
-
);
|
|
45
|
-
const updateFilters = useCallback(
|
|
46
|
-
(updater) => {
|
|
47
|
-
if (isControlled) {
|
|
48
|
-
const normalized = normalizeFilters(updater(currentFilters));
|
|
49
|
-
onFiltersChange?.(normalized);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
setInternalFilters((previousFilters) => {
|
|
53
|
-
const normalized = normalizeFilters(updater(previousFilters));
|
|
54
|
-
onFiltersChange?.(normalized);
|
|
55
|
-
return normalized;
|
|
56
|
-
});
|
|
57
|
-
},
|
|
58
|
-
[currentFilters, isControlled, onFiltersChange]
|
|
59
|
-
);
|
|
60
|
-
const setFilter = useCallback(
|
|
61
|
-
(filterKey, value) => {
|
|
62
|
-
updateFilters((previousFilters) => ({
|
|
63
|
-
...previousFilters,
|
|
64
|
-
[filterKey]: value
|
|
65
|
-
}));
|
|
66
|
-
},
|
|
67
|
-
[updateFilters]
|
|
68
|
-
);
|
|
69
|
-
const clearFilter = useCallback(
|
|
70
|
-
(filterKey) => {
|
|
71
|
-
updateFilters((previousFilters) => {
|
|
72
|
-
const nextFilters = { ...previousFilters };
|
|
73
|
-
delete nextFilters[filterKey];
|
|
74
|
-
return nextFilters;
|
|
75
|
-
});
|
|
76
|
-
},
|
|
77
|
-
[updateFilters]
|
|
78
|
-
);
|
|
79
|
-
const clearFilters = useCallback(() => {
|
|
80
|
-
setFilters({});
|
|
81
|
-
}, [setFilters]);
|
|
82
|
-
const activeFilters = useMemo(
|
|
83
|
-
() => Object.entries(currentFilters).map(
|
|
84
|
-
([filterKey, filterValue]) => ({
|
|
85
|
-
filterKey,
|
|
86
|
-
filterValue,
|
|
87
|
-
lowerFilterValue: filterValue.toLowerCase()
|
|
88
|
-
})
|
|
89
|
-
),
|
|
90
|
-
[currentFilters]
|
|
91
|
-
);
|
|
92
|
-
const filteredData = useMemo(() => {
|
|
93
|
-
if (activeFilters.length === 0) {
|
|
94
|
-
return [...data];
|
|
95
|
-
}
|
|
96
|
-
return data.filter(
|
|
97
|
-
(row) => activeFilters.every(({ filterKey, filterValue, lowerFilterValue }) => {
|
|
98
|
-
if (filterPredicate) {
|
|
99
|
-
return filterPredicate(row, filterValue, filterKey);
|
|
100
|
-
}
|
|
101
|
-
const columnValue = getColumnValue(row, filterKey);
|
|
102
|
-
if (columnValue == null) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
return String(columnValue).toLowerCase().includes(lowerFilterValue);
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
|
-
}, [activeFilters, data, filterPredicate, getColumnValue]);
|
|
109
|
-
return {
|
|
110
|
-
filters: currentFilters,
|
|
111
|
-
filteredData,
|
|
112
|
-
hasActiveFilters: activeFilters.length > 0,
|
|
113
|
-
setFilter,
|
|
114
|
-
setFilters,
|
|
115
|
-
clearFilter,
|
|
116
|
-
clearFilters
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export { useTableFilter };
|
|
121
4
|
//# sourceMappingURL=useTableFilter.mjs.map
|
|
122
5
|
//# sourceMappingURL=useTableFilter.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"useTableFilter.mjs"}
|
|
@@ -1,99 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var chunkI7EBE7BD_js = require('../chunk-I7EBE7BD.js');
|
|
4
5
|
require('../chunk-PZ5AY32C.js');
|
|
5
|
-
var react = require('react');
|
|
6
6
|
|
|
7
|
-
function nextSortDirection(currentDirection) {
|
|
8
|
-
if (currentDirection === "ascending") {
|
|
9
|
-
return "descending";
|
|
10
|
-
}
|
|
11
|
-
if (currentDirection === "descending") {
|
|
12
|
-
return "none";
|
|
13
|
-
}
|
|
14
|
-
return "ascending";
|
|
15
|
-
}
|
|
16
|
-
function normalizeSortState(nextSort) {
|
|
17
|
-
if (!nextSort.sortKey || nextSort.sortDirection === "none") {
|
|
18
|
-
return { sortKey: void 0, sortDirection: "none" };
|
|
19
|
-
}
|
|
20
|
-
return nextSort;
|
|
21
|
-
}
|
|
22
|
-
function useTableSort({
|
|
23
|
-
sortKey,
|
|
24
|
-
defaultSortKey,
|
|
25
|
-
sortDirection,
|
|
26
|
-
defaultSortDirection = "none",
|
|
27
|
-
onSortChange
|
|
28
|
-
} = {}) {
|
|
29
|
-
const [internalSort, setInternalSort] = react.useState(
|
|
30
|
-
() => normalizeSortState({
|
|
31
|
-
sortKey: defaultSortKey,
|
|
32
|
-
sortDirection: defaultSortDirection
|
|
33
|
-
})
|
|
34
|
-
);
|
|
35
|
-
const isSortKeyControlled = sortKey !== void 0;
|
|
36
|
-
const isSortDirectionControlled = sortDirection !== void 0;
|
|
37
|
-
const currentSort = normalizeSortState({
|
|
38
|
-
sortKey: isSortKeyControlled ? sortKey : internalSort.sortKey,
|
|
39
|
-
sortDirection: isSortDirectionControlled ? sortDirection : internalSort.sortDirection
|
|
40
|
-
});
|
|
41
|
-
const setSort = react.useCallback(
|
|
42
|
-
(nextSort) => {
|
|
43
|
-
const normalized = normalizeSortState(nextSort);
|
|
44
|
-
if (!isSortKeyControlled || !isSortDirectionControlled) {
|
|
45
|
-
setInternalSort((previousSort) => ({
|
|
46
|
-
sortKey: isSortKeyControlled ? previousSort.sortKey : normalized.sortKey,
|
|
47
|
-
sortDirection: isSortDirectionControlled ? previousSort.sortDirection : normalized.sortDirection
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
onSortChange?.(normalized);
|
|
51
|
-
},
|
|
52
|
-
[isSortDirectionControlled, isSortKeyControlled, onSortChange]
|
|
53
|
-
);
|
|
54
|
-
const clearSort = react.useCallback(() => {
|
|
55
|
-
setSort({ sortKey: void 0, sortDirection: "none" });
|
|
56
|
-
}, [setSort]);
|
|
57
|
-
const toggleSort = react.useCallback(
|
|
58
|
-
(nextSortKey) => {
|
|
59
|
-
const direction = currentSort.sortKey === nextSortKey ? nextSortDirection(currentSort.sortDirection) : "ascending";
|
|
60
|
-
setSort({
|
|
61
|
-
sortKey: nextSortKey,
|
|
62
|
-
sortDirection: direction
|
|
63
|
-
});
|
|
64
|
-
},
|
|
65
|
-
[currentSort.sortDirection, currentSort.sortKey, setSort]
|
|
66
|
-
);
|
|
67
|
-
const getSortProps = react.useCallback(
|
|
68
|
-
(nextSortKey) => ({
|
|
69
|
-
sortKey: nextSortKey,
|
|
70
|
-
sortDirection: currentSort.sortKey === nextSortKey ? currentSort.sortDirection : "none",
|
|
71
|
-
onSortChange: (nextSort) => {
|
|
72
|
-
setSort(nextSort);
|
|
73
|
-
}
|
|
74
|
-
}),
|
|
75
|
-
[currentSort.sortDirection, currentSort.sortKey, setSort]
|
|
76
|
-
);
|
|
77
|
-
return react.useMemo(
|
|
78
|
-
() => ({
|
|
79
|
-
sortKey: currentSort.sortKey,
|
|
80
|
-
sortDirection: currentSort.sortDirection,
|
|
81
|
-
setSort,
|
|
82
|
-
clearSort,
|
|
83
|
-
toggleSort,
|
|
84
|
-
getSortProps
|
|
85
|
-
}),
|
|
86
|
-
[
|
|
87
|
-
clearSort,
|
|
88
|
-
currentSort.sortDirection,
|
|
89
|
-
currentSort.sortKey,
|
|
90
|
-
getSortProps,
|
|
91
|
-
setSort,
|
|
92
|
-
toggleSort
|
|
93
|
-
]
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
7
|
|
|
97
|
-
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "useTableSort", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunkI7EBE7BD_js.useTableSort; }
|
|
12
|
+
});
|
|
98
13
|
//# sourceMappingURL=useTableSort.js.map
|
|
99
14
|
//# sourceMappingURL=useTableSort.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"useTableSort.js"}
|
|
@@ -1,97 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
export { useTableSort } from '../chunk-W6DO36XD.mjs';
|
|
2
3
|
import '../chunk-J5LGTIGS.mjs';
|
|
3
|
-
import { useState, useCallback, useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function nextSortDirection(currentDirection) {
|
|
6
|
-
if (currentDirection === "ascending") {
|
|
7
|
-
return "descending";
|
|
8
|
-
}
|
|
9
|
-
if (currentDirection === "descending") {
|
|
10
|
-
return "none";
|
|
11
|
-
}
|
|
12
|
-
return "ascending";
|
|
13
|
-
}
|
|
14
|
-
function normalizeSortState(nextSort) {
|
|
15
|
-
if (!nextSort.sortKey || nextSort.sortDirection === "none") {
|
|
16
|
-
return { sortKey: void 0, sortDirection: "none" };
|
|
17
|
-
}
|
|
18
|
-
return nextSort;
|
|
19
|
-
}
|
|
20
|
-
function useTableSort({
|
|
21
|
-
sortKey,
|
|
22
|
-
defaultSortKey,
|
|
23
|
-
sortDirection,
|
|
24
|
-
defaultSortDirection = "none",
|
|
25
|
-
onSortChange
|
|
26
|
-
} = {}) {
|
|
27
|
-
const [internalSort, setInternalSort] = useState(
|
|
28
|
-
() => normalizeSortState({
|
|
29
|
-
sortKey: defaultSortKey,
|
|
30
|
-
sortDirection: defaultSortDirection
|
|
31
|
-
})
|
|
32
|
-
);
|
|
33
|
-
const isSortKeyControlled = sortKey !== void 0;
|
|
34
|
-
const isSortDirectionControlled = sortDirection !== void 0;
|
|
35
|
-
const currentSort = normalizeSortState({
|
|
36
|
-
sortKey: isSortKeyControlled ? sortKey : internalSort.sortKey,
|
|
37
|
-
sortDirection: isSortDirectionControlled ? sortDirection : internalSort.sortDirection
|
|
38
|
-
});
|
|
39
|
-
const setSort = useCallback(
|
|
40
|
-
(nextSort) => {
|
|
41
|
-
const normalized = normalizeSortState(nextSort);
|
|
42
|
-
if (!isSortKeyControlled || !isSortDirectionControlled) {
|
|
43
|
-
setInternalSort((previousSort) => ({
|
|
44
|
-
sortKey: isSortKeyControlled ? previousSort.sortKey : normalized.sortKey,
|
|
45
|
-
sortDirection: isSortDirectionControlled ? previousSort.sortDirection : normalized.sortDirection
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
onSortChange?.(normalized);
|
|
49
|
-
},
|
|
50
|
-
[isSortDirectionControlled, isSortKeyControlled, onSortChange]
|
|
51
|
-
);
|
|
52
|
-
const clearSort = useCallback(() => {
|
|
53
|
-
setSort({ sortKey: void 0, sortDirection: "none" });
|
|
54
|
-
}, [setSort]);
|
|
55
|
-
const toggleSort = useCallback(
|
|
56
|
-
(nextSortKey) => {
|
|
57
|
-
const direction = currentSort.sortKey === nextSortKey ? nextSortDirection(currentSort.sortDirection) : "ascending";
|
|
58
|
-
setSort({
|
|
59
|
-
sortKey: nextSortKey,
|
|
60
|
-
sortDirection: direction
|
|
61
|
-
});
|
|
62
|
-
},
|
|
63
|
-
[currentSort.sortDirection, currentSort.sortKey, setSort]
|
|
64
|
-
);
|
|
65
|
-
const getSortProps = useCallback(
|
|
66
|
-
(nextSortKey) => ({
|
|
67
|
-
sortKey: nextSortKey,
|
|
68
|
-
sortDirection: currentSort.sortKey === nextSortKey ? currentSort.sortDirection : "none",
|
|
69
|
-
onSortChange: (nextSort) => {
|
|
70
|
-
setSort(nextSort);
|
|
71
|
-
}
|
|
72
|
-
}),
|
|
73
|
-
[currentSort.sortDirection, currentSort.sortKey, setSort]
|
|
74
|
-
);
|
|
75
|
-
return useMemo(
|
|
76
|
-
() => ({
|
|
77
|
-
sortKey: currentSort.sortKey,
|
|
78
|
-
sortDirection: currentSort.sortDirection,
|
|
79
|
-
setSort,
|
|
80
|
-
clearSort,
|
|
81
|
-
toggleSort,
|
|
82
|
-
getSortProps
|
|
83
|
-
}),
|
|
84
|
-
[
|
|
85
|
-
clearSort,
|
|
86
|
-
currentSort.sortDirection,
|
|
87
|
-
currentSort.sortKey,
|
|
88
|
-
getSortProps,
|
|
89
|
-
setSort,
|
|
90
|
-
toggleSort
|
|
91
|
-
]
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export { useTableSort };
|
|
96
4
|
//# sourceMappingURL=useTableSort.mjs.map
|
|
97
5
|
//# sourceMappingURL=useTableSort.mjs.map
|