@semcore/data-table 17.0.0-prerelease.31 → 17.0.0-prerelease.34

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 (77) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/lib/cjs/components/AccordionRows/AccordionRows.js +50 -51
  3. package/lib/cjs/components/AccordionRows/AccordionRows.js.map +1 -1
  4. package/lib/cjs/components/Body/Body.js +65 -88
  5. package/lib/cjs/components/Body/Body.js.map +1 -1
  6. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  7. package/lib/cjs/components/Body/Cell.js +50 -51
  8. package/lib/cjs/components/Body/Cell.js.map +1 -1
  9. package/lib/cjs/components/Body/LimitOverlay.js +50 -51
  10. package/lib/cjs/components/Body/LimitOverlay.js.map +1 -1
  11. package/lib/cjs/components/Body/Row.js +65 -90
  12. package/lib/cjs/components/Body/Row.js.map +1 -1
  13. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  14. package/lib/cjs/components/Body/RowGroup.js +133 -0
  15. package/lib/cjs/components/Body/RowGroup.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +86 -151
  17. package/lib/cjs/components/DataTable/DataTable.js +35 -12
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  19. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  20. package/lib/cjs/components/Head/Head.js +45 -14
  21. package/lib/cjs/components/Head/Head.js.map +1 -1
  22. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  23. package/lib/cjs/components/RowSelector/RowsSelector.js +112 -0
  24. package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -0
  25. package/lib/cjs/index.js +7 -0
  26. package/lib/cjs/index.js.map +1 -1
  27. package/lib/cjs/store/SelectableRows.js +129 -0
  28. package/lib/cjs/store/SelectableRows.js.map +1 -0
  29. package/lib/es6/components/AccordionRows/AccordionRows.js +50 -51
  30. package/lib/es6/components/AccordionRows/AccordionRows.js.map +1 -1
  31. package/lib/es6/components/Body/Body.js +67 -90
  32. package/lib/es6/components/Body/Body.js.map +1 -1
  33. package/lib/es6/components/Body/Body.types.js.map +1 -1
  34. package/lib/es6/components/Body/Cell.js +50 -51
  35. package/lib/es6/components/Body/Cell.js.map +1 -1
  36. package/lib/es6/components/Body/LimitOverlay.js +50 -51
  37. package/lib/es6/components/Body/LimitOverlay.js.map +1 -1
  38. package/lib/es6/components/Body/Row.js +66 -91
  39. package/lib/es6/components/Body/Row.js.map +1 -1
  40. package/lib/es6/components/Body/Row.types.js.map +1 -1
  41. package/lib/es6/components/Body/RowGroup.js +125 -0
  42. package/lib/es6/components/Body/RowGroup.js.map +1 -0
  43. package/lib/es6/components/Body/style.shadow.css +86 -151
  44. package/lib/es6/components/DataTable/DataTable.js +35 -12
  45. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  46. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  47. package/lib/es6/components/Head/Head.js +45 -14
  48. package/lib/es6/components/Head/Head.js.map +1 -1
  49. package/lib/es6/components/Head/Head.types.js.map +1 -1
  50. package/lib/es6/components/RowSelector/RowsSelector.js +104 -0
  51. package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -0
  52. package/lib/es6/index.js +2 -1
  53. package/lib/es6/index.js.map +1 -1
  54. package/lib/es6/store/SelectableRows.js +121 -0
  55. package/lib/es6/store/SelectableRows.js.map +1 -0
  56. package/lib/esm/components/AccordionRows/AccordionRows.mjs +51 -52
  57. package/lib/esm/components/Body/Body.mjs +68 -91
  58. package/lib/esm/components/Body/Cell.mjs +51 -52
  59. package/lib/esm/components/Body/LimitOverlay.mjs +51 -52
  60. package/lib/esm/components/Body/Row.mjs +66 -90
  61. package/lib/esm/components/Body/RowGroup.mjs +124 -0
  62. package/lib/esm/components/Body/style.shadow.css +86 -151
  63. package/lib/esm/components/DataTable/DataTable.mjs +34 -12
  64. package/lib/esm/components/Head/Head.mjs +46 -14
  65. package/lib/esm/components/RowSelector/RowsSelector.mjs +107 -0
  66. package/lib/esm/index.mjs +2 -0
  67. package/lib/esm/store/SelectableRows.mjs +123 -0
  68. package/lib/types/components/Body/Body.types.d.ts +2 -1
  69. package/lib/types/components/Body/Row.d.ts +0 -2
  70. package/lib/types/components/Body/Row.types.d.ts +2 -1
  71. package/lib/types/components/Body/RowGroup.d.ts +19 -0
  72. package/lib/types/components/DataTable/DataTable.types.d.ts +21 -12
  73. package/lib/types/components/Head/Head.types.d.ts +2 -1
  74. package/lib/types/components/RowSelector/RowsSelector.d.ts +31 -0
  75. package/lib/types/index.d.ts +2 -1
  76. package/lib/types/store/SelectableRows.d.ts +56 -0
  77. package/package.json +18 -18
