@semcore/data-table 4.51.0-prerelease.1 → 4.51.0-prerelease.5

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.
Files changed (236) hide show
  1. package/lib/cjs/components/AccordionRows/AccordionRows.js +177 -0
  2. package/lib/cjs/components/AccordionRows/AccordionRows.js.map +1 -0
  3. package/lib/cjs/components/Body/Body.js +445 -0
  4. package/lib/cjs/components/Body/Body.js.map +1 -0
  5. package/lib/cjs/components/Body/Body.types.js +2 -0
  6. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  7. package/lib/cjs/components/Body/Cell.js +205 -0
  8. package/lib/cjs/components/Body/Cell.js.map +1 -0
  9. package/lib/cjs/components/Body/Cell.types.js +2 -0
  10. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  11. package/lib/cjs/components/Body/LimitOverlay.js +191 -0
  12. package/lib/cjs/components/Body/LimitOverlay.js.map +1 -0
  13. package/lib/cjs/components/Body/MergedCells.js +31 -0
  14. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  15. package/lib/cjs/components/Body/Row.js +630 -0
  16. package/lib/cjs/components/Body/Row.js.map +1 -0
  17. package/lib/cjs/components/Body/Row.types.js +2 -0
  18. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  19. package/lib/cjs/components/Body/RowGroup.js +118 -0
  20. package/lib/cjs/components/Body/RowGroup.js.map +1 -0
  21. package/lib/cjs/components/Body/style.shadow.css +367 -0
  22. package/lib/cjs/components/DataTable/DataTable.js +1303 -0
  23. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  24. package/lib/cjs/components/DataTable/DataTable.types.js +2 -0
  25. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  26. package/lib/cjs/components/DataTable/ScrollBars.js +63 -0
  27. package/lib/cjs/components/DataTable/ScrollBars.js.map +1 -0
  28. package/lib/cjs/components/DataTable/dataTable.shadow.css +43 -0
  29. package/lib/cjs/components/Head/Column.js +350 -0
  30. package/lib/cjs/components/Head/Column.js.map +1 -0
  31. package/lib/cjs/components/Head/Column.types.js +2 -0
  32. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  33. package/lib/cjs/components/Head/Group.js +116 -0
  34. package/lib/cjs/components/Head/Group.js.map +1 -0
  35. package/lib/cjs/components/Head/Group.type.js +2 -0
  36. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  37. package/lib/cjs/components/Head/Head.js +350 -0
  38. package/lib/cjs/components/Head/Head.js.map +1 -0
  39. package/lib/cjs/components/Head/Head.types.js +2 -0
  40. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  41. package/lib/cjs/components/Head/style.shadow.css +292 -0
  42. package/lib/cjs/components/RowSelector/RowsSelector.js +132 -0
  43. package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -0
  44. package/lib/cjs/components/RowSelector/SRAnnouncer.js +62 -0
  45. package/lib/cjs/components/RowSelector/SRAnnouncer.js.map +1 -0
  46. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js +39 -0
  47. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  48. package/lib/cjs/enhancers/focusableCell.js +76 -0
  49. package/lib/cjs/enhancers/focusableCell.js.map +1 -0
  50. package/lib/cjs/index.js +38 -15
  51. package/lib/cjs/index.js.map +1 -1
  52. package/lib/cjs/store/SelectableRows.js +211 -0
  53. package/lib/cjs/store/SelectableRows.js.map +1 -0
  54. package/lib/cjs/style/scroll-shadows.shadow.css +50 -5
  55. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +4 -5
  56. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  57. package/lib/cjs/translations/de.json +6 -1
  58. package/lib/cjs/translations/en.json +6 -1
  59. package/lib/cjs/translations/es.json +6 -1
  60. package/lib/cjs/translations/fr.json +6 -1
  61. package/lib/cjs/translations/it.json +6 -1
  62. package/lib/cjs/translations/ja.json +6 -1
  63. package/lib/cjs/translations/ko.json +6 -1
  64. package/lib/cjs/translations/nl.json +6 -1
  65. package/lib/cjs/translations/pl.json +6 -1
  66. package/lib/cjs/translations/pt.json +6 -1
  67. package/lib/cjs/translations/sv.json +6 -1
  68. package/lib/cjs/translations/tr.json +6 -1
  69. package/lib/cjs/translations/vi.json +6 -1
  70. package/lib/cjs/translations/zh.json +6 -1
  71. package/lib/es6/components/AccordionRows/AccordionRows.js +171 -0
  72. package/lib/es6/components/AccordionRows/AccordionRows.js.map +1 -0
  73. package/lib/es6/components/Body/Body.js +439 -0
  74. package/lib/es6/components/Body/Body.js.map +1 -0
  75. package/lib/es6/components/Body/Body.types.js +2 -0
  76. package/lib/es6/components/Body/Body.types.js.map +1 -0
  77. package/lib/es6/components/Body/Cell.js +199 -0
  78. package/lib/es6/components/Body/Cell.js.map +1 -0
  79. package/lib/es6/components/Body/Cell.types.js +2 -0
  80. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  81. package/lib/es6/components/Body/LimitOverlay.js +184 -0
  82. package/lib/es6/components/Body/LimitOverlay.js.map +1 -0
  83. package/lib/es6/components/Body/MergedCells.js +24 -0
  84. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  85. package/lib/es6/components/Body/Row.js +624 -0
  86. package/lib/es6/components/Body/Row.js.map +1 -0
  87. package/lib/es6/components/Body/Row.types.js +2 -0
  88. package/lib/es6/components/Body/Row.types.js.map +1 -0
  89. package/lib/es6/components/Body/RowGroup.js +111 -0
  90. package/lib/es6/components/Body/RowGroup.js.map +1 -0
  91. package/lib/es6/components/Body/style.shadow.css +367 -0
  92. package/lib/es6/components/DataTable/DataTable.js +1298 -0
  93. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  94. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  95. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  96. package/lib/es6/components/DataTable/ScrollBars.js +57 -0
  97. package/lib/es6/components/DataTable/ScrollBars.js.map +1 -0
  98. package/lib/es6/components/DataTable/dataTable.shadow.css +43 -0
  99. package/lib/es6/components/Head/Column.js +344 -0
  100. package/lib/es6/components/Head/Column.js.map +1 -0
  101. package/lib/es6/components/Head/Column.types.js +2 -0
  102. package/lib/es6/components/Head/Column.types.js.map +1 -0
  103. package/lib/es6/components/Head/Group.js +111 -0
  104. package/lib/es6/components/Head/Group.js.map +1 -0
  105. package/lib/es6/components/Head/Group.type.js +2 -0
  106. package/lib/es6/components/Head/Group.type.js.map +1 -0
  107. package/lib/es6/components/Head/Head.js +345 -0
  108. package/lib/es6/components/Head/Head.js.map +1 -0
  109. package/lib/es6/components/Head/Head.types.js +2 -0
  110. package/lib/es6/components/Head/Head.types.js.map +1 -0
  111. package/lib/es6/components/Head/style.shadow.css +292 -0
  112. package/lib/es6/components/RowSelector/RowsSelector.js +125 -0
  113. package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -0
  114. package/lib/es6/components/RowSelector/SRAnnouncer.js +55 -0
  115. package/lib/es6/components/RowSelector/SRAnnouncer.js.map +1 -0
  116. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js +32 -0
  117. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  118. package/lib/es6/enhancers/focusableCell.js +69 -0
  119. package/lib/es6/enhancers/focusableCell.js.map +1 -0
  120. package/lib/es6/index.js +7 -2
  121. package/lib/es6/index.js.map +1 -1
  122. package/lib/es6/store/SelectableRows.js +204 -0
  123. package/lib/es6/store/SelectableRows.js.map +1 -0
  124. package/lib/es6/style/scroll-shadows.shadow.css +50 -5
  125. package/lib/es6/translations/__intergalactic-dynamic-locales.js +2 -2
  126. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  127. package/lib/es6/translations/de.json +6 -1
  128. package/lib/es6/translations/en.json +6 -1
  129. package/lib/es6/translations/es.json +6 -1
  130. package/lib/es6/translations/fr.json +6 -1
  131. package/lib/es6/translations/it.json +6 -1
  132. package/lib/es6/translations/ja.json +6 -1
  133. package/lib/es6/translations/ko.json +6 -1
  134. package/lib/es6/translations/nl.json +6 -1
  135. package/lib/es6/translations/pl.json +6 -1
  136. package/lib/es6/translations/pt.json +6 -1
  137. package/lib/es6/translations/sv.json +6 -1
  138. package/lib/es6/translations/tr.json +6 -1
  139. package/lib/es6/translations/vi.json +6 -1
  140. package/lib/es6/translations/zh.json +6 -1
  141. package/lib/esm/components/AccordionRows/AccordionRows.mjs +155 -0
  142. package/lib/esm/components/Body/Body.mjs +395 -0
  143. package/lib/esm/components/Body/Cell.mjs +192 -0
  144. package/lib/esm/components/Body/LimitOverlay.mjs +179 -0
  145. package/lib/esm/components/Body/MergedCells.mjs +27 -0
  146. package/lib/esm/components/Body/Row.mjs +556 -0
  147. package/lib/esm/components/Body/RowGroup.mjs +113 -0
  148. package/lib/esm/components/Body/style.shadow.css +367 -0
  149. package/lib/esm/components/DataTable/DataTable.mjs +1216 -0
  150. package/lib/esm/components/DataTable/ScrollBars.mjs +61 -0
  151. package/lib/esm/components/DataTable/dataTable.shadow.css +43 -0
  152. package/lib/esm/components/Head/Column.mjs +321 -0
  153. package/lib/esm/components/Head/Group.mjs +111 -0
  154. package/lib/esm/components/Head/Head.mjs +307 -0
  155. package/lib/esm/components/Head/style.shadow.css +292 -0
  156. package/lib/esm/components/RowSelector/RowsSelector.mjs +105 -0
  157. package/lib/esm/components/RowSelector/SRAnnouncer.mjs +51 -0
  158. package/lib/esm/components/RowSelector/SRReactiveAnnouncer.mjs +31 -0
  159. package/lib/esm/enhancers/focusableCell.mjs +72 -0
  160. package/lib/esm/index.mjs +12 -5
  161. package/lib/esm/store/SelectableRows.mjs +201 -0
  162. package/lib/esm/style/scroll-shadows.shadow.css +50 -5
  163. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +2 -2
  164. package/lib/esm/translations/de.json.mjs +6 -1
  165. package/lib/esm/translations/en.json.mjs +6 -1
  166. package/lib/esm/translations/es.json.mjs +6 -1
  167. package/lib/esm/translations/fr.json.mjs +6 -1
  168. package/lib/esm/translations/it.json.mjs +6 -1
  169. package/lib/esm/translations/ja.json.mjs +6 -1
  170. package/lib/esm/translations/ko.json.mjs +6 -1
  171. package/lib/esm/translations/nl.json.mjs +6 -1
  172. package/lib/esm/translations/pl.json.mjs +6 -1
  173. package/lib/esm/translations/pt.json.mjs +6 -1
  174. package/lib/esm/translations/sv.json.mjs +6 -1
  175. package/lib/esm/translations/tr.json.mjs +6 -1
  176. package/lib/esm/translations/vi.json.mjs +6 -1
  177. package/lib/esm/translations/zh.json.mjs +6 -1
  178. package/lib/types/components/AccordionRows/AccordionRows.d.ts +41 -0
  179. package/lib/types/components/Body/Body.d.ts +6 -0
  180. package/lib/types/components/Body/Body.types.d.ts +87 -0
  181. package/lib/types/components/Body/Cell.d.ts +1 -0
  182. package/lib/types/components/Body/Cell.types.d.ts +36 -0
  183. package/lib/types/components/Body/LimitOverlay.d.ts +17 -0
  184. package/lib/types/components/Body/MergedCells.d.ts +17 -0
  185. package/lib/types/components/Body/Row.d.ts +47 -0
  186. package/lib/types/components/Body/Row.types.d.ts +74 -0
  187. package/lib/types/components/Body/RowGroup.d.ts +19 -0
  188. package/lib/types/components/DataTable/DataTable.d.ts +14 -0
  189. package/lib/types/components/DataTable/DataTable.types.d.ts +202 -0
  190. package/lib/types/components/DataTable/ScrollBars.d.ts +11 -0
  191. package/lib/types/components/Head/Column.d.ts +39 -0
  192. package/lib/types/components/Head/Column.types.d.ts +85 -0
  193. package/lib/types/components/Head/Group.d.ts +15 -0
  194. package/lib/types/components/Head/Group.type.d.ts +18 -0
  195. package/lib/types/components/Head/Head.d.ts +9 -0
  196. package/lib/types/components/Head/Head.types.d.ts +58 -0
  197. package/lib/types/components/RowSelector/RowsSelector.d.ts +32 -0
  198. package/lib/types/components/RowSelector/SRAnnouncer.d.ts +10 -0
  199. package/lib/types/components/RowSelector/SRReactiveAnnouncer.d.ts +8 -0
  200. package/lib/types/enhancers/focusableCell.d.ts +9 -0
  201. package/lib/types/index.d.ts +10 -2
  202. package/lib/types/store/SelectableRows.d.ts +60 -0
  203. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +70 -0
  204. package/package.json +6 -6
  205. package/lib/cjs/Body.js +0 -477
  206. package/lib/cjs/Body.js.map +0 -1
  207. package/lib/cjs/DataTable.js +0 -629
  208. package/lib/cjs/DataTable.js.map +0 -1
  209. package/lib/cjs/Head.js +0 -398
  210. package/lib/cjs/Head.js.map +0 -1
  211. package/lib/cjs/style/data-table.shadow.css +0 -413
  212. package/lib/cjs/types.js +0 -4
  213. package/lib/cjs/types.js.map +0 -1
  214. package/lib/cjs/utils.js +0 -57
  215. package/lib/cjs/utils.js.map +0 -1
  216. package/lib/es6/Body.js +0 -469
  217. package/lib/es6/Body.js.map +0 -1
  218. package/lib/es6/DataTable.js +0 -619
  219. package/lib/es6/DataTable.js.map +0 -1
  220. package/lib/es6/Head.js +0 -390
  221. package/lib/es6/Head.js.map +0 -1
  222. package/lib/es6/style/data-table.shadow.css +0 -413
  223. package/lib/es6/types.js +0 -2
  224. package/lib/es6/types.js.map +0 -1
  225. package/lib/es6/utils.js +0 -48
  226. package/lib/es6/utils.js.map +0 -1
  227. package/lib/esm/Body.mjs +0 -430
  228. package/lib/esm/DataTable.mjs +0 -589
  229. package/lib/esm/Head.mjs +0 -368
  230. package/lib/esm/style/data-table.shadow.css +0 -413
  231. package/lib/esm/utils.mjs +0 -52
  232. package/lib/types/Body.d.ts +0 -61
  233. package/lib/types/DataTable.d.ts +0 -205
  234. package/lib/types/Head.d.ts +0 -45
  235. package/lib/types/types.d.ts +0 -73
  236. package/lib/types/utils.d.ts +0 -4
