@ackplus/react-tanstack-data-table 1.0.19-beta-0.12 → 1.0.19-beta-0.14
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/package.json +1 -1
- package/src/lib/components/headers/draggable-header.d.ts +2 -1
- package/src/lib/components/headers/draggable-header.js +7 -5
- package/src/lib/components/headers/table-header.js +1 -1
- package/src/lib/components/table/data-table.js +632 -104
- package/src/lib/components/toolbar/column-filter-control.js +0 -3
- package/src/lib/components/toolbar/data-table-toolbar.js +1 -1
- package/src/lib/components/toolbar/table-export-control.js +0 -1
- package/src/lib/examples/server-side-fetching-example.js +7 -8
- package/src/lib/features/column-filter.feature.js +0 -1
- package/src/lib/hooks/use-data-table-api.d.ts +2 -14
- package/src/lib/hooks/use-data-table-api.js +88 -100
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ interface DraggableHeaderProps<T> {
|
|
|
7
7
|
onColumnReorder?: (draggedColumnId: string, targetColumnId: string) => void;
|
|
8
8
|
slots?: Record<string, any>;
|
|
9
9
|
slotProps?: Record<string, any>;
|
|
10
|
+
alignment?: 'left' | 'center' | 'right';
|
|
10
11
|
}
|
|
11
|
-
export declare function DraggableHeader<T>({ header, enableSorting, draggable, onColumnReorder, slots, slotProps, }: DraggableHeaderProps<T>): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function DraggableHeader<T>({ header, enableSorting, draggable, onColumnReorder, slots, slotProps, alignment, }: DraggableHeaderProps<T>): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -7,7 +7,7 @@ const material_1 = require("@mui/material");
|
|
|
7
7
|
const react_table_1 = require("@tanstack/react-table");
|
|
8
8
|
const react_1 = require("react");
|
|
9
9
|
const slot_helpers_1 = require("../../utils/slot-helpers");
|
|
10
|
-
function DraggableHeader({ header, enableSorting = true, draggable = false, onColumnReorder, slots, slotProps, }) {
|
|
10
|
+
function DraggableHeader({ header, enableSorting = true, draggable = false, onColumnReorder, slots, slotProps, alignment, }) {
|
|
11
11
|
const [isDragging, setIsDragging] = (0, react_1.useState)(false);
|
|
12
12
|
const [dragOver, setDragOver] = (0, react_1.useState)(false);
|
|
13
13
|
const autoScrollIntervalRef = (0, react_1.useRef)(null);
|
|
@@ -18,6 +18,9 @@ function DraggableHeader({ header, enableSorting = true, draggable = false, onCo
|
|
|
18
18
|
const AUTO_SCROLL_THRESHOLD = 50;
|
|
19
19
|
const AUTO_SCROLL_SPEED = 10;
|
|
20
20
|
const AUTO_SCROLL_INTERVAL = 16;
|
|
21
|
+
const justifyContent = (0, react_1.useMemo)(() => {
|
|
22
|
+
return alignment === 'left' ? 'flex-start' : alignment === 'right' ? 'flex-end' : 'center';
|
|
23
|
+
}, [alignment]);
|
|
21
24
|
const findScrollableContainer = (0, react_1.useCallback)((element) => {
|
|
22
25
|
let searchElement = element;
|
|
23
26
|
if (!searchElement) {
|
|
@@ -191,6 +194,7 @@ function DraggableHeader({ header, enableSorting = true, draggable = false, onCo
|
|
|
191
194
|
return ((0, jsx_runtime_1.jsx)(material_1.Box, { ref: headerElementRef, sx: {
|
|
192
195
|
display: 'flex',
|
|
193
196
|
alignItems: 'center',
|
|
197
|
+
justifyContent: justifyContent,
|
|
194
198
|
gap: 1,
|
|
195
199
|
cursor: getCursor(),
|
|
196
200
|
userSelect: 'none',
|
|
@@ -203,10 +207,8 @@ function DraggableHeader({ header, enableSorting = true, draggable = false, onCo
|
|
|
203
207
|
'&:active': {
|
|
204
208
|
cursor: draggable ? 'grabbing' : 'pointer',
|
|
205
209
|
},
|
|
206
|
-
}, draggable: draggable, onDragStart: handleDragStart, onDrag: handleDrag, onDragEnd: handleDragEnd, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: enableSorting ? handleSort : undefined, children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
|
|
207
|
-
|
|
208
|
-
display: 'flex',
|
|
209
|
-
alignItems: 'center',
|
|
210
|
+
}, draggable: draggable, onDragStart: handleDragStart, onDrag: handleDrag, onDragEnd: handleDragEnd, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: enableSorting ? handleSort : undefined, children: (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "span", sx: {
|
|
211
|
+
display: 'inline-flex',
|
|
210
212
|
gap: 1,
|
|
211
213
|
}, children: [(0, react_table_1.flexRender)(header.column.columnDef.header, header.getContext()), getSortIcon()] }) }));
|
|
212
214
|
}
|
|
@@ -28,7 +28,7 @@ function TableHeader({ draggable = false, enableColumnResizing = false, enableSt
|
|
|
28
28
|
pinnedRightPosition,
|
|
29
29
|
zIndex: isPinned ? 10 : 1,
|
|
30
30
|
disableStickyHeader: enableStickyHeader,
|
|
31
|
-
})) }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.headerCell, { children: [(0, jsx_runtime_1.jsx)(draggable_header_1.DraggableHeader, { header: header, enableSorting: enableSorting, draggable: !!(draggable && !isPinned), onColumnReorder: onColumnReorder, slots: slots, slotProps: slotProps }), enableColumnResizing && header.column.getCanResize() ? ((0, jsx_runtime_1.jsx)(material_1.Box, { onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), sx: {
|
|
31
|
+
})) }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.headerCell, { children: [(0, jsx_runtime_1.jsx)(draggable_header_1.DraggableHeader, { header: header, enableSorting: enableSorting, draggable: !!(draggable && !isPinned), onColumnReorder: onColumnReorder, slots: slots, slotProps: slotProps, alignment: alignment }), enableColumnResizing && header.column.getCanResize() ? ((0, jsx_runtime_1.jsx)(material_1.Box, { onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), sx: {
|
|
32
32
|
position: 'absolute',
|
|
33
33
|
right: 0,
|
|
34
34
|
top: '25%',
|