@semcore/data-table 16.3.2 → 16.4.0-prerelease.3
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 +14 -0
- package/lib/cjs/components/Body/Body.js +58 -53
- 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 +62 -107
- package/lib/cjs/components/Body/Cell.js.map +1 -1
- package/lib/cjs/components/Body/LimitOverlay.js +190 -0
- package/lib/cjs/components/Body/LimitOverlay.js.map +1 -0
- package/lib/cjs/components/Body/Row.js +161 -109
- 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 +94 -42
- package/lib/cjs/components/DataTable/DataTable.js +61 -41
- 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 +1 -0
- package/lib/cjs/components/Head/Column.js +45 -92
- package/lib/cjs/components/Head/Column.js.map +1 -1
- package/lib/cjs/components/Head/Group.js +38 -41
- package/lib/cjs/components/Head/Group.js.map +1 -1
- package/lib/cjs/components/Head/Head.js +38 -41
- package/lib/cjs/components/Head/Head.js.map +1 -1
- package/lib/cjs/enhancers/focusableCell.js +63 -0
- package/lib/cjs/enhancers/focusableCell.js.map +1 -0
- package/lib/es6/components/Body/Body.js +57 -52
- 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 +61 -106
- package/lib/es6/components/Body/Cell.js.map +1 -1
- package/lib/es6/components/Body/LimitOverlay.js +183 -0
- package/lib/es6/components/Body/LimitOverlay.js.map +1 -0
- package/lib/es6/components/Body/Row.js +160 -108
- package/lib/es6/components/Body/Row.js.map +1 -1
- package/lib/es6/components/Body/Row.types.js.map +1 -1
- package/lib/es6/components/Body/style.shadow.css +94 -42
- package/lib/es6/components/DataTable/DataTable.js +60 -40
- package/lib/es6/components/DataTable/DataTable.js.map +1 -1
- package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/es6/components/DataTable/dataTable.shadow.css +1 -0
- package/lib/es6/components/Head/Column.js +44 -91
- package/lib/es6/components/Head/Column.js.map +1 -1
- package/lib/es6/components/Head/Group.js +37 -40
- package/lib/es6/components/Head/Group.js.map +1 -1
- package/lib/es6/components/Head/Head.js +37 -40
- package/lib/es6/components/Head/Head.js.map +1 -1
- package/lib/es6/enhancers/focusableCell.js +56 -0
- package/lib/es6/enhancers/focusableCell.js.map +1 -0
- package/lib/esm/components/Body/Body.mjs +58 -56
- package/lib/esm/components/Body/Cell.mjs +62 -109
- package/lib/esm/components/Body/LimitOverlay.mjs +178 -0
- package/lib/esm/components/Body/Row.mjs +125 -85
- package/lib/esm/components/Body/style.shadow.css +94 -42
- package/lib/esm/components/DataTable/DataTable.mjs +59 -42
- package/lib/esm/components/DataTable/dataTable.shadow.css +1 -0
- package/lib/esm/components/Head/Column.mjs +45 -94
- package/lib/esm/components/Head/Group.mjs +38 -43
- package/lib/esm/components/Head/Head.mjs +38 -43
- package/lib/esm/enhancers/focusableCell.mjs +59 -0
- package/lib/types/components/Body/Body.types.d.ts +2 -1
- package/lib/types/components/Body/LimitOverlay.d.ts +17 -0
- package/lib/types/components/Body/Row.d.ts +1 -0
- package/lib/types/components/Body/Row.types.d.ts +3 -0
- package/lib/types/components/DataTable/DataTable.types.d.ts +19 -0
- package/lib/types/components/Head/Column.d.ts +5 -4
- package/lib/types/enhancers/focusableCell.d.ts +9 -0
- package/package.json +22 -22
|
@@ -2,15 +2,12 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
|
-
import
|
|
6
|
-
import _isNativeReflectConstruct from "@babel/runtime/helpers/isNativeReflectConstruct";
|
|
7
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _callSuper from "@babel/runtime/helpers/callSuper";
|
|
8
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
9
7
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
8
|
import { sstyled as _sstyled2 } from "@semcore/core";
|
|
11
9
|
import { sstyled as _sstyled } from "@semcore/core";
|
|
12
10
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
13
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
14
11
|
import { Box, ScreenReaderOnly, ScrollArea } from '@semcore/base-components';
|
|
15
12
|
import { Component, createComponent, lastInteraction, Root, sstyled } from '@semcore/core';
|
|
16
13
|
import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
|
|
@@ -24,38 +21,38 @@ import { isFocusInside, hasFocusableIn } from '@semcore/core/lib/utils/use/useFo
|
|
|
24
21
|
import { NoData } from '@semcore/widget-empty';
|
|
25
22
|
import * as React from 'react';
|
|
26
23
|
/*!__reshadow-styles__:"./dataTable.shadow.css"*/
|
|
27
|
-
var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".
|
|
24
|
+
var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SDataTable_z1x46_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content;grid-auto-rows:min-content}.___SDataTable_z1x46_gg_.__isDataEmpty_z1x46_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_z1x46_gg_.__gridTemplateColumns_z1x46_gg_{grid-template-columns:var(--gridTemplateColumns_z1x46)}.___SDataTable_z1x46_gg_.__gridTemplateAreas_z1x46_gg_{grid-template-areas:var(--gridTemplateAreas_z1x46)}.___SDataTable_z1x46_gg_.__gridTemplateRows_z1x46_gg_{grid-template-rows:var(--gridTemplateRows_z1x46)}", /*__inner_css_end__*/"z1x46_gg_"),
|
|
28
25
|
/*__reshadow_css_end__*/
|
|
29
26
|
{
|
|
30
|
-
"__SDataTable": "
|
|
31
|
-
"_isDataEmpty": "
|
|
32
|
-
"_gridTemplateColumns": "
|
|
33
|
-
"--gridTemplateColumns": "--
|
|
34
|
-
"_gridTemplateAreas": "
|
|
35
|
-
"--gridTemplateAreas": "--
|
|
36
|
-
"_gridTemplateRows": "
|
|
37
|
-
"--gridTemplateRows": "--
|
|
27
|
+
"__SDataTable": "___SDataTable_z1x46_gg_",
|
|
28
|
+
"_isDataEmpty": "__isDataEmpty_z1x46_gg_",
|
|
29
|
+
"_gridTemplateColumns": "__gridTemplateColumns_z1x46_gg_",
|
|
30
|
+
"--gridTemplateColumns": "--gridTemplateColumns_z1x46",
|
|
31
|
+
"_gridTemplateAreas": "__gridTemplateAreas_z1x46_gg_",
|
|
32
|
+
"--gridTemplateAreas": "--gridTemplateAreas_z1x46",
|
|
33
|
+
"_gridTemplateRows": "__gridTemplateRows_z1x46_gg_",
|
|
34
|
+
"--gridTemplateRows": "--gridTemplateRows_z1x46"
|
|
38
35
|
});
|
|
39
36
|
/*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
40
|
-
var scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".
|
|
37
|
+
var scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SScrollArea_1dxkn_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_{overflow:visible;overflow:initial}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_both_1dxkn_gg_{overflow:auto}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_both_1dxkn_gg_.__loading_1dxkn_gg_,.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_horizontal_1dxkn_gg_.__loading_1dxkn_gg_,.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_vertical_1dxkn_gg_.__loading_1dxkn_gg_{overflow:hidden}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_horizontal_1dxkn_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_._scrollDirection_vertical_1dxkn_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_.__headerHeight_1dxkn_gg_{scroll-padding-top:var(--headerHeight_1dxkn)}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_.__leftScrollPadding_1dxkn_gg_{scroll-padding-left:var(--leftScrollPadding_1dxkn)}.___SScrollArea_1dxkn_gg_ .___SContainer_1dxkn_gg_.__rightScrollPadding_1dxkn_gg_{scroll-padding-right:var(--rightScrollPadding_1dxkn)}.___SScrollArea_1dxkn_gg_ .___SShadowHorizontal_1dxkn_gg_::before,.___SScrollArea_1dxkn_gg_ .___SShadowHorizontal_1dxkn_gg_:after,.___SScrollArea_1dxkn_gg_ .___SShadowVertical_1dxkn_gg_::after{z-index:20}.___SScrollArea_1dxkn_gg_ .___SShadowHorizontal_1dxkn_gg_.__leftOffset_1dxkn_gg_::before,.___SScrollArea_1dxkn_gg_ .___SShadowHorizontal_1dxkn_gg_.__rightOffset_1dxkn_gg_::after,.___SScrollArea_1dxkn_gg_ .___SShadowVertical_1dxkn_gg_::before{display:none}", /*__inner_css_end__*/"1dxkn_gg_"),
|
|
41
38
|
/*__reshadow_css_end__*/
|
|
42
39
|
{
|
|
43
|
-
"__SScrollArea": "
|
|
44
|
-
"__SContainer": "
|
|
45
|
-
"_scrollDirection_both": "
|
|
46
|
-
"_loading": "
|
|
47
|
-
"_scrollDirection_horizontal": "
|
|
48
|
-
"_scrollDirection_vertical": "
|
|
49
|
-
"_headerHeight": "
|
|
50
|
-
"--headerHeight": "--
|
|
51
|
-
"_leftScrollPadding": "
|
|
52
|
-
"--leftScrollPadding": "--
|
|
53
|
-
"_rightScrollPadding": "
|
|
54
|
-
"--rightScrollPadding": "--
|
|
55
|
-
"__SShadowVertical": "
|
|
56
|
-
"__SShadowHorizontal": "
|
|
57
|
-
"_leftOffset": "
|
|
58
|
-
"_rightOffset": "
|
|
40
|
+
"__SScrollArea": "___SScrollArea_1dxkn_gg_",
|
|
41
|
+
"__SContainer": "___SContainer_1dxkn_gg_",
|
|
42
|
+
"_scrollDirection_both": "_scrollDirection_both_1dxkn_gg_",
|
|
43
|
+
"_loading": "__loading_1dxkn_gg_",
|
|
44
|
+
"_scrollDirection_horizontal": "_scrollDirection_horizontal_1dxkn_gg_",
|
|
45
|
+
"_scrollDirection_vertical": "_scrollDirection_vertical_1dxkn_gg_",
|
|
46
|
+
"_headerHeight": "__headerHeight_1dxkn_gg_",
|
|
47
|
+
"--headerHeight": "--headerHeight_1dxkn",
|
|
48
|
+
"_leftScrollPadding": "__leftScrollPadding_1dxkn_gg_",
|
|
49
|
+
"--leftScrollPadding": "--leftScrollPadding_1dxkn",
|
|
50
|
+
"_rightScrollPadding": "__rightScrollPadding_1dxkn_gg_",
|
|
51
|
+
"--rightScrollPadding": "--rightScrollPadding_1dxkn",
|
|
52
|
+
"__SShadowVertical": "___SShadowVertical_1dxkn_gg_",
|
|
53
|
+
"__SShadowHorizontal": "___SShadowHorizontal_1dxkn_gg_",
|
|
54
|
+
"_leftOffset": "__leftOffset_1dxkn_gg_",
|
|
55
|
+
"_rightOffset": "__rightOffset_1dxkn_gg_"
|
|
59
56
|
});
|
|
60
57
|
import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
|
|
61
58
|
import { Body } from '../Body/Body';
|
|
@@ -199,6 +196,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
199
196
|
});
|
|
200
197
|
_defineProperty(_this, "changeFocusCell", function (rowIndex, colIndex, direction) {
|
|
201
198
|
var _this$tableRef$curren2, _this$tableRef$curren3;
|
|
199
|
+
var limit = _this.asProps.limit;
|
|
202
200
|
var hasFocusable = _this.hasFocusableInHeader();
|
|
203
201
|
var maxCol = _this.columns.length - 1;
|
|
204
202
|
var maxRow = _this.totalRows || 1;
|
|
@@ -217,7 +215,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
217
215
|
}
|
|
218
216
|
if (!changed) return;
|
|
219
217
|
var row = _this.getRow(newRow);
|
|
220
|
-
var cell = row === null || row === void 0 ? void 0 : row.querySelector(":scope > div > [role=gridcell][aria-colindex=\"".concat(newCol + 1, "\"], :scope > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"], :scope > div > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"]"));
|
|
218
|
+
var cell = row === null || row === void 0 ? void 0 : row.querySelector(":scope > div > [role=gridcell][aria-colindex=\"".concat(newCol + 1, "\"]:not([aria-hidden=\"true\"]), :scope > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"]:not([aria-hidden=\"true\"]), :scope > div > [role=columnheader][aria-colindex=\"").concat(newCol + 1, "\"]:not([aria-hidden=\"true\"])"));
|
|
221
219
|
if (cell instanceof HTMLElement && currentCell !== cell) {
|
|
222
220
|
_this.focusedCell = [newRow, newCol];
|
|
223
221
|
currentCell === null || currentCell === void 0 || currentCell.setAttribute('inert', '');
|
|
@@ -245,10 +243,24 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
245
243
|
if (((_currentCell$parentEl = currentCell.parentElement) === null || _currentCell$parentEl === void 0 || (_currentCell$parentEl = _currentCell$parentEl.parentElement) === null || _currentCell$parentEl === void 0 ? void 0 : _currentCell$parentEl.dataset.uiName) === 'Collapse') {
|
|
246
244
|
return;
|
|
247
245
|
}
|
|
248
|
-
|
|
246
|
+
// skipping x-axis movement of the focus within limit overlay and there is only limit by rows
|
|
247
|
+
if ((limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined && limit.fromColumn === undefined && newCol === limit.fromRow) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
249
250
|
// left/right
|
|
250
251
|
if (currentCell.dataset.groupedBy === 'colgroup' || Number((_currentCell$parentEl2 = currentCell.parentElement) === null || _currentCell$parentEl2 === void 0 || (_currentCell$parentEl2 = _currentCell$parentEl2.parentElement) === null || _currentCell$parentEl2 === void 0 ? void 0 : _currentCell$parentEl2.getAttribute('aria-rowindex')) === 2 || currentCell.parentElement && Array.from((_row$children = row === null || row === void 0 ? void 0 : row.children) !== null && _row$children !== void 0 ? _row$children : []).indexOf(currentCell.parentElement) > 0) {
|
|
251
|
-
|
|
252
|
+
if (direction === 'right' && (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined) {
|
|
253
|
+
if (newCol > limit.fromColumn) return;
|
|
254
|
+
rowI = direction === 'right' ? rowI - 1 : rowI;
|
|
255
|
+
} else {
|
|
256
|
+
colI = direction === 'left' ? colI - 1 : colI + 1;
|
|
257
|
+
}
|
|
258
|
+
} else if (direction === 'right' && ((limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined)) {
|
|
259
|
+
if (newCol === limit.fromColumn) {
|
|
260
|
+
rowI = rowI - 1;
|
|
261
|
+
} else {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
252
264
|
} else {
|
|
253
265
|
rowI = rowI - 1;
|
|
254
266
|
}
|
|
@@ -257,6 +269,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
257
269
|
if (currentCell.dataset.groupedBy === 'rowgroup' || Number(currentCell.getAttribute('aria-colindex')) === 1) {
|
|
258
270
|
rowI = direction === 'up' ? rowI - 1 : rowI + 1;
|
|
259
271
|
} else {
|
|
272
|
+
var _limit$fromRow;
|
|
273
|
+
var areLimitsDefined = (limit === null || limit === void 0 ? void 0 : limit.fromRow) !== undefined || (limit === null || limit === void 0 ? void 0 : limit.fromColumn) !== undefined;
|
|
274
|
+
if (areLimitsDefined && newRow > ((_limit$fromRow = limit === null || limit === void 0 ? void 0 : limit.fromRow) !== null && _limit$fromRow !== void 0 ? _limit$fromRow : 0) + 1) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
260
277
|
colI = colI - 1;
|
|
261
278
|
}
|
|
262
279
|
}
|
|
@@ -373,10 +390,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
373
390
|
row = firstAvailableRow;
|
|
374
391
|
}
|
|
375
392
|
}
|
|
376
|
-
var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll('[role=gridcell], [role=columnheader]').item(_this.focusedCell[1]);
|
|
393
|
+
var cell = (_row = row) === null || _row === void 0 ? void 0 : _row.querySelectorAll('[role=gridcell]:not([aria-hidden="true"]), [role=columnheader]:not([aria-hidden="true"])').item(_this.focusedCell[1]);
|
|
377
394
|
cell === null || cell === void 0 || cell.removeAttribute('inert');
|
|
378
395
|
if (cell instanceof HTMLElement) {
|
|
379
|
-
if (hasParent(e.target, cell)) {
|
|
396
|
+
if (hasParent(e.target, cell) && !e.target.dataset.skipTargetFocus) {
|
|
380
397
|
e.target.focus();
|
|
381
398
|
} else {
|
|
382
399
|
cell.focus();
|
|
@@ -568,9 +585,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
568
585
|
return totalRows + expandedRowsCount;
|
|
569
586
|
}
|
|
570
587
|
var rows = this.getRows().reduce(function (acc, item) {
|
|
571
|
-
acc = acc + 1;
|
|
572
588
|
if (Array.isArray(item)) {
|
|
573
589
|
acc = acc + item.length;
|
|
590
|
+
} else {
|
|
591
|
+
acc = acc + 1;
|
|
574
592
|
}
|
|
575
593
|
return acc;
|
|
576
594
|
}, 0);
|
|
@@ -680,8 +698,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
680
698
|
accordionMode = _this$asProps8.accordionMode,
|
|
681
699
|
rawData = _this$asProps8.data,
|
|
682
700
|
renderCellOverlay = _this$asProps8.renderCellOverlay,
|
|
683
|
-
|
|
684
|
-
variant = _this$asProps8.variant
|
|
701
|
+
limit = _this$asProps8.limit,
|
|
702
|
+
variant = _this$asProps8.variant,
|
|
703
|
+
totalRows = _this$asProps8.totalRows;
|
|
685
704
|
var _this$gridSettings2 = this.gridSettings,
|
|
686
705
|
gridTemplateColumns = _this$gridSettings2.gridTemplateColumns,
|
|
687
706
|
gridTemplateAreas = _this$gridSettings2.gridTemplateAreas;
|
|
@@ -723,8 +742,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
|
|
|
723
742
|
rawData: rawData,
|
|
724
743
|
shadowVertical: shadowVertical,
|
|
725
744
|
renderCellOverlay: renderCellOverlay,
|
|
726
|
-
|
|
727
|
-
variant: variant
|
|
745
|
+
limit: limit,
|
|
746
|
+
variant: variant,
|
|
747
|
+
totalRows: totalRows
|
|
728
748
|
};
|
|
729
749
|
}
|
|
730
750
|
}, {
|