@medusajs/ui 4.0.8-snapshot-20250318091043 → 4.0.8-snapshot-20250320141318
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/cjs/blocks/data-table/components/data-table-select-cell.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-select-cell.js +6 -2
- package/dist/cjs/blocks/data-table/components/data-table-select-cell.js.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.js +1 -3
- package/dist/cjs/blocks/data-table/use-data-table.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-select-cell.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-select-cell.js +6 -2
- package/dist/esm/blocks/data-table/components/data-table-select-cell.js.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.js +1 -3
- package/dist/esm/blocks/data-table/use-data-table.js.map +1 -1
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-select-cell.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"data-table-select-cell.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,wBAAwB,CAAC,KAAK;IACtC,GAAG,EAAE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,QAAA,MAAM,mBAAmB;mBAChB,yBAAyB,KAAK,CAAC;;CAcvC,CAAA;AAGD,UAAU,0BAA0B,CAAC,KAAK;IACxC,GAAG,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC5C;AAED,QAAA,MAAM,qBAAqB,iBAClB,2BAA2B,KAAK,CAAC,sBAqBzC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAA;AACrD,YAAY,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAA"}
|
@@ -8,7 +8,8 @@ const React = tslib_1.__importStar(require("react"));
|
|
8
8
|
const DataTableSelectCell = (props) => {
|
9
9
|
const checked = props.ctx.row.getIsSelected();
|
10
10
|
const onChange = props.ctx.row.getToggleSelectedHandler();
|
11
|
-
|
11
|
+
const disabled = !props.ctx.row.getCanSelect();
|
12
|
+
return (React.createElement(checkbox_1.Checkbox, { onClick: (e) => e.stopPropagation(), checked: checked, onCheckedChange: onChange, disabled: disabled }));
|
12
13
|
};
|
13
14
|
exports.DataTableSelectCell = DataTableSelectCell;
|
14
15
|
DataTableSelectCell.displayName = "DataTable.SelectCell";
|
@@ -19,7 +20,10 @@ const DataTableSelectHeader = (props) => {
|
|
19
20
|
const onChange = (checked) => {
|
20
21
|
props.ctx.table.toggleAllPageRowsSelected(!!checked);
|
21
22
|
};
|
22
|
-
|
23
|
+
const disabled = !props.ctx.table
|
24
|
+
.getRowModel()
|
25
|
+
.rows.some((row) => row.getCanSelect());
|
26
|
+
return (React.createElement(checkbox_1.Checkbox, { onClick: (e) => e.stopPropagation(), checked: checked, onCheckedChange: onChange, disabled: disabled }));
|
23
27
|
};
|
24
28
|
exports.DataTableSelectHeader = DataTableSelectHeader;
|
25
29
|
//# sourceMappingURL=data-table-select-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-select-cell.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;
|
1
|
+
{"version":3,"file":"data-table-select-cell.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAMZ,oDAAsE;AACtE,qDAA8B;AAM9B,MAAM,mBAAmB,GAAG,CAC1B,KAAsC,EACtC,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;IAE9C,OAAO,CACL,oBAAC,mBAAQ,IACP,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC,CAAA;AA+BQ,kDAAmB;AA9B5B,mBAAmB,CAAC,WAAW,GAAG,sBAAsB,CAAA;AAMxD,MAAM,qBAAqB,GAAG,CAC5B,KAAwC,EACxC,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE;QACzD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAA;IAE9C,MAAM,QAAQ,GAAG,CAAC,OAA6B,EAAE,EAAE;QACjD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;SAC9B,WAAW,EAAE;SACb,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;IAEzC,OAAO,CACL,oBAAC,mBAAQ,IACP,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC,CAAA;AAE6B,sDAAqB","sourcesContent":["\"use client\"\n\nimport type {\n DataTableCellContext,\n DataTableHeaderContext,\n} from \"@/blocks/data-table/types\"\nimport { Checkbox, CheckboxCheckedState } from \"@/components/checkbox\"\nimport * as React from \"react\"\n\ninterface DataTableSelectCellProps<TData> {\n ctx: DataTableCellContext<TData, unknown>\n}\n\nconst DataTableSelectCell = <TData,>(\n props: DataTableSelectCellProps<TData>\n) => {\n const checked = props.ctx.row.getIsSelected()\n const onChange = props.ctx.row.getToggleSelectedHandler()\n const disabled = !props.ctx.row.getCanSelect()\n\n return (\n <Checkbox\n onClick={(e) => e.stopPropagation()}\n checked={checked}\n onCheckedChange={onChange}\n disabled={disabled}\n />\n )\n}\nDataTableSelectCell.displayName = \"DataTable.SelectCell\"\n\ninterface DataTableSelectHeaderProps<TData> {\n ctx: DataTableHeaderContext<TData, unknown>\n}\n\nconst DataTableSelectHeader = <TData,>(\n props: DataTableSelectHeaderProps<TData>\n) => {\n const checked = props.ctx.table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : props.ctx.table.getIsAllPageRowsSelected()\n\n const onChange = (checked: CheckboxCheckedState) => {\n props.ctx.table.toggleAllPageRowsSelected(!!checked)\n }\n const disabled = !props.ctx.table\n .getRowModel()\n .rows.some((row) => row.getCanSelect())\n\n return (\n <Checkbox\n onClick={(e) => e.stopPropagation()}\n checked={checked}\n onCheckedChange={onChange}\n disabled={disabled}\n />\n )\n}\n\nexport { DataTableSelectCell, DataTableSelectHeader }\nexport type { DataTableSelectCellProps, DataTableSelectHeaderProps }\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EAEjB,aAAa,EACd,MAAM,uBAAuB,
|
1
|
+
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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"}
|
@@ -10,7 +10,7 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
10
10
|
const { state: sortingState, onSortingChange } = sorting !== null && sorting !== void 0 ? sorting : {};
|
11
11
|
const { state: filteringState, onFilteringChange } = filtering !== null && filtering !== void 0 ? filtering : {};
|
12
12
|
const { state: paginationState, onPaginationChange } = pagination !== null && pagination !== void 0 ? pagination : {};
|
13
|
-
const { state: rowSelectionState, onRowSelectionChange, enableRowSelection } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
|
13
|
+
const { state: rowSelectionState, onRowSelectionChange, enableRowSelection, } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
|
14
14
|
const autoResetPageIndexHandler = React.useCallback(() => {
|
15
15
|
return autoResetPageIndex
|
16
16
|
? () => paginationState &&
|
@@ -29,8 +29,6 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
29
29
|
const rowSelectionStateHandler = React.useCallback(() => {
|
30
30
|
return onRowSelectionChange
|
31
31
|
? (updaterOrValue) => {
|
32
|
-
var _a;
|
33
|
-
(_a = autoResetPageIndexHandler()) === null || _a === void 0 ? void 0 : _a();
|
34
32
|
onRowSelectionChangeTransformer(onRowSelectionChange, rowSelectionState)(updaterOrValue);
|
35
33
|
}
|
36
34
|
: undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\";\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[];\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?: boolean | ((row: DataTableRow<TData>) => boolean) | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const { state: rowSelectionState, onRowSelectionChange, enableRowSelection } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n autoResetPageIndexHandler()?.()\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable };\nexport type { DataTableOptions, UseDataTableReturn };\n\n"]}
|
1
|
+
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\"\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[]\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?:\n | boolean\n | ((row: DataTableRow<TData>) => boolean)\n | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const {\n state: rowSelectionState,\n onRowSelectionChange,\n enableRowSelection,\n } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable }\nexport type { DataTableOptions, UseDataTableReturn }\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-select-cell.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"data-table-select-cell.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,wBAAwB,CAAC,KAAK;IACtC,GAAG,EAAE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,QAAA,MAAM,mBAAmB;mBAChB,yBAAyB,KAAK,CAAC;;CAcvC,CAAA;AAGD,UAAU,0BAA0B,CAAC,KAAK;IACxC,GAAG,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC5C;AAED,QAAA,MAAM,qBAAqB,iBAClB,2BAA2B,KAAK,CAAC,sBAqBzC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAA;AACrD,YAAY,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAA"}
|
@@ -4,7 +4,8 @@ import * as React from "react";
|
|
4
4
|
const DataTableSelectCell = (props) => {
|
5
5
|
const checked = props.ctx.row.getIsSelected();
|
6
6
|
const onChange = props.ctx.row.getToggleSelectedHandler();
|
7
|
-
|
7
|
+
const disabled = !props.ctx.row.getCanSelect();
|
8
|
+
return (React.createElement(Checkbox, { onClick: (e) => e.stopPropagation(), checked: checked, onCheckedChange: onChange, disabled: disabled }));
|
8
9
|
};
|
9
10
|
DataTableSelectCell.displayName = "DataTable.SelectCell";
|
10
11
|
const DataTableSelectHeader = (props) => {
|
@@ -14,7 +15,10 @@ const DataTableSelectHeader = (props) => {
|
|
14
15
|
const onChange = (checked) => {
|
15
16
|
props.ctx.table.toggleAllPageRowsSelected(!!checked);
|
16
17
|
};
|
17
|
-
|
18
|
+
const disabled = !props.ctx.table
|
19
|
+
.getRowModel()
|
20
|
+
.rows.some((row) => row.getCanSelect());
|
21
|
+
return (React.createElement(Checkbox, { onClick: (e) => e.stopPropagation(), checked: checked, onCheckedChange: onChange, disabled: disabled }));
|
18
22
|
};
|
19
23
|
export { DataTableSelectCell, DataTableSelectHeader };
|
20
24
|
//# sourceMappingURL=data-table-select-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-select-cell.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;
|
1
|
+
{"version":3,"file":"data-table-select-cell.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-select-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAMZ,OAAO,EAAE,QAAQ,EAAwB,MAAM,uBAAuB,CAAA;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,mBAAmB,GAAG,CAC1B,KAAsC,EACtC,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;IAE9C,OAAO,CACL,oBAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC,CAAA;AACD,mBAAmB,CAAC,WAAW,GAAG,sBAAsB,CAAA;AAMxD,MAAM,qBAAqB,GAAG,CAC5B,KAAwC,EACxC,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE;QACzD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAA;IAE9C,MAAM,QAAQ,GAAG,CAAC,OAA6B,EAAE,EAAE;QACjD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;SAC9B,WAAW,EAAE;SACb,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;IAEzC,OAAO,CACL,oBAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport type {\n DataTableCellContext,\n DataTableHeaderContext,\n} from \"@/blocks/data-table/types\"\nimport { Checkbox, CheckboxCheckedState } from \"@/components/checkbox\"\nimport * as React from \"react\"\n\ninterface DataTableSelectCellProps<TData> {\n ctx: DataTableCellContext<TData, unknown>\n}\n\nconst DataTableSelectCell = <TData,>(\n props: DataTableSelectCellProps<TData>\n) => {\n const checked = props.ctx.row.getIsSelected()\n const onChange = props.ctx.row.getToggleSelectedHandler()\n const disabled = !props.ctx.row.getCanSelect()\n\n return (\n <Checkbox\n onClick={(e) => e.stopPropagation()}\n checked={checked}\n onCheckedChange={onChange}\n disabled={disabled}\n />\n )\n}\nDataTableSelectCell.displayName = \"DataTable.SelectCell\"\n\ninterface DataTableSelectHeaderProps<TData> {\n ctx: DataTableHeaderContext<TData, unknown>\n}\n\nconst DataTableSelectHeader = <TData,>(\n props: DataTableSelectHeaderProps<TData>\n) => {\n const checked = props.ctx.table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : props.ctx.table.getIsAllPageRowsSelected()\n\n const onChange = (checked: CheckboxCheckedState) => {\n props.ctx.table.toggleAllPageRowsSelected(!!checked)\n }\n const disabled = !props.ctx.table\n .getRowModel()\n .rows.some((row) => row.getCanSelect())\n\n return (\n <Checkbox\n onClick={(e) => e.stopPropagation()}\n checked={checked}\n onCheckedChange={onChange}\n disabled={disabled}\n />\n )\n}\n\nexport { DataTableSelectCell, DataTableSelectHeader }\nexport type { DataTableSelectCellProps, DataTableSelectHeaderProps }\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EAEjB,aAAa,EACd,MAAM,uBAAuB,
|
1
|
+
{"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
6
6
|
const { state: sortingState, onSortingChange } = sorting !== null && sorting !== void 0 ? sorting : {};
|
7
7
|
const { state: filteringState, onFilteringChange } = filtering !== null && filtering !== void 0 ? filtering : {};
|
8
8
|
const { state: paginationState, onPaginationChange } = pagination !== null && pagination !== void 0 ? pagination : {};
|
9
|
-
const { state: rowSelectionState, onRowSelectionChange, enableRowSelection } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
|
9
|
+
const { state: rowSelectionState, onRowSelectionChange, enableRowSelection, } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
|
10
10
|
const autoResetPageIndexHandler = React.useCallback(() => {
|
11
11
|
return autoResetPageIndex
|
12
12
|
? () => paginationState &&
|
@@ -25,8 +25,6 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
|
|
25
25
|
const rowSelectionStateHandler = React.useCallback(() => {
|
26
26
|
return onRowSelectionChange
|
27
27
|
? (updaterOrValue) => {
|
28
|
-
var _a;
|
29
|
-
(_a = autoResetPageIndexHandler()) === null || _a === void 0 ? void 0 : _a();
|
30
28
|
onRowSelectionChangeTransformer(onRowSelectionChange, rowSelectionState)(updaterOrValue);
|
31
29
|
}
|
32
30
|
: undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport * as React from \"react\";\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\";\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[];\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?: boolean | ((row: DataTableRow<TData>) => boolean) | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const { state: rowSelectionState, onRowSelectionChange, enableRowSelection } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n autoResetPageIndexHandler()?.()\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable };\nexport type { DataTableOptions, UseDataTableReturn };\n\n"]}
|
1
|
+
{"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\"\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[]\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?:\n | boolean\n | ((row: DataTableRow<TData>) => boolean)\n | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const {\n state: rowSelectionState,\n onRowSelectionChange,\n enableRowSelection,\n } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable }\nexport type { DataTableOptions, UseDataTableReturn }\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@medusajs/ui",
|
3
|
-
"version": "4.0.8-snapshot-
|
3
|
+
"version": "4.0.8-snapshot-20250320141318",
|
4
4
|
"author": "Kasper Kristensen <kasper@medusajs.com>",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -43,7 +43,7 @@
|
|
43
43
|
},
|
44
44
|
"devDependencies": {
|
45
45
|
"@faker-js/faker": "^9.2.0",
|
46
|
-
"@medusajs/ui-preset": "2.6.2-snapshot-
|
46
|
+
"@medusajs/ui-preset": "2.6.2-snapshot-20250320141318",
|
47
47
|
"@storybook/addon-essentials": "^8.3.5",
|
48
48
|
"@storybook/addon-interactions": "^8.3.5",
|
49
49
|
"@storybook/addon-links": "^8.3.5",
|
@@ -81,7 +81,7 @@
|
|
81
81
|
"vitest": "^3.0.5"
|
82
82
|
},
|
83
83
|
"dependencies": {
|
84
|
-
"@medusajs/icons": "2.6.2-snapshot-
|
84
|
+
"@medusajs/icons": "2.6.2-snapshot-20250320141318",
|
85
85
|
"@tanstack/react-table": "8.20.5",
|
86
86
|
"clsx": "^1.2.1",
|
87
87
|
"copy-to-clipboard": "^3.3.3",
|