@semcore/data-table 16.0.0-prerelease.16 → 16.0.0-prerelease.18
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 +6 -0
- package/lib/cjs/components/Body/Body.js +336 -97
- 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 +89 -32
- 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 +9 -5
- package/lib/cjs/components/Body/MergedCells.js.map +1 -1
- package/lib/cjs/components/Body/Row.js +86 -112
- package/lib/cjs/components/Body/Row.js.map +1 -1
- package/lib/cjs/components/Body/Row.types.js +2 -0
- package/lib/cjs/components/Body/Row.types.js.map +1 -1
- package/lib/cjs/components/Body/style.shadow.css +87 -36
- package/lib/cjs/components/DataTable/DataTable.js +317 -158
- package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
- package/lib/cjs/components/DataTable/DataTable.types.js +2 -0
- package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/cjs/components/DataTable/dataTable.shadow.css +4 -0
- package/lib/cjs/components/Head/Column.js +54 -33
- 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 +51 -38
- 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 +46 -31
- 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 +16 -14
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/scroll-shadows.shadow.css +30 -6
- package/lib/es6/components/Body/Body.js +337 -98
- 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 +89 -32
- 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 +9 -5
- package/lib/es6/components/Body/MergedCells.js.map +1 -1
- package/lib/es6/components/Body/Row.js +86 -112
- 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 +87 -36
- package/lib/es6/components/DataTable/DataTable.js +315 -157
- 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 +4 -0
- package/lib/es6/components/Head/Column.js +52 -31
- 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 +51 -38
- 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 +47 -32
- 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 +16 -14
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/scroll-shadows.shadow.css +30 -6
- package/lib/esm/components/Body/Body.mjs +317 -94
- package/lib/esm/components/Body/Cell.mjs +82 -31
- package/lib/esm/components/Body/MergedCells.mjs +9 -5
- package/lib/esm/components/Body/Row.mjs +78 -107
- package/lib/esm/components/DataTable/DataTable.mjs +281 -105
- package/lib/esm/components/Head/Column.mjs +52 -32
- package/lib/esm/components/Head/Group.mjs +48 -39
- package/lib/esm/components/Head/Head.mjs +45 -32
- package/lib/esm/utils.mjs +0 -9
- package/lib/types/components/Body/Body.types.d.ts +21 -12
- package/lib/types/components/Body/Cell.types.d.ts +9 -6
- package/lib/types/components/Body/MergedCells.d.ts +8 -3
- package/lib/types/components/Body/Row.types.d.ts +22 -10
- package/lib/types/components/DataTable/DataTable.d.ts +2 -1
- package/lib/types/components/DataTable/DataTable.types.d.ts +55 -6
- package/lib/types/components/Head/Column.d.ts +2 -1
- package/lib/types/components/Head/Column.types.d.ts +5 -3
- package/lib/types/components/Head/Group.d.ts +5 -2
- package/lib/types/components/Head/Group.type.d.ts +6 -1
- package/lib/types/components/Head/Head.d.ts +93 -3
- package/lib/types/components/Head/Head.types.d.ts +1 -0
- package/lib/types/index.d.ts +2 -2
- package/package.json +8 -7
- package/lib/cjs/Body.js +0 -476
- package/lib/cjs/Body.js.map +0 -1
- package/lib/cjs/DataTable.js +0 -622
- package/lib/cjs/DataTable.js.map +0 -1
- package/lib/cjs/Head.js +0 -399
- package/lib/cjs/Head.js.map +0 -1
- package/lib/cjs/style/data-table.shadow.css +0 -394
- package/lib/cjs/types.js +0 -4
- package/lib/cjs/types.js.map +0 -1
- package/lib/es6/Body.js +0 -469
- package/lib/es6/Body.js.map +0 -1
- package/lib/es6/DataTable.js +0 -614
- package/lib/es6/DataTable.js.map +0 -1
- package/lib/es6/Head.js +0 -391
- package/lib/es6/Head.js.map +0 -1
- package/lib/es6/style/data-table.shadow.css +0 -394
- package/lib/es6/types.js +0 -2
- package/lib/es6/types.js.map +0 -1
- package/lib/esm/Head.mjs +0 -369
- package/lib/types/Body.d.ts +0 -61
- package/lib/types/DataTable.d.ts +0 -205
- package/lib/types/Head.d.ts +0 -45
- package/lib/types/types.d.ts +0 -73
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
6
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
@@ -15,30 +16,38 @@ import { Box, ScrollArea } from '@semcore/base-components';
|
|
|
15
16
|
import { Head } from '../Head/Head';
|
|
16
17
|
import { Body } from '../Body/Body';
|
|
17
18
|
/*__reshadow-styles__:"./dataTable.shadow.css"*/
|
|
18
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
19
|
-
"__SDataTable": "
|
|
20
|
-
"_gridTemplateColumns": "
|
|
21
|
-
"--gridTemplateColumns": "--
|
|
22
|
-
"_gridTemplateAreas": "
|
|
23
|
-
"--gridTemplateAreas": "--
|
|
19
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SDataTable_1rvtk_gg_{display:grid;position:relative;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_1rvtk_gg_.__gridTemplateColumns_1rvtk_gg_{grid-template-columns:var(--gridTemplateColumns_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateAreas_1rvtk_gg_{grid-template-areas:var(--gridTemplateAreas_1rvtk)}.___SDataTable_1rvtk_gg_.__gridTemplateRows_1rvtk_gg_{grid-template-rows:var(--gridTemplateRows_1rvtk)}" /*__inner_css_end__*/, "1rvtk_gg_") /*__reshadow_css_end__*/, {
|
|
20
|
+
"__SDataTable": "___SDataTable_1rvtk_gg_",
|
|
21
|
+
"_gridTemplateColumns": "__gridTemplateColumns_1rvtk_gg_",
|
|
22
|
+
"--gridTemplateColumns": "--gridTemplateColumns_1rvtk",
|
|
23
|
+
"_gridTemplateAreas": "__gridTemplateAreas_1rvtk_gg_",
|
|
24
|
+
"--gridTemplateAreas": "--gridTemplateAreas_1rvtk",
|
|
25
|
+
"_gridTemplateRows": "__gridTemplateRows_1rvtk_gg_",
|
|
26
|
+
"--gridTemplateRows": "--gridTemplateRows_1rvtk"
|
|
24
27
|
});
|
|
25
28
|
import { isFocusInside, hasFocusableIn } from '@semcore/core/lib/utils/use/useFocusLock';
|
|
26
|
-
import syncScroll from '@semcore/core/lib/utils/syncScroll';
|
|
27
29
|
import { getScrollOffsetValue } from '../../utils';
|
|
28
30
|
import findComponent from '@semcore/core/lib/utils/findComponent';
|
|
29
31
|
import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
|
|
30
32
|
import i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';
|
|
31
33
|
import uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';
|
|
32
|
-
import { MergedColumnsCell, MergedRowsCell } from '../Body/MergedCells';
|
|
33
34
|
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
34
35
|
/*__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
35
|
-
var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.insert( /*__inner_css_start__*/".
|
|
36
|
-
"__SScrollArea": "
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
var scrollStyles = ( /*__reshadow_css_start__*/_sstyled2.insert( /*__inner_css_start__*/".___SScrollArea_dn57w_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_{overflow:visible;overflow:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_both_dn57w_gg_{overflow:auto}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_horizontal_dn57w_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_dn57w_gg_ .___SContainer_dn57w_gg_._scrollDirection_vertical_dn57w_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:before{display:none}.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:after,.___SScrollArea_dn57w_gg_ .___SShadowHorizontal_dn57w_gg_:before,.___SScrollArea_dn57w_gg_ .___SShadowVertical_dn57w_gg_:after{z-index:2}" /*__inner_css_end__*/, "dn57w_gg_") /*__reshadow_css_end__*/, {
|
|
37
|
+
"__SScrollArea": "___SScrollArea_dn57w_gg_",
|
|
38
|
+
"__SContainer": "___SContainer_dn57w_gg_",
|
|
39
|
+
"_scrollDirection_both": "_scrollDirection_both_dn57w_gg_",
|
|
40
|
+
"_scrollDirection_horizontal": "_scrollDirection_horizontal_dn57w_gg_",
|
|
41
|
+
"_scrollDirection_vertical": "_scrollDirection_vertical_dn57w_gg_",
|
|
42
|
+
"__SShadowVertical": "___SShadowVertical_dn57w_gg_",
|
|
43
|
+
"__SShadowHorizontal": "___SShadowHorizontal_dn57w_gg_"
|
|
39
44
|
});
|
|
45
|
+
import { hasParent } from '@semcore/core/lib/utils/hasParent';
|
|
46
|
+
import trottle from '@semcore/core/lib/utils/rafTrottle';
|
|
40
47
|
export var ACCORDION = Symbol('accordion');
|
|
41
48
|
export var ROW_GROUP = Symbol('ROW_GROUP');
|
|
49
|
+
export var UNIQ_ROW_KEY = Symbol('UNIQ_ROW_KEY');
|
|
50
|
+
var SCROLL_BAR_HEIGHT = 12;
|
|
42
51
|
var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
43
52
|
_inherits(DataTableRoot, _Component);
|
|
44
53
|
var _super = _createSuper(DataTableRoot);
|
|
@@ -46,15 +55,19 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
46
55
|
var _this;
|
|
47
56
|
_classCallCheck(this, DataTableRoot);
|
|
48
57
|
_this = _super.call(this, props);
|
|
49
|
-
_defineProperty(_assertThisInitialized(_this), "columnsSplitter", '/');
|
|
50
58
|
_defineProperty(_assertThisInitialized(_this), "columns", []);
|
|
59
|
+
_defineProperty(_assertThisInitialized(_this), "treeColumns", []);
|
|
60
|
+
_defineProperty(_assertThisInitialized(_this), "hasGroups", false);
|
|
51
61
|
_defineProperty(_assertThisInitialized(_this), "focusedCell", [-1, -1]);
|
|
52
62
|
_defineProperty(_assertThisInitialized(_this), "tableContainerRef", /*#__PURE__*/React.createRef());
|
|
53
63
|
_defineProperty(_assertThisInitialized(_this), "tableRef", /*#__PURE__*/React.createRef());
|
|
54
64
|
_defineProperty(_assertThisInitialized(_this), "headerRef", /*#__PURE__*/React.createRef());
|
|
55
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
56
|
-
_defineProperty(_assertThisInitialized(_this), "scrollHeadRef", void 0);
|
|
65
|
+
_defineProperty(_assertThisInitialized(_this), "spinnerRef", /*#__PURE__*/React.createRef());
|
|
57
66
|
_defineProperty(_assertThisInitialized(_this), "gridAreaGroupMap", new Map());
|
|
67
|
+
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
68
|
+
scrollTop: 0,
|
|
69
|
+
scrollDirection: 'down'
|
|
70
|
+
});
|
|
58
71
|
_defineProperty(_assertThisInitialized(_this), "getRow", function (index) {
|
|
59
72
|
var _this$tableRef$curren;
|
|
60
73
|
return (_this$tableRef$curren = _this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.querySelector("[aria-rowindex=\"".concat(index + 1, "\"]"));
|
|
@@ -66,6 +79,16 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
66
79
|
});
|
|
67
80
|
return hasFocusable;
|
|
68
81
|
});
|
|
82
|
+
_defineProperty(_assertThisInitialized(_this), "onExpandRow", function (expandedRowIndex) {
|
|
83
|
+
var expandedRows = _this.asProps.expandedRows;
|
|
84
|
+
if (expandedRows !== null && expandedRows !== void 0 && expandedRows.includes(expandedRowIndex)) {
|
|
85
|
+
_this.handlers.expandedRows(expandedRows.filter(function (row) {
|
|
86
|
+
return row !== expandedRowIndex;
|
|
87
|
+
}));
|
|
88
|
+
} else {
|
|
89
|
+
_this.handlers.expandedRows([].concat(_toConsumableArray(expandedRows), [expandedRowIndex]));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
69
92
|
_defineProperty(_assertThisInitialized(_this), "changeFocusCell", function (rowIndex, colIndex, direction) {
|
|
70
93
|
var _this$tableRef$curren2, _this$tableRef$curren3;
|
|
71
94
|
var hasFocusable = _this.hasFocusableInHeader();
|
|
@@ -109,21 +132,24 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
109
132
|
var rowI = rowIndex;
|
|
110
133
|
var colI = colIndex;
|
|
111
134
|
if (direction === 'left' || direction === 'right') {
|
|
135
|
+
var _currentCell$parentEl;
|
|
112
136
|
// left/right
|
|
113
|
-
if (currentCell.dataset.groupedBy === '
|
|
137
|
+
if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.getAttribute('aria-rowindex')) === 2) {
|
|
114
138
|
colI = direction === 'left' ? colI - 1 : colI + 1;
|
|
115
139
|
} else {
|
|
116
140
|
rowI = rowI - 1;
|
|
117
141
|
}
|
|
118
142
|
} else if (direction === 'up' || direction === 'down') {
|
|
119
143
|
// top/bottom
|
|
120
|
-
if (currentCell.dataset.groupedBy === '
|
|
144
|
+
if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
|
|
121
145
|
rowI = direction === 'up' ? rowI - 1 : rowI + 1;
|
|
122
146
|
} else {
|
|
123
147
|
colI = colI - 1;
|
|
124
148
|
}
|
|
125
149
|
}
|
|
126
150
|
_this.changeFocusCell(rowI, colI, direction);
|
|
151
|
+
} else if (row === null && _this.focusedCell[0] === 0 && direction === 'down' && _this.asProps.virtualScroll) {
|
|
152
|
+
_this.changeFocusCell(rowIndex + 1, colIndex, direction);
|
|
127
153
|
}
|
|
128
154
|
});
|
|
129
155
|
_defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
|
|
@@ -167,8 +193,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
167
193
|
_this.focusedCell = [1, 0];
|
|
168
194
|
}
|
|
169
195
|
});
|
|
196
|
+
_defineProperty(_assertThisInitialized(_this), "handleScroll", trottle(function (e) {
|
|
197
|
+
var scrollTop = e.target.scrollTop;
|
|
198
|
+
var scrollDirection = scrollTop > _this.state.scrollTop ? 'down' : 'up';
|
|
199
|
+
_this.setState({
|
|
200
|
+
scrollTop: scrollTop,
|
|
201
|
+
scrollDirection: scrollDirection
|
|
202
|
+
});
|
|
203
|
+
}));
|
|
170
204
|
_defineProperty(_assertThisInitialized(_this), "handleFocus", function (e) {
|
|
171
|
-
if (
|
|
205
|
+
if (_this.asProps.loading) {
|
|
206
|
+
var _this$spinnerRef$curr;
|
|
207
|
+
(_this$spinnerRef$curr = _this.spinnerRef.current) === null || _this$spinnerRef$curr === void 0 ? void 0 : _this$spinnerRef$curr.focus();
|
|
208
|
+
e.currentTarget.setAttribute('tabIndex', '-1');
|
|
209
|
+
} else if ((!e.relatedTarget || !isFocusInside(e.currentTarget, e.relatedTarget)) && lastInteraction.isKeyboard()) {
|
|
172
210
|
var _row;
|
|
173
211
|
if (_this.focusedCell[0] === -1 && _this.focusedCell[1] === -1) {
|
|
174
212
|
_this.initFocusableCell();
|
|
@@ -179,9 +217,28 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
179
217
|
_this.initFocusableCell();
|
|
180
218
|
row = _this.getRow(_this.focusedCell[0]);
|
|
181
219
|
}
|
|
220
|
+
if (!row && _this.asProps.virtualScroll) {
|
|
221
|
+
var _this$tableRef$curren4;
|
|
222
|
+
var firstAvailableCell = (_this$tableRef$curren4 = _this.tableRef.current) === null || _this$tableRef$curren4 === void 0 ? void 0 : _this$tableRef$curren4.querySelector("[role=\"gridcell\"]");
|
|
223
|
+
var firstAvailableRow = firstAvailableCell === null || firstAvailableCell === void 0 ? void 0 : firstAvailableCell.parentElement;
|
|
224
|
+
if (firstAvailableCell && firstAvailableRow) {
|
|
225
|
+
var _Number, _Number2;
|
|
226
|
+
var colIndex = ((_Number = Number(firstAvailableCell.getAttribute('aria-colindex'))) !== null && _Number !== void 0 ? _Number : 1) - 1;
|
|
227
|
+
var rowIndex = ((_Number2 = Number(firstAvailableRow.getAttribute('aria-rowindex'))) !== null && _Number2 !== void 0 ? _Number2 : 1) - 1;
|
|
228
|
+
_this.focusedCell[0] = rowIndex;
|
|
229
|
+
_this.focusedCell[1] = colIndex;
|
|
230
|
+
row = firstAvailableRow;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
182
233
|
var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll('[role=gridcell], [role=columnheader]').item(_this.focusedCell[1]);
|
|
183
234
|
cell === null || cell === void 0 ? void 0 : cell.removeAttribute('inert');
|
|
184
|
-
cell instanceof HTMLElement
|
|
235
|
+
if (cell instanceof HTMLElement) {
|
|
236
|
+
if (hasParent(e.target, cell)) {
|
|
237
|
+
e.target.focus();
|
|
238
|
+
} else {
|
|
239
|
+
cell.focus();
|
|
240
|
+
}
|
|
241
|
+
}
|
|
185
242
|
e.currentTarget.setAttribute('tabIndex', '-1');
|
|
186
243
|
}
|
|
187
244
|
});
|
|
@@ -196,14 +253,23 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
196
253
|
_defineProperty(_assertThisInitialized(_this), "handleMouseMove", function () {
|
|
197
254
|
_this.setInert(false);
|
|
198
255
|
});
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
256
|
+
if (props.children) {
|
|
257
|
+
_this.columns = _this.calculateColumns();
|
|
258
|
+
} else {
|
|
259
|
+
var cols = _this.calculateColumnsFromConfig();
|
|
260
|
+
_this.columns = cols[0];
|
|
261
|
+
_this.treeColumns = cols[1];
|
|
262
|
+
}
|
|
204
263
|
return _this;
|
|
205
264
|
}
|
|
206
265
|
_createClass(DataTableRoot, [{
|
|
266
|
+
key: "uncontrolledProps",
|
|
267
|
+
value: function uncontrolledProps() {
|
|
268
|
+
return {
|
|
269
|
+
expandedRows: []
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
}, {
|
|
207
273
|
key: "componentDidMount",
|
|
208
274
|
value: function componentDidMount() {
|
|
209
275
|
this.forceUpdate();
|
|
@@ -211,16 +277,40 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
211
277
|
}, {
|
|
212
278
|
key: "totalRows",
|
|
213
279
|
get: function get() {
|
|
214
|
-
var
|
|
215
|
-
|
|
280
|
+
var _this$asProps = this.asProps,
|
|
281
|
+
totalRows = _this$asProps.totalRows,
|
|
282
|
+
expandedRows = _this$asProps.expandedRows,
|
|
283
|
+
data = _this$asProps.data;
|
|
284
|
+
var expandedRowsCount = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.reduce(function (acc, rowIndex) {
|
|
285
|
+
var dtRow = data[rowIndex];
|
|
286
|
+
var expandedRows = dtRow[ACCORDION];
|
|
287
|
+
if (Array.isArray(expandedRows)) {
|
|
288
|
+
acc = acc + expandedRows.length;
|
|
289
|
+
} else {
|
|
290
|
+
acc = acc + 1;
|
|
291
|
+
}
|
|
292
|
+
return acc;
|
|
293
|
+
}, 0);
|
|
294
|
+
if (totalRows !== undefined) {
|
|
295
|
+
return totalRows + expandedRowsCount;
|
|
296
|
+
}
|
|
297
|
+
var rows = data.reduce(function (acc, item) {
|
|
298
|
+
acc = acc + 1;
|
|
299
|
+
if (item[ROW_GROUP]) {
|
|
300
|
+
acc = acc + item[ROW_GROUP].length;
|
|
301
|
+
}
|
|
302
|
+
return acc;
|
|
303
|
+
}, 0);
|
|
304
|
+
return rows + expandedRowsCount;
|
|
216
305
|
}
|
|
217
306
|
}, {
|
|
218
307
|
key: "gridSettings",
|
|
219
308
|
get: function get() {
|
|
220
|
-
var
|
|
309
|
+
var columns = this.columns;
|
|
310
|
+
var gridTemplateColumns = columns.map(function (c) {
|
|
221
311
|
return c.gridColumnWidth;
|
|
222
312
|
});
|
|
223
|
-
var gridTemplateAreas =
|
|
313
|
+
var gridTemplateAreas = columns.map(function (c) {
|
|
224
314
|
return c.name;
|
|
225
315
|
});
|
|
226
316
|
return {
|
|
@@ -231,18 +321,20 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
231
321
|
}, {
|
|
232
322
|
key: "getHeadProps",
|
|
233
323
|
value: function getHeadProps() {
|
|
234
|
-
var _this$
|
|
235
|
-
use = _this$
|
|
236
|
-
compact = _this$
|
|
237
|
-
sort = _this$
|
|
238
|
-
onSortChange = _this$
|
|
239
|
-
getI18nText = _this$
|
|
240
|
-
uid = _this$
|
|
324
|
+
var _this$asProps2 = this.asProps,
|
|
325
|
+
use = _this$asProps2.use,
|
|
326
|
+
compact = _this$asProps2.compact,
|
|
327
|
+
sort = _this$asProps2.sort,
|
|
328
|
+
onSortChange = _this$asProps2.onSortChange,
|
|
329
|
+
getI18nText = _this$asProps2.getI18nText,
|
|
330
|
+
uid = _this$asProps2.uid,
|
|
331
|
+
headerProps = _this$asProps2.headerProps;
|
|
241
332
|
var _this$gridSettings = this.gridSettings,
|
|
242
333
|
gridTemplateColumns = _this$gridSettings.gridTemplateColumns,
|
|
243
334
|
gridTemplateAreas = _this$gridSettings.gridTemplateAreas;
|
|
244
|
-
return {
|
|
335
|
+
return _objectSpread({
|
|
245
336
|
columns: this.columns,
|
|
337
|
+
treeColumns: this.treeColumns,
|
|
246
338
|
use: use,
|
|
247
339
|
tableRef: this.tableRef,
|
|
248
340
|
compact: Boolean(compact),
|
|
@@ -254,50 +346,52 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
254
346
|
gridAreaGroupMap: this.gridAreaGroupMap,
|
|
255
347
|
gridTemplateColumns: gridTemplateColumns,
|
|
256
348
|
gridTemplateAreas: gridTemplateAreas
|
|
257
|
-
};
|
|
349
|
+
}, headerProps);
|
|
258
350
|
}
|
|
259
351
|
}, {
|
|
260
352
|
key: "getBodyProps",
|
|
261
353
|
value: function getBodyProps() {
|
|
262
|
-
var
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
354
|
+
var _this$asProps3 = this.asProps,
|
|
355
|
+
use = _this$asProps3.use,
|
|
356
|
+
compact = _this$asProps3.compact,
|
|
357
|
+
loading = _this$asProps3.loading,
|
|
358
|
+
getI18nText = _this$asProps3.getI18nText,
|
|
359
|
+
expandedRows = _this$asProps3.expandedRows,
|
|
360
|
+
virtualScroll = _this$asProps3.virtualScroll,
|
|
361
|
+
data = _this$asProps3.data,
|
|
362
|
+
uid = _this$asProps3.uid,
|
|
363
|
+
renderCell = _this$asProps3.renderCell;
|
|
269
364
|
var _this$gridSettings2 = this.gridSettings,
|
|
270
365
|
gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
|
|
271
366
|
gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
|
|
272
|
-
var header = this.headerRef.current;
|
|
273
|
-
var headerHeight = Array.from((_header$children = header === null || header === void 0 ? void 0 : header.children) !== null && _header$children !== void 0 ? _header$children : []).reduce(function (maxHeight, col) {
|
|
274
|
-
var rect = col.getBoundingClientRect();
|
|
275
|
-
if (rect.height > maxHeight) {
|
|
276
|
-
maxHeight = rect.height;
|
|
277
|
-
}
|
|
278
|
-
return maxHeight;
|
|
279
|
-
}, 0);
|
|
280
367
|
return {
|
|
281
368
|
columns: this.columns,
|
|
282
|
-
|
|
369
|
+
data: data,
|
|
283
370
|
use: use,
|
|
284
|
-
scrollRef: this.scrollBodyRef,
|
|
285
|
-
headerRows: this.columns.some(function (column) {
|
|
286
|
-
return Boolean(column.parent);
|
|
287
|
-
}) ? 2 : 1,
|
|
288
371
|
compact: Boolean(compact),
|
|
289
372
|
gridTemplateColumns: gridTemplateColumns,
|
|
290
373
|
gridTemplateAreas: gridTemplateAreas,
|
|
291
374
|
loading: loading,
|
|
292
|
-
headerHeight:
|
|
293
|
-
getI18nText: getI18nText
|
|
375
|
+
headerHeight: this.getTopScrollOffset(),
|
|
376
|
+
getI18nText: getI18nText,
|
|
377
|
+
expandedRows: expandedRows,
|
|
378
|
+
onExpandRow: this.onExpandRow,
|
|
379
|
+
spinnerRef: this.spinnerRef,
|
|
380
|
+
scrollTop: this.state.scrollTop,
|
|
381
|
+
scrollDirection: this.state.scrollDirection,
|
|
382
|
+
tableContainerRef: this.tableContainerRef,
|
|
383
|
+
tableRef: this.tableRef,
|
|
384
|
+
virtualScroll: virtualScroll,
|
|
385
|
+
hasGroups: this.hasGroups,
|
|
386
|
+
uid: uid,
|
|
387
|
+
renderCell: renderCell
|
|
294
388
|
};
|
|
295
389
|
}
|
|
296
390
|
}, {
|
|
297
391
|
key: "setInert",
|
|
298
392
|
value: function setInert(value) {
|
|
299
|
-
var _this$tableRef$
|
|
300
|
-
var cells = (_this$tableRef$
|
|
393
|
+
var _this$tableRef$curren5;
|
|
394
|
+
var cells = (_this$tableRef$curren5 = this.tableRef.current) === null || _this$tableRef$curren5 === void 0 ? void 0 : _this$tableRef$curren5.querySelectorAll('[role=gridcell], [role=columnheader]');
|
|
301
395
|
cells === null || cells === void 0 ? void 0 : cells.forEach(function (cell) {
|
|
302
396
|
if (value === true) {
|
|
303
397
|
cell.setAttribute('inert', '');
|
|
@@ -310,17 +404,22 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
310
404
|
key: "render",
|
|
311
405
|
value: function render() {
|
|
312
406
|
var _ref = this.asProps,
|
|
313
|
-
_ref2
|
|
407
|
+
_ref2,
|
|
408
|
+
_ref3,
|
|
409
|
+
_ref4;
|
|
314
410
|
var SDataTable = Box;
|
|
315
|
-
var _this$
|
|
316
|
-
Children = _this$
|
|
317
|
-
styles = _this$
|
|
318
|
-
w = _this$
|
|
319
|
-
wMax = _this$
|
|
320
|
-
wMin = _this$
|
|
321
|
-
h = _this$
|
|
322
|
-
hMax = _this$
|
|
323
|
-
hMin = _this$
|
|
411
|
+
var _this$asProps4 = this.asProps,
|
|
412
|
+
Children = _this$asProps4.Children,
|
|
413
|
+
styles = _this$asProps4.styles,
|
|
414
|
+
w = _this$asProps4.w,
|
|
415
|
+
wMax = _this$asProps4.wMax,
|
|
416
|
+
wMin = _this$asProps4.wMin,
|
|
417
|
+
h = _this$asProps4.h,
|
|
418
|
+
hMax = _this$asProps4.hMax,
|
|
419
|
+
hMin = _this$asProps4.hMin,
|
|
420
|
+
virtualScroll = _this$asProps4.virtualScroll,
|
|
421
|
+
children = _this$asProps4.children,
|
|
422
|
+
headerProps = _this$asProps4.headerProps;
|
|
324
423
|
var _getScrollOffsetValue = getScrollOffsetValue(this.columns),
|
|
325
424
|
_getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
|
|
326
425
|
offsetLeftSum = _getScrollOffsetValue2[0],
|
|
@@ -329,13 +428,29 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
329
428
|
gridTemplateColumns = _this$gridSettings3.gridTemplateColumns,
|
|
330
429
|
gridTemplateAreas = _this$gridSettings3.gridTemplateAreas;
|
|
331
430
|
var Head = findComponent(Children, ['DataTable.Head']);
|
|
332
|
-
var
|
|
431
|
+
var headerPropsToCheck = headerProps !== null && headerProps !== void 0 ? headerProps : Head === null || Head === void 0 ? void 0 : Head.props;
|
|
432
|
+
var topOffset = headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.sticky || headerPropsToCheck !== null && headerPropsToCheck !== void 0 && headerPropsToCheck.withScrollBar ? this.getTopScrollOffset() : undefined;
|
|
333
433
|
var width = w !== null && w !== void 0 ? w : this.columns.some(function (c) {
|
|
334
434
|
return c.gridColumnWidth === 'auto' || c.gridColumnWidth === '1fr';
|
|
335
435
|
}) ? '100%' : undefined;
|
|
436
|
+
var gridTemplateRows = undefined;
|
|
437
|
+
if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
|
|
438
|
+
gridTemplateRows = "auto auto repeat(".concat(this.totalRows, ", minmax(").concat(virtualScroll.rowHeight, "px, auto)");
|
|
439
|
+
}
|
|
440
|
+
var scrollDirection = undefined;
|
|
441
|
+
var hasWidthSettings = Boolean((_ref3 = w !== null && w !== void 0 ? w : wMax) !== null && _ref3 !== void 0 ? _ref3 : wMin);
|
|
442
|
+
var hasHeightSettings = Boolean((_ref4 = h !== null && h !== void 0 ? h : hMax) !== null && _ref4 !== void 0 ? _ref4 : hMin);
|
|
443
|
+
if (hasWidthSettings && !hasHeightSettings) {
|
|
444
|
+
scrollDirection = 'horizontal';
|
|
445
|
+
} else if (hasHeightSettings && !hasWidthSettings) {
|
|
446
|
+
scrollDirection = 'vertical';
|
|
447
|
+
} else if (hasWidthSettings && hasHeightSettings) {
|
|
448
|
+
scrollDirection = 'both';
|
|
449
|
+
}
|
|
336
450
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
|
|
337
451
|
"leftOffset": offsetLeftSum,
|
|
338
452
|
"rightOffset": offsetRightSum,
|
|
453
|
+
"topOffset": topOffset,
|
|
339
454
|
"w": width,
|
|
340
455
|
"wMax": wMax,
|
|
341
456
|
"wMin": wMin,
|
|
@@ -344,9 +459,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
344
459
|
"hMin": hMin,
|
|
345
460
|
"shadow": true,
|
|
346
461
|
"container": this.tableContainerRef,
|
|
347
|
-
"styles": scrollStyles
|
|
462
|
+
"styles": scrollStyles,
|
|
463
|
+
"onScroll": this.handleScroll,
|
|
464
|
+
"disableAutofocusToContent": true
|
|
348
465
|
}), /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
|
349
466
|
tabIndex: -1
|
|
467
|
+
// @ts-ignore
|
|
468
|
+
,
|
|
469
|
+
scrollDirection: scrollDirection
|
|
350
470
|
}, /*#__PURE__*/React.createElement(SDataTable, _ref2.cn("SDataTable", _objectSpread({}, _assignProps({
|
|
351
471
|
"ref": forkRef(this.tableRef, this.tableContainerRef),
|
|
352
472
|
"role": 'grid',
|
|
@@ -359,6 +479,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
359
479
|
"aria-colcount": this.columns.length,
|
|
360
480
|
"gridTemplateColumns": gridTemplateColumns.join(' '),
|
|
361
481
|
"gridTemplateAreas": gridTemplateAreas.join(' '),
|
|
482
|
+
"gridTemplateRows": gridTemplateRows,
|
|
362
483
|
"w": '100%',
|
|
363
484
|
"use:data": undefined,
|
|
364
485
|
"use:w": undefined,
|
|
@@ -367,10 +488,16 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
367
488
|
"use:h": undefined,
|
|
368
489
|
"use:hMax": undefined,
|
|
369
490
|
"use:hMin": undefined
|
|
370
|
-
}, _ref))),
|
|
371
|
-
orientation: "horizontal"
|
|
491
|
+
}, _ref))), children ? /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataTable.Head, null), /*#__PURE__*/React.createElement(DataTable.Body, null)))), (headerPropsToCheck === null || headerPropsToCheck === void 0 ? void 0 : headerPropsToCheck.withScrollBar) && topOffset && /*#__PURE__*/React.createElement(ScrollArea.Bar, {
|
|
492
|
+
orientation: "horizontal",
|
|
493
|
+
top: topOffset - SCROLL_BAR_HEIGHT,
|
|
494
|
+
zIndex: 3
|
|
495
|
+
}), /*#__PURE__*/React.createElement(ScrollArea.Bar, {
|
|
496
|
+
orientation: "horizontal",
|
|
497
|
+
zIndex: 2
|
|
372
498
|
}), /*#__PURE__*/React.createElement(ScrollArea.Bar, {
|
|
373
|
-
orientation: "vertical"
|
|
499
|
+
orientation: "vertical",
|
|
500
|
+
zIndex: 2
|
|
374
501
|
}));
|
|
375
502
|
}
|
|
376
503
|
}, {
|
|
@@ -381,14 +508,14 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
381
508
|
children = _this$props.children,
|
|
382
509
|
data = _this$props.data;
|
|
383
510
|
var HeadComponent = findComponent(children, ['Head']);
|
|
384
|
-
|
|
511
|
+
this.hasGroups = findComponent(HeadComponent.props.children, ['Head.Group']) !== undefined;
|
|
385
512
|
var columnIndex = 0;
|
|
386
513
|
var groupIndex = 0;
|
|
387
514
|
var gridColumnIndex = 1;
|
|
388
515
|
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
389
516
|
var columns = [];
|
|
390
517
|
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
391
|
-
var _columnElement$props$,
|
|
518
|
+
var _columnElement$props$, _ref5, _columnElement$props$2;
|
|
392
519
|
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' : undefined;
|
|
393
520
|
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' : undefined;
|
|
394
521
|
var column = {
|
|
@@ -407,34 +534,30 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
407
534
|
fixed: (_columnElement$props$ = columnElement.props.fixed) !== null && _columnElement$props$ !== void 0 ? _columnElement$props$ : parent === null || parent === void 0 ? void 0 : parent.props.fixed,
|
|
408
535
|
calculatedWidth: 0,
|
|
409
536
|
calculatedHeight: 0,
|
|
410
|
-
borders: (
|
|
537
|
+
borders: (_ref5 = (_columnElement$props$2 = columnElement.props.borders) !== null && _columnElement$props$2 !== void 0 ? _columnElement$props$2 : leftBordersFromParent) !== null && _ref5 !== void 0 ? _ref5 : rightBordersFromParent,
|
|
411
538
|
parent: parent,
|
|
412
539
|
flexWrap: columnElement.props.flexWrap,
|
|
413
540
|
alignItems: columnElement.props.alignItems,
|
|
414
541
|
alignContent: columnElement.props.alignContent,
|
|
415
542
|
justifyContent: columnElement.props.justifyContent
|
|
416
543
|
};
|
|
417
|
-
|
|
418
|
-
// this.gridAreaColumnMap.set(
|
|
419
|
-
// columnIndex,
|
|
420
|
-
// `1 / ${gridColumnIndex} / ${hasGroup ? '3' : '2'} / ${gridColumnIndex + 1}`,
|
|
421
|
-
// );
|
|
422
|
-
// columnIndex++;
|
|
423
|
-
// gridColumnIndex++;
|
|
424
|
-
|
|
425
544
|
return column;
|
|
426
|
-
// columns.push(column);
|
|
427
545
|
};
|
|
428
|
-
|
|
546
|
+
var childIsColumn = function childIsColumn(child) {
|
|
547
|
+
return child.type === Head.Column;
|
|
548
|
+
};
|
|
549
|
+
var childIsGroup = function childIsGroup(child) {
|
|
550
|
+
return child.type === Head.Group;
|
|
551
|
+
};
|
|
429
552
|
React.Children.forEach(HeadComponent.props.children, function (child, i) {
|
|
430
553
|
if (! /*#__PURE__*/React.isValidElement(child)) return;
|
|
431
|
-
if (child
|
|
554
|
+
if (childIsColumn(child)) {
|
|
432
555
|
var col = makeColumn(child);
|
|
433
|
-
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(
|
|
556
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this2.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
434
557
|
columnIndex++;
|
|
435
558
|
gridColumnIndex++;
|
|
436
559
|
columns.push(col);
|
|
437
|
-
} else if (child
|
|
560
|
+
} else if (childIsGroup(child)) {
|
|
438
561
|
var Group = child;
|
|
439
562
|
var childCount = React.Children.count(child.props.children);
|
|
440
563
|
var initGridColumn = gridColumnIndex;
|
|
@@ -462,82 +585,117 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
462
585
|
}
|
|
463
586
|
});
|
|
464
587
|
return columns.filter(Boolean);
|
|
465
|
-
|
|
466
|
-
// return Columns.map((c) => {
|
|
467
|
-
// const column = {
|
|
468
|
-
// name: c.props.name,
|
|
469
|
-
// ref: (node: HTMLElement | null) => {
|
|
470
|
-
// if (node) {
|
|
471
|
-
// const calculatedWidth = node.getBoundingClientRect().width;
|
|
472
|
-
// column.calculatedWidth = calculatedWidth;
|
|
473
|
-
// }
|
|
474
|
-
//
|
|
475
|
-
// return { current: node };
|
|
476
|
-
// },
|
|
477
|
-
// gridColumnWidth: calculateGridTemplateColumn(c),
|
|
478
|
-
// fixed: c.props.fixed,
|
|
479
|
-
// calculatedWidth: 0,
|
|
480
|
-
// };
|
|
481
|
-
//
|
|
482
|
-
// return column;
|
|
483
|
-
// });
|
|
484
|
-
|
|
485
|
-
// return columns;
|
|
486
588
|
}
|
|
487
589
|
}, {
|
|
488
|
-
key: "
|
|
489
|
-
value: function
|
|
590
|
+
key: "calculateColumnsFromConfig",
|
|
591
|
+
value: function calculateColumnsFromConfig() {
|
|
490
592
|
var _this3 = this;
|
|
491
|
-
var
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
593
|
+
var _this$props2 = this.props,
|
|
594
|
+
columns = _this$props2.columns,
|
|
595
|
+
data = _this$props2.data;
|
|
596
|
+
this.hasGroups = columns.some(function (column) {
|
|
597
|
+
return 'columns' in column;
|
|
598
|
+
});
|
|
599
|
+
var columnIndex = 0;
|
|
600
|
+
var groupIndex = 0;
|
|
601
|
+
var gridColumnIndex = 1;
|
|
602
|
+
var calculateGridTemplateColumn = this.calculateGridTemplateColumn.bind(this);
|
|
603
|
+
var calculatedColumns = [];
|
|
604
|
+
var treeColumns = [];
|
|
605
|
+
var makeColumn = function makeColumn(columnElement, parent, isFirst, isLast) {
|
|
606
|
+
var _columnElement$fixed, _ref6, _columnElement$border;
|
|
607
|
+
var leftBordersFromParent = isFirst && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'left') ? 'left' : undefined;
|
|
608
|
+
var rightBordersFromParent = isLast && ((parent === null || parent === void 0 ? void 0 : parent.borders) === 'both' || (parent === null || parent === void 0 ? void 0 : parent.borders) === 'right') ? 'right' : undefined;
|
|
609
|
+
var column = _objectSpread({
|
|
610
|
+
name: childIsColumn(columnElement) ? columnElement.name : '',
|
|
611
|
+
// @ts-ignore
|
|
612
|
+
ref: function ref(node) {
|
|
613
|
+
if (node) {
|
|
614
|
+
var calculatedWidth = node.getBoundingClientRect().width;
|
|
615
|
+
var calculatedHeight = node.getBoundingClientRect().height;
|
|
616
|
+
column.calculatedWidth = calculatedWidth;
|
|
617
|
+
column.calculatedHeight = calculatedHeight;
|
|
618
|
+
}
|
|
619
|
+
if (this !== null && this !== void 0 && this.ref) {
|
|
620
|
+
this.ref.current = node;
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
gridColumnWidth: childIsColumn(columnElement) ? calculateGridTemplateColumn(columnElement) : '',
|
|
624
|
+
fixed: (_columnElement$fixed = columnElement.fixed) !== null && _columnElement$fixed !== void 0 ? _columnElement$fixed : parent === null || parent === void 0 ? void 0 : parent.fixed,
|
|
625
|
+
calculatedWidth: 0,
|
|
626
|
+
calculatedHeight: 0,
|
|
627
|
+
borders: (_ref6 = (_columnElement$border = columnElement.borders) !== null && _columnElement$border !== void 0 ? _columnElement$border : leftBordersFromParent) !== null && _ref6 !== void 0 ? _ref6 : rightBordersFromParent,
|
|
628
|
+
parent: parent
|
|
629
|
+
}, columnElement);
|
|
630
|
+
return column;
|
|
631
|
+
};
|
|
632
|
+
var childIsColumn = function childIsColumn(child) {
|
|
633
|
+
return !('columns' in child);
|
|
512
634
|
};
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
635
|
+
var childIsGroup = function childIsGroup(child) {
|
|
636
|
+
return 'columns' in child;
|
|
637
|
+
};
|
|
638
|
+
columns.forEach(function (child, i) {
|
|
639
|
+
if (childIsColumn(child)) {
|
|
640
|
+
var col = makeColumn(child);
|
|
641
|
+
col.gridArea = "1 / ".concat(gridColumnIndex, " / ").concat(_this3.hasGroups ? '3' : '2', " / ").concat(gridColumnIndex + 1);
|
|
642
|
+
columnIndex++;
|
|
643
|
+
gridColumnIndex++;
|
|
644
|
+
calculatedColumns.push(col);
|
|
645
|
+
treeColumns.push(col);
|
|
646
|
+
} else if (childIsGroup(child)) {
|
|
647
|
+
var Group = makeColumn(child);
|
|
648
|
+
var childCount = child.columns.length;
|
|
649
|
+
var initGridColumn = gridColumnIndex;
|
|
650
|
+
Group.columns = [];
|
|
651
|
+
Group.children = child.children;
|
|
652
|
+
child.columns.forEach(function (child, j) {
|
|
653
|
+
var _Group$columns;
|
|
654
|
+
var isFirst = j === 0;
|
|
655
|
+
var isLast = j === childCount - 1;
|
|
656
|
+
var col = makeColumn(child, Group, isFirst, isLast);
|
|
657
|
+
if (i === 0 && j === 0 && data.some(function (d) {
|
|
658
|
+
return d[ACCORDION];
|
|
659
|
+
})) {
|
|
660
|
+
gridColumnIndex++;
|
|
661
|
+
col.gridArea = "2 / ".concat(gridColumnIndex - 1, " / 3 / ").concat(gridColumnIndex + 1);
|
|
526
662
|
} else {
|
|
527
|
-
|
|
663
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
528
664
|
}
|
|
665
|
+
col.gridArea = "2 / ".concat(gridColumnIndex, " / 3 / ").concat(gridColumnIndex + 1);
|
|
666
|
+
columnIndex++;
|
|
667
|
+
gridColumnIndex++;
|
|
668
|
+
calculatedColumns.push(col);
|
|
669
|
+
(_Group$columns = Group.columns) === null || _Group$columns === void 0 ? void 0 : _Group$columns.push(col);
|
|
529
670
|
});
|
|
530
|
-
|
|
531
|
-
|
|
671
|
+
treeColumns.push(Group);
|
|
672
|
+
_this3.gridAreaGroupMap.set(groupIndex, "1 / ".concat(initGridColumn, " / 2 / ").concat(gridColumnIndex));
|
|
673
|
+
groupIndex++;
|
|
532
674
|
}
|
|
533
675
|
});
|
|
534
|
-
return
|
|
676
|
+
return [calculatedColumns, treeColumns];
|
|
535
677
|
}
|
|
536
678
|
}, {
|
|
537
679
|
key: "calculateGridTemplateColumn",
|
|
538
680
|
value: function calculateGridTemplateColumn(c) {
|
|
539
|
-
var
|
|
540
|
-
return (
|
|
681
|
+
var _ref7;
|
|
682
|
+
return (_ref7 = /*#__PURE__*/React.isValidElement(c) ? c.props.gtcWidth : c.gtcWidth) !== null && _ref7 !== void 0 ? _ref7 : this.props.defaultGridTemplateColumnWidth;
|
|
683
|
+
}
|
|
684
|
+
}, {
|
|
685
|
+
key: "getTopScrollOffset",
|
|
686
|
+
value: function getTopScrollOffset() {
|
|
687
|
+
var _this$headerRef$curre;
|
|
688
|
+
var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
|
|
689
|
+
var height = 0;
|
|
690
|
+
for (var i = 0; i < ((_header$length = header === null || header === void 0 ? void 0 : header.length) !== null && _header$length !== void 0 ? _header$length : 0); i++) {
|
|
691
|
+
var _header$length, _header$item;
|
|
692
|
+
var columnHeight = header === null || header === void 0 ? void 0 : (_header$item = header.item(i)) === null || _header$item === void 0 ? void 0 : _header$item.getBoundingClientRect().height;
|
|
693
|
+
if (columnHeight) {
|
|
694
|
+
height = columnHeight;
|
|
695
|
+
break;
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
return height;
|
|
541
699
|
}
|
|
542
700
|
}]);
|
|
543
701
|
return DataTableRoot;
|
|
@@ -548,7 +706,7 @@ _defineProperty(DataTableRoot, "enhance", [uniqueIDEnhancement(), i18nEnhance(lo
|
|
|
548
706
|
_defineProperty(DataTableRoot, "defaultProps", {
|
|
549
707
|
use: 'primary',
|
|
550
708
|
defaultGridTemplateColumnWidth: 'auto',
|
|
551
|
-
|
|
709
|
+
defaultExpandedRows: []
|
|
552
710
|
});
|
|
553
711
|
export var DataTable = createComponent(DataTableRoot, {
|
|
554
712
|
Head: Head,
|