@@ -66,46 +66,20 @@ SCollapseRow > SCellWrapper > SCell {
66
66
  display: block;
67
67
  }
68
68
 
69
- /* DEFAULT THEME */
70
-
71
- SRow[active] > SCellWrapper > SCell:not([theme]) {
72
- background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
73
- }
74
-
75
69
  SRow[accordionType='row'][expanded] > SCellWrapper > SCell:not([theme]),
76
70
  SCell:not([theme])[expanded][withAccordion] {
77
71
  background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
78
72
  }
79
73
 
80
- SCell[theme='muted'][expanded][withAccordion] {
81
- background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
82
- }
83
-
84
- SCell[theme='info'][expanded][withAccordion] {
85
- background-color: var(--intergalactic-table-td-cell-selected-hover, #c4e5fe);
86
- }
87
-
88
- SCell[theme='success'][expanded][withAccordion] {
89
- background-color: var(--intergalactic-table-td-cell-new-hover, #9ef2c9);
90
- }
91
-
92
- SCell[theme='warning'][expanded][withAccordion] {
93
- background-color: var(--intergalactic-table-td-cell-warning-hover, #ffdca2);
94
- }
95
-
96
- SCell[theme='danger'][expanded][withAccordion] {
97
- background-color: var(--intergalactic-table-td-cell-critical-hover, #ffd7df);
98
- }
99
-
100
74
  SCollapseRow > SCellWrapper > SCell:not([theme]), SRow[isAccordionRow] > SCellWrapper > SCell:not([theme]) {
101
75
  background-color: var(--intergalactic-table-td-cell-accordion, #f4f5f9);
102
76
  }
103
77
 
104
78
  /* we need a media query here because of the postcssHoverMediaFeature plugin. it doesn't handle this type of selectors correctly */
105
79
  @media (hover: hover) {
106
- SRow:not([accordionType='row'][expanded]):hover:not([isNonInteractive]):not([aria-hidden]):not(:has(SLimitOverlayCellWrapper:hover)) > SCellWrapper > SCell:not([theme]):not([expanded][withAccordion]):not([aria-hidden]),
107
- SRowGroup:has(SCell[data-grouped-by='rowgroup']:hover) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell:not([theme]):not([expanded][withAccordion]):not([aria-hidden]),
108
- SRowGroup:has(SCell:hover) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[data-grouped-by='rowgroup']:not([theme]):not([expanded][withAccordion]):not([aria-hidden]) {
80
+ :not(SRowGroup:has([data-row-selector="true"] input:checked)) > SRow:not([accordionType='row'][expanded]):hover:not([isNonInteractive]):not(:has([data-row-selector="true"] input:checked)):not([aria-hidden]):not(:has(SLimitOverlayCellWrapper:hover)) > SCellWrapper > SCell:not([theme]):not([expanded][withAccordion]):not([aria-hidden]),
81
+ SRowGroup:has(SCell[data-grouped-by='rowgroup']:hover):not(:has([data-row-selector="true"] input:checked)) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell:not([theme]):not([expanded][withAccordion]):not([aria-hidden]),
82
+ SRowGroup:has(SCell:hover):not(:has([data-row-selector="true"] input:checked)) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[data-grouped-by='rowgroup']:not([theme]):not([expanded][withAccordion]):not([aria-hidden]) {
109
83
  background-color: var(--intergalactic-table-td-cell-hover, #f0f0f4);
110
84
  }
111
85
 
@@ -121,9 +95,13 @@ SCollapseRow > SCellWrapper > SCell:not([theme]), SRow[isAccordionRow] > SCellWr
121
95
 
122
96
  /* INFO THEME */
123
97
  SRow:hover:not([isNonInteractive]):not([aria-hidden]):not(:has(SLimitOverlayCellWrapper:hover)) > SCellWrapper > SCell[theme='info']:not([aria-hidden]),
98
+ SRow:hover:has([data-row-selector="true"] input:checked):not([isNonInteractive]):not([aria-hidden]):not(:has(SLimitOverlayCellWrapper:hover)) > SCellWrapper > SCell:not([aria-hidden]),
124
99
  SRow[theme='info']:hover:not([expanded][isNonInteractive]):not([aria-hidden]):not(:has(SLimitOverlayCellWrapper:hover)) > SCellWrapper > SCell:not([theme]):not([expanded][withAccordion]):not([aria-hidden]),
125
100
  SRowGroup:has(SCell[data-grouped-by='rowgroup']:hover) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[theme='info']:not([aria-hidden]),
101
+ SRowGroup:has(SCell[data-grouped-by='rowgroup']:hover):has([data-row-selector="true"] input:checked) SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell:not([aria-hidden]),
126
102
  SRowGroup:has(SCell[data-grouped-by='rowgroup']:hover) > SRow[theme='info']:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell:not([theme]):not([aria-hidden]),
103
+ SRowGroup:has(SCell:hover):has([data-row-selector="true"] input:checked) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[data-grouped-by='rowgroup']:not([aria-hidden]),
104
+ SRowGroup:has([data-row-selector="true"] input:checked) > SRow:hover:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell:not([aria-hidden]),
127
105
  SRowGroup:has(SCell:hover) > SRow:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[data-grouped-by='rowgroup'][theme='info']:not([aria-hidden]),
128
106
  SRowGroup:has(SCell:hover) > SRow[theme='info']:not([isNonInteractive]):not([aria-hidden]) > SCellWrapper > SCell[data-grouped-by='rowgroup']:not([theme]):not([aria-hidden]) {
129
107
  background-color: var(--intergalactic-table-td-cell-selected-hover, #c4e5fe);
@@ -160,81 +138,15 @@ SCollapseRow > SCellWrapper > SCell:not([theme]), SRow[isAccordionRow] > SCellWr
160
138
  }
161
139
  }
162
140
 
163
- /* MUTED THEME */
164
-
165
- SRow[theme='muted'] SCell:not([theme]) {
166
- &:not([expanded][withAccordion]) {
167
- background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
168
- }
169
- &[expanded][withAccordion] {
170
- background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
171
- }
172
- }
173
-
174
- SRow[theme='muted'][active] > SCellWrapper > SCell:not([theme]) {
175
- background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
176
- }
177
-
178
- /* INFO THEME */
141
+ SRowGroup:has([data-row-selector="true"] input:checked) > SRow > SCellWrapper > SCell,
142
+ SRow:has([data-row-selector="true"] input:checked) > SCellWrapper > SCell {
143
+ background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
179
144
 
180
- SRow[theme='info'] SCell:not([theme]) {
181
- &:not([expanded][withAccordion]) {
182
- background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
183
- }
184
145
  &[expanded][withAccordion] {
185
146
  background-color: var(--intergalactic-table-td-cell-selected-active, #c4e5fe);
186
147
  }
187
148
  }
188
149
 
189
- SRow[theme='info'][active] > SCellWrapper > SCell:not([theme]) {
190
- background-color: var(--intergalactic-table-td-cell-selected-active, #c4e5fe);
191
- }
192
-
193
- /* SUCCESS THEME */
194
-
195
- SRow[theme='success'] SCell:not([theme]) {
196
- &:not([expanded][withAccordion]) {
197
- background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
198
- }
199
- &[expanded][withAccordion] {
200
- background-color: var(--intergalactic-table-td-cell-new-active, #9ef2c9);
201
- }
202
- }
203
-
204
- SRow[theme='success'][active] > SCellWrapper > SCell:not([theme]) {
205
- background-color: var(--intergalactic-table-td-cell-new-active, #9ef2c9);
206
- }
207
-
208
- /* WARNING THEME */
209
-
210
- SRow[theme='warning'] SCell:not([theme]) {
211
- &:not([expanded][withAccordion]) {
212
- background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
213
- }
214
- &[expanded][withAccordion] {
215
- background-color: var(--intergalactic-table-td-cell-warning-active, #ffdca2);
216
- }
217
- }
218
-
219
- SRow[theme='warning'][active] > SCellWrapper > SCell:not([theme]) {
220
- background-color: var(--intergalactic-table-td-cell-warning-active, #ffdca2);
221
- }
222
-
223
- /* DANGER THEME */
224
-
225
- SRow[theme='danger'] SCell:not([theme]) {
226
- &:not([expanded][withAccordion]) {
227
- background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
228
- }
229
- &[expanded][withAccordion] {
230
- background-color: var(--intergalactic-table-td-cell-critical-active, #ffd7df);
231
- }
232
- }
233
-
234
- SRow[theme='danger'][active] > SCellWrapper > SCell:not([theme]) {
235
- background-color: var(--intergalactic-table-td-cell-critical-active, #ffd7df);
236
- }
237
-
238
150
  SCell {
239
151
  display: flex;
240
152
  height: 100%;
@@ -267,68 +179,94 @@ SCell {
267
179
  &[withoutBorder] {
268
180
  border-bottom: none;
269
181
  }
270
- }
271
182
 
272
- SRow[accordionType='row'] > SCellWrapper > SCell, SCell[withAccordion], SCell[name='Symbol(SELECT_ALL)'] {
273
- cursor: pointer;
274
- }
183
+ &[use='primary'] {
184
+ padding: var(--intergalactic-spacing-3x, 12px);
185
+ min-height: 45px;
186
+ background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
275
187
 
276
- SCheckboxCell[aria-hidden] {
277
- filter: blur(3px);
278
- pointer-events: none;
279
- }
188
+ &[data-aria-level] {
189
+ padding-left: calc(var(--intergalactic-spacing-3x, 12px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
190
+ }
191
+ }
280
192
 
281
- SCell[use='primary'] {
282
- padding: var(--intergalactic-spacing-3x, 12px);
283
- min-height: 45px;
284
- background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
193
+ &[use='secondary'] {
194
+ padding: var(--intergalactic-spacing-2x, 8px);
195
+ min-height: 37px;
196
+ background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
285
197
 
286
- &[data-aria-level] {
287
- padding-left: calc(var(--intergalactic-spacing-3x, 12px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
198
+ &[data-aria-level] {
199
+ padding-left: calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
200
+ }
288
201
  }
289
- }
290
202
 
291
- SCell[use='secondary'] {
292
- padding: var(--intergalactic-spacing-2x, 8px);
293
- min-height: 37px;
294
- background-color: var(--intergalactic-bg-primary-neutral, #ffffff);
203
+ &[theme='muted'] {
204
+ background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
295
205
 
296
- &[data-aria-level] {
297
- padding-left: calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
206
+ &[expanded][withAccordion] {
207
+ background-color: var(--intergalactic-table-td-cell-active, #e6e7ed);
208
+ }
298
209
  }
299
- }
300
210
 
301
- SCell[borders='both'], SCell[borders='left'] {
302
- border-left: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
303
- }
211
+ &[theme='info'] {
212
+ background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
304
213
 
305
- SCell[borders='both'], SCell[borders='right'] {
306
- border-right: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
307
- }
214
+ &[expanded][withAccordion] {
215
+ background-color: var(--intergalactic-table-td-cell-selected-active, #c4e5fe);
216
+ }
217
+ }
308
218
 
309
- SCellWrapper[fixed] {
310
- position: sticky;
311
- z-index: 2;
312
- }
219
+ &[theme='success'] {
220
+ background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
313
221
 
314
- SCell[theme='muted'] {
315
- background-color: var(--intergalactic-table-td-cell-unread, #f4f5f9);
316
- }
222
+ &[expanded][withAccordion] {
223
+ background-color: var(--intergalactic-table-td-cell-new-active, #9ef2c9);
224
+ }
225
+ }
317
226
 
318
- SCell[theme='info'] {
319
- background-color: var(--intergalactic-table-td-cell-selected, #e9f7ff);
227
+ &[theme='warning'] {
228
+ background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
229
+
230
+ &[expanded][withAccordion] {
231
+ background-color: var(--intergalactic-table-td-cell-warning-active, #ffdca2);
232
+ }
233
+ }
234
+
235
+ &[theme='danger'] {
236
+ background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
237
+
238
+ &[expanded][withAccordion] {
239
+ background-color: var(--intergalactic-table-td-cell-critical-active, #ffd7df);
240
+ }
241
+ }
242
+
243
+ &[borders='both'],
244
+ &[borders='left'] {
245
+ border-left: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
246
+ }
247
+
248
+ &[borders='both'],
249
+ &[borders='right'] {
250
+ border-right: 1px solid var(--intergalactic-border-secondary, #e0e1e9);
251
+ }
252
+
253
+ &[innerOutline]:focus-visible {
254
+ transition: none;
255
+ }
320
256
  }
321
257
 
322
- SCell[theme='success'] {
323
- background-color: var(--intergalactic-table-td-cell-new, #dbfee8);
258
+ SRow[accordionType='row'] > SCellWrapper > SCell, SCell[withAccordion], SCell[name='Symbol(SELECT_ALL)'] {
259
+ cursor: pointer;
324
260
  }
325
261
 
326
- SCell[theme='warning'] {
327
- background-color: var(--intergalactic-table-td-cell-warning, #fff3d9);
262
+ SCheckboxCell[aria-hidden] {
263
+ filter: blur(3px);
264
+ pointer-events: none;
328
265
  }
329
266
 
330
- SCell[theme='danger'] {
331
- background-color: var(--intergalactic-table-td-cell-critical, #fff0f7);
267
+ SCellWrapper[fixed] {
268
+ position: sticky;
269
+ z-index: 2;
332
270
  }
333
271
 
334
272
  SSpinContainer {
@@ -342,13 +280,14 @@ SSpinContainer {
342
280
  justify-content: center;
343
281
  background-color: var(--intergalactic-overlay-limitation-secondary, rgba(255, 255, 255, 0.85));
344
282
  z-index: 15;
345
- }
346
- SSpinContainer:focus-visible {
347
- z-index: 15;
348
- }
349
283
 
350
- SSpinContainer[headerHeight] {
351
- top: var(--headerHeight);
284
+ &:focus-visible {
285
+ z-index: 15;
286
+ }
287
+
288
+ &[headerHeight] {
289
+ top: var(--headerHeight);
290
+ }
352
291
  }
353
292
 
354
293
  SEmptyData {
@@ -426,7 +365,3 @@ SLimitOverlayCellWrapper[left] {
426
365
  position: sticky;
427
366
  left: var(---left);
428
367
  }
429
-
430
- SCell[innerOutline]:focus-visible {
431
- transition: none;
432
- }
@@ -27,6 +27,7 @@ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/
27
27
  "_gridTemplateRows": "__gridTemplateRows_wo0cb_gg_",
28
28
  "--gridTemplateRows": "--gridTemplateRows_wo0cb"
29
29
  });
30
+ import { SelectableRows } from '../../store/SelectableRows';
30
31
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
31
32
  const scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SScrollArea_j4820_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_{overflow:visible;overflow:initial}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_both_j4820_gg_{overflow:auto}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_both_j4820_gg_.__loading_j4820_gg_,.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_horizontal_j4820_gg_.__loading_j4820_gg_,.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_vertical_j4820_gg_.__loading_j4820_gg_{overflow:hidden}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_horizontal_j4820_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_vertical_j4820_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__headerHeight_j4820_gg_{scroll-padding-top:var(--headerHeight_j4820)}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__leftScrollPadding_j4820_gg_{scroll-padding-left:var(--leftScrollPadding_j4820)}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__rightScrollPadding_j4820_gg_{scroll-padding-right:var(--rightScrollPadding_j4820)}.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_::before,.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_:after,.___SScrollArea_j4820_gg_ .___SShadowVertical_j4820_gg_::after{z-index:20}.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_.__leftOffset_j4820_gg_::before,.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_.__rightOffset_j4820_gg_::after,.___SScrollArea_j4820_gg_ .___SShadowVertical_j4820_gg_::before{display:none}", /*__inner_css_end__*/"j4820_gg_"),
32
33
  /*__reshadow_css_end__*/
@@ -93,7 +94,7 @@ class DataTableRoot extends Component {
93
94
  });
94
95
  _defineProperty(this, "selectAllMessageTimer", 0);
95
96
  _defineProperty(this, "headerNodesMap", new Map());
96
- _defineProperty(this, "isPressedShift", false);
97
+ _defineProperty(this, "selectedRowsContainer", void 0);
97
98
  _defineProperty(this, "lastSelectedRowKey", void 0);
98
99
  _defineProperty(this, "state", {
99
100
  scrollTop: 0,
@@ -139,14 +140,20 @@ class DataTableRoot extends Component {
139
140
  this.initFocusableCell([this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
140
141
  }
141
142
  });
143
+ _defineProperty(this, "handleSelectAllRows", (selectedRows, event) => {
144
+ if (!('onSelectedRowsChange' in this.asProps) || !this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
145
+ this.asProps.onSelectedRowsChange(selectedRows, event);
146
+ });
142
147
  _defineProperty(this, "handleSelectRow", (isSelected, selectedRowIndex, row, event) => {
143
148
  const {
144
- selectedRows,
149
+ selectedRows
150
+ } = this.asProps;
151
+ if (!selectedRows || !('onSelectedRowsChange' in this.asProps) || !this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
152
+ const {
145
153
  onSelectedRowsChange
146
154
  } = this.asProps;
147
- if (!selectedRows || !onSelectedRowsChange) return;
148
155
  const selectedRowsSet = new Set(selectedRows);
149
- if (this.isPressedShift && selectedRowsSet.size > 0 && this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(this.lastSelectedRowKey) : true)) {
156
+ if (this.selectedRowsContainer.isPressedShift && selectedRowsSet.size > 0 && this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(this.lastSelectedRowKey) : true)) {
150
157
  let select = false;
151
158
  const firstColumnKey = this.columns[0].name;
152
159
  const isMerged = this.flatRows.some(item => item[firstColumnKey] instanceof MergedRowsCell);
@@ -357,13 +364,13 @@ class DataTableRoot extends Component {
357
364
  }
358
365
  case 'Shift':
359
366
  {
360
- this.isPressedShift = true;
367
+ this.selectedRowsContainer.isPressedShift = true;
361
368
  }
362
369
  }
363
370
  });
364
371
  _defineProperty(this, "handleKeyUp", e => {
365
372
  if (e.key === 'Shift') {
366
- this.isPressedShift = false;
373
+ this.selectedRowsContainer.isPressedShift = false;
367
374
  }
368
375
  });
369
376
  _defineProperty(this, "handleScroll", trottle(e => {
@@ -544,6 +551,11 @@ class DataTableRoot extends Component {
544
551
  this.calculatedRows = this.getRows();
545
552
  this.flatRows = this.calculatedRows.flat();
546
553
  this.tmpData = props.data;
554
+ if (Array.isArray(props.selectedRows) || !props.selectedRows) {
555
+ this.selectedRowsContainer = new SelectableRows();
556
+ } else {
557
+ this.selectedRowsContainer = props.selectedRows;
558
+ }
547
559
  }
548
560
  componentDidMount() {
549
561
  const {
@@ -577,7 +589,7 @@ class DataTableRoot extends Component {
577
589
  this.calculateVerticalShadow();
578
590
  }
579
591
  }
580
- if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
592
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && Array.isArray(selectedRows)) {
581
593
  const selectedRowsSet = new Set(selectedRows);
582
594
  const allChecked = [];
583
595
  const allUnchecked = [];
@@ -594,6 +606,9 @@ class DataTableRoot extends Component {
594
606
  this.setSelectAllMessage(false);
595
607
  }
596
608
  }
609
+ if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && !Array.isArray(selectedRows)) {
610
+ this.selectedRowsContainer = selectedRows;
611
+ }
597
612
  }
598
613
  componentWillUnmount() {
599
614
  if (canUseDOM()) {
@@ -663,7 +678,6 @@ class DataTableRoot extends Component {
663
678
  getI18nText,
664
679
  uid,
665
680
  headerProps,
666
- onSelectedRowsChange,
667
681
  selectedRows,
668
682
  sideIndents,
669
683
  variant
@@ -695,7 +709,7 @@ class DataTableRoot extends Component {
695
709
  totalRows: this.totalRows,
696
710
  selectedRows,
697
711
  flatRows: this.getFlatRows(),
698
- onChangeSelectAll: onSelectedRowsChange,
712
+ onChangeSelectAll: Array.isArray(selectedRows) ? this.handleSelectAllRows : undefined,
699
713
  getFixedStyle: this.getFixedStyle,
700
714
  onCellClick: this.handleCellClick,
701
715
  shadowVertical,
@@ -765,7 +779,7 @@ class DataTableRoot extends Component {
765
779
  renderEmptyData,
766
780
  sideIndents,
767
781
  selectedRows,
768
- onSelectRow: this.handleSelectRow,
782
+ onSelectRow: Array.isArray(selectedRows) ? this.handleSelectRow : undefined,
769
783
  getFixedStyle: this.getFixedStyle,
770
784
  onCellClick: this.handleCellClick,
771
785
  rawData,
@@ -827,7 +841,7 @@ class DataTableRoot extends Component {
827
841
  const width = w ?? (this.columns.some(c => c.gtcWidth === 'auto' || c.gtcWidth === '1fr') ? '100%' : undefined);
828
842
  let gridTemplateRows = undefined;
829
843
  if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
830
- gridTemplateRows = `auto auto repeat(${this.totalRows}, minmax(${virtualScroll.rowHeight}px, auto)`;
844
+ gridTemplateRows = `auto auto repeat(${this.totalRows}, minmax(${virtualScroll.rowHeight}px, auto))`;
831
845
  }
832
846
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
833
847
  "leftOffset": offsetLeftSum,
@@ -1019,12 +1033,14 @@ class DataTableRoot extends Component {
1019
1033
  const {
1020
1034
  data,
1021
1035
  uid,
1022
- uniqueRowKey
1036
+ uniqueRowKey,
1037
+ selectedRows
1023
1038
  } = this.props;
1024
1039
  if (this.tmpData === data) {
1025
1040
  return this.calculatedRows;
1026
1041
  }
1027
1042
  this.tmpData = data;
1043
+ const availableRowKeys = [];
1028
1044
  const rows = [];
1029
1045
  const columnNames = columns.map(column => column.name);
1030
1046
  let rowIndex = 0;
@@ -1096,6 +1112,10 @@ class DataTableRoot extends Component {
1096
1112
  dtRow[value] = '';
1097
1113
  });
1098
1114
  }
1115
+ if (!excludeColumns) {
1116
+ // we should add only the main row in mergedRows or default rows
1117
+ availableRowKeys.push(dtRow[UNIQ_ROW_KEY]);
1118
+ }
1099
1119
  return dtRow;
1100
1120
  };
1101
1121
  data.forEach(row => {
@@ -1152,6 +1172,9 @@ class DataTableRoot extends Component {
1152
1172
  }
1153
1173
  });
1154
1174
  this.calculatedRows = rows;
1175
+ if (selectedRows && !Array.isArray(selectedRows)) {
1176
+ selectedRows.setAvailableKeys(availableRowKeys);
1177
+ }
1155
1178
  return rows;
1156
1179
  }
1157
1180
  calculateGridTemplateColumn(c) {