@@ -0,0 +1,105 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _callSuper from "@babel/runtime/helpers/esm/callSuper";
4
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
+ import Checkbox from "@semcore/checkbox";
7
+ import React__default from "react";
8
+ import { SelectableRows } from "../../store/SelectableRows.mjs";
9
+ import { Row } from "../Body/Row.mjs";
10
+ import { UNIQ_ROW_KEY, SELECT_ALL } from "../DataTable/DataTable.mjs";
11
+ var RowSelector = /* @__PURE__ */ (function(_React$PureComponent) {
12
+ function RowSelector2(props) {
13
+ var _this;
14
+ _classCallCheck(this, RowSelector2);
15
+ _this = _callSuper(this, RowSelector2, [props]);
16
+ _defineProperty(_this, "state", {
17
+ checked: false
18
+ });
19
+ _defineProperty(_this, "unsubscribeToggle", void 0);
20
+ _defineProperty(_this, "handleSelectRow", function(value, event) {
21
+ var _this$props = _this.props, row = _this$props.row, rowIndex = _this$props.rowIndex, onSelectRow = _this$props.onSelectRow, selectedRows = _this$props.selectedRows;
22
+ onSelectRow === null || onSelectRow === void 0 || onSelectRow(value, rowIndex, row, event);
23
+ if (selectedRows && !Array.isArray(selectedRows)) {
24
+ selectedRows.toggle(value, row);
25
+ }
26
+ });
27
+ _defineProperty(_this, "handleClickCheckbox", function(value) {
28
+ return function(event) {
29
+ event === null || event === void 0 || event.preventDefault();
30
+ event === null || event === void 0 || event.stopPropagation();
31
+ var _this$props2 = _this.props, row = _this$props2.row, rowIndex = _this$props2.rowIndex, onSelectRow = _this$props2.onSelectRow, selectedRows = _this$props2.selectedRows;
32
+ onSelectRow === null || onSelectRow === void 0 || onSelectRow(value, rowIndex, row, event);
33
+ if (selectedRows && !Array.isArray(selectedRows)) {
34
+ selectedRows.toggle(value, row);
35
+ }
36
+ };
37
+ });
38
+ var _row = props.row, _selectedRows = props.selectedRows;
39
+ if (_selectedRows && !Array.isArray(_selectedRows)) {
40
+ _this.state.checked = _selectedRows.has(_row[UNIQ_ROW_KEY]);
41
+ }
42
+ return _this;
43
+ }
44
+ _inherits(RowSelector2, _React$PureComponent);
45
+ return _createClass(RowSelector2, [{
46
+ key: "componentDidMount",
47
+ value: function componentDidMount() {
48
+ var _this2 = this;
49
+ var _this$props3 = this.props, row = _this$props3.row, selectedRows = _this$props3.selectedRows;
50
+ if (selectedRows && !Array.isArray(selectedRows)) {
51
+ this.unsubscribeToggle = selectedRows.on(SelectableRows.TOGGLE_EVENT, function(key) {
52
+ if (row[UNIQ_ROW_KEY] === key) {
53
+ _this2.setState({
54
+ checked: selectedRows.has(row[UNIQ_ROW_KEY])
55
+ });
56
+ }
57
+ });
58
+ }
59
+ }
60
+ }, {
61
+ key: "componentWillUnmount",
62
+ value: function componentWillUnmount() {
63
+ var _this$unsubscribeTogg;
64
+ (_this$unsubscribeTogg = this.unsubscribeToggle) === null || _this$unsubscribeTogg === void 0 || _this$unsubscribeTogg.call(this);
65
+ }
66
+ }, {
67
+ key: "render",
68
+ value: function render() {
69
+ var SCheckboxCell = Row.Cell;
70
+ var _this$props4 = this.props, row = _this$props4.row, rowIndex = _this$props4.rowIndex, gridRowIndex = _this$props4.gridRowIndex, expanded = _this$props4.expanded, withAccordion = _this$props4.withAccordion, isAccordionRow = _this$props4.isAccordionRow, isCellHidden = _this$props4.isCellHidden, theme = _this$props4.theme, uid = _this$props4.uid, selectedRows = _this$props4.selectedRows, fixed = _this$props4.fixed;
71
+ var rowUniqKey = row[UNIQ_ROW_KEY];
72
+ var checked = Array.isArray(selectedRows) ? selectedRows.includes(rowUniqKey) : this.state.checked;
73
+ var style = {};
74
+ if (fixed) {
75
+ style.left = 0;
76
+ }
77
+ return /* @__PURE__ */ React__default.createElement(SCheckboxCell, {
78
+ row,
79
+ rowIndex,
80
+ column: {
81
+ name: SELECT_ALL,
82
+ fixed
83
+ },
84
+ columnIndex: 0,
85
+ gridRowIndex,
86
+ onClick: this.handleClickCheckbox(!checked),
87
+ expanded,
88
+ isAccordionRow,
89
+ "aria-hidden": isCellHidden,
90
+ withAccordion,
91
+ theme,
92
+ "data-row-selector": true,
93
+ fixed,
94
+ style
95
+ }, /* @__PURE__ */ React__default.createElement(Checkbox, {
96
+ checked,
97
+ "aria-labelledby": "".concat(uid, "_").concat(rowUniqKey, "_1"),
98
+ onChange: this.handleSelectRow
99
+ }, /* @__PURE__ */ React__default.createElement(Checkbox.Value, null)));
100
+ }
101
+ }]);
102
+ })(React__default.PureComponent);
103
+ export {
104
+ RowSelector
105
+ };
@@ -0,0 +1,51 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { ScreenReaderOnly } from "@semcore/base-components";
3
+ import React__default from "react";
4
+ import { UNIQ_ROW_KEY } from "../DataTable/DataTable.mjs";
5
+ function SRAnnouncer(props) {
6
+ var _React$useState = React__default.useState(""), _React$useState2 = _slicedToArray(_React$useState, 2), ariaMessage = _React$useState2[0], setAriaMessage = _React$useState2[1];
7
+ var _React$useState3 = React__default.useState(false), _React$useState4 = _slicedToArray(_React$useState3, 2), selectedAll = _React$useState4[0], setSelectedAll = _React$useState4[1];
8
+ React__default.useEffect(function() {
9
+ var selectedRowsSet = new Set(props.selectedRows);
10
+ var allChecked = [];
11
+ var allUnchecked = [];
12
+ props.flatRows.forEach(function(row) {
13
+ if (selectedRowsSet.has(row[UNIQ_ROW_KEY])) {
14
+ allChecked.push(row[UNIQ_ROW_KEY]);
15
+ } else {
16
+ allUnchecked.push(row[UNIQ_ROW_KEY]);
17
+ }
18
+ });
19
+ if (allChecked.length === props.data.length) {
20
+ setSelectedAll(true);
21
+ } else if (allUnchecked.length === props.data.length) {
22
+ setSelectedAll(false);
23
+ }
24
+ }, [props.selectedRows, props.data, props.flatRows]);
25
+ React__default.useEffect(function() {
26
+ var getI18nText = props.getI18nText;
27
+ var message = getI18nText(selectedAll ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
28
+ setAriaMessage(message);
29
+ var timeout = setTimeout(function() {
30
+ return setAriaMessage("");
31
+ }, 5e3);
32
+ return function() {
33
+ return clearTimeout(timeout);
34
+ };
35
+ }, [selectedAll, props.getI18nText]);
36
+ React__default.useEffect(function() {
37
+ var timer = setTimeout(function() {
38
+ return setAriaMessage("");
39
+ }, 1e3);
40
+ return function() {
41
+ return clearTimeout(timer);
42
+ };
43
+ }, [ariaMessage]);
44
+ return /* @__PURE__ */ React__default.createElement(ScreenReaderOnly, {
45
+ role: "status",
46
+ "aria-live": "polite"
47
+ }, ariaMessage);
48
+ }
49
+ export {
50
+ SRAnnouncer
51
+ };
@@ -0,0 +1,31 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { ScreenReaderOnly } from "@semcore/base-components";
3
+ import React__default from "react";
4
+ import { SelectableRows } from "../../store/SelectableRows.mjs";
5
+ function SRReactiveAnnouncer(props) {
6
+ var _React$useState = React__default.useState(""), _React$useState2 = _slicedToArray(_React$useState, 2), ariaMessage = _React$useState2[0], setAriaMessage = _React$useState2[1];
7
+ var setAriaCallback = React__default.useCallback(function() {
8
+ var isAllSelected = props.selectedRows.isAllSelected();
9
+ var message = props.getI18nText(isAllSelected ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
10
+ setAriaMessage(message);
11
+ }, [props.selectedRows]);
12
+ React__default.useEffect(function() {
13
+ var unsubscribe = props.selectedRows.on(SelectableRows.SELECT_ALL_EVENT, setAriaCallback);
14
+ return unsubscribe;
15
+ }, [props.selectedRows]);
16
+ React__default.useEffect(function() {
17
+ var timer = setTimeout(function() {
18
+ return setAriaMessage("");
19
+ }, 1e3);
20
+ return function() {
21
+ return clearTimeout(timer);
22
+ };
23
+ }, [ariaMessage]);
24
+ return /* @__PURE__ */ React__default.createElement(ScreenReaderOnly, {
25
+ role: "status",
26
+ "aria-live": "polite"
27
+ }, ariaMessage);
28
+ }
29
+ export {
30
+ SRReactiveAnnouncer
31
+ };
@@ -0,0 +1,72 @@
1
+ import { getFocusableIn } from "@semcore/core/lib/utils/focus-lock/getFocusableIn";
2
+ function handleFocusCell(lockedCell, target, currentTarget) {
3
+ if (target instanceof HTMLElement && currentTarget instanceof HTMLElement && target === currentTarget && target.matches(":focus-visible")) {
4
+ target.scrollIntoView({
5
+ block: "center",
6
+ inline: "center"
7
+ });
8
+ var focusableChildren = Array.from(currentTarget.children).flatMap(function(node) {
9
+ return getFocusableIn(node);
10
+ });
11
+ if (focusableChildren.length === 1) {
12
+ focusableChildren[0].focus({
13
+ focusVisible: true
14
+ });
15
+ focusableChildren[0].scrollIntoView({
16
+ block: "center",
17
+ inline: "center"
18
+ });
19
+ } else if (focusableChildren.length > 1) {
20
+ lockedCell[0] = currentTarget;
21
+ lockedCell[1] = false;
22
+ }
23
+ }
24
+ }
25
+ function handleKeydownFocusCell(lockedCell, e) {
26
+ if (e.currentTarget === lockedCell[0]) {
27
+ var focusableChildren = Array.from(lockedCell[0].children).flatMap(function(node) {
28
+ return getFocusableIn(node);
29
+ });
30
+ if (lockedCell[1]) {
31
+ if (e.key === "Escape") {
32
+ var _lockedCell$;
33
+ (_lockedCell$ = lockedCell[0]) === null || _lockedCell$ === void 0 || _lockedCell$.focus({
34
+ focusVisible: true
35
+ });
36
+ lockedCell[1] = false;
37
+ }
38
+ if (e.key.startsWith("Arrow")) {
39
+ e.stopPropagation();
40
+ e.preventDefault();
41
+ }
42
+ if (e.key === "Tab") {
43
+ if (e.target === focusableChildren[0] && e.shiftKey) {
44
+ var _focusableChildren;
45
+ (_focusableChildren = focusableChildren[focusableChildren.length - 1]) === null || _focusableChildren === void 0 || _focusableChildren.focus({
46
+ focusVisible: true
47
+ });
48
+ e.preventDefault();
49
+ } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {
50
+ var _focusableChildren$;
51
+ (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 || _focusableChildren$.focus({
52
+ focusVisible: true
53
+ });
54
+ e.preventDefault();
55
+ }
56
+ e.stopPropagation();
57
+ }
58
+ } else if (e.key === "Enter") {
59
+ var _focusableChildren$2;
60
+ e.preventDefault();
61
+ e.stopPropagation();
62
+ lockedCell[1] = true;
63
+ (_focusableChildren$2 = focusableChildren[0]) === null || _focusableChildren$2 === void 0 || _focusableChildren$2.focus({
64
+ focusVisible: true
65
+ });
66
+ }
67
+ }
68
+ }
69
+ export {
70
+ handleFocusCell,
71
+ handleKeydownFocusCell
72
+ };
package/lib/esm/index.mjs CHANGED
@@ -1,8 +1,15 @@
1
- import { ROW_GROUP, default as default2, wrapDataTable, wrapDataTableCell, wrapDataTableRow } from "./DataTable.mjs";
1
+ import { MergedColumnsCell, MergedRowsCell } from "./components/Body/MergedCells.mjs";
2
+ import { ACCORDION, DataTable, ROW_GROUP } from "./components/DataTable/DataTable.mjs";
3
+ import { SelectableRows } from "./store/SelectableRows.mjs";
4
+ var wrapDataTable = function wrapDataTable2(wrapper) {
5
+ return wrapper;
6
+ };
2
7
  export {
8
+ ACCORDION,
9
+ DataTable,
10
+ MergedColumnsCell,
11
+ MergedRowsCell,
3
12
  ROW_GROUP,
4
- default2 as default,
5
- wrapDataTable,
6
- wrapDataTableCell,
7
- wrapDataTableRow
13
+ SelectableRows,
14
+ wrapDataTable
8
15
  };
@@ -0,0 +1,201 @@
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _callSuper from "@babel/runtime/helpers/esm/callSuper";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
7
+ import EventEmitter from "@semcore/core/lib/utils/eventEmitter";
8
+ import { UNIQ_ROW_KEY } from "../components/DataTable/DataTable.mjs";
9
+ var SelectableRows = /* @__PURE__ */ (function(_EventEmitter) {
10
+ function SelectableRows2() {
11
+ var _this;
12
+ var initValues = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
13
+ _classCallCheck(this, SelectableRows2);
14
+ _this = _callSuper(this, SelectableRows2);
15
+ _defineProperty(_this, "values", void 0);
16
+ _defineProperty(_this, "availableKeys", /* @__PURE__ */ new Set());
17
+ _defineProperty(_this, "lastSelectedRow", null);
18
+ _defineProperty(_this, "isPressedShift", false);
19
+ _this.values = new Set(initValues);
20
+ return _this;
21
+ }
22
+ _inherits(SelectableRows2, _EventEmitter);
23
+ return _createClass(SelectableRows2, [{
24
+ key: "setAvailableKeys",
25
+ value: function setAvailableKeys(value) {
26
+ this.availableKeys = new Set(value);
27
+ }
28
+ }, {
29
+ key: "get",
30
+ value: function get() {
31
+ return Array.from(this.values.keys());
32
+ }
33
+ }, {
34
+ key: "isChecked",
35
+ value: function isChecked(key) {
36
+ return this.values.has(key);
37
+ }
38
+ }, {
39
+ key: "replace",
40
+ value: function replace(value) {
41
+ var _this2 = this;
42
+ this.clearAll();
43
+ value.forEach(function(val) {
44
+ _this2.values.add(val);
45
+ _this2.emit(SelectableRows2.TOGGLE_EVENT, val);
46
+ });
47
+ }
48
+ }, {
49
+ key: "has",
50
+ value: function has(value) {
51
+ return this.values.has(value);
52
+ }
53
+ }, {
54
+ key: "isAllSelected",
55
+ value: function isAllSelected() {
56
+ var isAllSelected2 = true;
57
+ if (this.availableKeys.size === 0 || this.values.size === 0) {
58
+ return false;
59
+ }
60
+ var _iterator = _createForOfIteratorHelper(this.availableKeys.values()), _step;
61
+ try {
62
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
63
+ var _key = _step.value;
64
+ if (!this.values.has(_key)) {
65
+ isAllSelected2 = false;
66
+ break;
67
+ }
68
+ }
69
+ } catch (err) {
70
+ _iterator.e(err);
71
+ } finally {
72
+ _iterator.f();
73
+ }
74
+ return isAllSelected2;
75
+ }
76
+ }, {
77
+ key: "isIndeterminate",
78
+ value: function isIndeterminate() {
79
+ var isIndeterminate2 = false;
80
+ var _iterator2 = _createForOfIteratorHelper(this.availableKeys.values()), _step2;
81
+ try {
82
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
83
+ var _key2 = _step2.value;
84
+ if (this.values.has(_key2)) {
85
+ isIndeterminate2 = true;
86
+ break;
87
+ }
88
+ }
89
+ } catch (err) {
90
+ _iterator2.e(err);
91
+ } finally {
92
+ _iterator2.f();
93
+ }
94
+ return isIndeterminate2;
95
+ }
96
+ }, {
97
+ key: "selectAll",
98
+ value: function selectAll() {
99
+ var _iterator3 = _createForOfIteratorHelper(this.availableKeys.values()), _step3;
100
+ try {
101
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) {
102
+ var _key3 = _step3.value;
103
+ this.values.add(_key3);
104
+ this.emit(SelectableRows2.TOGGLE_EVENT, _key3);
105
+ }
106
+ } catch (err) {
107
+ _iterator3.e(err);
108
+ } finally {
109
+ _iterator3.f();
110
+ }
111
+ this.emit(SelectableRows2.SELECT_ALL_EVENT);
112
+ }
113
+ }, {
114
+ key: "clearAll",
115
+ value: function clearAll() {
116
+ var keys = Array.from(this.values.values());
117
+ this.values.clear();
118
+ for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
119
+ var _key4 = _keys[_i];
120
+ this.emit(SelectableRows2.TOGGLE_EVENT, _key4);
121
+ }
122
+ this.emit(SelectableRows2.SELECT_ALL_EVENT);
123
+ }
124
+ }, {
125
+ key: "clearAllAvailable",
126
+ value: function clearAllAvailable() {
127
+ var _iterator4 = _createForOfIteratorHelper(this.availableKeys.values()), _step4;
128
+ try {
129
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done; ) {
130
+ var _key5 = _step4.value;
131
+ this.values["delete"](_key5);
132
+ this.emit(SelectableRows2.TOGGLE_EVENT, _key5);
133
+ }
134
+ } catch (err) {
135
+ _iterator4.e(err);
136
+ } finally {
137
+ _iterator4.f();
138
+ }
139
+ this.emit(SelectableRows2.SELECT_ALL_EVENT);
140
+ }
141
+ }, {
142
+ key: "toggle",
143
+ value: function toggle(selected, row) {
144
+ if (this.isPressedShift && this.values.size > 0 && this.lastSelectedRow && (selected ? this.values.has(this.lastSelectedRow) : true)) {
145
+ var select = false;
146
+ var _iterator5 = _createForOfIteratorHelper(this.availableKeys.values()), _step5;
147
+ try {
148
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done; ) {
149
+ var item = _step5.value;
150
+ if (!select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {
151
+ select = true;
152
+ this.toggleOneRow(selected, item);
153
+ continue;
154
+ }
155
+ if (select) {
156
+ this.toggleOneRow(selected, item);
157
+ }
158
+ if (select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {
159
+ break;
160
+ }
161
+ }
162
+ } catch (err) {
163
+ _iterator5.e(err);
164
+ } finally {
165
+ _iterator5.f();
166
+ }
167
+ } else {
168
+ this.toggleOneRow(selected, row[UNIQ_ROW_KEY]);
169
+ }
170
+ this.lastSelectedRow = row[UNIQ_ROW_KEY];
171
+ }
172
+ }, {
173
+ key: "toggleOneRow",
174
+ value: function toggleOneRow(isSelected, key) {
175
+ if (isSelected) {
176
+ if (!this.isIndeterminate()) {
177
+ this.emit(SelectableRows2.SET_INDETERMINATE_EVENT);
178
+ }
179
+ this.values.add(key);
180
+ if (this.isAllSelected()) {
181
+ this.emit(SelectableRows2.SELECT_ALL_EVENT);
182
+ }
183
+ } else {
184
+ if (this.isAllSelected()) {
185
+ this.emit(SelectableRows2.SET_INDETERMINATE_EVENT);
186
+ }
187
+ this.values["delete"](key);
188
+ if (this.values.size === 0) {
189
+ this.emit(SelectableRows2.SELECT_ALL_EVENT);
190
+ }
191
+ }
192
+ this.emit(SelectableRows2.TOGGLE_EVENT, key);
193
+ }
194
+ }]);
195
+ })(EventEmitter);
196
+ _defineProperty(SelectableRows, "TOGGLE_EVENT", "toggle_selected_row");
197
+ _defineProperty(SelectableRows, "SELECT_ALL_EVENT", "select_all_selected_rows");
198
+ _defineProperty(SelectableRows, "SET_INDETERMINATE_EVENT", "set_indeterminate");
199
+ export {
200
+ SelectableRows
201
+ };
@@ -1,7 +1,52 @@
1
- SShadowHorizontal,
2
- SShadowVertical {
3
- &:before,
4
- &:after {
5
- z-index: 1;
1
+ SScrollArea {
2
+ width: fit-content;
3
+
4
+ view-timeline: --table-sticky-timeline block;
5
+
6
+ SContainer {
7
+ overflow: unset;
8
+
9
+ &[scrollDirection='both'] {
10
+ overflow: auto;
11
+
12
+ &[loading] {
13
+ overflow: hidden;
14
+ }
15
+ }
16
+ &[scrollDirection='horizontal'] {
17
+ overflow-x: auto;
18
+ overflow-y: unset;
19
+
20
+ &[loading] {
21
+ overflow: hidden;
22
+ }
23
+ }
24
+ &[scrollDirection='vertical'] {
25
+ overflow-x: unset;
26
+ overflow-y: auto;
27
+
28
+ &[loading] {
29
+ overflow: hidden;
30
+ }
31
+ }
32
+ &[headerHeight] {
33
+ scroll-padding-top: var(--headerHeight);
34
+ }
35
+ &[leftScrollPadding] {
36
+ scroll-padding-left: var(--leftScrollPadding);
37
+ }
38
+ &[rightScrollPadding] {
39
+ scroll-padding-right: var(--rightScrollPadding);
40
+ }
41
+ }
42
+
43
+ SShadowVertical::after, SShadowHorizontal::before, SShadowHorizontal:after {
44
+ z-index: 20;
45
+ }
46
+
47
+ SShadowVertical::before,
48
+ SShadowHorizontal[leftOffset]::before,
49
+ SShadowHorizontal[rightOffset]::after {
50
+ display: none;
6
51
  }
7
52
  }
@@ -6,12 +6,12 @@ import it from "./it.json.mjs";
6
6
  import ja from "./ja.json.mjs";
7
7
  import ko from "./ko.json.mjs";
8
8
  import nl from "./nl.json.mjs";
9
+ import pl from "./pl.json.mjs";
9
10
  import pt from "./pt.json.mjs";
11
+ import sv from "./sv.json.mjs";
10
12
  import tr from "./tr.json.mjs";
11
13
  import vi from "./vi.json.mjs";
12
14
  import zh from "./zh.json.mjs";
13
- import pl from "./pl.json.mjs";
14
- import sv from "./sv.json.mjs";
15
15
  var localizedMessages = {
16
16
  de,
17
17
  en,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Sortierbar";
2
2
  const de = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Details einblenden",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Details ausblenden",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "Alle Elemente",
7
+ "DataTable.allItemsSelected:aria-live": "Alle Elemente ausgewählt",
8
+ "DataTable.allItemsDeselected:aria-live": "Alle Elemente nicht ausgewählt"
4
9
  };
5
10
  export {
6
11
  de as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Sortable";
2
2
  const en = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Show details",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Hide details",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "All items",
7
+ "DataTable.allItemsSelected:aria-live": "All items selected",
8
+ "DataTable.allItemsDeselected:aria-live": "All items deselected"
4
9
  };
5
10
  export {
6
11
  en as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Ordenable";
2
2
  const es = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Mostrar detalles",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ocultar detalles",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "Todos los elementos",
7
+ "DataTable.allItemsSelected:aria-live": "Todos los elementos seleccionados",
8
+ "DataTable.allItemsDeselected:aria-live": "Todos los elementos deseleccionados"
4
9
  };
5
10
  export {
6
11
  es as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Triable";
2
2
  const fr = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Afficher les détails",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Masquer les détails",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tous les éléments",
7
+ "DataTable.allItemsSelected:aria-live": "Tous les éléments sélectionnés",
8
+ "DataTable.allItemsDeselected:aria-live": "Tous les éléments désélectionnés"
4
9
  };
5
10
  export {
6
11
  fr as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Ordinabile";
2
2
  const it = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Mostra dettagli",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Nascondi dettagli",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tutti gli elementi",
7
+ "DataTable.allItemsSelected:aria-live": "Tutti gli elementi selezionati",
8
+ "DataTable.allItemsDeselected:aria-live": "Tutti gli elementi deselezionati"
4
9
  };
5
10
  export {
6
11
  it as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "分類可能";
2
2
  const ja = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "詳細を表示する",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "詳細を非表示にする",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "すべての項目",
7
+ "DataTable.allItemsSelected:aria-live": "すべての項目が選択されました",
8
+ "DataTable.allItemsDeselected:aria-live": "すべての項目が選択解除されました"
4
9
  };
5
10
  export {
6
11
  ja as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "정렬 가능";
2
2
  const ko = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "세부 정보 표시",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "세부 정보 숨기기",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "모든 항목",
7
+ "DataTable.allItemsSelected:aria-live": "모든 항목이 선택됨",
8
+ "DataTable.allItemsDeselected:aria-live": "모든 항목이 선택 해제됨"
4
9
  };
5
10
  export {
6
11
  ko as default,
@@ -1,6 +1,11 @@
1
1
  const sortableColumn = "Sorteerbaar";
2
2
  const nl = {
3
- sortableColumn
3
+ sortableColumn,
4
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Details tonen",
5
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Details verbergen",
6
+ "DataTable.Header.selectAllCheckbox:aria-label": "Alle items",
7
+ "DataTable.allItemsSelected:aria-live": "Alle items geselecteerd",
8
+ "DataTable.allItemsDeselected:aria-live": "Alle items niet geselecteerd"
4
9
  };
5
10
  export {
6
11
  nl as default,