@semcore/data-table 16.0.0-prerelease.19 → 16.0.0-prerelease.20
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/CHANGELOG.md +13 -1
- package/lib/cjs/components/Body/Body.js +177 -193
- package/lib/cjs/components/Body/Body.js.map +1 -1
- package/lib/cjs/components/Body/Body.types.js.map +1 -1
- package/lib/cjs/components/Body/Cell.js +39 -34
- package/lib/cjs/components/Body/Cell.js.map +1 -1
- package/lib/cjs/components/Body/Cell.types.js.map +1 -1
- package/lib/cjs/components/Body/MergedCells.js +3 -5
- package/lib/cjs/components/Body/MergedCells.js.map +1 -1
- package/lib/cjs/components/Body/Row.js +129 -63
- package/lib/cjs/components/Body/Row.js.map +1 -1
- package/lib/cjs/components/Body/Row.types.js.map +1 -1
- package/lib/cjs/components/Body/style.shadow.css +26 -4
- package/lib/cjs/components/DataTable/DataTable.js +458 -157
- package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
- package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/cjs/components/DataTable/dataTable.shadow.css +0 -1
- package/lib/cjs/components/Head/Column.js +38 -25
- package/lib/cjs/components/Head/Column.js.map +1 -1
- package/lib/cjs/components/Head/Column.types.js.map +1 -1
- package/lib/cjs/components/Head/Group.js +31 -26
- package/lib/cjs/components/Head/Group.js.map +1 -1
- package/lib/cjs/components/Head/Group.type.js.map +1 -1
- package/lib/cjs/components/Head/Head.js +90 -50
- package/lib/cjs/components/Head/Head.js.map +1 -1
- package/lib/cjs/components/Head/Head.types.js.map +1 -1
- package/lib/cjs/components/Head/style.shadow.css +13 -0
- package/lib/cjs/index.js +6 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/scroll-shadows.shadow.css +12 -0
- package/lib/cjs/translations/en.json +4 -1
- package/lib/es6/components/Body/Body.js +178 -194
- package/lib/es6/components/Body/Body.js.map +1 -1
- package/lib/es6/components/Body/Body.types.js.map +1 -1
- package/lib/es6/components/Body/Cell.js +39 -34
- package/lib/es6/components/Body/Cell.js.map +1 -1
- package/lib/es6/components/Body/Cell.types.js.map +1 -1
- package/lib/es6/components/Body/MergedCells.js +3 -5
- package/lib/es6/components/Body/MergedCells.js.map +1 -1
- package/lib/es6/components/Body/Row.js +130 -64
- package/lib/es6/components/Body/Row.js.map +1 -1
- package/lib/es6/components/Body/Row.types.js +1 -1
- package/lib/es6/components/Body/Row.types.js.map +1 -1
- package/lib/es6/components/Body/style.shadow.css +26 -4
- package/lib/es6/components/DataTable/DataTable.js +453 -155
- package/lib/es6/components/DataTable/DataTable.js.map +1 -1
- package/lib/es6/components/DataTable/DataTable.types.js +1 -1
- package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/es6/components/DataTable/dataTable.shadow.css +0 -1
- package/lib/es6/components/Head/Column.js +38 -25
- package/lib/es6/components/Head/Column.js.map +1 -1
- package/lib/es6/components/Head/Column.types.js.map +1 -1
- package/lib/es6/components/Head/Group.js +32 -27
- package/lib/es6/components/Head/Group.js.map +1 -1
- package/lib/es6/components/Head/Group.type.js.map +1 -1
- package/lib/es6/components/Head/Head.js +92 -51
- package/lib/es6/components/Head/Head.js.map +1 -1
- package/lib/es6/components/Head/Head.types.js.map +1 -1
- package/lib/es6/components/Head/style.shadow.css +13 -0
- package/lib/es6/index.js +2 -2
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/scroll-shadows.shadow.css +12 -0
- package/lib/es6/translations/en.json +4 -1
- package/lib/esm/components/Body/Body.mjs +164 -188
- package/lib/esm/components/Body/Cell.mjs +41 -35
- package/lib/esm/components/Body/MergedCells.mjs +3 -5
- package/lib/esm/components/Body/Row.mjs +112 -52
- package/lib/esm/components/Body/style.shadow.css +263 -0
- package/lib/esm/components/DataTable/DataTable.mjs +404 -128
- package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
- package/lib/esm/components/Head/Column.mjs +40 -26
- package/lib/esm/components/Head/Group.mjs +33 -28
- package/lib/esm/components/Head/Head.mjs +71 -37
- package/lib/esm/components/Head/style.shadow.css +180 -0
- package/lib/esm/index.mjs +2 -1
- package/lib/esm/style/scroll-shadows.shadow.css +47 -0
- package/lib/esm/translations/en.json.mjs +4 -1
- package/lib/types/components/Body/Body.types.d.ts +23 -7
- package/lib/types/components/Body/Cell.types.d.ts +3 -0
- package/lib/types/components/Body/MergedCells.d.ts +2 -3
- package/lib/types/components/Body/Row.types.d.ts +12 -5
- package/lib/types/components/DataTable/DataTable.d.ts +5 -2
- package/lib/types/components/DataTable/DataTable.types.d.ts +31 -7
- package/lib/types/components/Head/Column.d.ts +2 -1
- package/lib/types/components/Head/Column.types.d.ts +5 -16
- package/lib/types/components/Head/Group.type.d.ts +1 -0
- package/lib/types/components/Head/Head.types.d.ts +9 -0
- package/lib/types/index.d.ts +2 -2
- package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +3 -0
- package/package.json +10 -8
- package/lib/cjs/utils.js +0 -66
- package/lib/cjs/utils.js.map +0 -1
- package/lib/es6/utils.js +0 -56
- package/lib/es6/utils.js.map +0 -1
- package/lib/esm/utils.mjs +0 -43
- package/lib/types/utils.d.ts +0 -8
|
@@ -9,11 +9,10 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
9
9
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
10
|
import { sstyled, createComponent, lastInteraction, assignProps, Component } from "@semcore/core";
|
|
11
11
|
import * as React from "react";
|
|
12
|
-
import { ScrollArea, Box } from "@semcore/base-components";
|
|
12
|
+
import { ScrollArea, ScreenReaderOnly, Box } from "@semcore/base-components";
|
|
13
13
|
import { Head } from "../Head/Head.mjs";
|
|
14
14
|
import { Body } from "../Body/Body.mjs";
|
|
15
15
|
import { hasFocusableIn, isFocusInside } from "@semcore/core/lib/utils/use/useFocusLock";
|
|
16
|
-
import { getScrollOffsetValue } from "../../utils.mjs";
|
|
17
16
|
import findComponent from "@semcore/core/lib/utils/findComponent";
|
|
18
17
|
import { localizedMessages } from "../../translations/__intergalactic-dynamic-locales.mjs";
|
|
19
18
|
import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
|
|
@@ -21,41 +20,58 @@ import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
|
|
|
21
20
|
import { forkRef } from "@semcore/core/lib/utils/ref";
|
|
22
21
|
import { hasParent } from "@semcore/core/lib/utils/hasParent";
|
|
23
22
|
import trottle from "@semcore/core/lib/utils/rafTrottle";
|
|
23
|
+
import { MergedRowsCell, MergedColumnsCell } from "../Body/MergedCells.mjs";
|
|
24
|
+
import { NoData } from "@semcore/widget-empty";
|
|
25
|
+
/*!__reshadow-styles__:"./dataTable.shadow.css"*/
|
|
24
26
|
var style = (
|
|
25
27
|
/*__reshadow_css_start__*/
|
|
26
28
|
(sstyled.insert(
|
|
27
29
|
/*__inner_css_start__*/
|
|
28
|
-
".
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"--
|
|
36
|
-
"
|
|
37
|
-
"--
|
|
30
|
+
".___SDataTable_1iypx_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1iypx_gg_.__gridTemplateColumns_1iypx_gg_{grid-template-columns:var(--gridTemplateColumns_1iypx)}.___SDataTable_1iypx_gg_.__gridTemplateAreas_1iypx_gg_{grid-template-areas:var(--gridTemplateAreas_1iypx)}.___SDataTable_1iypx_gg_.__gridTemplateRows_1iypx_gg_{grid-template-rows:var(--gridTemplateRows_1iypx)}",
|
|
31
|
+
/*__inner_css_end__*/
|
|
32
|
+
"1iypx_gg_"
|
|
33
|
+
), /*__reshadow_css_end__*/
|
|
34
|
+
{
|
|
35
|
+
"__SDataTable": "___SDataTable_1iypx_gg_",
|
|
36
|
+
"_gridTemplateColumns": "__gridTemplateColumns_1iypx_gg_",
|
|
37
|
+
"--gridTemplateColumns": "--gridTemplateColumns_1iypx",
|
|
38
|
+
"_gridTemplateAreas": "__gridTemplateAreas_1iypx_gg_",
|
|
39
|
+
"--gridTemplateAreas": "--gridTemplateAreas_1iypx",
|
|
40
|
+
"_gridTemplateRows": "__gridTemplateRows_1iypx_gg_",
|
|
41
|
+
"--gridTemplateRows": "--gridTemplateRows_1iypx"
|
|
38
42
|
})
|
|
39
43
|
);
|
|
44
|
+
/*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
40
45
|
var scrollStyles = (
|
|
41
46
|
/*__reshadow_css_start__*/
|
|
42
47
|
(sstyled.insert(
|
|
43
48
|
/*__inner_css_start__*/
|
|
44
|
-
".
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
49
|
+
".___SScrollArea_fowiu_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_{overflow:visible;overflow:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_both_fowiu_gg_{overflow:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_horizontal_fowiu_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_._scrollDirection_vertical_fowiu_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__loading_fowiu_gg_{overflow:hidden}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__headerHeight_fowiu_gg_{scroll-padding-top:var(--headerHeight_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__leftScrollPadding_fowiu_gg_{scroll-padding-left:var(--leftScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SContainer_fowiu_gg_.__rightScrollPadding_fowiu_gg_{scroll-padding-right:var(--rightScrollPadding_fowiu)}.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:before{display:none}.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:after,.___SScrollArea_fowiu_gg_ .___SShadowHorizontal_fowiu_gg_:before,.___SScrollArea_fowiu_gg_ .___SShadowVertical_fowiu_gg_:after{z-index:2}",
|
|
50
|
+
/*__inner_css_end__*/
|
|
51
|
+
"fowiu_gg_"
|
|
52
|
+
), /*__reshadow_css_end__*/
|
|
53
|
+
{
|
|
54
|
+
"__SScrollArea": "___SScrollArea_fowiu_gg_",
|
|
55
|
+
"__SContainer": "___SContainer_fowiu_gg_",
|
|
56
|
+
"_scrollDirection_both": "_scrollDirection_both_fowiu_gg_",
|
|
57
|
+
"_scrollDirection_horizontal": "_scrollDirection_horizontal_fowiu_gg_",
|
|
58
|
+
"_scrollDirection_vertical": "_scrollDirection_vertical_fowiu_gg_",
|
|
59
|
+
"_loading": "__loading_fowiu_gg_",
|
|
60
|
+
"_headerHeight": "__headerHeight_fowiu_gg_",
|
|
61
|
+
"--headerHeight": "--headerHeight_fowiu",
|
|
62
|
+
"_leftScrollPadding": "__leftScrollPadding_fowiu_gg_",
|
|
63
|
+
"--leftScrollPadding": "--leftScrollPadding_fowiu",
|
|
64
|
+
"_rightScrollPadding": "__rightScrollPadding_fowiu_gg_",
|
|
65
|
+
"--rightScrollPadding": "--rightScrollPadding_fowiu",
|
|
66
|
+
"__SShadowVertical": "___SShadowVertical_fowiu_gg_",
|
|
67
|
+
"__SShadowHorizontal": "___SShadowHorizontal_fowiu_gg_"
|
|
54
68
|
})
|
|
55
69
|
);
|
|
56
70
|
var ACCORDION = Symbol("accordion");
|
|
57
71
|
var ROW_GROUP = Symbol("ROW_GROUP");
|
|
58
72
|
var UNIQ_ROW_KEY = Symbol("UNIQ_ROW_KEY");
|
|
73
|
+
var SELECT_ALL = Symbol("SELECT_ALL");
|
|
74
|
+
var ROW_INDEX = Symbol("ROW_INDEX");
|
|
59
75
|
var SCROLL_BAR_HEIGHT = 12;
|
|
60
76
|
var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
61
77
|
_inherits(DataTableRoot2, _Component);
|
|
@@ -68,41 +84,75 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
68
84
|
_defineProperty(_assertThisInitialized(_this), "treeColumns", []);
|
|
69
85
|
_defineProperty(_assertThisInitialized(_this), "hasGroups", false);
|
|
70
86
|
_defineProperty(_assertThisInitialized(_this), "focusedCell", [-1, -1]);
|
|
87
|
+
_defineProperty(_assertThisInitialized(_this), "scrollAreaRef", /* @__PURE__ */ React.createRef());
|
|
71
88
|
_defineProperty(_assertThisInitialized(_this), "tableContainerRef", /* @__PURE__ */ React.createRef());
|
|
72
89
|
_defineProperty(_assertThisInitialized(_this), "tableRef", /* @__PURE__ */ React.createRef());
|
|
73
90
|
_defineProperty(_assertThisInitialized(_this), "headerRef", /* @__PURE__ */ React.createRef());
|
|
74
91
|
_defineProperty(_assertThisInitialized(_this), "spinnerRef", /* @__PURE__ */ React.createRef());
|
|
75
92
|
_defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", /* @__PURE__ */ new Map());
|
|
93
|
+
_defineProperty(_assertThisInitialized(_this), "columnsSplitter", "/");
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "rows", []);
|
|
95
|
+
_defineProperty(_assertThisInitialized(_this), "flatRows", []);
|
|
96
|
+
_defineProperty(_assertThisInitialized(_this), "selectAllMessageTimer", 0);
|
|
97
|
+
_defineProperty(_assertThisInitialized(_this), "headerNodesMap", /* @__PURE__ */ new Map());
|
|
76
98
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
77
99
|
scrollTop: 0,
|
|
78
|
-
scrollDirection: "down"
|
|
100
|
+
scrollDirection: "down",
|
|
101
|
+
selectAllMessage: ""
|
|
102
|
+
});
|
|
103
|
+
_defineProperty(_assertThisInitialized(_this), "handleSelectRow", function(isSelected, selectedRowIndex, row, event) {
|
|
104
|
+
var _this$asProps = _this.asProps, selectedRows = _this$asProps.selectedRows, onSelectedRowsChange = _this$asProps.onSelectedRowsChange;
|
|
105
|
+
_this$asProps.data;
|
|
106
|
+
if (selectedRows && onSelectedRowsChange) {
|
|
107
|
+
var newSelectedRows = new Set(selectedRows);
|
|
108
|
+
if (isSelected && !newSelectedRows.has(selectedRowIndex)) {
|
|
109
|
+
newSelectedRows.add(selectedRowIndex);
|
|
110
|
+
} else if (!isSelected && newSelectedRows.has(selectedRowIndex)) {
|
|
111
|
+
newSelectedRows["delete"](selectedRowIndex);
|
|
112
|
+
}
|
|
113
|
+
onSelectedRowsChange(_toConsumableArray(newSelectedRows), event, {
|
|
114
|
+
selectedRowIndex,
|
|
115
|
+
isSelected,
|
|
116
|
+
row
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
_defineProperty(_assertThisInitialized(_this), "setSelectAllMessage", function(selectedAll) {
|
|
121
|
+
if (_this.selectAllMessageTimer) {
|
|
122
|
+
clearTimeout(_this.selectAllMessageTimer);
|
|
123
|
+
}
|
|
124
|
+
var getI18nText = _this.asProps.getI18nText;
|
|
125
|
+
var message = getI18nText(selectedAll ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
|
|
126
|
+
_this.setState({
|
|
127
|
+
selectAllMessage: message
|
|
128
|
+
});
|
|
129
|
+
_this.selectAllMessageTimer = window.setTimeout(function() {
|
|
130
|
+
_this.setState({
|
|
131
|
+
selectAllMessage: ""
|
|
132
|
+
});
|
|
133
|
+
}, 5e3);
|
|
79
134
|
});
|
|
80
135
|
_defineProperty(_assertThisInitialized(_this), "getRow", function(index) {
|
|
81
136
|
var _this$tableRef$curren;
|
|
82
137
|
return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector('[aria-rowindex="'.concat(index + 1, '"]'));
|
|
83
138
|
});
|
|
84
139
|
_defineProperty(_assertThisInitialized(_this), "hasFocusableInHeader", function() {
|
|
85
|
-
|
|
86
|
-
var columnElement = column.ref.current;
|
|
87
|
-
return columnElement && hasFocusableIn(columnElement);
|
|
88
|
-
});
|
|
89
|
-
return hasFocusable;
|
|
140
|
+
return _this.headerRef.current && hasFocusableIn(_this.headerRef.current);
|
|
90
141
|
});
|
|
91
|
-
_defineProperty(_assertThisInitialized(_this), "onExpandRow", function(
|
|
142
|
+
_defineProperty(_assertThisInitialized(_this), "onExpandRow", function(expandedRow) {
|
|
92
143
|
var expandedRows = _this.asProps.expandedRows;
|
|
93
|
-
if (expandedRows
|
|
94
|
-
|
|
95
|
-
return row !== expandedRowIndex;
|
|
96
|
-
}));
|
|
144
|
+
if (expandedRows.has(expandedRow[UNIQ_ROW_KEY])) {
|
|
145
|
+
expandedRows["delete"](expandedRow[UNIQ_ROW_KEY]);
|
|
97
146
|
} else {
|
|
98
|
-
|
|
147
|
+
expandedRows.add(expandedRow[UNIQ_ROW_KEY]);
|
|
99
148
|
}
|
|
149
|
+
_this.handlers.expandedRows(new Set(_toConsumableArray(expandedRows)));
|
|
100
150
|
});
|
|
101
151
|
_defineProperty(_assertThisInitialized(_this), "changeFocusCell", function(rowIndex, colIndex, direction) {
|
|
102
152
|
var _this$tableRef$curren2, _this$tableRef$curren3;
|
|
103
153
|
var hasFocusable = _this.hasFocusableInHeader();
|
|
104
154
|
var maxCol = _this.columns.length - 1;
|
|
105
|
-
var maxRow = _this.totalRows;
|
|
155
|
+
var maxRow = _this.totalRows || 1;
|
|
106
156
|
var currentRow = (_this$tableRef$curren2 = _this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.querySelector('[aria-rowindex="'.concat(_this.focusedCell[0] + 1, '"]'));
|
|
107
157
|
var headerCells = (_this$tableRef$curren3 = _this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.querySelectorAll("[role=columnheader]");
|
|
108
158
|
var currentCell = currentRow === null || currentRow === void 0 ? void 0 : currentRow.querySelector("[role=gridcell][aria-colindex='".concat(_this.focusedCell[1] + 1, "']"));
|
|
@@ -118,7 +168,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
118
168
|
}
|
|
119
169
|
if (!changed) return;
|
|
120
170
|
var row = _this.getRow(newRow);
|
|
121
|
-
var cell = row === null || row === void 0 ? void 0 : row.querySelector('[role=gridcell][aria-colindex="'.concat(newCol + 1, '"], [role=columnheader][aria-colindex="').concat(newCol + 1, '"]'));
|
|
171
|
+
var cell = row === null || row === void 0 ? void 0 : row.querySelector(':scope > [role=gridcell][aria-colindex="'.concat(newCol + 1, '"], :scope > [role=columnheader][aria-colindex="').concat(newCol + 1, '"], :scope > div > [role=columnheader][aria-colindex="').concat(newCol + 1, '"]'));
|
|
122
172
|
if (cell instanceof HTMLElement && currentCell !== cell) {
|
|
123
173
|
_this.focusedCell = [newRow, newCol];
|
|
124
174
|
currentCell === null || currentCell === void 0 ? void 0 : currentCell.setAttribute("inert", "");
|
|
@@ -141,8 +191,11 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
141
191
|
var rowI = rowIndex;
|
|
142
192
|
var colI = colIndex;
|
|
143
193
|
if (direction === "left" || direction === "right") {
|
|
144
|
-
var _currentCell$parentEl;
|
|
145
|
-
if (
|
|
194
|
+
var _currentCell$parentEl, _currentCell$parentEl2, _row$children;
|
|
195
|
+
if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === "Collapse") {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (currentCell.dataset.groupedBy === "colgroup" || Number((_currentCell$parentEl2 = currentCell.parentElement) === null || _currentCell$parentEl2 === void 0 ? void 0 : _currentCell$parentEl2.getAttribute("aria-rowindex")) === 2 || Array.from((_row$children = row === null || row === void 0 ? void 0 : row.children) !== null && _row$children !== void 0 ? _row$children : []).indexOf(currentCell) > 0) {
|
|
146
199
|
colI = direction === "left" ? colI - 1 : colI + 1;
|
|
147
200
|
} else {
|
|
148
201
|
rowI = rowI - 1;
|
|
@@ -155,6 +208,9 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
155
208
|
}
|
|
156
209
|
}
|
|
157
210
|
_this.changeFocusCell(rowI, colI, direction);
|
|
211
|
+
} else if (cell === null && currentHeaderCell instanceof HTMLElement && direction === "down") {
|
|
212
|
+
var _colI = colIndex - 1;
|
|
213
|
+
_this.changeFocusCell(rowIndex, _colI, direction);
|
|
158
214
|
} else if (row === null && _this.focusedCell[0] === 0 && direction === "down" && _this.asProps.virtualScroll) {
|
|
159
215
|
_this.changeFocusCell(rowIndex + 1, colIndex, direction);
|
|
160
216
|
}
|
|
@@ -255,6 +311,75 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
255
311
|
_defineProperty(_assertThisInitialized(_this), "handleMouseMove", function() {
|
|
256
312
|
_this.setInert(false);
|
|
257
313
|
});
|
|
314
|
+
_defineProperty(_assertThisInitialized(_this), "handleBackFromAccordion", function(cellIndex) {
|
|
315
|
+
_this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, "up");
|
|
316
|
+
});
|
|
317
|
+
_defineProperty(_assertThisInitialized(_this), "getScrollOffsetValue", function() {
|
|
318
|
+
if (!_this.headerRef.current) {
|
|
319
|
+
return [0, 0];
|
|
320
|
+
}
|
|
321
|
+
var setToMap = function setToMap2(element) {
|
|
322
|
+
if (element.getAttribute("name") && element.dataset.uiName === "Head.Column") {
|
|
323
|
+
var name = element.getAttribute("name");
|
|
324
|
+
if (name) {
|
|
325
|
+
_this.headerNodesMap.set(name, element);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
_this.headerRef.current.childNodes.forEach(function(node) {
|
|
330
|
+
if (node instanceof HTMLElement) {
|
|
331
|
+
if (node.classList.value.includes("SGroupContainer")) {
|
|
332
|
+
node.childNodes.forEach(function(columnNode) {
|
|
333
|
+
if (columnNode instanceof HTMLElement) {
|
|
334
|
+
setToMap(columnNode);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
} else {
|
|
338
|
+
setToMap(node);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
return _this.columns.reduce(function(acc, column) {
|
|
343
|
+
if (column.fixed === "left") {
|
|
344
|
+
var _this$headerNodesMap$, _this$headerNodesMap$2;
|
|
345
|
+
acc[0] += (_this$headerNodesMap$ = (_this$headerNodesMap$2 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$2 === void 0 ? void 0 : _this$headerNodesMap$2.getBoundingClientRect().width) !== null && _this$headerNodesMap$ !== void 0 ? _this$headerNodesMap$ : 0;
|
|
346
|
+
}
|
|
347
|
+
if (column.fixed === "right") {
|
|
348
|
+
var _this$headerNodesMap$3, _this$headerNodesMap$4;
|
|
349
|
+
acc[1] += (_this$headerNodesMap$3 = (_this$headerNodesMap$4 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$4 === void 0 ? void 0 : _this$headerNodesMap$4.getBoundingClientRect().width) !== null && _this$headerNodesMap$3 !== void 0 ? _this$headerNodesMap$3 : 0;
|
|
350
|
+
}
|
|
351
|
+
return acc;
|
|
352
|
+
}, [0, 0]);
|
|
353
|
+
});
|
|
354
|
+
_defineProperty(_assertThisInitialized(_this), "getFixedStyle", function(cell) {
|
|
355
|
+
var side = cell.fixed;
|
|
356
|
+
if (!side) return [void 0, void 0];
|
|
357
|
+
var names = cell.name.split("/");
|
|
358
|
+
var nameSideMap = {
|
|
359
|
+
left: names[0],
|
|
360
|
+
right: names[names.length - 1]
|
|
361
|
+
};
|
|
362
|
+
var name = nameSideMap[side];
|
|
363
|
+
var index = _this.columns.findIndex(function(column) {
|
|
364
|
+
return column.name === name;
|
|
365
|
+
});
|
|
366
|
+
if (index === -1) return [void 0, void 0];
|
|
367
|
+
var startIndexSideMap = {
|
|
368
|
+
left: 0,
|
|
369
|
+
right: index + 1
|
|
370
|
+
};
|
|
371
|
+
var endIndexSideMap = {
|
|
372
|
+
left: index,
|
|
373
|
+
right: _this.columns.length
|
|
374
|
+
};
|
|
375
|
+
var columnsFixed = _this.columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
|
|
376
|
+
if (columnsFixed.length < 1) return [side, 0];
|
|
377
|
+
var sum = columnsFixed.reduce(function(acc, column) {
|
|
378
|
+
var _this$headerNodesMap$5;
|
|
379
|
+
return acc + ((_this$headerNodesMap$5 = _this.headerNodesMap.get(column.name)) === null || _this$headerNodesMap$5 === void 0 ? void 0 : _this$headerNodesMap$5.getBoundingClientRect().width);
|
|
380
|
+
}, 0);
|
|
381
|
+
return [side, "".concat(sum, "px")];
|
|
382
|
+
});
|
|
258
383
|
if (props.children) {
|
|
259
384
|
_this.columns = _this.calculateColumns();
|
|
260
385
|
} else {
|
|
@@ -262,41 +387,78 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
262
387
|
_this.columns = cols[0];
|
|
263
388
|
_this.treeColumns = cols[1];
|
|
264
389
|
}
|
|
390
|
+
_this.rows = _this.calculateRows();
|
|
391
|
+
_this.flatRows = _this.rows.flat();
|
|
265
392
|
return _this;
|
|
266
393
|
}
|
|
267
394
|
_createClass(DataTableRoot2, [{
|
|
268
395
|
key: "uncontrolledProps",
|
|
269
396
|
value: function uncontrolledProps() {
|
|
270
397
|
return {
|
|
271
|
-
expandedRows:
|
|
398
|
+
expandedRows: /* @__PURE__ */ new Set()
|
|
272
399
|
};
|
|
273
400
|
}
|
|
274
401
|
}, {
|
|
275
402
|
key: "componentDidMount",
|
|
276
403
|
value: function componentDidMount() {
|
|
277
|
-
this
|
|
404
|
+
var _this2 = this;
|
|
405
|
+
var _this$asProps2 = this.asProps, headerProps = _this$asProps2.headerProps, loading = _this$asProps2.loading;
|
|
406
|
+
if (headerProps !== null && headerProps !== void 0 && headerProps.sticky && !headerProps.h || loading || this.columns.some(function(c) {
|
|
407
|
+
return c.fixed;
|
|
408
|
+
})) {
|
|
409
|
+
requestAnimationFrame(function() {
|
|
410
|
+
_this2.forceUpdate();
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}, {
|
|
415
|
+
key: "componentDidUpdate",
|
|
416
|
+
value: function componentDidUpdate(prevProps) {
|
|
417
|
+
var _this$asProps3 = this.asProps, data = _this$asProps3.data, selectedRows = _this$asProps3.selectedRows, columns = _this$asProps3.columns;
|
|
418
|
+
if (prevProps.columns !== columns) {
|
|
419
|
+
var cols = this.calculateColumnsFromConfig();
|
|
420
|
+
this.columns = cols[0];
|
|
421
|
+
this.treeColumns = cols[1];
|
|
422
|
+
}
|
|
423
|
+
if (prevProps.data !== data || prevProps.columns !== columns) {
|
|
424
|
+
this.rows = this.calculateRows();
|
|
425
|
+
this.flatRows = this.rows.flat();
|
|
426
|
+
this.forceUpdate();
|
|
427
|
+
}
|
|
428
|
+
if (prevProps.selectedRows !== selectedRows && selectedRows !== void 0) {
|
|
429
|
+
if (prevProps.selectedRows.length < data.length && selectedRows.length === data.length) {
|
|
430
|
+
this.setSelectAllMessage(true);
|
|
431
|
+
} else if (prevProps.selectedRows.length > 0 && selectedRows.length === 0) {
|
|
432
|
+
this.setSelectAllMessage(false);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
278
435
|
}
|
|
279
436
|
}, {
|
|
280
437
|
key: "totalRows",
|
|
281
438
|
get: function get() {
|
|
282
|
-
var _this$
|
|
283
|
-
var
|
|
284
|
-
|
|
285
|
-
var
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
439
|
+
var _this$asProps4 = this.asProps, totalRows = _this$asProps4.totalRows, expandedRows = _this$asProps4.expandedRows;
|
|
440
|
+
var flatRows = this.rows.flat();
|
|
441
|
+
var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function(acc, rowKey) {
|
|
442
|
+
var dtRow = flatRows.find(function(el) {
|
|
443
|
+
return el[UNIQ_ROW_KEY] === rowKey;
|
|
444
|
+
});
|
|
445
|
+
if (dtRow) {
|
|
446
|
+
var _expandedRows = dtRow[ACCORDION];
|
|
447
|
+
if (Array.isArray(_expandedRows)) {
|
|
448
|
+
acc = acc + _expandedRows.length;
|
|
449
|
+
} else {
|
|
450
|
+
acc = acc + 1;
|
|
451
|
+
}
|
|
290
452
|
}
|
|
291
453
|
return acc;
|
|
292
454
|
}, 0);
|
|
293
455
|
if (totalRows !== void 0) {
|
|
294
456
|
return totalRows + expandedRowsCount;
|
|
295
457
|
}
|
|
296
|
-
var rows =
|
|
458
|
+
var rows = this.rows.reduce(function(acc, item) {
|
|
297
459
|
acc = acc + 1;
|
|
298
|
-
if (item
|
|
299
|
-
acc = acc + item
|
|
460
|
+
if (Array.isArray(item)) {
|
|
461
|
+
acc = acc + item.length;
|
|
300
462
|
}
|
|
301
463
|
return acc;
|
|
302
464
|
}, 0);
|
|
@@ -307,7 +469,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
307
469
|
get: function get() {
|
|
308
470
|
var columns = this.columns;
|
|
309
471
|
var gridTemplateColumns = columns.map(function(c) {
|
|
310
|
-
return c.
|
|
472
|
+
return c.gtcWidth;
|
|
311
473
|
});
|
|
312
474
|
var gridTemplateAreas = columns.map(function(c) {
|
|
313
475
|
return c.name;
|
|
@@ -320,7 +482,8 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
320
482
|
}, {
|
|
321
483
|
key: "getHeadProps",
|
|
322
484
|
value: function getHeadProps() {
|
|
323
|
-
var
|
|
485
|
+
var _this3 = this;
|
|
486
|
+
var _this$asProps5 = this.asProps, use = _this$asProps5.use, compact = _this$asProps5.compact, sort = _this$asProps5.sort, onSortChange = _this$asProps5.onSortChange, getI18nText = _this$asProps5.getI18nText, uid = _this$asProps5.uid, headerProps = _this$asProps5.headerProps, onSelectedRowsChange = _this$asProps5.onSelectedRowsChange, selectedRows = _this$asProps5.selectedRows, sideIndents = _this$asProps5.sideIndents;
|
|
324
487
|
var _this$gridSettings = this.gridSettings, gridTemplateColumns = _this$gridSettings.gridTemplateColumns, gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
|
|
325
488
|
return _objectSpread({
|
|
326
489
|
columns: this.columns,
|
|
@@ -335,23 +498,35 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
335
498
|
ref: this.headerRef,
|
|
336
499
|
gridAreaGroupMap: this.gridAreaGroupMap,
|
|
337
500
|
gridTemplateColumns,
|
|
338
|
-
gridTemplateAreas
|
|
501
|
+
gridTemplateAreas,
|
|
502
|
+
sideIndents,
|
|
503
|
+
totalRows: this.totalRows,
|
|
504
|
+
selectedRows,
|
|
505
|
+
onChangeSelectAll: function onChangeSelectAll(value, e) {
|
|
506
|
+
var selectedRowsIndexes = value ? new Array(_this3.totalRows).fill(void 0).map(function(_, i) {
|
|
507
|
+
return i;
|
|
508
|
+
}) : [];
|
|
509
|
+
onSelectedRowsChange === null || onSelectedRowsChange === void 0 ? void 0 : onSelectedRowsChange(selectedRowsIndexes, e);
|
|
510
|
+
},
|
|
511
|
+
getFixedStyle: this.getFixedStyle
|
|
339
512
|
}, headerProps);
|
|
340
513
|
}
|
|
341
514
|
}, {
|
|
342
515
|
key: "getBodyProps",
|
|
343
516
|
value: function getBodyProps() {
|
|
344
|
-
var _this$
|
|
517
|
+
var _this$asProps6 = this.asProps, use = _this$asProps6.use, compact = _this$asProps6.compact, loading = _this$asProps6.loading, getI18nText = _this$asProps6.getI18nText, expandedRows = _this$asProps6.expandedRows, virtualScroll = _this$asProps6.virtualScroll, uid = _this$asProps6.uid, rowProps = _this$asProps6.rowProps, renderCell = _this$asProps6.renderCell, headerProps = _this$asProps6.headerProps, renderEmptyData2 = _this$asProps6.renderEmptyData, sideIndents = _this$asProps6.sideIndents, selectedRows = _this$asProps6.selectedRows;
|
|
345
518
|
var _this$gridSettings2 = this.gridSettings, gridTemplateColumns = _this$gridSettings2.gridTemplateColumns, gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
|
|
346
519
|
return {
|
|
347
520
|
columns: this.columns,
|
|
348
|
-
|
|
521
|
+
rows: this.rows,
|
|
522
|
+
flatRows: this.flatRows,
|
|
349
523
|
use,
|
|
350
524
|
compact: Boolean(compact),
|
|
351
525
|
gridTemplateColumns,
|
|
352
526
|
gridTemplateAreas,
|
|
353
527
|
loading,
|
|
354
|
-
headerHeight: this.
|
|
528
|
+
headerHeight: this.getHeaderHeight(),
|
|
529
|
+
stickyHeader: headerProps === null || headerProps === void 0 ? void 0 : headerProps.sticky,
|
|
355
530
|
getI18nText,
|
|
356
531
|
expandedRows,
|
|
357
532
|
onExpandRow: this.onExpandRow,
|
|
@@ -360,10 +535,18 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
360
535
|
scrollDirection: this.state.scrollDirection,
|
|
361
536
|
tableContainerRef: this.tableContainerRef,
|
|
362
537
|
tableRef: this.tableRef,
|
|
538
|
+
scrollAreaRef: this.scrollAreaRef,
|
|
539
|
+
onBackFromAccordion: this.handleBackFromAccordion,
|
|
363
540
|
virtualScroll,
|
|
364
541
|
hasGroups: this.hasGroups,
|
|
365
542
|
uid,
|
|
366
|
-
|
|
543
|
+
rowProps,
|
|
544
|
+
renderCell,
|
|
545
|
+
renderEmptyData: renderEmptyData2,
|
|
546
|
+
sideIndents,
|
|
547
|
+
selectedRows,
|
|
548
|
+
onSelectRow: this.handleSelectRow,
|
|
549
|
+
getFixedStyle: this.getFixedStyle
|
|
367
550
|
};
|
|
368
551
|
}
|
|
369
552
|
}, {
|
|
@@ -382,24 +565,25 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
382
565
|
}, {
|
|
383
566
|
key: "render",
|
|
384
567
|
value: function render() {
|
|
385
|
-
var _ref = this.asProps, _ref2
|
|
568
|
+
var _ref = this.asProps, _ref2;
|
|
386
569
|
var SDataTable = Box;
|
|
387
|
-
var _this$
|
|
388
|
-
var
|
|
570
|
+
var _this$asProps7 = this.asProps, Children = _this$asProps7.Children, styles = _this$asProps7.styles, w = _this$asProps7.w, wMax = _this$asProps7.wMax, wMin = _this$asProps7.wMin, h = _this$asProps7.h, hMax = _this$asProps7.hMax, hMin = _this$asProps7.hMin, virtualScroll = _this$asProps7.virtualScroll, children = _this$asProps7.children, headerProps = _this$asProps7.headerProps, loading = _this$asProps7.loading, selectedRows = _this$asProps7.selectedRows;
|
|
571
|
+
var _this$getScrollOffset = this.getScrollOffsetValue(), _this$getScrollOffset2 = _slicedToArray(_this$getScrollOffset, 2), offsetLeftSum = _this$getScrollOffset2[0], offsetRightSum = _this$getScrollOffset2[1];
|
|
389
572
|
var _this$gridSettings3 = this.gridSettings, gridTemplateColumns = _this$gridSettings3.gridTemplateColumns, gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
|
|
390
573
|
var Head2 = findComponent(Children, ["DataTable.Head"]);
|
|
391
574
|
var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head2 === null || Head2 === void 0 ? void 0 : Head2.props;
|
|
392
|
-
var
|
|
575
|
+
var headerHeight = (headerProps === null || headerProps === void 0 ? void 0 : headerProps.h) || this.getHeaderHeight();
|
|
576
|
+
var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? headerHeight : void 0;
|
|
393
577
|
var width = w !== null && w !== void 0 ? w : this.columns.some(function(c) {
|
|
394
|
-
return c.
|
|
578
|
+
return c.gtcWidth === "auto" || c.gtcWidth === "1fr";
|
|
395
579
|
}) ? "100%" : void 0;
|
|
396
580
|
var gridTemplateRows = void 0;
|
|
397
581
|
if (virtualScroll && typeof virtualScroll !== "boolean" && "rowHeight" in virtualScroll) {
|
|
398
582
|
gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
|
|
399
583
|
}
|
|
400
584
|
var scrollDirection = void 0;
|
|
401
|
-
var hasWidthSettings = Boolean(
|
|
402
|
-
var hasHeightSettings = Boolean(
|
|
585
|
+
var hasWidthSettings = Boolean(w) && w !== "100%" || Boolean(wMax);
|
|
586
|
+
var hasHeightSettings = Boolean(h) && h !== "fit-content" || Boolean(hMax);
|
|
403
587
|
if (hasWidthSettings && !hasHeightSettings) {
|
|
404
588
|
scrollDirection = "horizontal";
|
|
405
589
|
} else if (hasHeightSettings && !hasWidthSettings) {
|
|
@@ -418,13 +602,18 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
418
602
|
"hMax": hMax,
|
|
419
603
|
"hMin": hMin,
|
|
420
604
|
"shadow": true,
|
|
605
|
+
"ref": this.scrollAreaRef,
|
|
421
606
|
"container": this.tableContainerRef,
|
|
422
607
|
"styles": scrollStyles,
|
|
423
|
-
"onScroll": this.handleScroll,
|
|
608
|
+
"onScroll": virtualScroll ? this.handleScroll : void 0,
|
|
424
609
|
"disableAutofocusToContent": true
|
|
425
610
|
}), /* @__PURE__ */ React.createElement(ScrollArea.Container, {
|
|
426
611
|
tabIndex: -1,
|
|
427
|
-
scrollDirection
|
|
612
|
+
scrollDirection,
|
|
613
|
+
loading,
|
|
614
|
+
headerHeight: "".concat(headerHeight, "px"),
|
|
615
|
+
leftScrollPadding: "".concat(offsetLeftSum, "px"),
|
|
616
|
+
rightScrollPadding: "".concat(offsetRightSum, "px")
|
|
428
617
|
}, /* @__PURE__ */ React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, assignProps({
|
|
429
618
|
"ref": forkRef(this.tableRef, this.tableContainerRef),
|
|
430
619
|
"role": "grid",
|
|
@@ -446,57 +635,58 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
446
635
|
"use:h": void 0,
|
|
447
636
|
"use:hMax": void 0,
|
|
448
637
|
"use:hMin": void 0
|
|
449
|
-
}, _ref))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
638
|
+
}, _ref))), children ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DataTableInternal.Head, null), /* @__PURE__ */ React.createElement(DataTableInternal.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && !loading && /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
|
|
450
639
|
orientation: "horizontal",
|
|
451
640
|
top: topOffset - SCROLL_BAR_HEIGHT,
|
|
452
|
-
zIndex:
|
|
453
|
-
}), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
|
|
641
|
+
zIndex: 10
|
|
642
|
+
}), !loading && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
|
|
454
643
|
orientation: "horizontal",
|
|
455
|
-
zIndex:
|
|
644
|
+
zIndex: 10
|
|
456
645
|
}), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
|
|
457
646
|
orientation: "vertical",
|
|
458
|
-
zIndex:
|
|
459
|
-
}))
|
|
647
|
+
zIndex: 10
|
|
648
|
+
})), selectedRows !== void 0 && /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
|
|
649
|
+
"aria-live": "polite",
|
|
650
|
+
"role": "status"
|
|
651
|
+
}), this.state.selectAllMessage));
|
|
460
652
|
}
|
|
461
653
|
}, {
|
|
462
654
|
key: "calculateColumns",
|
|
463
655
|
value: function calculateColumns() {
|
|
464
|
-
var
|
|
465
|
-
var _this$props = this.props, children = _this$props.children, data = _this$props.data;
|
|
656
|
+
var _this4 = this;
|
|
657
|
+
var _this$props = this.props, children = _this$props.children, data = _this$props.data, selectedRows = _this$props.selectedRows;
|
|
466
658
|
var HeadComponent = findComponent(children, ["Head"]);
|
|
467
659
|
this.hasGroups = findComponent(HeadComponent.props.children, ["Head.Group"]) !== void 0;
|
|
468
660
|
var groupIndex = 0;
|
|
469
|
-
var gridColumnIndex = 1;
|
|
661
|
+
var gridColumnIndex = selectedRows ? 2 : 1;
|
|
470
662
|
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
471
663
|
var columns = [];
|
|
664
|
+
if (selectedRows) {
|
|
665
|
+
var column = {
|
|
666
|
+
name: SELECT_ALL.toString(),
|
|
667
|
+
gtcWidth: "40px",
|
|
668
|
+
alignItems: "flex-start",
|
|
669
|
+
children: ""
|
|
670
|
+
};
|
|
671
|
+
columns.push(column);
|
|
672
|
+
}
|
|
472
673
|
var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
|
|
473
|
-
var _columnElement$props$,
|
|
674
|
+
var _columnElement$props$, _ref3, _columnElement$props$2;
|
|
474
675
|
var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === "left") ? "left" : void 0;
|
|
475
676
|
var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.props.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.props.borders) === "right") ? "right" : void 0;
|
|
476
|
-
var
|
|
677
|
+
var column2 = {
|
|
477
678
|
name: columnElement.props.name,
|
|
478
|
-
|
|
479
|
-
ref: function ref(node) {
|
|
480
|
-
if (node) {
|
|
481
|
-
var calculatedWidth = node.getBoundingClientRect().width;
|
|
482
|
-
var calculatedHeight = node.getBoundingClientRect().height;
|
|
483
|
-
column.calculatedWidth = calculatedWidth;
|
|
484
|
-
column.calculatedHeight = calculatedHeight;
|
|
485
|
-
}
|
|
486
|
-
this.ref.current = node;
|
|
487
|
-
},
|
|
488
|
-
gridColumnWidth: calculateGridTemplateColumn(columnElement),
|
|
679
|
+
gtcWidth: calculateGridTemplateColumn(columnElement),
|
|
489
680
|
fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
|
|
490
|
-
|
|
491
|
-
calculatedHeight: 0,
|
|
492
|
-
borders: (_ref5 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref5 !== void 0 ? _ref5 : rightBordersFromParent,
|
|
681
|
+
borders: (_ref3 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref3 !== void 0 ? _ref3 : rightBordersFromParent,
|
|
493
682
|
parent,
|
|
494
683
|
flexWrap: columnElement.props.flexWrap,
|
|
495
684
|
alignItems: columnElement.props.alignItems,
|
|
496
685
|
alignContent: columnElement.props.alignContent,
|
|
497
|
-
justifyContent: columnElement.props.justifyContent
|
|
686
|
+
justifyContent: columnElement.props.justifyContent,
|
|
687
|
+
children: ""
|
|
498
688
|
};
|
|
499
|
-
return
|
|
689
|
+
return column2;
|
|
500
690
|
};
|
|
501
691
|
var childIsColumn = function childIsColumn2(child) {
|
|
502
692
|
return child.type === Head.Column;
|
|
@@ -508,7 +698,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
508
698
|
if (!/* @__PURE__ */ React.isValidElement(child)) return;
|
|
509
699
|
if (childIsColumn(child)) {
|
|
510
700
|
var col = makeColumn(child);
|
|
511
|
-
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(
|
|
701
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this4.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
|
|
512
702
|
gridColumnIndex++;
|
|
513
703
|
columns.push(col);
|
|
514
704
|
} else if (childIsGroup(child)) {
|
|
@@ -533,7 +723,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
533
723
|
columns.push(_col);
|
|
534
724
|
}
|
|
535
725
|
});
|
|
536
|
-
|
|
726
|
+
_this4.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
537
727
|
groupIndex++;
|
|
538
728
|
}
|
|
539
729
|
});
|
|
@@ -542,42 +732,37 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
542
732
|
}, {
|
|
543
733
|
key: "calculateColumnsFromConfig",
|
|
544
734
|
value: function calculateColumnsFromConfig() {
|
|
545
|
-
var
|
|
546
|
-
var _this$props2 = this.props, columns = _this$props2.columns, data = _this$props2.data;
|
|
547
|
-
this.hasGroups = columns.some(function(
|
|
548
|
-
return "columns" in
|
|
735
|
+
var _this5 = this;
|
|
736
|
+
var _this$props2 = this.props, columns = _this$props2.columns, data = _this$props2.data, selectedRows = _this$props2.selectedRows;
|
|
737
|
+
this.hasGroups = columns.some(function(column2) {
|
|
738
|
+
return "columns" in column2;
|
|
549
739
|
});
|
|
550
740
|
var groupIndex = 0;
|
|
551
|
-
var gridColumnIndex = 1;
|
|
741
|
+
var gridColumnIndex = selectedRows ? 2 : 1;
|
|
552
742
|
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
553
743
|
var calculatedColumns = [];
|
|
554
744
|
var treeColumns = [];
|
|
745
|
+
if (selectedRows) {
|
|
746
|
+
var column = {
|
|
747
|
+
name: SELECT_ALL.toString(),
|
|
748
|
+
gtcWidth: "40px",
|
|
749
|
+
alignItems: "flex-start",
|
|
750
|
+
children: ""
|
|
751
|
+
};
|
|
752
|
+
calculatedColumns.push(column);
|
|
753
|
+
}
|
|
555
754
|
var makeColumn = function makeColumn2(columnElement, parent, isFirst, isLast) {
|
|
556
|
-
var _columnElement$fixed,
|
|
755
|
+
var _columnElement$fixed, _ref4, _columnElement$border;
|
|
557
756
|
var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "left") ? "left" : void 0;
|
|
558
757
|
var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === "both" || (parent === null || parent === void 0 ? void 0 : parent.borders) === "right") ? "right" : void 0;
|
|
559
|
-
var
|
|
758
|
+
var column2 = _objectSpread(_objectSpread({}, columnElement), {}, {
|
|
560
759
|
name: childIsColumn(columnElement) ? columnElement.name : "",
|
|
561
|
-
|
|
562
|
-
ref: function ref(node) {
|
|
563
|
-
if (node) {
|
|
564
|
-
var calculatedWidth = node.getBoundingClientRect().width;
|
|
565
|
-
var calculatedHeight = node.getBoundingClientRect().height;
|
|
566
|
-
column.calculatedWidth = calculatedWidth;
|
|
567
|
-
column.calculatedHeight = calculatedHeight;
|
|
568
|
-
}
|
|
569
|
-
if (this !== null && this !== void 0 && this.ref) {
|
|
570
|
-
this.ref.current = node;
|
|
571
|
-
}
|
|
572
|
-
},
|
|
573
|
-
gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : "",
|
|
760
|
+
gtcWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : "",
|
|
574
761
|
fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
|
|
575
|
-
|
|
576
|
-
calculatedHeight: 0,
|
|
577
|
-
borders: (_ref6 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref6 !== void 0 ? _ref6 : rightBordersFromParent,
|
|
762
|
+
borders: (_ref4 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref4 !== void 0 ? _ref4 : rightBordersFromParent,
|
|
578
763
|
parent
|
|
579
|
-
}
|
|
580
|
-
return
|
|
764
|
+
});
|
|
765
|
+
return column2;
|
|
581
766
|
};
|
|
582
767
|
var childIsColumn = function childIsColumn2(child) {
|
|
583
768
|
return !("columns" in child);
|
|
@@ -588,7 +773,7 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
588
773
|
columns.forEach(function(child, i) {
|
|
589
774
|
if (childIsColumn(child)) {
|
|
590
775
|
var col = makeColumn(child);
|
|
591
|
-
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(
|
|
776
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this5.hasGroups ? "3" : "2", " / ").concat(gridColumnIndex + 1);
|
|
592
777
|
gridColumnIndex++;
|
|
593
778
|
calculatedColumns.push(col);
|
|
594
779
|
treeColumns.push(col);
|
|
@@ -617,21 +802,98 @@ var DataTableRoot = /* @__PURE__ */ function(_Component) {
|
|
|
617
802
|
(_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col2);
|
|
618
803
|
});
|
|
619
804
|
treeColumns.push(Group);
|
|
620
|
-
|
|
805
|
+
_this5.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
621
806
|
groupIndex++;
|
|
622
807
|
}
|
|
623
808
|
});
|
|
624
809
|
return [calculatedColumns, treeColumns];
|
|
625
810
|
}
|
|
811
|
+
}, {
|
|
812
|
+
key: "calculateRows",
|
|
813
|
+
value: function calculateRows() {
|
|
814
|
+
var _this6 = this;
|
|
815
|
+
var columns = this.columns;
|
|
816
|
+
var _this$props3 = this.props, data = _this$props3.data, uid = _this$props3.uid;
|
|
817
|
+
var rows = [];
|
|
818
|
+
var columnNames = columns.map(function(column) {
|
|
819
|
+
return column.name;
|
|
820
|
+
});
|
|
821
|
+
var rowIndex = 0;
|
|
822
|
+
var id = 1e8;
|
|
823
|
+
var makeDtRow = function makeDtRow2(row, excludeColumns) {
|
|
824
|
+
var _Object$entries$reduc;
|
|
825
|
+
var columns2 = new Set(columnNames);
|
|
826
|
+
var dtRow = Object.entries(row).reduce(function(acc, _ref5) {
|
|
827
|
+
var _ref6 = _slicedToArray(_ref5, 2), key = _ref6[0], value = _ref6[1];
|
|
828
|
+
var columnsToRow = key.split(_this6.columnsSplitter);
|
|
829
|
+
if (columnsToRow.length === 1) {
|
|
830
|
+
acc[key] = value !== null && value !== void 0 ? value : "";
|
|
831
|
+
columns2["delete"](key);
|
|
832
|
+
} else {
|
|
833
|
+
acc[columnsToRow[0]] = new MergedColumnsCell(value, {
|
|
834
|
+
dataKey: key,
|
|
835
|
+
size: columnsToRow.length
|
|
836
|
+
});
|
|
837
|
+
columnsToRow.forEach(function(value2) {
|
|
838
|
+
columns2["delete"](value2);
|
|
839
|
+
});
|
|
840
|
+
}
|
|
841
|
+
if (row[ACCORDION]) {
|
|
842
|
+
acc[ACCORDION] = row[ACCORDION];
|
|
843
|
+
}
|
|
844
|
+
return acc;
|
|
845
|
+
}, (_Object$entries$reduc = {}, _defineProperty(_Object$entries$reduc, UNIQ_ROW_KEY, row[UNIQ_ROW_KEY] || "".concat(uid, "_").concat((rowIndex + id).toString(36))), _defineProperty(_Object$entries$reduc, ROW_INDEX, rowIndex), _Object$entries$reduc));
|
|
846
|
+
excludeColumns === null || excludeColumns === void 0 ? void 0 : excludeColumns.forEach(function(value) {
|
|
847
|
+
columns2["delete"](value);
|
|
848
|
+
});
|
|
849
|
+
if (columns2.size > 0) {
|
|
850
|
+
columns2.forEach(function(value) {
|
|
851
|
+
dtRow[value] = "";
|
|
852
|
+
});
|
|
853
|
+
}
|
|
854
|
+
return dtRow;
|
|
855
|
+
};
|
|
856
|
+
data.forEach(function(row) {
|
|
857
|
+
var groupedRows = row[ROW_GROUP];
|
|
858
|
+
if (groupedRows) {
|
|
859
|
+
var _Object$entries$reduc2;
|
|
860
|
+
var innerRows = [];
|
|
861
|
+
var groupedKeys = [];
|
|
862
|
+
var groupedRowData = Object.entries(row).reduce(function(acc, _ref7) {
|
|
863
|
+
var _ref8 = _slicedToArray(_ref7, 2), key = _ref8[0], value = _ref8[1];
|
|
864
|
+
acc[key] = new MergedRowsCell(value, groupedRows.length);
|
|
865
|
+
groupedKeys.push(key);
|
|
866
|
+
return acc;
|
|
867
|
+
}, (_Object$entries$reduc2 = {}, _defineProperty(_Object$entries$reduc2, UNIQ_ROW_KEY, ""), _defineProperty(_Object$entries$reduc2, ROW_INDEX, -1), _Object$entries$reduc2));
|
|
868
|
+
groupedRows.forEach(function(childRow, index) {
|
|
869
|
+
var dtRow2;
|
|
870
|
+
if (index === 0) {
|
|
871
|
+
var rowData = _objectSpread(_objectSpread({}, childRow), groupedRowData);
|
|
872
|
+
dtRow2 = makeDtRow(rowData);
|
|
873
|
+
} else {
|
|
874
|
+
dtRow2 = makeDtRow(childRow, groupedKeys);
|
|
875
|
+
}
|
|
876
|
+
innerRows.push(dtRow2);
|
|
877
|
+
rowIndex++;
|
|
878
|
+
});
|
|
879
|
+
rows.push(innerRows);
|
|
880
|
+
} else {
|
|
881
|
+
var dtRow = makeDtRow(row);
|
|
882
|
+
rows.push(dtRow);
|
|
883
|
+
rowIndex++;
|
|
884
|
+
}
|
|
885
|
+
});
|
|
886
|
+
return rows;
|
|
887
|
+
}
|
|
626
888
|
}, {
|
|
627
889
|
key: "calculateGridTemplateColumn",
|
|
628
890
|
value: function calculateGridTemplateColumn(c) {
|
|
629
|
-
var
|
|
630
|
-
return (
|
|
891
|
+
var _ref9;
|
|
892
|
+
return (_ref9 = /* @__PURE__ */ React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref9 !== void 0 ? _ref9 : this.props.defaultGridTemplateColumnWidth;
|
|
631
893
|
}
|
|
632
894
|
}, {
|
|
633
|
-
key: "
|
|
634
|
-
value: function
|
|
895
|
+
key: "getHeaderHeight",
|
|
896
|
+
value: function getHeaderHeight() {
|
|
635
897
|
var _this$headerRef$curre;
|
|
636
898
|
var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
|
|
637
899
|
var height = 0;
|
|
@@ -654,15 +916,29 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
|
|
|
654
916
|
_defineProperty(DataTableRoot, "defaultProps", {
|
|
655
917
|
use: "primary",
|
|
656
918
|
defaultGridTemplateColumnWidth: "auto",
|
|
657
|
-
defaultExpandedRows:
|
|
919
|
+
defaultExpandedRows: /* @__PURE__ */ new Set(),
|
|
920
|
+
defaultSelectedRows: void 0,
|
|
921
|
+
h: "fit-content",
|
|
922
|
+
renderEmptyData: function renderEmptyData() {
|
|
923
|
+
return /* @__PURE__ */ React.createElement(NoData, {
|
|
924
|
+
py: 10,
|
|
925
|
+
type: "nothing-found",
|
|
926
|
+
description: "",
|
|
927
|
+
w: "100%"
|
|
928
|
+
});
|
|
929
|
+
}
|
|
658
930
|
});
|
|
659
931
|
var DataTable = createComponent(DataTableRoot, {
|
|
660
932
|
Head,
|
|
661
933
|
Body
|
|
662
934
|
});
|
|
935
|
+
var DataTableInternal = DataTable;
|
|
663
936
|
export {
|
|
664
937
|
ACCORDION,
|
|
665
938
|
DataTable,
|
|
939
|
+
DataTableInternal,
|
|
666
940
|
ROW_GROUP,
|
|
941
|
+
ROW_INDEX,
|
|
942
|
+
SELECT_ALL,
|
|
667
943
|
UNIQ_ROW_KEY
|
|
668
944
|
};
|