@a5it/sync-ui 0.1.0
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 +45 -0
- package/dist/components/data-table/actions/action-delete.d.ts +8 -0
- package/dist/components/data-table/actions/action-delete.d.ts.map +1 -0
- package/dist/components/data-table/actions/action-delete.js +17 -0
- package/dist/components/data-table/actions/action-delete.js.map +1 -0
- package/dist/components/data-table/actions/action-item.d.ts +7 -0
- package/dist/components/data-table/actions/action-item.d.ts.map +1 -0
- package/dist/components/data-table/actions/action-item.js +7 -0
- package/dist/components/data-table/actions/action-item.js.map +1 -0
- package/dist/components/data-table/actions/actions-dropdown.d.ts +8 -0
- package/dist/components/data-table/actions/actions-dropdown.d.ts.map +1 -0
- package/dist/components/data-table/actions/actions-dropdown.js +9 -0
- package/dist/components/data-table/actions/actions-dropdown.js.map +1 -0
- package/dist/components/data-table/cells/date-time-cell.d.ts +16 -0
- package/dist/components/data-table/cells/date-time-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/date-time-cell.js +32 -0
- package/dist/components/data-table/cells/date-time-cell.js.map +1 -0
- package/dist/components/data-table/cells/payment-pill.d.ts +7 -0
- package/dist/components/data-table/cells/payment-pill.d.ts.map +1 -0
- package/dist/components/data-table/cells/payment-pill.js +23 -0
- package/dist/components/data-table/cells/payment-pill.js.map +1 -0
- package/dist/components/data-table/cells/record-id-cell.d.ts +7 -0
- package/dist/components/data-table/cells/record-id-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/record-id-cell.js +7 -0
- package/dist/components/data-table/cells/record-id-cell.js.map +1 -0
- package/dist/components/data-table/cells/status-pill.d.ts +6 -0
- package/dist/components/data-table/cells/status-pill.d.ts.map +1 -0
- package/dist/components/data-table/cells/status-pill.js +67 -0
- package/dist/components/data-table/cells/status-pill.js.map +1 -0
- package/dist/components/data-table/cells/table-checkbox.d.ts +4 -0
- package/dist/components/data-table/cells/table-checkbox.d.ts.map +1 -0
- package/dist/components/data-table/cells/table-checkbox.js +9 -0
- package/dist/components/data-table/cells/table-checkbox.js.map +1 -0
- package/dist/components/data-table/cells/text-cell.d.ts +8 -0
- package/dist/components/data-table/cells/text-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/text-cell.js +7 -0
- package/dist/components/data-table/cells/text-cell.js.map +1 -0
- package/dist/components/data-table/column-header.d.ts +10 -0
- package/dist/components/data-table/column-header.d.ts.map +1 -0
- package/dist/components/data-table/column-header.js +42 -0
- package/dist/components/data-table/column-header.js.map +1 -0
- package/dist/components/data-table/columns/selection.d.ts +4 -0
- package/dist/components/data-table/columns/selection.d.ts.map +1 -0
- package/dist/components/data-table/columns/selection.js +33 -0
- package/dist/components/data-table/columns/selection.js.map +1 -0
- package/dist/components/data-table/filters/all-filters.d.ts +11 -0
- package/dist/components/data-table/filters/all-filters.d.ts.map +1 -0
- package/dist/components/data-table/filters/all-filters.js +9 -0
- package/dist/components/data-table/filters/all-filters.js.map +1 -0
- package/dist/components/data-table/filters/bulk-delete.d.ts +16 -0
- package/dist/components/data-table/filters/bulk-delete.d.ts.map +1 -0
- package/dist/components/data-table/filters/bulk-delete.js +20 -0
- package/dist/components/data-table/filters/bulk-delete.js.map +1 -0
- package/dist/components/data-table/filters/filters.d.ts +4 -0
- package/dist/components/data-table/filters/filters.d.ts.map +1 -0
- package/dist/components/data-table/filters/filters.js +10 -0
- package/dist/components/data-table/filters/filters.js.map +1 -0
- package/dist/components/data-table/filters/reset.d.ts +21 -0
- package/dist/components/data-table/filters/reset.d.ts.map +1 -0
- package/dist/components/data-table/filters/reset.js +34 -0
- package/dist/components/data-table/filters/reset.js.map +1 -0
- package/dist/components/data-table/filters/search.d.ts +25 -0
- package/dist/components/data-table/filters/search.d.ts.map +1 -0
- package/dist/components/data-table/filters/search.js +89 -0
- package/dist/components/data-table/filters/search.js.map +1 -0
- package/dist/components/data-table/filters/sort-by.d.ts +7 -0
- package/dist/components/data-table/filters/sort-by.d.ts.map +1 -0
- package/dist/components/data-table/filters/sort-by.js +76 -0
- package/dist/components/data-table/filters/sort-by.js.map +1 -0
- package/dist/components/data-table/index.d.ts +26 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/index.js +24 -0
- package/dist/components/data-table/index.js.map +1 -0
- package/dist/components/data-table/pagination/pagination.d.ts +66 -0
- package/dist/components/data-table/pagination/pagination.d.ts.map +1 -0
- package/dist/components/data-table/pagination/pagination.js +224 -0
- package/dist/components/data-table/pagination/pagination.js.map +1 -0
- package/dist/components/data-table/provider.d.ts +284 -0
- package/dist/components/data-table/provider.d.ts.map +1 -0
- package/dist/components/data-table/provider.js +193 -0
- package/dist/components/data-table/provider.js.map +1 -0
- package/dist/components/data-table/table.d.ts +21 -0
- package/dist/components/data-table/table.d.ts.map +1 -0
- package/dist/components/data-table/table.js +120 -0
- package/dist/components/data-table/table.js.map +1 -0
- package/dist/components/data-table/tabs.d.ts +19 -0
- package/dist/components/data-table/tabs.d.ts.map +1 -0
- package/dist/components/data-table/tabs.js +22 -0
- package/dist/components/data-table/tabs.js.map +1 -0
- package/dist/components/data-table/url-state.d.ts +54 -0
- package/dist/components/data-table/url-state.d.ts.map +1 -0
- package/dist/components/data-table/url-state.js +130 -0
- package/dist/components/data-table/url-state.js.map +1 -0
- package/dist/components/page-header/index.d.ts +3 -0
- package/dist/components/page-header/index.d.ts.map +1 -0
- package/dist/components/page-header/index.js +2 -0
- package/dist/components/page-header/index.js.map +1 -0
- package/dist/components/page-header/page-header.d.ts +56 -0
- package/dist/components/page-header/page-header.d.ts.map +1 -0
- package/dist/components/page-header/page-header.js +59 -0
- package/dist/components/page-header/page-header.js.map +1 -0
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +15 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +40 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +36 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +10 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +14 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +41 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +30 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +33 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/styles/index.css +19 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
|
|
5
|
+
import { createSelectionColumn, DATA_TABLE_SELECTION_COLUMN_ID, } from "./columns/selection";
|
|
6
|
+
import { UrlStateProvider, useUrlState, } from "./url-state";
|
|
7
|
+
const DataTableContext = React.createContext(null);
|
|
8
|
+
export function useDataTable() {
|
|
9
|
+
const value = React.useContext(DataTableContext);
|
|
10
|
+
if (!value) {
|
|
11
|
+
throw new Error("useDataTable must be used within <DataTableProvider />");
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
function useControllableState({ value, defaultValue, onChange, }) {
|
|
16
|
+
const [internal, setInternal] = React.useState(defaultValue);
|
|
17
|
+
const state = value ?? internal;
|
|
18
|
+
const setState = React.useCallback((updater) => {
|
|
19
|
+
if (value === undefined) {
|
|
20
|
+
setInternal((prev) => typeof updater === "function"
|
|
21
|
+
? updater(prev)
|
|
22
|
+
: updater);
|
|
23
|
+
}
|
|
24
|
+
onChange?.(updater);
|
|
25
|
+
}, [onChange, value]);
|
|
26
|
+
return [state, setState];
|
|
27
|
+
}
|
|
28
|
+
export function DataTableProvider({ data, columns, children, enableRowSelection = false, selectionColumn, getRowId, manualSorting = false, sorting, defaultSorting = [], onSortingChange, manualFiltering = false, columnFilters, defaultColumnFilters = [], onColumnFiltersChange, globalFilter, defaultGlobalFilter = "", onGlobalFilterChange, manualPagination = false, pageCount, pagination, defaultPagination = { pageIndex: 0, pageSize: 10 }, onPaginationChange, rowSelection, defaultRowSelection = {}, onRowSelectionChange, onQueryChange, filterConfig = {}, paginationConfig = {}, isLoading = false, isInitialLoading = false, urlStateConfig, defaultTab, }) {
|
|
29
|
+
// Get search param key from filterConfig for URL state
|
|
30
|
+
const searchParamKey = React.useMemo(() => {
|
|
31
|
+
if (filterConfig?.mode === "client" || filterConfig?.mode === "server") {
|
|
32
|
+
const values = Object.values(filterConfig.params);
|
|
33
|
+
return values[0] ?? null;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}, [filterConfig]);
|
|
37
|
+
return (_jsx(UrlStateProvider, { config: urlStateConfig, defaultTab: defaultTab, searchParamKey: searchParamKey, children: _jsx(DataTableProviderInner, { data: data, columns: columns, enableRowSelection: enableRowSelection, selectionColumn: selectionColumn, getRowId: getRowId, manualSorting: manualSorting, sorting: sorting, defaultSorting: defaultSorting, onSortingChange: onSortingChange, manualFiltering: manualFiltering, columnFilters: columnFilters, defaultColumnFilters: defaultColumnFilters, onColumnFiltersChange: onColumnFiltersChange, globalFilter: globalFilter, defaultGlobalFilter: defaultGlobalFilter, onGlobalFilterChange: onGlobalFilterChange, manualPagination: manualPagination, pageCount: pageCount, pagination: pagination, defaultPagination: defaultPagination, onPaginationChange: onPaginationChange, rowSelection: rowSelection, defaultRowSelection: defaultRowSelection, onRowSelectionChange: onRowSelectionChange, onQueryChange: onQueryChange, filterConfig: filterConfig, paginationConfig: paginationConfig, isLoading: isLoading, isInitialLoading: isInitialLoading, children: children }) }));
|
|
38
|
+
}
|
|
39
|
+
function DataTableProviderInner({ data, columns, children, enableRowSelection = false, selectionColumn, getRowId, manualSorting = false, sorting, defaultSorting = [], onSortingChange, manualFiltering = false, columnFilters, defaultColumnFilters = [], onColumnFiltersChange, globalFilter, defaultGlobalFilter = "", onGlobalFilterChange, manualPagination = false, pageCount, pagination, defaultPagination = { pageIndex: 0, pageSize: 10 }, onPaginationChange, rowSelection, defaultRowSelection = {}, onRowSelectionChange, onQueryChange, filterConfig = {}, paginationConfig = {}, isLoading = false, isInitialLoading = false, }) {
|
|
40
|
+
const urlState = useUrlState();
|
|
41
|
+
const rowSelectionEnabled = React.useMemo(() => {
|
|
42
|
+
return (enableRowSelection ||
|
|
43
|
+
columns.some((column) => column.id === DATA_TABLE_SELECTION_COLUMN_ID));
|
|
44
|
+
}, [columns, enableRowSelection]);
|
|
45
|
+
const resolvedColumns = React.useMemo(() => {
|
|
46
|
+
if (!rowSelectionEnabled)
|
|
47
|
+
return columns;
|
|
48
|
+
const hasSelectionColumn = columns.some((column) => column.id === DATA_TABLE_SELECTION_COLUMN_ID);
|
|
49
|
+
if (hasSelectionColumn)
|
|
50
|
+
return columns;
|
|
51
|
+
const injectedSelectionColumn = selectionColumn ??
|
|
52
|
+
createSelectionColumn();
|
|
53
|
+
return [injectedSelectionColumn, ...columns];
|
|
54
|
+
}, [columns, rowSelectionEnabled, selectionColumn]);
|
|
55
|
+
const [sortingState, setSortingState] = useControllableState({
|
|
56
|
+
value: sorting,
|
|
57
|
+
defaultValue: defaultSorting,
|
|
58
|
+
onChange: onSortingChange,
|
|
59
|
+
});
|
|
60
|
+
const [columnFiltersState, setColumnFiltersState] = useControllableState({
|
|
61
|
+
value: columnFilters,
|
|
62
|
+
defaultValue: defaultColumnFilters,
|
|
63
|
+
onChange: onColumnFiltersChange,
|
|
64
|
+
});
|
|
65
|
+
const [globalFilterState, setGlobalFilterState] = useControllableState({
|
|
66
|
+
value: globalFilter,
|
|
67
|
+
defaultValue: defaultGlobalFilter,
|
|
68
|
+
onChange: onGlobalFilterChange,
|
|
69
|
+
});
|
|
70
|
+
const [paginationState, setPaginationState] = useControllableState({
|
|
71
|
+
value: pagination,
|
|
72
|
+
defaultValue: defaultPagination,
|
|
73
|
+
onChange: onPaginationChange,
|
|
74
|
+
});
|
|
75
|
+
const [rowSelectionState, setRowSelectionState] = useControllableState({
|
|
76
|
+
value: rowSelection,
|
|
77
|
+
defaultValue: defaultRowSelection,
|
|
78
|
+
onChange: onRowSelectionChange,
|
|
79
|
+
});
|
|
80
|
+
const handleRowSelectionChange = React.useCallback((updater) => {
|
|
81
|
+
// Ensure we always store a fresh object reference (helps avoid UI not
|
|
82
|
+
// updating if an upstream updater mutates).
|
|
83
|
+
setRowSelectionState((prev) => {
|
|
84
|
+
const next = typeof updater === "function"
|
|
85
|
+
? updater(prev)
|
|
86
|
+
: updater;
|
|
87
|
+
return { ...next };
|
|
88
|
+
});
|
|
89
|
+
}, [setRowSelectionState]);
|
|
90
|
+
// Custom global filter function for client-side filtering
|
|
91
|
+
// When filterConfig.mode === "client", this searches across columns defined in params
|
|
92
|
+
const globalFilterFn = React.useCallback((row, _columnId, filterValue) => {
|
|
93
|
+
if (!filterValue)
|
|
94
|
+
return true;
|
|
95
|
+
const searchValue = filterValue.toLowerCase();
|
|
96
|
+
// If client mode with specified params, only search those columns
|
|
97
|
+
if (filterConfig?.mode === "client") {
|
|
98
|
+
const columnKeys = Object.keys(filterConfig.params);
|
|
99
|
+
if (columnKeys.length > 0) {
|
|
100
|
+
return columnKeys.some((columnKey) => {
|
|
101
|
+
const cellValue = row.getValue(columnKey);
|
|
102
|
+
if (cellValue == null)
|
|
103
|
+
return false;
|
|
104
|
+
return String(cellValue).toLowerCase().includes(searchValue);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Fallback: search all columns (default TanStack behavior)
|
|
109
|
+
const allColumns = row.getAllCells();
|
|
110
|
+
return allColumns.some((cell) => {
|
|
111
|
+
const cellValue = cell.getValue();
|
|
112
|
+
if (cellValue == null)
|
|
113
|
+
return false;
|
|
114
|
+
return String(cellValue).toLowerCase().includes(searchValue);
|
|
115
|
+
});
|
|
116
|
+
}, [filterConfig]);
|
|
117
|
+
// Determine if we should use manual filtering based on mode
|
|
118
|
+
// Server mode = manual filtering (we don't filter locally)
|
|
119
|
+
// Client mode or no config = use TanStack's filtering
|
|
120
|
+
const effectiveManualFiltering = manualFiltering || filterConfig?.mode === "server";
|
|
121
|
+
const table = useReactTable({
|
|
122
|
+
data,
|
|
123
|
+
columns: resolvedColumns,
|
|
124
|
+
getCoreRowModel: getCoreRowModel(),
|
|
125
|
+
...(manualSorting ? {} : { getSortedRowModel: getSortedRowModel() }),
|
|
126
|
+
...(effectiveManualFiltering ? {} : { getFilteredRowModel: getFilteredRowModel() }),
|
|
127
|
+
...(manualPagination ? {} : { getPaginationRowModel: getPaginationRowModel() }),
|
|
128
|
+
manualSorting,
|
|
129
|
+
manualFiltering: effectiveManualFiltering,
|
|
130
|
+
manualPagination,
|
|
131
|
+
...(manualPagination && pageCount !== undefined ? { pageCount } : {}),
|
|
132
|
+
// Use custom global filter for client-side column filtering
|
|
133
|
+
globalFilterFn,
|
|
134
|
+
enableRowSelection: rowSelectionEnabled,
|
|
135
|
+
onRowSelectionChange: handleRowSelectionChange,
|
|
136
|
+
onSortingChange: setSortingState,
|
|
137
|
+
onColumnFiltersChange: setColumnFiltersState,
|
|
138
|
+
onGlobalFilterChange: setGlobalFilterState,
|
|
139
|
+
onPaginationChange: setPaginationState,
|
|
140
|
+
getRowId: getRowId ?? ((row) => String(row.id)),
|
|
141
|
+
state: {
|
|
142
|
+
sorting: sortingState,
|
|
143
|
+
columnFilters: columnFiltersState,
|
|
144
|
+
globalFilter: globalFilterState,
|
|
145
|
+
pagination: paginationState,
|
|
146
|
+
rowSelection: rowSelectionState,
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
React.useEffect(() => {
|
|
150
|
+
if (!onQueryChange)
|
|
151
|
+
return;
|
|
152
|
+
onQueryChange({
|
|
153
|
+
sorting: table.getState().sorting,
|
|
154
|
+
columnFilters: table.getState().columnFilters,
|
|
155
|
+
globalFilter: String(table.getState().globalFilter ?? ""),
|
|
156
|
+
pagination: table.getState().pagination,
|
|
157
|
+
rowSelection: table.getState().rowSelection,
|
|
158
|
+
});
|
|
159
|
+
}, [
|
|
160
|
+
onQueryChange,
|
|
161
|
+
table,
|
|
162
|
+
sortingState,
|
|
163
|
+
columnFiltersState,
|
|
164
|
+
globalFilterState,
|
|
165
|
+
paginationState,
|
|
166
|
+
rowSelectionState,
|
|
167
|
+
]);
|
|
168
|
+
// Important: consumers must re-render when table state changes. The TanStack
|
|
169
|
+
// `table` instance is stable, so we key the context value off the actual state
|
|
170
|
+
// slices we manage here.
|
|
171
|
+
const value = React.useMemo(() => ({
|
|
172
|
+
table,
|
|
173
|
+
filterConfig,
|
|
174
|
+
paginationConfig,
|
|
175
|
+
isLoading,
|
|
176
|
+
isInitialLoading,
|
|
177
|
+
urlState,
|
|
178
|
+
}), [
|
|
179
|
+
table,
|
|
180
|
+
sortingState,
|
|
181
|
+
columnFiltersState,
|
|
182
|
+
globalFilterState,
|
|
183
|
+
paginationState,
|
|
184
|
+
rowSelectionState,
|
|
185
|
+
filterConfig,
|
|
186
|
+
paginationConfig,
|
|
187
|
+
isLoading,
|
|
188
|
+
isInitialLoading,
|
|
189
|
+
urlState,
|
|
190
|
+
]);
|
|
191
|
+
return (_jsx(DataTableContext.Provider, { value: value, children: children }));
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/components/data-table/provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type DataTableTableProps<TData extends {
|
|
3
|
+
id: string | number;
|
|
4
|
+
}> = {
|
|
5
|
+
containerClassName?: string;
|
|
6
|
+
tableClassName?: string;
|
|
7
|
+
emptyMessage?: string;
|
|
8
|
+
/** When true (default), sets table min-width based on visible column sizes. */
|
|
9
|
+
autoMinWidth?: boolean;
|
|
10
|
+
/** Override row styling (useful for zebra/first-row highlight variants). */
|
|
11
|
+
getRowClassName?: (row: {
|
|
12
|
+
index: number;
|
|
13
|
+
selected: boolean;
|
|
14
|
+
}) => string;
|
|
15
|
+
getRowHref?: (row: TData) => string;
|
|
16
|
+
onRowClick?: (row: TData, e: React.MouseEvent<HTMLTableRowElement, MouseEvent>) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare function DataTableTable<TData extends {
|
|
19
|
+
id: string | number;
|
|
20
|
+
}>({ containerClassName, tableClassName, emptyMessage, autoMinWidth, getRowClassName, getRowHref, onRowClick, }: DataTableTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,IAAI;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IAExE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,CACX,GAAG,EAAE,KAAK,EACV,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,mBAAmB,EAAE,UAAU,CAAC,KACjD,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,EACpE,kBAAkB,EAClB,cAAc,EACd,YAA4B,EAC5B,YAAmB,EACnB,eAAe,EACf,UAAU,EACV,UAAU,GACX,EAAE,mBAAmB,CAAC,KAAK,CAAC,2CAoR5B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { flexRender } from "@tanstack/react-table";
|
|
5
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "../ui/table";
|
|
6
|
+
import { cn } from "../../lib/utils";
|
|
7
|
+
import { DataTableColumnHeader } from "./column-header";
|
|
8
|
+
import { DATA_TABLE_SELECTION_COLUMN_ID } from "./columns/selection";
|
|
9
|
+
import { useDataTable } from "./provider";
|
|
10
|
+
export function DataTableTable({ containerClassName, tableClassName, emptyMessage = "No results.", autoMinWidth = true, getRowClassName, getRowHref, onRowClick, }) {
|
|
11
|
+
const { table, isLoading, isInitialLoading } = useDataTable();
|
|
12
|
+
const getColumnSize = React.useCallback((column) => {
|
|
13
|
+
if (typeof column.columnDef.size === "number")
|
|
14
|
+
return column.columnDef.size;
|
|
15
|
+
// Opinionated defaults for the current table system. Override per-column by
|
|
16
|
+
// setting `columnDef.size`.
|
|
17
|
+
switch (column.id) {
|
|
18
|
+
case DATA_TABLE_SELECTION_COLUMN_ID:
|
|
19
|
+
return 40;
|
|
20
|
+
case "action":
|
|
21
|
+
return 67;
|
|
22
|
+
case "id":
|
|
23
|
+
return 144;
|
|
24
|
+
case "title":
|
|
25
|
+
return 256;
|
|
26
|
+
case "createdAt":
|
|
27
|
+
return 200;
|
|
28
|
+
case "amount":
|
|
29
|
+
case "statusLabel":
|
|
30
|
+
case "paymentLabel":
|
|
31
|
+
return 160;
|
|
32
|
+
default:
|
|
33
|
+
return 160;
|
|
34
|
+
}
|
|
35
|
+
}, []);
|
|
36
|
+
const tableMinWidth = React.useMemo(() => {
|
|
37
|
+
if (!autoMinWidth)
|
|
38
|
+
return undefined;
|
|
39
|
+
const headerGroups = table.getHeaderGroups();
|
|
40
|
+
const leafGroup = headerGroups[headerGroups.length - 1];
|
|
41
|
+
if (!leafGroup)
|
|
42
|
+
return undefined;
|
|
43
|
+
const total = leafGroup.headers.reduce((sum, header) => {
|
|
44
|
+
if (header.isPlaceholder)
|
|
45
|
+
return sum;
|
|
46
|
+
return sum + getColumnSize(header.column);
|
|
47
|
+
}, 0);
|
|
48
|
+
return total > 0 ? total : undefined;
|
|
49
|
+
}, [autoMinWidth, getColumnSize, table]);
|
|
50
|
+
const visibleColumns = table.getVisibleLeafColumns();
|
|
51
|
+
const currentPageSize = table.getState().pagination?.pageSize;
|
|
52
|
+
const skeletonRowCount = typeof currentPageSize === "number" && currentPageSize > 0
|
|
53
|
+
? Math.min(currentPageSize, 20)
|
|
54
|
+
: 10;
|
|
55
|
+
const handleRowClick = (row, e) => {
|
|
56
|
+
if (onRowClick) {
|
|
57
|
+
onRowClick(row, e);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const href = getRowHref?.(row);
|
|
61
|
+
if (!href)
|
|
62
|
+
return;
|
|
63
|
+
const openInNewTab = e.metaKey || e.ctrlKey || e.button === 1;
|
|
64
|
+
if (openInNewTab) {
|
|
65
|
+
window.open(href, "_blank", "noopener");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
window.location.assign(href);
|
|
69
|
+
};
|
|
70
|
+
return (_jsx("div", { className: cn("w-full rounded-[8px] border border-[#e6e6e6] overflow-hidden transition-opacity duration-200", isLoading && "opacity-50", containerClassName), "aria-busy": isLoading || isInitialLoading, children: _jsxs(Table, { className: cn("table-fixed", tableClassName), style: tableMinWidth ? { minWidth: tableMinWidth } : undefined, children: [_jsx(TableHeader, { className: "[&_tr]:border-[#e6e6e6]", children: table.getHeaderGroups().map((headerGroup) => (_jsx(TableRow, { className: "bg-white hover:bg-transparent data-[state=selected]:bg-transparent", children: headerGroup.headers.map((header) => {
|
|
71
|
+
const meta = header.column.columnDef.meta;
|
|
72
|
+
const columnSize = getColumnSize(header.column);
|
|
73
|
+
const isCenterColumn = header.column.id === DATA_TABLE_SELECTION_COLUMN_ID ||
|
|
74
|
+
header.column.id === "action";
|
|
75
|
+
const headerDef = header.column.columnDef.header;
|
|
76
|
+
const canUseDefaultHeader = typeof headerDef === "string" &&
|
|
77
|
+
(header.column.getCanSort() || header.column.getCanHide());
|
|
78
|
+
const headerContent = header.isPlaceholder
|
|
79
|
+
? null
|
|
80
|
+
: canUseDefaultHeader
|
|
81
|
+
? (_jsx(DataTableColumnHeader, { column: header.column, title: headerDef }))
|
|
82
|
+
: flexRender(headerDef, header.getContext());
|
|
83
|
+
return (_jsx(TableHead, { className: cn("h-[48px] bg-white border-b border-r border-[#e6e6e6] p-3 align-middle text-[14px] leading-4 font-normal text-[#4d4d4d] last:border-r-0", isCenterColumn && "p-0", meta?.headerClassName), style: {
|
|
84
|
+
width: columnSize,
|
|
85
|
+
minWidth: columnSize,
|
|
86
|
+
maxWidth: columnSize,
|
|
87
|
+
}, children: isCenterColumn ? (_jsx("div", { className: "flex h-full w-full items-center justify-center", children: headerContent })) : (headerContent) }, header.id));
|
|
88
|
+
}) }, headerGroup.id))) }), _jsx(TableBody, { className: "[&_tr]:border-[#e6e6e6]", children: isInitialLoading ? (Array.from({ length: skeletonRowCount }).map((_, rowIndex) => (_jsx(TableRow, { className: "bg-white hover:bg-transparent", children: visibleColumns.map((column, columnIndex) => {
|
|
89
|
+
const meta = column.columnDef.meta;
|
|
90
|
+
const columnSize = getColumnSize(column);
|
|
91
|
+
const isCenterColumn = column.id === DATA_TABLE_SELECTION_COLUMN_ID ||
|
|
92
|
+
column.id === "action";
|
|
93
|
+
const skeletonWidthClass = columnIndex % 3 === 0
|
|
94
|
+
? "w-[72%]"
|
|
95
|
+
: columnIndex % 3 === 1
|
|
96
|
+
? "w-[58%]"
|
|
97
|
+
: "w-[66%]";
|
|
98
|
+
return (_jsx(TableCell, { className: cn("h-[56px] border-r border-[#e6e6e6] p-3 align-middle last:border-r-0", isCenterColumn && "p-0", meta?.cellClassName), style: {
|
|
99
|
+
width: columnSize,
|
|
100
|
+
minWidth: columnSize,
|
|
101
|
+
maxWidth: columnSize,
|
|
102
|
+
}, children: isCenterColumn ? (_jsx("div", { className: "flex h-full w-full items-center justify-center", children: _jsx("div", { className: "h-4 w-4 animate-pulse rounded-full bg-[#e6e6e6]" }) })) : (_jsx("div", { className: cn("h-4 animate-pulse rounded bg-[#f2f2f2]", skeletonWidthClass) })) }, `skeleton-cell-${rowIndex}-${column.id}`));
|
|
103
|
+
}) }, `skeleton-row-${rowIndex}`)))) : table.getRowModel().rows.length ? (table.getRowModel().rows.map((row) => {
|
|
104
|
+
const selected = row.getIsSelected();
|
|
105
|
+
const rowClassName = getRowClassName?.({ index: row.index, selected }) ??
|
|
106
|
+
cn("bg-white hover:!bg-[#fafafa] data-[state=selected]:!bg-[#fafafa]", (getRowHref || onRowClick) && "cursor-pointer");
|
|
107
|
+
return (_jsx(TableRow, { "data-state": selected && "selected", className: rowClassName, onClick: (e) => handleRowClick(row.original, e), onAuxClick: (e) => handleRowClick(row.original, e), children: row.getVisibleCells().map((cell) => {
|
|
108
|
+
const meta = cell.column.columnDef.meta;
|
|
109
|
+
const columnSize = getColumnSize(cell.column);
|
|
110
|
+
const isCenterColumn = cell.column.id === DATA_TABLE_SELECTION_COLUMN_ID ||
|
|
111
|
+
cell.column.id === "action";
|
|
112
|
+
return (_jsx(TableCell, { className: cn("h-[56px] border-r border-[#e6e6e6] p-3 align-middle last:border-r-0", isCenterColumn && "p-0", meta?.cellClassName), style: {
|
|
113
|
+
width: columnSize,
|
|
114
|
+
minWidth: columnSize,
|
|
115
|
+
maxWidth: columnSize,
|
|
116
|
+
}, children: isCenterColumn ? (_jsx("div", { className: "flex h-full w-full items-center justify-center", children: flexRender(cell.column.columnDef.cell, cell.getContext()) })) : (flexRender(cell.column.columnDef.cell, cell.getContext())) }, cell.id));
|
|
117
|
+
}) }, row.id));
|
|
118
|
+
})) : (_jsx(TableRow, { className: "bg-white", children: _jsx(TableCell, { colSpan: table.getAllLeafColumns().length, className: "h-24 text-center text-sm text-[#666666]", children: emptyMessage }) })) })] }) }));
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/components/data-table/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3
|
+
export type DataTableTabsProps = Omit<React.ComponentProps<typeof TabsPrimitive.Root>, "value" | "onValueChange"> & {
|
|
4
|
+
/**
|
|
5
|
+
* Override the URL-synced value (for controlled mode).
|
|
6
|
+
* If not provided, uses URL query param.
|
|
7
|
+
*/
|
|
8
|
+
value?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Override the URL-synced handler (for controlled mode).
|
|
11
|
+
* If not provided, updates URL query param.
|
|
12
|
+
*/
|
|
13
|
+
onValueChange?: (value: string) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare function DataTableTabs({ className, value: controlledValue, onValueChange: controlledOnChange, ...props }: DataTableTabsProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function DataTableTabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function DataTableTabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function DataTableTabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAKtD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,EAC/C,OAAO,GAAG,eAAe,CAC1B,GAAG;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,kBAAkB,EACjC,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAgBpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAWjD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAYpD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4
|
+
import { cn } from "../../lib/utils";
|
|
5
|
+
import { useDataTable } from "./provider";
|
|
6
|
+
export function DataTableTabs({ className, value: controlledValue, onValueChange: controlledOnChange, ...props }) {
|
|
7
|
+
const { urlState } = useDataTable();
|
|
8
|
+
// Use URL state by default, allow controlled override
|
|
9
|
+
const value = controlledValue ?? urlState.activeTab ?? undefined;
|
|
10
|
+
const onValueChange = controlledOnChange ?? urlState.setActiveTab;
|
|
11
|
+
return (_jsx(TabsPrimitive.Root, { "data-slot": "data-table-tabs", className: cn("flex min-w-0 w-full flex-col", className), value: value, onValueChange: onValueChange, ...props }));
|
|
12
|
+
}
|
|
13
|
+
export function DataTableTabsList({ className, ...props }) {
|
|
14
|
+
return (_jsx(TabsPrimitive.List, { "data-slot": "data-table-tabs-list", className: cn("flex w-full min-w-0 items-center overflow-x-auto overflow-y-hidden whitespace-nowrap [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden", className), ...props }));
|
|
15
|
+
}
|
|
16
|
+
export function DataTableTabsTrigger({ className, ...props }) {
|
|
17
|
+
return (_jsx(TabsPrimitive.Trigger, { "data-slot": "data-table-tabs-trigger", className: cn("relative -mb-px flex shrink-0 items-center justify-center border-b-[3px] border-transparent px-4 py-4 whitespace-nowrap text-[14px] leading-4 font-medium text-[#666666] transition-colors", "data-[state=active]:border-primary data-[state=active]:font-bold data-[state=active]:text-primary", className), ...props }));
|
|
18
|
+
}
|
|
19
|
+
export function DataTableTabsContent({ className, ...props }) {
|
|
20
|
+
return (_jsx(TabsPrimitive.Content, { "data-slot": "data-table-tabs-content", className: cn("outline-none", className), ...props }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/data-table/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB1C,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,kBAAkB,EACjC,GAAG,KAAK,EACW;IACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAO,CAAC;IAEzC,sDAAsD;IACtD,MAAM,KAAK,GAAG,eAAe,IAAI,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC;IACjE,MAAM,aAAa,GAAG,kBAAkB,IAAI,QAAQ,CAAC,YAAY,CAAC;IAElE,OAAO,CACL,KAAC,aAAa,CAAC,IAAI,iBACP,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,EACxD,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,KACxB,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACwC;IAChD,OAAO,CACL,KAAC,aAAa,CAAC,IAAI,iBACP,sBAAsB,EAChC,SAAS,EAAE,EAAE,CACX,qKAAqK,EACrK,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,SAAS,EACT,GAAG,KAAK,EAC2C;IACnD,OAAO,CACL,KAAC,aAAa,CAAC,OAAO,iBACV,yBAAyB,EACnC,SAAS,EAAE,EAAE,CACX,4LAA4L,EAC5L,mGAAmG,EACnG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,SAAS,EACT,GAAG,KAAK,EAC2C;IACnD,OAAO,CACL,KAAC,aAAa,CAAC,OAAO,iBACV,yBAAyB,EACnC,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,KACpC,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for URL-based state persistence.
|
|
4
|
+
* All state (tabs, sorting, visibility, search) syncs to browser URL.
|
|
5
|
+
*/
|
|
6
|
+
export type UrlStateConfig = {
|
|
7
|
+
/**
|
|
8
|
+
* Query param name for the active tab.
|
|
9
|
+
* @example "tab" → ?tab=personal
|
|
10
|
+
*/
|
|
11
|
+
tabParam?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Query param name for sort column.
|
|
14
|
+
* @example "sort" → ?sort=amount
|
|
15
|
+
*/
|
|
16
|
+
sortParam?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Query param name for sort direction.
|
|
19
|
+
* @example "order" → ?order=desc
|
|
20
|
+
*/
|
|
21
|
+
sortOrderParam?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Query param name for hidden columns (comma-separated).
|
|
24
|
+
* @example "hide" → ?hide=amount,status
|
|
25
|
+
*/
|
|
26
|
+
hiddenColumnsParam?: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const defaultUrlStateConfig: Required<UrlStateConfig>;
|
|
29
|
+
export type UrlStateContextValue = {
|
|
30
|
+
config: Required<UrlStateConfig>;
|
|
31
|
+
activeTab: string | null;
|
|
32
|
+
setActiveTab: (tab: string | null) => void;
|
|
33
|
+
defaultTab: string | null;
|
|
34
|
+
sortColumn: string | null;
|
|
35
|
+
sortOrder: "asc" | "desc" | null;
|
|
36
|
+
setSorting: (column: string | null, order?: "asc" | "desc" | null) => void;
|
|
37
|
+
hiddenColumns: string[];
|
|
38
|
+
setHiddenColumns: (columns: string[]) => void;
|
|
39
|
+
toggleColumnVisibility: (columnId: string, visible: boolean) => void;
|
|
40
|
+
searchValue: string | null;
|
|
41
|
+
searchParamKey: string | null;
|
|
42
|
+
setSearchValue: (value: string | null) => void;
|
|
43
|
+
resetAllFilters: () => void;
|
|
44
|
+
hasActiveFilters: boolean;
|
|
45
|
+
};
|
|
46
|
+
export declare function useUrlState(): UrlStateContextValue;
|
|
47
|
+
export type UrlStateProviderProps = {
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
config?: UrlStateConfig;
|
|
50
|
+
defaultTab?: string;
|
|
51
|
+
searchParamKey?: string | null;
|
|
52
|
+
};
|
|
53
|
+
export declare function UrlStateProvider({ children, config: userConfig, defaultTab, searchParamKey, }: UrlStateProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
//# sourceMappingURL=url-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-state.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/url-state.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,cAAc,CAK1D,CAAC;AAMF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAGjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAG3E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAG/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAIF,wBAAgB,WAAW,yBAM1B;AAMD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,UAAU,EACV,cAAqB,GACtB,EAAE,qBAAqB,2CAwJvB"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { useQueryState } from "nuqs";
|
|
5
|
+
export const defaultUrlStateConfig = {
|
|
6
|
+
tabParam: "tab",
|
|
7
|
+
sortParam: "sort",
|
|
8
|
+
sortOrderParam: "order",
|
|
9
|
+
hiddenColumnsParam: "hide",
|
|
10
|
+
};
|
|
11
|
+
const UrlStateContext = React.createContext(null);
|
|
12
|
+
export function useUrlState() {
|
|
13
|
+
const value = React.useContext(UrlStateContext);
|
|
14
|
+
if (!value) {
|
|
15
|
+
throw new Error("useUrlState must be used within <UrlStateProvider />");
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
export function UrlStateProvider({ children, config: userConfig, defaultTab, searchParamKey = null, }) {
|
|
20
|
+
const config = React.useMemo(() => ({ ...defaultUrlStateConfig, ...userConfig }), [userConfig]);
|
|
21
|
+
// Tab state
|
|
22
|
+
const [activeTab, setActiveTab] = useQueryState(config.tabParam, {
|
|
23
|
+
defaultValue: defaultTab ?? "",
|
|
24
|
+
shallow: true,
|
|
25
|
+
});
|
|
26
|
+
// Sort state
|
|
27
|
+
const [sortColumn, setSortColumn] = useQueryState(config.sortParam, {
|
|
28
|
+
defaultValue: "",
|
|
29
|
+
shallow: true,
|
|
30
|
+
});
|
|
31
|
+
const [sortOrder, setSortOrder] = useQueryState(config.sortOrderParam, {
|
|
32
|
+
defaultValue: "",
|
|
33
|
+
shallow: true,
|
|
34
|
+
});
|
|
35
|
+
// Hidden columns state (comma-separated string)
|
|
36
|
+
const [hiddenColumnsStr, setHiddenColumnsStr] = useQueryState(config.hiddenColumnsParam, {
|
|
37
|
+
defaultValue: "",
|
|
38
|
+
shallow: true,
|
|
39
|
+
});
|
|
40
|
+
// Search state
|
|
41
|
+
const [searchValue, setSearchValueInternal] = useQueryState(searchParamKey ?? "search", {
|
|
42
|
+
defaultValue: "",
|
|
43
|
+
shallow: true,
|
|
44
|
+
});
|
|
45
|
+
// Parse hidden columns
|
|
46
|
+
const hiddenColumns = React.useMemo(() => {
|
|
47
|
+
if (!hiddenColumnsStr)
|
|
48
|
+
return [];
|
|
49
|
+
return hiddenColumnsStr.split(",").filter(Boolean);
|
|
50
|
+
}, [hiddenColumnsStr]);
|
|
51
|
+
// Setters
|
|
52
|
+
const setHiddenColumns = React.useCallback((columns) => {
|
|
53
|
+
setHiddenColumnsStr(columns.length > 0 ? columns.join(",") : null);
|
|
54
|
+
}, [setHiddenColumnsStr]);
|
|
55
|
+
const toggleColumnVisibility = React.useCallback((columnId, visible) => {
|
|
56
|
+
setHiddenColumns(visible
|
|
57
|
+
? hiddenColumns.filter((id) => id !== columnId)
|
|
58
|
+
: [...hiddenColumns, columnId]);
|
|
59
|
+
}, [hiddenColumns, setHiddenColumns]);
|
|
60
|
+
const setSorting = React.useCallback((column, order) => {
|
|
61
|
+
setSortColumn(column);
|
|
62
|
+
setSortOrder(order ?? null);
|
|
63
|
+
}, [setSortColumn, setSortOrder]);
|
|
64
|
+
const setSearchValue = React.useCallback((value) => {
|
|
65
|
+
if (searchParamKey) {
|
|
66
|
+
setSearchValueInternal(value);
|
|
67
|
+
}
|
|
68
|
+
}, [searchParamKey, setSearchValueInternal]);
|
|
69
|
+
// Check if any filter is active
|
|
70
|
+
const hasActiveFilters = React.useMemo(() => {
|
|
71
|
+
const hasTab = activeTab && activeTab !== defaultTab && activeTab !== "";
|
|
72
|
+
const hasSort = Boolean(sortColumn);
|
|
73
|
+
const hasHidden = hiddenColumns.length > 0;
|
|
74
|
+
const hasSearch = Boolean(searchValue);
|
|
75
|
+
return hasTab || hasSort || hasHidden || hasSearch;
|
|
76
|
+
}, [activeTab, defaultTab, sortColumn, hiddenColumns, searchValue]);
|
|
77
|
+
// Reset all filters
|
|
78
|
+
const resetAllFilters = React.useCallback(() => {
|
|
79
|
+
setActiveTab(defaultTab ?? null);
|
|
80
|
+
setSortColumn(null);
|
|
81
|
+
setSortOrder(null);
|
|
82
|
+
setHiddenColumnsStr(null);
|
|
83
|
+
if (searchParamKey) {
|
|
84
|
+
setSearchValueInternal(null);
|
|
85
|
+
}
|
|
86
|
+
}, [
|
|
87
|
+
setActiveTab,
|
|
88
|
+
defaultTab,
|
|
89
|
+
setSortColumn,
|
|
90
|
+
setSortOrder,
|
|
91
|
+
setHiddenColumnsStr,
|
|
92
|
+
searchParamKey,
|
|
93
|
+
setSearchValueInternal,
|
|
94
|
+
]);
|
|
95
|
+
const value = React.useMemo(() => ({
|
|
96
|
+
config,
|
|
97
|
+
activeTab: activeTab || null,
|
|
98
|
+
setActiveTab: (tab) => setActiveTab(tab),
|
|
99
|
+
defaultTab: defaultTab ?? null,
|
|
100
|
+
sortColumn: sortColumn || null,
|
|
101
|
+
sortOrder: sortOrder || null,
|
|
102
|
+
setSorting,
|
|
103
|
+
hiddenColumns,
|
|
104
|
+
setHiddenColumns,
|
|
105
|
+
toggleColumnVisibility,
|
|
106
|
+
searchValue: searchValue || null,
|
|
107
|
+
searchParamKey,
|
|
108
|
+
setSearchValue,
|
|
109
|
+
resetAllFilters,
|
|
110
|
+
hasActiveFilters,
|
|
111
|
+
}), [
|
|
112
|
+
config,
|
|
113
|
+
activeTab,
|
|
114
|
+
setActiveTab,
|
|
115
|
+
defaultTab,
|
|
116
|
+
sortColumn,
|
|
117
|
+
sortOrder,
|
|
118
|
+
setSorting,
|
|
119
|
+
hiddenColumns,
|
|
120
|
+
setHiddenColumns,
|
|
121
|
+
toggleColumnVisibility,
|
|
122
|
+
searchValue,
|
|
123
|
+
searchParamKey,
|
|
124
|
+
setSearchValue,
|
|
125
|
+
resetAllFilters,
|
|
126
|
+
hasActiveFilters,
|
|
127
|
+
]);
|
|
128
|
+
return (_jsx(UrlStateContext.Provider, { value: value, children: children }));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=url-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-state.js","sourceRoot":"","sources":["../../../src/components/data-table/url-state.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/page-header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|