@multiplatform.one/table 7.10.0 → 7.11.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 +60 -0
- package/dist/cjs/components/DataTable/DataTableCardControls.cjs +90 -54
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js +93 -56
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableRoot.cjs +51 -8
- package/dist/cjs/components/DataTable/DataTableRoot.native.js +53 -9
- package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilterButton/index.cjs +14 -0
- package/dist/cjs/components/DataTableFilterButton/index.native.js +15 -0
- package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableToolbar/index.cjs +178 -101
- package/dist/cjs/components/DataTableToolbar/index.native.js +187 -109
- package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/cjs/hooks/useDataTable.cjs +32 -1
- package/dist/cjs/hooks/useDataTable.native.js +37 -1
- package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableCardControls.mjs +89 -54
- package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableCardControls.native.js +92 -56
- package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs +53 -10
- package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.native.js +55 -11
- package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.mjs +14 -1
- package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.native.js +15 -1
- package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.mjs +180 -104
- package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.native.js +189 -112
- package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/esm/hooks/useDataTable.mjs +32 -1
- package/dist/esm/hooks/useDataTable.mjs.map +1 -1
- package/dist/esm/hooks/useDataTable.native.js +37 -1
- package/dist/esm/hooks/useDataTable.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs +89 -54
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js +93 -56
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs +53 -10
- package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.native.js +53 -9
- package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.mjs +14 -1
- package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.native.js +15 -0
- package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.mjs +180 -104
- package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.native.js +187 -109
- package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/jsx/hooks/useDataTable.mjs +32 -1
- package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
- package/dist/jsx/hooks/useDataTable.native.js +37 -1
- package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
- package/package.json +14 -14
- package/src/components/DataTable/DataTable.stories.tsx +59 -0
- package/src/components/DataTable/DataTableCardControls.stories.tsx +61 -2
- package/src/components/DataTable/DataTableCardControls.tsx +92 -66
- package/src/components/DataTable/DataTableRoot.tsx +82 -14
- package/src/components/DataTable/cardLayout.spec.tsx +4 -3
- package/src/components/DataTable/cardToolbar.spec.tsx +238 -0
- package/src/components/DataTable/chromeInterplay.spec.tsx +7 -5
- package/src/components/DataTable/columnWidthLayout.spec.tsx +189 -0
- package/src/components/DataTable/dataTableCardControls.spec.tsx +3 -2
- package/src/components/DataTable/footerLayout.spec.tsx +250 -0
- package/src/components/DataTable/pinningGeometry.spec.tsx +66 -1
- package/src/components/DataTableExport/DataTableExport.spec.tsx +42 -18
- package/src/components/DataTableFilterButton/index.tsx +9 -0
- package/src/components/DataTableToolbar/index.tsx +184 -105
- package/src/hooks/useDataTable.spec.ts +114 -0
- package/src/hooks/useDataTable.ts +23 -1
- package/src/types.ts +14 -12
- package/types/components/DataTable/DataTableCardControls.d.ts +3 -0
- package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
- package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
- package/types/components/DataTableFilterButton/index.d.ts +2 -1
- package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
- package/types/components/DataTableToolbar/index.d.ts +1 -0
- package/types/components/DataTableToolbar/index.d.ts.map +1 -1
- package/types/hooks/useDataTable.d.ts.map +1 -1
- package/types/types.d.ts +14 -12
- package/types/types.d.ts.map +1 -1
|
@@ -12,34 +12,112 @@ import { dataTableChrome } from "./dataTableChrome.native.js";
|
|
|
12
12
|
function getColumnLabel(column) {
|
|
13
13
|
return typeof column.columnDef.header === "string" ? column.columnDef.header : column.id;
|
|
14
14
|
}
|
|
15
|
-
function
|
|
15
|
+
function DataTableCardSortControl(param) {
|
|
16
16
|
var {
|
|
17
17
|
table,
|
|
18
|
-
enableSorting = false,
|
|
19
|
-
enableFiltering = false,
|
|
20
|
-
availableColumns = [],
|
|
21
18
|
compact = false,
|
|
22
|
-
disabled = false
|
|
19
|
+
disabled = false,
|
|
20
|
+
contained = false
|
|
23
21
|
} = param;
|
|
24
22
|
var _table_getState_sorting;
|
|
25
23
|
var {
|
|
26
24
|
t
|
|
27
25
|
} = useTranslation();
|
|
28
26
|
var {
|
|
29
|
-
knobProps
|
|
30
|
-
disabledState
|
|
27
|
+
knobProps
|
|
31
28
|
} = useResolvedKnobs({
|
|
32
29
|
component: "DataTable",
|
|
33
30
|
compact
|
|
34
31
|
});
|
|
35
32
|
var chrome = dataTableChrome(String(knobProps.sizeToken));
|
|
36
33
|
var [sortMenuOpen, setSortMenuOpen] = useState(false);
|
|
37
|
-
var sortableColumns =
|
|
34
|
+
var sortableColumns = table.getVisibleLeafColumns().filter(function (col) {
|
|
38
35
|
return col.getCanSort();
|
|
39
|
-
})
|
|
36
|
+
});
|
|
40
37
|
var activeSort = (_table_getState_sorting = table.getState().sorting) === null || _table_getState_sorting === void 0 ? void 0 : _table_getState_sorting[0];
|
|
41
38
|
var activeSortColumn = activeSort ? table.getColumn(activeSort.id) : void 0;
|
|
42
39
|
var sortLabel = activeSortColumn ? `${getColumnLabel(activeSortColumn)} ${activeSort.desc ? "\u2193" : "\u2191"}` : t("Sort");
|
|
40
|
+
if (!sortableColumns.length) return null;
|
|
41
|
+
var menu = /* @__PURE__ */_jsxs(DropdownMenu, {
|
|
42
|
+
open: disabled ? false : sortMenuOpen,
|
|
43
|
+
onOpenChange: function onOpenChange(open) {
|
|
44
|
+
if (disabled) return;
|
|
45
|
+
setSortMenuOpen(open);
|
|
46
|
+
},
|
|
47
|
+
children: [/* @__PURE__ */_jsx(DropdownMenu.Trigger, {
|
|
48
|
+
asChild: true,
|
|
49
|
+
children: /* @__PURE__ */_jsx(Button, {
|
|
50
|
+
size: knobProps.sizeToken,
|
|
51
|
+
icon: /* @__PURE__ */_jsx(CaretUpDownIcon, {
|
|
52
|
+
size: chrome.iconPx
|
|
53
|
+
}),
|
|
54
|
+
"aria-label": t("Sort rows"),
|
|
55
|
+
...(contained ? {
|
|
56
|
+
minWidth: 0,
|
|
57
|
+
maxWidth: "100%",
|
|
58
|
+
"aria-description": activeSortColumn ? sortLabel : void 0
|
|
59
|
+
} : {}),
|
|
60
|
+
disabled,
|
|
61
|
+
children: sortLabel
|
|
62
|
+
})
|
|
63
|
+
}), /* @__PURE__ */_jsxs(DropdownMenu.Content, {
|
|
64
|
+
children: [/* @__PURE__ */_jsx(DropdownMenu.Label, {
|
|
65
|
+
children: t("Sort by")
|
|
66
|
+
}), sortableColumns.map(function (column) {
|
|
67
|
+
var sorted = column.getIsSorted();
|
|
68
|
+
return /* @__PURE__ */_jsx(DropdownMenu.Item, {
|
|
69
|
+
closeOnSelect: false,
|
|
70
|
+
icon: sorted === "asc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
|
|
71
|
+
size: chrome.iconPx
|
|
72
|
+
}) : sorted === "desc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
|
|
73
|
+
size: chrome.iconPx,
|
|
74
|
+
style: {
|
|
75
|
+
transform: "rotate(180deg)"
|
|
76
|
+
}
|
|
77
|
+
}) : /* @__PURE__ */_jsx(CaretUpDownIcon, {
|
|
78
|
+
size: chrome.iconPx
|
|
79
|
+
}),
|
|
80
|
+
"aria-label": withInterp(t("Sort by {{column}}", {
|
|
81
|
+
column: getColumnLabel(column)
|
|
82
|
+
}), {
|
|
83
|
+
column: getColumnLabel(column)
|
|
84
|
+
}),
|
|
85
|
+
onSelect: function onSelect() {
|
|
86
|
+
if (sorted === false) column.toggleSorting(false);else if (sorted === "asc") column.toggleSorting(true);else column.clearSorting();
|
|
87
|
+
},
|
|
88
|
+
children: getColumnLabel(column)
|
|
89
|
+
}, column.id);
|
|
90
|
+
})]
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
return contained ? /* @__PURE__ */_jsx(View, {
|
|
94
|
+
"data-table-card-sort": "",
|
|
95
|
+
flexBasis: "auto",
|
|
96
|
+
flexGrow: 0,
|
|
97
|
+
flexShrink: 1,
|
|
98
|
+
minWidth: 0,
|
|
99
|
+
maxWidth: "50%",
|
|
100
|
+
children: menu
|
|
101
|
+
}) : menu;
|
|
102
|
+
}
|
|
103
|
+
function DataTableCardControls(param) {
|
|
104
|
+
var {
|
|
105
|
+
table,
|
|
106
|
+
enableSorting = false,
|
|
107
|
+
enableFiltering = false,
|
|
108
|
+
availableColumns = [],
|
|
109
|
+
compact = false,
|
|
110
|
+
disabled = false
|
|
111
|
+
} = param;
|
|
112
|
+
var {
|
|
113
|
+
t
|
|
114
|
+
} = useTranslation();
|
|
115
|
+
var {
|
|
116
|
+
disabledState
|
|
117
|
+
} = useResolvedKnobs({
|
|
118
|
+
component: "DataTable",
|
|
119
|
+
compact
|
|
120
|
+
});
|
|
43
121
|
if (!enableSorting && !enableFiltering) return null;
|
|
44
122
|
return /* @__PURE__ */_jsxs(XStack, {
|
|
45
123
|
alignItems: "center",
|
|
@@ -48,52 +126,10 @@ function DataTableCardControls(param) {
|
|
|
48
126
|
paddingVertical: "$2",
|
|
49
127
|
role: "toolbar",
|
|
50
128
|
"aria-label": t("Card list controls"),
|
|
51
|
-
children: [enableSorting &&
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
setSortMenuOpen(open);
|
|
56
|
-
},
|
|
57
|
-
children: [/* @__PURE__ */_jsx(DropdownMenu.Trigger, {
|
|
58
|
-
asChild: true,
|
|
59
|
-
children: /* @__PURE__ */_jsx(Button, {
|
|
60
|
-
size: knobProps.sizeToken,
|
|
61
|
-
icon: /* @__PURE__ */_jsx(CaretUpDownIcon, {
|
|
62
|
-
size: chrome.iconPx
|
|
63
|
-
}),
|
|
64
|
-
"aria-label": t("Sort rows"),
|
|
65
|
-
disabled,
|
|
66
|
-
children: sortLabel
|
|
67
|
-
})
|
|
68
|
-
}), /* @__PURE__ */_jsxs(DropdownMenu.Content, {
|
|
69
|
-
children: [/* @__PURE__ */_jsx(DropdownMenu.Label, {
|
|
70
|
-
children: t("Sort by")
|
|
71
|
-
}), sortableColumns.map(function (column) {
|
|
72
|
-
var sorted = column.getIsSorted();
|
|
73
|
-
return /* @__PURE__ */_jsx(DropdownMenu.Item, {
|
|
74
|
-
closeOnSelect: false,
|
|
75
|
-
icon: sorted === "asc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
|
|
76
|
-
size: chrome.iconPx
|
|
77
|
-
}) : sorted === "desc" ? /* @__PURE__ */_jsx(CaretDownIcon, {
|
|
78
|
-
size: chrome.iconPx,
|
|
79
|
-
style: {
|
|
80
|
-
transform: "rotate(180deg)"
|
|
81
|
-
}
|
|
82
|
-
}) : /* @__PURE__ */_jsx(CaretUpDownIcon, {
|
|
83
|
-
size: chrome.iconPx
|
|
84
|
-
}),
|
|
85
|
-
"aria-label": withInterp(t("Sort by {{column}}", {
|
|
86
|
-
column: getColumnLabel(column)
|
|
87
|
-
}), {
|
|
88
|
-
column: getColumnLabel(column)
|
|
89
|
-
}),
|
|
90
|
-
onSelect: function onSelect() {
|
|
91
|
-
if (sorted === false) column.toggleSorting(false);else if (sorted === "asc") column.toggleSorting(true);else column.clearSorting();
|
|
92
|
-
},
|
|
93
|
-
children: getColumnLabel(column)
|
|
94
|
-
}, column.id);
|
|
95
|
-
})]
|
|
96
|
-
})]
|
|
129
|
+
children: [enableSorting && /* @__PURE__ */_jsx(DataTableCardSortControl, {
|
|
130
|
+
table,
|
|
131
|
+
compact,
|
|
132
|
+
disabled
|
|
97
133
|
}), enableFiltering && availableColumns.length > 0 &&
|
|
98
134
|
// DataTableFilters (chrome) has no disabled API — the wrapper is the
|
|
99
135
|
// LC-40 carrier and interaction gate for the disabled table.
|
|
@@ -110,5 +146,5 @@ function DataTableCardControls(param) {
|
|
|
110
146
|
})]
|
|
111
147
|
});
|
|
112
148
|
}
|
|
113
|
-
export { DataTableCardControls };
|
|
149
|
+
export { DataTableCardControls, DataTableCardSortControl };
|
|
114
150
|
//# sourceMappingURL=DataTableCardControls.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","CaretDownIcon","CaretUpDownIcon","DropdownMenu","Button","useResolvedKnobs","useState","View","XStack","useTranslation","withInterp","DataTableFilters","dataTableChrome","getColumnLabel","column","columnDef","header","id","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","CaretDownIcon","CaretUpDownIcon","DropdownMenu","Button","useResolvedKnobs","useState","View","XStack","useTranslation","withInterp","DataTableFilters","dataTableChrome","getColumnLabel","column","columnDef","header","id","DataTableCardSortControl","param","table","compact","disabled","contained","_table_getState_sorting","t","knobProps","component","chrome","String","sizeToken","sortMenuOpen","setSortMenuOpen","sortableColumns","getVisibleLeafColumns","filter","col","getCanSort","activeSort","getState","sorting","activeSortColumn","getColumn","sortLabel","desc","length","menu","open","onOpenChange","children","Trigger","asChild","size","icon","iconPx","minWidth","maxWidth","Content","Label","map","sorted","getIsSorted","Item","closeOnSelect","style","transform","onSelect","toggleSorting","clearSorting","flexBasis","flexGrow","flexShrink","DataTableCardControls","enableSorting","enableFiltering","availableColumns","disabledState","alignItems","flexWrap","gap","paddingVertical","role","chromeKnobProps"],"sources":["../../../../src/components/DataTable/DataTableCardControls.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ import { useDragScroll } from "../../hooks/useDragScroll.mjs";
|
|
|
12
12
|
import { useDataTableKeyboard } from "../../hooks/useDataTableKeyboard.mjs";
|
|
13
13
|
import { DataTableColumnPinning } from "../DataTableColumnPinning/index.mjs";
|
|
14
14
|
import { DataTablePagination } from "../DataTablePagination/index.mjs";
|
|
15
|
-
import { DataTableToolbar } from "../DataTableToolbar/index.mjs";
|
|
15
|
+
import { DataTableCardToolbar, DataTableToolbar } from "../DataTableToolbar/index.mjs";
|
|
16
16
|
import { DataTableBulkActions } from "../DataTableBulkActions/index.mjs";
|
|
17
17
|
import { DataTableCell } from "../DataTableCell/index.mjs";
|
|
18
18
|
import { ColumnHeaderFilter } from "../ColumnHeaderFilter/index.mjs";
|
|
@@ -20,7 +20,7 @@ import { DataTableFilterChips } from "../DataTableFilterChips/index.mjs";
|
|
|
20
20
|
import { Table } from "@multiplatform.one/table-primitives";
|
|
21
21
|
import { DataTableContext } from "./DataTableContext.mjs";
|
|
22
22
|
import { DataTableStateContext } from "./DataTableStateContext.mjs";
|
|
23
|
-
import { DataTableCardControls } from "./DataTableCardControls.mjs";
|
|
23
|
+
import { DataTableCardControls, DataTableCardSortControl } from "./DataTableCardControls.mjs";
|
|
24
24
|
import { DataTableMobileCards } from "./DataTableMobileCards.mjs";
|
|
25
25
|
import { DataTableDocumentList } from "./DataTableDocumentList.mjs";
|
|
26
26
|
import { DataTableVirtualized } from "./DataTableVirtualized.mjs";
|
|
@@ -249,6 +249,7 @@ function DataTableRoot({
|
|
|
249
249
|
flexBasis: "auto"
|
|
250
250
|
};
|
|
251
251
|
}
|
|
252
|
+
if (columnLayout === "equal" && !enableColumnResizing) return {};
|
|
252
253
|
if (hasExplicitSize || enableColumnResizing || columnLayout === "scroll") {
|
|
253
254
|
return {
|
|
254
255
|
width: col.getSize()
|
|
@@ -332,14 +333,15 @@ function DataTableRoot({
|
|
|
332
333
|
flexGrow: 0,
|
|
333
334
|
flexShrink: 0,
|
|
334
335
|
flexBasis: "auto",
|
|
335
|
-
minWidth:
|
|
336
|
+
minWidth: 0
|
|
336
337
|
};
|
|
337
338
|
}
|
|
338
339
|
if (enableColumnResizing) {
|
|
339
340
|
return {
|
|
340
341
|
flexGrow: 0,
|
|
341
342
|
flexShrink: 0,
|
|
342
|
-
flexBasis: "auto"
|
|
343
|
+
flexBasis: "auto",
|
|
344
|
+
minWidth: 0
|
|
343
345
|
};
|
|
344
346
|
}
|
|
345
347
|
return {
|
|
@@ -807,6 +809,9 @@ function DataTableRoot({
|
|
|
807
809
|
selectAllScope,
|
|
808
810
|
filterUi
|
|
809
811
|
}), [table, state, actions, computed, selectAllScope, filterUi]);
|
|
812
|
+
const hasCardSort = showCards && enableSorting && table.getVisibleLeafColumns().some(column => column.getCanSort());
|
|
813
|
+
const defaultCardToolbar = showCards && !renderToolbar;
|
|
814
|
+
const ToolbarComponent = defaultCardToolbar ? DataTableCardToolbar : DataTableToolbar;
|
|
810
815
|
const renderToolbarComponent = () => {
|
|
811
816
|
const activeFilterCount = table.getState().columnFilters?.length || 0;
|
|
812
817
|
if (renderToolbar) {
|
|
@@ -823,10 +828,16 @@ function DataTableRoot({
|
|
|
823
828
|
isFetching: Boolean(state.isFetching)
|
|
824
829
|
});
|
|
825
830
|
}
|
|
826
|
-
return /* @__PURE__ */jsx(
|
|
831
|
+
return /* @__PURE__ */jsx(ToolbarComponent, {
|
|
827
832
|
globalFilter: state.globalFilter || "",
|
|
828
833
|
onGlobalFilterChange: actions.setGlobalFilter,
|
|
829
834
|
onClearFilters: actions.clearFilters,
|
|
835
|
+
customActions: defaultCardToolbar && hasCardSort ? /* @__PURE__ */jsx(DataTableCardSortControl, {
|
|
836
|
+
table,
|
|
837
|
+
compact: isCompact,
|
|
838
|
+
disabled,
|
|
839
|
+
contained: true
|
|
840
|
+
}) : void 0,
|
|
830
841
|
activeFilterCount,
|
|
831
842
|
onSaveView: actions.saveView,
|
|
832
843
|
onLoadView: actions.loadView,
|
|
@@ -857,7 +868,7 @@ function DataTableRoot({
|
|
|
857
868
|
});
|
|
858
869
|
};
|
|
859
870
|
const renderInner = (tableData, effectiveHandleAddRow, effectiveHandleDeleteRow, _effectiveHandleCellChange) => {
|
|
860
|
-
const hasToolbar = enableGlobalSearch || enableFiltering || enableViews;
|
|
871
|
+
const hasToolbar = enableGlobalSearch || enableFiltering || enableViews || defaultCardToolbar && hasCardSort;
|
|
861
872
|
const scrollContainerRef = useRef(null);
|
|
862
873
|
const tableBodyRef = useRef(null);
|
|
863
874
|
const [bodyClipped, setBodyClipped] = useState(false);
|
|
@@ -964,7 +975,7 @@ function DataTableRoot({
|
|
|
964
975
|
getRowPressProps
|
|
965
976
|
} : {})
|
|
966
977
|
}) : showCards ? /* @__PURE__ */jsxs(Fragment, {
|
|
967
|
-
children: [/* @__PURE__ */jsx(DataTableCardControls, {
|
|
978
|
+
children: [!defaultCardToolbar && /* @__PURE__ */jsx(DataTableCardControls, {
|
|
968
979
|
table,
|
|
969
980
|
enableSorting,
|
|
970
981
|
enableFiltering,
|
|
@@ -1459,13 +1470,41 @@ function DataTableRoot({
|
|
|
1459
1470
|
}
|
|
1460
1471
|
})]
|
|
1461
1472
|
}), hasFooter && /* @__PURE__ */jsx(Table.Foot, {
|
|
1462
|
-
children: footerGroups.map(footerGroup => /* @__PURE__ */
|
|
1463
|
-
children:
|
|
1473
|
+
children: footerGroups.map(footerGroup => /* @__PURE__ */jsxs(Table.Row, {
|
|
1474
|
+
children: [enableRowSelection && /* @__PURE__ */jsx(Table.Cell, {
|
|
1475
|
+
cellWidth: selectionColWidth,
|
|
1476
|
+
cellHeight,
|
|
1477
|
+
cellLocation: "first"
|
|
1478
|
+
}), showRowNumbers && /* @__PURE__ */jsx(Table.Cell, {
|
|
1479
|
+
cellWidth: chrome.rowNumberCol,
|
|
1480
|
+
cellHeight,
|
|
1481
|
+
cellLocation: enableRowSelection ? "middle" : "first"
|
|
1482
|
+
}), enableRowExpansion && /* @__PURE__ */jsx(Table.Cell, {
|
|
1483
|
+
cellWidth: chrome.expandCol,
|
|
1484
|
+
cellHeight,
|
|
1485
|
+
cellLocation: enableRowSelection || showRowNumbers ? "middle" : "first"
|
|
1486
|
+
}), footerGroup.headers.map(header => {
|
|
1487
|
+
const stickyStyle = getStickyStyle(header.column.id);
|
|
1464
1488
|
const columnAlign = resolveColumnAlign({
|
|
1465
1489
|
...header.column.columnDef,
|
|
1466
1490
|
id: header.column.id
|
|
1467
1491
|
});
|
|
1468
1492
|
return /* @__PURE__ */jsx(Table.Cell, {
|
|
1493
|
+
...cellFlexProps,
|
|
1494
|
+
...getColSizeProps(header.column),
|
|
1495
|
+
...(isWeb && stickyStyle ? {
|
|
1496
|
+
style: {
|
|
1497
|
+
position: "sticky",
|
|
1498
|
+
...("insetInlineStart" in stickyStyle && {
|
|
1499
|
+
insetInlineStart: stickyStyle.insetInlineStart
|
|
1500
|
+
}),
|
|
1501
|
+
...("insetInlineEnd" in stickyStyle && {
|
|
1502
|
+
insetInlineEnd: stickyStyle.insetInlineEnd
|
|
1503
|
+
}),
|
|
1504
|
+
zIndex: 2,
|
|
1505
|
+
backgroundColor: "var(--color2)"
|
|
1506
|
+
}
|
|
1507
|
+
} : {}),
|
|
1469
1508
|
justifyContent: alignToFlex(columnAlign),
|
|
1470
1509
|
"data-align": columnAlign,
|
|
1471
1510
|
children: header.isPlaceholder ? null : /* @__PURE__ */jsx(View, {
|
|
@@ -1481,7 +1520,11 @@ function DataTableRoot({
|
|
|
1481
1520
|
children: flexRender(header.column.columnDef.footer, header.getContext())
|
|
1482
1521
|
})
|
|
1483
1522
|
}, header.id);
|
|
1484
|
-
})
|
|
1523
|
+
}), showDeleteRow && !readOnly && /* @__PURE__ */jsx(Table.Cell, {
|
|
1524
|
+
cellWidth: chrome.deleteCol,
|
|
1525
|
+
cellHeight,
|
|
1526
|
+
cellLocation: "last"
|
|
1527
|
+
})]
|
|
1485
1528
|
}, footerGroup.id))
|
|
1486
1529
|
})]
|
|
1487
1530
|
})
|