@cloudscape-design/components 3.0.1195 → 3.0.1196

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 (74) hide show
  1. package/internal/base-component/styles.scoped.css +1 -1
  2. package/internal/environment.js +2 -2
  3. package/internal/environment.json +2 -2
  4. package/internal/manifest.json +1 -1
  5. package/package.json +1 -1
  6. package/table/body-cell/styles.css.js +48 -47
  7. package/table/body-cell/styles.scoped.css +380 -374
  8. package/table/body-cell/styles.selectors.js +48 -47
  9. package/table/body-cell/td-element.d.ts +1 -0
  10. package/table/body-cell/td-element.d.ts.map +1 -1
  11. package/table/body-cell/td-element.js +7 -2
  12. package/table/body-cell/td-element.js.map +1 -1
  13. package/table/expandable-rows/expandable-rows-utils.d.ts +13 -5
  14. package/table/expandable-rows/expandable-rows-utils.d.ts.map +1 -1
  15. package/table/expandable-rows/expandable-rows-utils.js +19 -8
  16. package/table/expandable-rows/expandable-rows-utils.js.map +1 -1
  17. package/table/index.d.ts.map +1 -1
  18. package/table/index.js +4 -1
  19. package/table/index.js.map +1 -1
  20. package/table/interfaces.d.ts +75 -17
  21. package/table/interfaces.d.ts.map +1 -1
  22. package/table/interfaces.js.map +1 -1
  23. package/table/internal.d.ts.map +1 -1
  24. package/table/internal.js +50 -23
  25. package/table/internal.js.map +1 -1
  26. package/table/progressive-loading/loader-cell.d.ts +1 -0
  27. package/table/progressive-loading/loader-cell.d.ts.map +1 -1
  28. package/table/progressive-loading/loader-cell.js +3 -2
  29. package/table/progressive-loading/loader-cell.js.map +1 -1
  30. package/table/progressive-loading/progressive-loading-utils.d.ts +3 -9
  31. package/table/progressive-loading/progressive-loading-utils.d.ts.map +1 -1
  32. package/table/progressive-loading/progressive-loading-utils.js +6 -5
  33. package/table/progressive-loading/progressive-loading-utils.js.map +1 -1
  34. package/table/selection/index.d.ts +1 -1
  35. package/table/selection/index.d.ts.map +1 -1
  36. package/table/selection/index.js.map +1 -1
  37. package/table/selection/interfaces.d.ts +7 -1
  38. package/table/selection/interfaces.d.ts.map +1 -1
  39. package/table/selection/interfaces.js.map +1 -1
  40. package/table/selection/selection-cell.d.ts +2 -2
  41. package/table/selection/selection-cell.d.ts.map +1 -1
  42. package/table/selection/selection-cell.js.map +1 -1
  43. package/table/selection/selection-control.d.ts +2 -2
  44. package/table/selection/selection-control.d.ts.map +1 -1
  45. package/table/selection/selection-control.js.map +1 -1
  46. package/table/selection/use-group-selection.d.ts +22 -0
  47. package/table/selection/use-group-selection.d.ts.map +1 -0
  48. package/table/selection/use-group-selection.js +103 -0
  49. package/table/selection/use-group-selection.js.map +1 -0
  50. package/table/selection/use-selection-focus-move.d.ts +2 -2
  51. package/table/selection/use-selection-focus-move.d.ts.map +1 -1
  52. package/table/selection/use-selection-focus-move.js.map +1 -1
  53. package/table/selection/use-selection.d.ts +4 -8
  54. package/table/selection/use-selection.d.ts.map +1 -1
  55. package/table/selection/use-selection.js +17 -6
  56. package/table/selection/use-selection.js.map +1 -1
  57. package/table/selection/utils.d.ts +1 -1
  58. package/table/selection/utils.d.ts.map +1 -1
  59. package/table/selection/utils.js.map +1 -1
  60. package/table/test-classes/styles.css.js +6 -0
  61. package/table/test-classes/styles.scoped.css +7 -0
  62. package/table/test-classes/styles.selectors.js +7 -0
  63. package/table/thead.d.ts +4 -4
  64. package/table/thead.d.ts.map +1 -1
  65. package/table/thead.js.map +1 -1
  66. package/table/use-table-focus-navigation.d.ts +2 -2
  67. package/table/use-table-focus-navigation.d.ts.map +1 -1
  68. package/table/use-table-focus-navigation.js.map +1 -1
  69. package/test-utils/dom/table/index.d.ts +7 -0
  70. package/test-utils/dom/table/index.js +11 -0
  71. package/test-utils/dom/table/index.js.map +1 -1
  72. package/test-utils/selectors/table/index.d.ts +7 -0
  73. package/test-utils/selectors/table/index.js +11 -0
  74. package/test-utils/selectors/table/index.js.map +1 -1
@@ -2,52 +2,53 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "expandable-toggle-wrapper": "awsui_expandable-toggle-wrapper_c6tup_1blv8_145",
6
- "body-cell": "awsui_body-cell_c6tup_1blv8_152",
7
- "body-cell-content": "awsui_body-cell-content_c6tup_1blv8_160",
8
- "expandable-level-0": "awsui_expandable-level-0_c6tup_1blv8_166",
9
- "expandable-level-1": "awsui_expandable-level-1_c6tup_1blv8_173",
10
- "expandable-level-2": "awsui_expandable-level-2_c6tup_1blv8_180",
11
- "expandable-level-3": "awsui_expandable-level-3_c6tup_1blv8_187",
12
- "expandable-level-4": "awsui_expandable-level-4_c6tup_1blv8_194",
13
- "expandable-level-5": "awsui_expandable-level-5_c6tup_1blv8_201",
14
- "expandable-level-6": "awsui_expandable-level-6_c6tup_1blv8_208",
15
- "expandable-level-7": "awsui_expandable-level-7_c6tup_1blv8_215",
16
- "expandable-level-8": "awsui_expandable-level-8_c6tup_1blv8_222",
17
- "expandable-level-9": "awsui_expandable-level-9_c6tup_1blv8_229",
18
- "expandable-level-next": "awsui_expandable-level-next_c6tup_1blv8_236",
19
- "body-cell-align-top": "awsui_body-cell-align-top_c6tup_1blv8_254",
20
- "body-cell-wrap": "awsui_body-cell-wrap_c6tup_1blv8_260",
21
- "is-visual-refresh": "awsui_is-visual-refresh_c6tup_1blv8_357",
22
- "body-cell-edit-active": "awsui_body-cell-edit-active_c6tup_1blv8_447",
23
- "body-cell-expandable": "awsui_body-cell-expandable_c6tup_1blv8_447",
24
- "body-cell-editable": "awsui_body-cell-editable_c6tup_1blv8_447",
25
- "has-striped-rows": "awsui_has-striped-rows_c6tup_1blv8_530",
26
- "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_c6tup_1blv8_696",
27
- "has-selection": "awsui_has-selection_c6tup_1blv8_862",
28
- "body-cell-first-row": "awsui_body-cell-first-row_c6tup_1blv8_1031",
29
- "body-cell-last-row": "awsui_body-cell-last-row_c6tup_1blv8_1034",
30
- "body-cell-selected": "awsui_body-cell-selected_c6tup_1blv8_1034",
31
- "has-footer": "awsui_has-footer_c6tup_1blv8_1034",
32
- "body-cell-shaded": "awsui_body-cell-shaded_c6tup_1blv8_1044",
33
- "sticky-cell": "awsui_sticky-cell_c6tup_1blv8_696",
34
- "table-variant-full-page": "awsui_table-variant-full-page_c6tup_1blv8_1095",
35
- "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_c6tup_1blv8_1112",
36
- "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_c6tup_1blv8_1121",
37
- "body-cell-next-selected": "awsui_body-cell-next-selected_c6tup_1blv8_1143",
38
- "body-cell-prev-selected": "awsui_body-cell-prev-selected_c6tup_1blv8_1150",
39
- "body-cell-editor-wrapper": "awsui_body-cell-editor-wrapper_c6tup_1blv8_1176",
40
- "body-cell-success": "awsui_body-cell-success_c6tup_1blv8_1181",
41
- "body-cell-editor": "awsui_body-cell-editor_c6tup_1blv8_1176",
42
- "body-cell-editor-disabled": "awsui_body-cell-editor-disabled_c6tup_1blv8_1206",
43
- "body-cell-editor-row": "awsui_body-cell-editor-row_c6tup_1blv8_1215",
44
- "body-cell-editor-controls": "awsui_body-cell-editor-controls_c6tup_1blv8_1225",
45
- "body-cell-editor-row-editor": "awsui_body-cell-editor-row-editor_c6tup_1blv8_1228",
46
- "body-cell-editor-focusable": "awsui_body-cell-editor-focusable_c6tup_1blv8_1231",
47
- "body-cell-editor-icon": "awsui_body-cell-editor-icon_c6tup_1blv8_1255",
48
- "resizable-columns": "awsui_resizable-columns_c6tup_1blv8_1367",
49
- "expandable-cell-content": "awsui_expandable-cell-content_c6tup_1blv8_1370",
50
- "body-cell-edit-disabled-popover": "awsui_body-cell-edit-disabled-popover_c6tup_1blv8_1421",
51
- "body-cell-has-success": "awsui_body-cell-has-success_c6tup_1blv8_1424"
5
+ "expandable-toggle-wrapper": "awsui_expandable-toggle-wrapper_c6tup_hvmkg_145",
6
+ "body-cell": "awsui_body-cell_c6tup_hvmkg_152",
7
+ "body-cell-content": "awsui_body-cell-content_c6tup_hvmkg_160",
8
+ "expandable-level-0": "awsui_expandable-level-0_c6tup_hvmkg_166",
9
+ "expandable-level-1": "awsui_expandable-level-1_c6tup_hvmkg_173",
10
+ "expandable-level-2": "awsui_expandable-level-2_c6tup_hvmkg_180",
11
+ "expandable-level-3": "awsui_expandable-level-3_c6tup_hvmkg_187",
12
+ "expandable-level-4": "awsui_expandable-level-4_c6tup_hvmkg_194",
13
+ "expandable-level-5": "awsui_expandable-level-5_c6tup_hvmkg_201",
14
+ "expandable-level-6": "awsui_expandable-level-6_c6tup_hvmkg_208",
15
+ "expandable-level-7": "awsui_expandable-level-7_c6tup_hvmkg_215",
16
+ "expandable-level-8": "awsui_expandable-level-8_c6tup_hvmkg_222",
17
+ "expandable-level-9": "awsui_expandable-level-9_c6tup_hvmkg_229",
18
+ "expandable-level-next": "awsui_expandable-level-next_c6tup_hvmkg_236",
19
+ "body-cell-align-top": "awsui_body-cell-align-top_c6tup_hvmkg_254",
20
+ "body-cell-wrap": "awsui_body-cell-wrap_c6tup_hvmkg_260",
21
+ "body-cell-counter": "awsui_body-cell-counter_c6tup_hvmkg_265",
22
+ "is-visual-refresh": "awsui_is-visual-refresh_c6tup_hvmkg_363",
23
+ "body-cell-edit-active": "awsui_body-cell-edit-active_c6tup_hvmkg_453",
24
+ "body-cell-expandable": "awsui_body-cell-expandable_c6tup_hvmkg_453",
25
+ "body-cell-editable": "awsui_body-cell-editable_c6tup_hvmkg_453",
26
+ "has-striped-rows": "awsui_has-striped-rows_c6tup_hvmkg_536",
27
+ "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_c6tup_hvmkg_702",
28
+ "has-selection": "awsui_has-selection_c6tup_hvmkg_868",
29
+ "body-cell-first-row": "awsui_body-cell-first-row_c6tup_hvmkg_1037",
30
+ "body-cell-last-row": "awsui_body-cell-last-row_c6tup_hvmkg_1040",
31
+ "body-cell-selected": "awsui_body-cell-selected_c6tup_hvmkg_1040",
32
+ "has-footer": "awsui_has-footer_c6tup_hvmkg_1040",
33
+ "body-cell-shaded": "awsui_body-cell-shaded_c6tup_hvmkg_1050",
34
+ "sticky-cell": "awsui_sticky-cell_c6tup_hvmkg_702",
35
+ "table-variant-full-page": "awsui_table-variant-full-page_c6tup_hvmkg_1101",
36
+ "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_c6tup_hvmkg_1118",
37
+ "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_c6tup_hvmkg_1127",
38
+ "body-cell-next-selected": "awsui_body-cell-next-selected_c6tup_hvmkg_1149",
39
+ "body-cell-prev-selected": "awsui_body-cell-prev-selected_c6tup_hvmkg_1156",
40
+ "body-cell-editor-wrapper": "awsui_body-cell-editor-wrapper_c6tup_hvmkg_1182",
41
+ "body-cell-success": "awsui_body-cell-success_c6tup_hvmkg_1187",
42
+ "body-cell-editor": "awsui_body-cell-editor_c6tup_hvmkg_1182",
43
+ "body-cell-editor-disabled": "awsui_body-cell-editor-disabled_c6tup_hvmkg_1212",
44
+ "body-cell-editor-row": "awsui_body-cell-editor-row_c6tup_hvmkg_1221",
45
+ "body-cell-editor-controls": "awsui_body-cell-editor-controls_c6tup_hvmkg_1231",
46
+ "body-cell-editor-row-editor": "awsui_body-cell-editor-row-editor_c6tup_hvmkg_1234",
47
+ "body-cell-editor-focusable": "awsui_body-cell-editor-focusable_c6tup_hvmkg_1237",
48
+ "body-cell-editor-icon": "awsui_body-cell-editor-icon_c6tup_hvmkg_1261",
49
+ "resizable-columns": "awsui_resizable-columns_c6tup_hvmkg_1373",
50
+ "expandable-cell-content": "awsui_expandable-cell-content_c6tup_hvmkg_1376",
51
+ "body-cell-edit-disabled-popover": "awsui_body-cell-edit-disabled-popover_c6tup_hvmkg_1427",
52
+ "body-cell-has-success": "awsui_body-cell-has-success_c6tup_hvmkg_1430"
52
53
  };
53
54
 
@@ -39,5 +39,6 @@ export interface TableTdElementProps {
39
39
  isEditingDisabled?: boolean;
40
40
  hasSuccessIcon?: boolean;
41
41
  tableVariant?: string;
42
+ counter?: React.ReactNode;
42
43
  }
43
44
  export declare const TableTdElement: React.ForwardRefExoticComponent<TableTdElementProps & React.RefAttributes<HTMLTableCellElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"td-element.d.ts","sourceRoot":"","sources":["../../../../src/table/body-cell/td-element.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAStC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAyB,SAAS,EAAE,MAAM,eAAe,CAAC;AAMjE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,IAAI,CACrB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAC3F,OAAO,GAAG,WAAW,GAAG,SAAS,CAClC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,kGA8G1B,CAAC"}
1
+ {"version":3,"file":"td-element.d.ts","sourceRoot":"","sources":["../../../../src/table/body-cell/td-element.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAStC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAyB,SAAS,EAAE,MAAM,eAAe,CAAC;AAOjE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,IAAI,CACrB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAC3F,OAAO,GAAG,WAAW,GAAG,SAAS,CAClC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,kGAuH1B,CAAC"}
@@ -11,8 +11,9 @@ import { useStickyCellStyles } from '../sticky-columns';
11
11
  import { getTableCellRoleProps } from '../table-role';
12
12
  import { getStickyClassNames } from '../utils';
13
13
  import tableStyles from '../styles.css.js';
14
+ import testUtilStyles from '../test-classes/styles.css.js';
14
15
  import styles from './styles.css.js';
15
- export const TableTdElement = React.forwardRef(({ children, wrapLines, isRowHeader, isFirstRow, isLastRow, isSelected, isNextSelected, isPrevSelected, nativeAttributes, onClick, onFocus, onBlur, isEvenRow, stripedRows, isSelection, hasSelection, hasFooter, columnId, colIndex, stickyState, tableRole, level, isExpandable, isExpanded, onExpandableItemToggle, expandButtonLabel, collapseButtonLabel, verticalAlign, resizableColumns, resizableStyle, isEditable, isEditing, isEditingDisabled, hasSuccessIcon, tableVariant, ...rest }, ref) => {
16
+ export const TableTdElement = React.forwardRef(({ children, wrapLines, isRowHeader, isFirstRow, isLastRow, isSelected, isNextSelected, isPrevSelected, nativeAttributes, onClick, onFocus, onBlur, isEvenRow, stripedRows, isSelection, hasSelection, hasFooter, columnId, colIndex, stickyState, tableRole, level, isExpandable, isExpanded, onExpandableItemToggle, expandButtonLabel, collapseButtonLabel, verticalAlign, resizableColumns, resizableStyle, isEditable, isEditing, isEditingDisabled, hasSuccessIcon, tableVariant, counter, ...rest }, ref) => {
16
17
  const Element = isRowHeader ? 'th' : 'td';
17
18
  const isVisualRefresh = useVisualRefresh();
18
19
  resizableStyle = resizableColumns ? {} : resizableStyle;
@@ -29,7 +30,11 @@ export const TableTdElement = React.forwardRef(({ children, wrapLines, isRowHead
29
30
  return (React.createElement(Element, { style: { ...resizableStyle, ...stickyStyles.style }, className: clsx(styles['body-cell'], isFirstRow && styles['body-cell-first-row'], isLastRow && styles['body-cell-last-row'], isSelected && styles['body-cell-selected'], isNextSelected && styles['body-cell-next-selected'], isPrevSelected && styles['body-cell-prev-selected'], !isEvenRow && stripedRows && styles['body-cell-shaded'], stripedRows && styles['has-striped-rows'], isVisualRefresh && styles['is-visual-refresh'], isSelection && tableStyles['selection-control'], hasSelection && styles['has-selection'], hasFooter && styles['has-footer'], resizableColumns && styles['resizable-columns'], verticalAlign === 'top' && styles['body-cell-align-top'], isEditable && styles['body-cell-editable'], isEditing && !isEditingDisabled && styles['body-cell-edit-active'], isEditing && isEditingDisabled && styles['body-cell-edit-disabled-popover'], hasSuccessIcon && styles['body-cell-has-success'], level !== undefined && !isEditingActive && styles['body-cell-expandable'], level !== undefined && !isEditingActive && styles[`expandable-level-${getLevelClassSuffix(level)}`], tableVariant && styles[`table-variant-${tableVariant}`], stickyStyles.className), onClick: onClick, onFocus: onFocus, onBlur: onBlur, ref: mergedRef, ...nativeAttributes, tabIndex: cellTabIndex === -1 ? undefined : cellTabIndex, ...copyAnalyticsMetadataAttribute(rest) },
30
31
  level !== undefined && isExpandable && !isEditingActive && (React.createElement("div", { className: styles['expandable-toggle-wrapper'] },
31
32
  React.createElement(ExpandToggleButton, { isExpanded: isExpanded, onExpandableItemToggle: onExpandableItemToggle, expandButtonLabel: expandButtonLabel, collapseButtonLabel: collapseButtonLabel }))),
32
- React.createElement("div", { className: clsx(styles['body-cell-content'], wrapLines && styles['body-cell-wrap']) }, children)));
33
+ React.createElement("div", { className: clsx(styles['body-cell-content'], wrapLines && styles['body-cell-wrap']) },
34
+ children,
35
+ counter ? (React.createElement("div", { className: styles['body-cell-counter'] },
36
+ ' ',
37
+ React.createElement("span", { className: testUtilStyles['body-cell-counter'] }, counter))) : null)));
33
38
  });
34
39
  function getLevelClassSuffix(level) {
35
40
  return 0 <= level && level <= 9 ? level : 'next';
@@ -1 +1 @@
1
- {"version":3,"file":"td-element.js","sourceRoot":"","sources":["../../../../src/table/body-cell/td-element.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { copyAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { ExpandToggleButton } from '../../internal/components/expand-toggle-button';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport { ColumnWidthStyle } from '../column-widths-utils';\nimport { TableProps } from '../interfaces.js';\nimport { StickyColumnsModel, useStickyCellStyles } from '../sticky-columns';\nimport { getTableCellRoleProps, TableRole } from '../table-role';\nimport { getStickyClassNames } from '../utils';\n\nimport tableStyles from '../styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableTdElementProps {\n wrapLines: boolean | undefined;\n isRowHeader?: boolean;\n isFirstRow: boolean;\n isLastRow: boolean;\n isSelected: boolean;\n isNextSelected: boolean;\n isPrevSelected: boolean;\n nativeAttributes?: Omit<\n React.TdHTMLAttributes<HTMLTableCellElement> | React.ThHTMLAttributes<HTMLTableCellElement>,\n 'style' | 'className' | 'onClick'\n >;\n onClick?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n children?: React.ReactNode;\n isEvenRow?: boolean;\n stripedRows?: boolean;\n isSelection?: boolean;\n hasSelection?: boolean;\n hasFooter?: boolean;\n columnId: PropertyKey;\n colIndex: number;\n stickyState: StickyColumnsModel;\n tableRole: TableRole;\n level?: number;\n isExpandable?: boolean;\n isExpanded?: boolean;\n onExpandableItemToggle?: () => void;\n expandButtonLabel?: string;\n collapseButtonLabel?: string;\n verticalAlign?: TableProps.VerticalAlign;\n resizableColumns?: boolean;\n resizableStyle?: ColumnWidthStyle;\n isEditable: boolean;\n isEditing: boolean;\n isEditingDisabled?: boolean;\n hasSuccessIcon?: boolean;\n tableVariant?: string;\n}\n\nexport const TableTdElement = React.forwardRef<HTMLTableCellElement, TableTdElementProps>(\n (\n {\n children,\n wrapLines,\n isRowHeader,\n isFirstRow,\n isLastRow,\n isSelected,\n isNextSelected,\n isPrevSelected,\n nativeAttributes,\n onClick,\n onFocus,\n onBlur,\n isEvenRow,\n stripedRows,\n isSelection,\n hasSelection,\n hasFooter,\n columnId,\n colIndex,\n stickyState,\n tableRole,\n level,\n isExpandable,\n isExpanded,\n onExpandableItemToggle,\n expandButtonLabel,\n collapseButtonLabel,\n verticalAlign,\n resizableColumns,\n resizableStyle,\n isEditable,\n isEditing,\n isEditingDisabled,\n hasSuccessIcon,\n tableVariant,\n ...rest\n },\n ref\n ) => {\n const Element = isRowHeader ? 'th' : 'td';\n const isVisualRefresh = useVisualRefresh();\n\n resizableStyle = resizableColumns ? {} : resizableStyle;\n\n nativeAttributes = { ...nativeAttributes, ...getTableCellRoleProps({ tableRole, isRowHeader, colIndex }) };\n\n const stickyStyles = useStickyCellStyles({\n stickyColumns: stickyState,\n columnId,\n getClassName: props => getStickyClassNames(styles, props),\n });\n\n const cellRefObject = useRef<HTMLTableCellElement>(null);\n const mergedRef = useMergeRefs(stickyStyles.ref, ref, cellRefObject);\n const { tabIndex: cellTabIndex } = useSingleTabStopNavigation(cellRefObject);\n const isEditingActive = isEditing && !isEditingDisabled;\n\n return (\n <Element\n style={{ ...resizableStyle, ...stickyStyles.style }}\n className={clsx(\n styles['body-cell'],\n isFirstRow && styles['body-cell-first-row'],\n isLastRow && styles['body-cell-last-row'],\n isSelected && styles['body-cell-selected'],\n isNextSelected && styles['body-cell-next-selected'],\n isPrevSelected && styles['body-cell-prev-selected'],\n !isEvenRow && stripedRows && styles['body-cell-shaded'],\n stripedRows && styles['has-striped-rows'],\n isVisualRefresh && styles['is-visual-refresh'],\n isSelection && tableStyles['selection-control'],\n hasSelection && styles['has-selection'],\n hasFooter && styles['has-footer'],\n resizableColumns && styles['resizable-columns'],\n verticalAlign === 'top' && styles['body-cell-align-top'],\n isEditable && styles['body-cell-editable'],\n isEditing && !isEditingDisabled && styles['body-cell-edit-active'],\n isEditing && isEditingDisabled && styles['body-cell-edit-disabled-popover'],\n hasSuccessIcon && styles['body-cell-has-success'],\n level !== undefined && !isEditingActive && styles['body-cell-expandable'],\n level !== undefined && !isEditingActive && styles[`expandable-level-${getLevelClassSuffix(level)}`],\n tableVariant && styles[`table-variant-${tableVariant}`],\n stickyStyles.className\n )}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={mergedRef}\n {...nativeAttributes}\n tabIndex={cellTabIndex === -1 ? undefined : cellTabIndex}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {level !== undefined && isExpandable && !isEditingActive && (\n <div className={styles['expandable-toggle-wrapper']}>\n <ExpandToggleButton\n isExpanded={isExpanded}\n onExpandableItemToggle={onExpandableItemToggle}\n expandButtonLabel={expandButtonLabel}\n collapseButtonLabel={collapseButtonLabel}\n />\n </div>\n )}\n\n <div className={clsx(styles['body-cell-content'], wrapLines && styles['body-cell-wrap'])}>{children}</div>\n </Element>\n );\n }\n);\n\nfunction getLevelClassSuffix(level: number) {\n return 0 <= level && level <= 9 ? level : 'next';\n}\n"]}
1
+ {"version":3,"file":"td-element.js","sourceRoot":"","sources":["../../../../src/table/body-cell/td-element.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAsB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAa,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AA4CrC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAC5C,CACE,EACE,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,KAAK,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;IAE3C,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAExD,gBAAgB,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAE3G,MAAM,YAAY,GAAG,mBAAmB,CAAC;QACvC,aAAa,EAAE,WAAW;QAC1B,QAAQ;QACR,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;KAC1D,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,iBAAiB,CAAC;IAExD,OAAO,CACL,oBAAC,OAAO,IACN,KAAK,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,EACnD,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,WAAW,CAAC,EACnB,UAAU,IAAI,MAAM,CAAC,qBAAqB,CAAC,EAC3C,SAAS,IAAI,MAAM,CAAC,oBAAoB,CAAC,EACzC,UAAU,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAC1C,cAAc,IAAI,MAAM,CAAC,yBAAyB,CAAC,EACnD,cAAc,IAAI,MAAM,CAAC,yBAAyB,CAAC,EACnD,CAAC,SAAS,IAAI,WAAW,IAAI,MAAM,CAAC,kBAAkB,CAAC,EACvD,WAAW,IAAI,MAAM,CAAC,kBAAkB,CAAC,EACzC,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,EAC9C,WAAW,IAAI,WAAW,CAAC,mBAAmB,CAAC,EAC/C,YAAY,IAAI,MAAM,CAAC,eAAe,CAAC,EACvC,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,EACjC,gBAAgB,IAAI,MAAM,CAAC,mBAAmB,CAAC,EAC/C,aAAa,KAAK,KAAK,IAAI,MAAM,CAAC,qBAAqB,CAAC,EACxD,UAAU,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAC1C,SAAS,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAClE,SAAS,IAAI,iBAAiB,IAAI,MAAM,CAAC,iCAAiC,CAAC,EAC3E,cAAc,IAAI,MAAM,CAAC,uBAAuB,CAAC,EACjD,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,sBAAsB,CAAC,EACzE,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,oBAAoB,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,EACnG,YAAY,IAAI,MAAM,CAAC,iBAAiB,YAAY,EAAE,CAAC,EACvD,YAAY,CAAC,SAAS,CACvB,EACD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,SAAS,KACV,gBAAgB,EACpB,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,KACpD,8BAA8B,CAAC,IAAI,CAAC;QAEvC,KAAK,KAAK,SAAS,IAAI,YAAY,IAAI,CAAC,eAAe,IAAI,CAC1D,6BAAK,SAAS,EAAE,MAAM,CAAC,2BAA2B,CAAC;YACjD,oBAAC,kBAAkB,IACjB,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,GACxC,CACE,CACP;QAED,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrF,QAAQ;YACR,OAAO,CAAC,CAAC,CAAC,CACT,6BAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC;gBACxC,GAAG;gBACJ,8BAAM,SAAS,EAAE,cAAc,CAAC,mBAAmB,CAAC,IAAG,OAAO,CAAQ,CAClE,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACE,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { copyAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { ExpandToggleButton } from '../../internal/components/expand-toggle-button';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport { ColumnWidthStyle } from '../column-widths-utils';\nimport { TableProps } from '../interfaces.js';\nimport { StickyColumnsModel, useStickyCellStyles } from '../sticky-columns';\nimport { getTableCellRoleProps, TableRole } from '../table-role';\nimport { getStickyClassNames } from '../utils';\n\nimport tableStyles from '../styles.css.js';\nimport testUtilStyles from '../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableTdElementProps {\n wrapLines: boolean | undefined;\n isRowHeader?: boolean;\n isFirstRow: boolean;\n isLastRow: boolean;\n isSelected: boolean;\n isNextSelected: boolean;\n isPrevSelected: boolean;\n nativeAttributes?: Omit<\n React.TdHTMLAttributes<HTMLTableCellElement> | React.ThHTMLAttributes<HTMLTableCellElement>,\n 'style' | 'className' | 'onClick'\n >;\n onClick?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n children?: React.ReactNode;\n isEvenRow?: boolean;\n stripedRows?: boolean;\n isSelection?: boolean;\n hasSelection?: boolean;\n hasFooter?: boolean;\n columnId: PropertyKey;\n colIndex: number;\n stickyState: StickyColumnsModel;\n tableRole: TableRole;\n level?: number;\n isExpandable?: boolean;\n isExpanded?: boolean;\n onExpandableItemToggle?: () => void;\n expandButtonLabel?: string;\n collapseButtonLabel?: string;\n verticalAlign?: TableProps.VerticalAlign;\n resizableColumns?: boolean;\n resizableStyle?: ColumnWidthStyle;\n isEditable: boolean;\n isEditing: boolean;\n isEditingDisabled?: boolean;\n hasSuccessIcon?: boolean;\n tableVariant?: string;\n counter?: React.ReactNode;\n}\n\nexport const TableTdElement = React.forwardRef<HTMLTableCellElement, TableTdElementProps>(\n (\n {\n children,\n wrapLines,\n isRowHeader,\n isFirstRow,\n isLastRow,\n isSelected,\n isNextSelected,\n isPrevSelected,\n nativeAttributes,\n onClick,\n onFocus,\n onBlur,\n isEvenRow,\n stripedRows,\n isSelection,\n hasSelection,\n hasFooter,\n columnId,\n colIndex,\n stickyState,\n tableRole,\n level,\n isExpandable,\n isExpanded,\n onExpandableItemToggle,\n expandButtonLabel,\n collapseButtonLabel,\n verticalAlign,\n resizableColumns,\n resizableStyle,\n isEditable,\n isEditing,\n isEditingDisabled,\n hasSuccessIcon,\n tableVariant,\n counter,\n ...rest\n },\n ref\n ) => {\n const Element = isRowHeader ? 'th' : 'td';\n const isVisualRefresh = useVisualRefresh();\n\n resizableStyle = resizableColumns ? {} : resizableStyle;\n\n nativeAttributes = { ...nativeAttributes, ...getTableCellRoleProps({ tableRole, isRowHeader, colIndex }) };\n\n const stickyStyles = useStickyCellStyles({\n stickyColumns: stickyState,\n columnId,\n getClassName: props => getStickyClassNames(styles, props),\n });\n\n const cellRefObject = useRef<HTMLTableCellElement>(null);\n const mergedRef = useMergeRefs(stickyStyles.ref, ref, cellRefObject);\n const { tabIndex: cellTabIndex } = useSingleTabStopNavigation(cellRefObject);\n const isEditingActive = isEditing && !isEditingDisabled;\n\n return (\n <Element\n style={{ ...resizableStyle, ...stickyStyles.style }}\n className={clsx(\n styles['body-cell'],\n isFirstRow && styles['body-cell-first-row'],\n isLastRow && styles['body-cell-last-row'],\n isSelected && styles['body-cell-selected'],\n isNextSelected && styles['body-cell-next-selected'],\n isPrevSelected && styles['body-cell-prev-selected'],\n !isEvenRow && stripedRows && styles['body-cell-shaded'],\n stripedRows && styles['has-striped-rows'],\n isVisualRefresh && styles['is-visual-refresh'],\n isSelection && tableStyles['selection-control'],\n hasSelection && styles['has-selection'],\n hasFooter && styles['has-footer'],\n resizableColumns && styles['resizable-columns'],\n verticalAlign === 'top' && styles['body-cell-align-top'],\n isEditable && styles['body-cell-editable'],\n isEditing && !isEditingDisabled && styles['body-cell-edit-active'],\n isEditing && isEditingDisabled && styles['body-cell-edit-disabled-popover'],\n hasSuccessIcon && styles['body-cell-has-success'],\n level !== undefined && !isEditingActive && styles['body-cell-expandable'],\n level !== undefined && !isEditingActive && styles[`expandable-level-${getLevelClassSuffix(level)}`],\n tableVariant && styles[`table-variant-${tableVariant}`],\n stickyStyles.className\n )}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={mergedRef}\n {...nativeAttributes}\n tabIndex={cellTabIndex === -1 ? undefined : cellTabIndex}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {level !== undefined && isExpandable && !isEditingActive && (\n <div className={styles['expandable-toggle-wrapper']}>\n <ExpandToggleButton\n isExpanded={isExpanded}\n onExpandableItemToggle={onExpandableItemToggle}\n expandButtonLabel={expandButtonLabel}\n collapseButtonLabel={collapseButtonLabel}\n />\n </div>\n )}\n\n <div className={clsx(styles['body-cell-content'], wrapLines && styles['body-cell-wrap'])}>\n {children}\n {counter ? (\n <div className={styles['body-cell-counter']}>\n {' '}\n <span className={testUtilStyles['body-cell-counter']}>{counter}</span>\n </div>\n ) : null}\n </div>\n </Element>\n );\n }\n);\n\nfunction getLevelClassSuffix(level: number) {\n return 0 <= level && level <= 9 ? level : 'next';\n}\n"]}
@@ -5,6 +5,8 @@ interface ExpandableItemProps<T> extends ExpandableItemDetail<T> {
5
5
  onExpandableItemToggle: () => void;
6
6
  expandButtonLabel?: string;
7
7
  collapseButtonLabel?: string;
8
+ itemsCount?: number;
9
+ selectedItemsCount?: number;
8
10
  }
9
11
  interface ExpandableItemDetail<T> {
10
12
  level: number;
@@ -13,6 +15,16 @@ interface ExpandableItemDetail<T> {
13
15
  parent: null | T;
14
16
  children: readonly T[];
15
17
  }
18
+ export interface InternalExpandableRowsProps<T> {
19
+ isExpandable: boolean;
20
+ allItems: readonly T[];
21
+ getExpandableItemProps(item: T): ExpandableItemProps<T>;
22
+ hasGroupSelection: boolean;
23
+ groupSelection: TableProps.GroupSelectionState<T>;
24
+ onGroupSelectionChange?: TableProps.OnGroupSelectionChange<T>;
25
+ totalItemsCount?: number;
26
+ totalSelectedItemsCount?: number;
27
+ }
16
28
  export declare function useExpandableTableProps<T>({
17
29
  items,
18
30
  expandableRows,
@@ -23,9 +35,5 @@ export declare function useExpandableTableProps<T>({
23
35
  expandableRows?: TableProps.ExpandableRows<T>;
24
36
  trackBy?: TableProps.TrackBy<T>;
25
37
  ariaLabels?: TableProps.AriaLabels<T>;
26
- }): {
27
- isExpandable: boolean;
28
- allItems: readonly T[];
29
- getExpandableItemProps: (item: T) => ExpandableItemProps<T>;
30
- };
38
+ }): InternalExpandableRowsProps<T>;
31
39
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-rows-utils.d.ts","sourceRoot":"","sources":["../../../../src/table/expandable-rows/expandable-rows-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,UAAU,mBAAmB,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9D,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,oBAAoB,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,cAAc,EACd,OAAO,EACP,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACvC;;;mCA6CuC,CAAC,KAAG,mBAAmB,CAAC,CAAC,CAAC;EAkBjE"}
1
+ {"version":3,"file":"expandable-rows-utils.d.ts","sourceRoot":"","sources":["../../../../src/table/expandable-rows/expandable-rows-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,UAAU,mBAAmB,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9D,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,oBAAoB,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;IACvB,sBAAsB,CAAC,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACxD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClD,sBAAsB,CAAC,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,cAAc,EACd,OAAO,EACP,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACvC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CA8EjC"}
@@ -4,7 +4,7 @@ import { useInternalI18n } from '../../i18n/context';
4
4
  import { fireNonCancelableEvent } from '../../internal/events';
5
5
  import { ItemSet } from '../selection/utils';
6
6
  export function useExpandableTableProps({ items, expandableRows, trackBy, ariaLabels, }) {
7
- var _a;
7
+ var _a, _b;
8
8
  const i18n = useInternalI18n('table');
9
9
  const isExpandable = !!expandableRows;
10
10
  const expandedSet = new ItemSet(trackBy, (_a = expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.expandedItems) !== null && _a !== void 0 ? _a : []);
@@ -13,15 +13,15 @@ export function useExpandableTableProps({ items, expandableRows, trackBy, ariaLa
13
13
  const getItemLevel = (item) => { var _a, _b; return (_b = (_a = itemToDetail.get(item)) === null || _a === void 0 ? void 0 : _a.level) !== null && _b !== void 0 ? _b : 0; };
14
14
  if (isExpandable) {
15
15
  const visibleItems = new Array();
16
- const traverse = (item, detail) => {
16
+ const traverse = (item, detail, visible) => {
17
17
  const children = expandableRows.getItemChildren(item);
18
18
  itemToDetail.set(item, { ...detail, children });
19
- visibleItems.push(item);
20
- if (expandedSet.has(item)) {
21
- children.forEach((child, index) => traverse(child, { level: detail.level + 1, setSize: children.length, posInSet: index + 1, parent: item }));
19
+ if (visible) {
20
+ visibleItems.push(item);
22
21
  }
22
+ children.forEach((child, index) => traverse(child, { level: detail.level + 1, setSize: children.length, posInSet: index + 1, parent: item }, visible && expandedSet.has(item)));
23
23
  };
24
- items.forEach((item, index) => traverse(item, { level: 1, setSize: items.length, posInSet: index + 1, parent: null }));
24
+ items.forEach((item, index) => traverse(item, { level: 1, setSize: items.length, posInSet: index + 1, parent: null }, true));
25
25
  for (let index = 0; index < visibleItems.length; index++) {
26
26
  const item = visibleItems[index];
27
27
  if (expandedSet.has(item)) {
@@ -38,7 +38,7 @@ export function useExpandableTableProps({ items, expandableRows, trackBy, ariaLa
38
38
  allItems = visibleItems;
39
39
  }
40
40
  const getExpandableItemProps = (item) => {
41
- var _a, _b, _c, _d;
41
+ var _a, _b, _c, _d, _e, _f;
42
42
  const { level = 1, setSize = 1, posInSet = 1, parent = null, children = [] } = (_a = itemToDetail.get(item)) !== null && _a !== void 0 ? _a : {};
43
43
  return {
44
44
  level,
@@ -51,8 +51,19 @@ export function useExpandableTableProps({ items, expandableRows, trackBy, ariaLa
51
51
  collapseButtonLabel: i18n('ariaLabels.collapseButtonLabel', (_d = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.collapseButtonLabel) === null || _d === void 0 ? void 0 : _d.call(ariaLabels, item)),
52
52
  parent,
53
53
  children,
54
+ itemsCount: (_e = expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.getItemsCount) === null || _e === void 0 ? void 0 : _e.call(expandableRows, item),
55
+ selectedItemsCount: (_f = expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.getSelectedItemsCount) === null || _f === void 0 ? void 0 : _f.call(expandableRows, item),
54
56
  };
55
57
  };
56
- return { isExpandable, allItems, getExpandableItemProps };
58
+ return {
59
+ isExpandable,
60
+ allItems,
61
+ getExpandableItemProps,
62
+ hasGroupSelection: !!(expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.groupSelection),
63
+ groupSelection: (_b = expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.groupSelection) !== null && _b !== void 0 ? _b : { inverted: false, toggledItems: [] },
64
+ onGroupSelectionChange: expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.onGroupSelectionChange,
65
+ totalItemsCount: expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.totalItemsCount,
66
+ totalSelectedItemsCount: expandableRows === null || expandableRows === void 0 ? void 0 : expandableRows.totalSelectedItemsCount,
67
+ };
57
68
  }
58
69
  //# sourceMappingURL=expandable-rows-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-rows-utils.js","sourceRoot":"","sources":["../../../../src/table/expandable-rows/expandable-rows-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useInternalI18n } from '../../i18n/context';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { TableProps } from '../interfaces';\nimport { ItemSet } from '../selection/utils';\n\ninterface ExpandableItemProps<T> extends ExpandableItemDetail<T> {\n isExpandable: boolean;\n isExpanded: boolean;\n onExpandableItemToggle: () => void;\n expandButtonLabel?: string;\n collapseButtonLabel?: string;\n}\n\ninterface ExpandableItemDetail<T> {\n level: number;\n setSize: number;\n posInSet: number;\n parent: null | T;\n children: readonly T[];\n}\n\nexport function useExpandableTableProps<T>({\n items,\n expandableRows,\n trackBy,\n ariaLabels,\n}: {\n items: readonly T[];\n expandableRows?: TableProps.ExpandableRows<T>;\n trackBy?: TableProps.TrackBy<T>;\n ariaLabels?: TableProps.AriaLabels<T>;\n}) {\n const i18n = useInternalI18n('table');\n const isExpandable = !!expandableRows;\n\n const expandedSet = new ItemSet(trackBy, expandableRows?.expandedItems ?? []);\n\n let allItems = items;\n const itemToDetail = new Map<T, ExpandableItemDetail<T>>();\n const getItemLevel = (item: T) => itemToDetail.get(item)?.level ?? 0;\n\n if (isExpandable) {\n const visibleItems = new Array<T>();\n\n const traverse = (item: T, detail: Omit<ExpandableItemDetail<T>, 'children'>) => {\n const children = expandableRows.getItemChildren(item);\n itemToDetail.set(item, { ...detail, children });\n\n visibleItems.push(item);\n if (expandedSet.has(item)) {\n children.forEach((child, index) =>\n traverse(child, { level: detail.level + 1, setSize: children.length, posInSet: index + 1, parent: item })\n );\n }\n };\n items.forEach((item, index) =>\n traverse(item, { level: 1, setSize: items.length, posInSet: index + 1, parent: null })\n );\n\n for (let index = 0; index < visibleItems.length; index++) {\n const item = visibleItems[index];\n if (expandedSet.has(item)) {\n let insertionIndex = index + 1;\n for (insertionIndex; insertionIndex < visibleItems.length; insertionIndex++) {\n const insertionItem = visibleItems[insertionIndex];\n if (getItemLevel(item) >= getItemLevel(insertionItem)) {\n break;\n }\n }\n insertionIndex--;\n }\n }\n\n allItems = visibleItems;\n }\n\n const getExpandableItemProps = (item: T): ExpandableItemProps<T> => {\n const { level = 1, setSize = 1, posInSet = 1, parent = null, children = [] } = itemToDetail.get(item) ?? {};\n return {\n level,\n setSize,\n posInSet,\n isExpandable: expandableRows?.isItemExpandable(item) ?? true,\n isExpanded: expandedSet.has(item),\n onExpandableItemToggle: () =>\n fireNonCancelableEvent(expandableRows?.onExpandableItemToggle, { item, expanded: !expandedSet.has(item) }),\n expandButtonLabel: i18n('ariaLabels.expandButtonLabel', ariaLabels?.expandButtonLabel?.(item)),\n collapseButtonLabel: i18n('ariaLabels.collapseButtonLabel', ariaLabels?.collapseButtonLabel?.(item)),\n parent,\n children,\n };\n };\n\n return { isExpandable, allItems, getExpandableItemProps };\n}\n"]}
1
+ {"version":3,"file":"expandable-rows-utils.js","sourceRoot":"","sources":["../../../../src/table/expandable-rows/expandable-rows-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useInternalI18n } from '../../i18n/context';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { TableProps } from '../interfaces';\nimport { ItemSet } from '../selection/utils';\n\ninterface ExpandableItemProps<T> extends ExpandableItemDetail<T> {\n isExpandable: boolean;\n isExpanded: boolean;\n onExpandableItemToggle: () => void;\n expandButtonLabel?: string;\n collapseButtonLabel?: string;\n itemsCount?: number;\n selectedItemsCount?: number;\n}\n\ninterface ExpandableItemDetail<T> {\n level: number;\n setSize: number;\n posInSet: number;\n parent: null | T;\n children: readonly T[];\n}\n\nexport interface InternalExpandableRowsProps<T> {\n isExpandable: boolean;\n allItems: readonly T[];\n getExpandableItemProps(item: T): ExpandableItemProps<T>;\n hasGroupSelection: boolean;\n groupSelection: TableProps.GroupSelectionState<T>;\n onGroupSelectionChange?: TableProps.OnGroupSelectionChange<T>;\n totalItemsCount?: number;\n totalSelectedItemsCount?: number;\n}\n\nexport function useExpandableTableProps<T>({\n items,\n expandableRows,\n trackBy,\n ariaLabels,\n}: {\n items: readonly T[];\n expandableRows?: TableProps.ExpandableRows<T>;\n trackBy?: TableProps.TrackBy<T>;\n ariaLabels?: TableProps.AriaLabels<T>;\n}): InternalExpandableRowsProps<T> {\n const i18n = useInternalI18n('table');\n const isExpandable = !!expandableRows;\n\n const expandedSet = new ItemSet(trackBy, expandableRows?.expandedItems ?? []);\n\n let allItems = items;\n const itemToDetail = new Map<T, ExpandableItemDetail<T>>();\n const getItemLevel = (item: T) => itemToDetail.get(item)?.level ?? 0;\n\n if (isExpandable) {\n const visibleItems = new Array<T>();\n\n const traverse = (item: T, detail: Omit<ExpandableItemDetail<T>, 'children'>, visible: boolean) => {\n const children = expandableRows.getItemChildren(item);\n itemToDetail.set(item, { ...detail, children });\n\n if (visible) {\n visibleItems.push(item);\n }\n children.forEach((child, index) =>\n traverse(\n child,\n { level: detail.level + 1, setSize: children.length, posInSet: index + 1, parent: item },\n visible && expandedSet.has(item)\n )\n );\n };\n items.forEach((item, index) =>\n traverse(item, { level: 1, setSize: items.length, posInSet: index + 1, parent: null }, true)\n );\n\n for (let index = 0; index < visibleItems.length; index++) {\n const item = visibleItems[index];\n if (expandedSet.has(item)) {\n let insertionIndex = index + 1;\n for (insertionIndex; insertionIndex < visibleItems.length; insertionIndex++) {\n const insertionItem = visibleItems[insertionIndex];\n if (getItemLevel(item) >= getItemLevel(insertionItem)) {\n break;\n }\n }\n insertionIndex--;\n }\n }\n\n allItems = visibleItems;\n }\n\n const getExpandableItemProps = (item: T): ExpandableItemProps<T> => {\n const { level = 1, setSize = 1, posInSet = 1, parent = null, children = [] } = itemToDetail.get(item) ?? {};\n return {\n level,\n setSize,\n posInSet,\n isExpandable: expandableRows?.isItemExpandable(item) ?? true,\n isExpanded: expandedSet.has(item),\n onExpandableItemToggle: () =>\n fireNonCancelableEvent(expandableRows?.onExpandableItemToggle, { item, expanded: !expandedSet.has(item) }),\n expandButtonLabel: i18n('ariaLabels.expandButtonLabel', ariaLabels?.expandButtonLabel?.(item)),\n collapseButtonLabel: i18n('ariaLabels.collapseButtonLabel', ariaLabels?.collapseButtonLabel?.(item)),\n parent,\n children,\n itemsCount: expandableRows?.getItemsCount?.(item),\n selectedItemsCount: expandableRows?.getSelectedItemsCount?.(item),\n };\n };\n\n return {\n isExpandable,\n allItems,\n getExpandableItemProps,\n hasGroupSelection: !!expandableRows?.groupSelection,\n groupSelection: expandableRows?.groupSelection ?? { inverted: false, toggledItems: [] },\n onGroupSelectionChange: expandableRows?.onGroupSelectionChange,\n totalItemsCount: expandableRows?.totalItemsCount,\n totalSelectedItemsCount: expandableRows?.totalSelectedItemsCount,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,QAAA,MAAM,KAAK,EA8GN,mBAAmB,CAAC;AAGzB,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,QAAA,MAAM,KAAK,EAiHN,mBAAmB,CAAC;AAGzB,eAAe,KAAK,CAAC"}
package/table/index.js CHANGED
@@ -11,7 +11,7 @@ import { applyDisplayName } from '../internal/utils/apply-display-name';
11
11
  import { getSortingColumnId } from './header-cell/utils';
12
12
  import InternalTable, { InternalTableAsSubstep } from './internal';
13
13
  const Table = React.forwardRef(({ items = [], selectedItems = [], variant = 'container', contentDensity = 'comfortable', cellVerticalAlign = 'middle', firstIndex = 1, ...props }, ref) => {
14
- var _a, _b, _c;
14
+ var _a, _b, _c, _d;
15
15
  const analyticsMetadata = getAnalyticsMetadataProps(props);
16
16
  const hasHiddenColumns = (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||
17
17
  ((_a = props.columnDisplay) === null || _a === void 0 ? void 0 : _a.some(col => !col.visible));
@@ -33,6 +33,9 @@ const Table = React.forwardRef(({ items = [], selectedItems = [], variant = 'con
33
33
  metadata: {
34
34
  expandableRows: !!props.expandableRows,
35
35
  progressiveLoading: !!props.getLoadingStatus,
36
+ groupSelection: !!((_d = props.expandableRows) === null || _d === void 0 ? void 0 : _d.groupSelection),
37
+ cellCounters: props.columnDefinitions.filter(dev => !!dev.counter).length,
38
+ loaderCounters: !!props.renderLoaderCounter,
36
39
  inlineEdit: props.columnDefinitions.some(def => !!def.editConfig),
37
40
  disabledInlineEdit: props.columnDefinitions.some(def => { var _a; return !!((_a = def.editConfig) === null || _a === void 0 ? void 0 : _a.disabledReason); }),
38
41
  hasSortableColumns: props.columnDefinitions.some(def => def.sortingField || def.sortingComparator),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { AnalyticsFunnelSubStep } from '../internal/analytics/components/analytics-funnel';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { CollectionPreferencesMetadata } from '../internal/context/collection-preferences-metadata-context';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { getSortingColumnId } from './header-cell/utils';\nimport { TableForwardRefType, TableProps } from './interfaces';\nimport InternalTable, { InternalTableAsSubstep } from './internal';\n\nexport { TableProps };\nconst Table = React.forwardRef(\n <T,>(\n {\n items = [],\n selectedItems = [],\n variant = 'container',\n contentDensity = 'comfortable',\n cellVerticalAlign = 'middle',\n firstIndex = 1,\n ...props\n }: TableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const hasHiddenColumns =\n (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||\n props.columnDisplay?.some(col => !col.visible);\n const hasStickyColumns = !!props.stickyColumns?.first || !!props.stickyColumns?.last;\n const baseComponentProps = useBaseComponent(\n 'Table',\n {\n props: {\n contentDensity,\n resizableColumns: props.resizableColumns,\n selectionType: props.selectionType,\n stickyHeader: props.stickyHeader,\n stripedRows: props.stripedRows,\n variant,\n wrapLines: props.wrapLines,\n enableKeyboardNavigation: props.enableKeyboardNavigation,\n totalItemsCount: props.totalItemsCount,\n flowType: analyticsMetadata.flowType,\n cellVerticalAlign,\n },\n metadata: {\n expandableRows: !!props.expandableRows,\n progressiveLoading: !!props.getLoadingStatus,\n inlineEdit: props.columnDefinitions.some(def => !!def.editConfig),\n disabledInlineEdit: props.columnDefinitions.some(def => !!def.editConfig?.disabledReason),\n hasSortableColumns: props.columnDefinitions.some(def => def.sortingField || def.sortingComparator),\n hasHiddenColumns,\n hasStickyColumns,\n hasFilterSlot: !!props.filter,\n hasPaginationSlot: !!props.pagination,\n itemsCount: items.length,\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n usesVisibleColumns: !!props.visibleColumns,\n usesColumnDisplay: !!props.columnDisplay,\n usesColumnDefinitionsVerticalAlign: props.columnDefinitions.some(\n def => def.verticalAlign !== cellVerticalAlign\n ),\n },\n },\n analyticsMetadata\n );\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataTableComponent = {\n name: 'awsui.Table',\n label: { root: 'self' },\n properties: {\n selectionType: props.selectionType || 'none',\n itemsCount: `${items.length}`,\n selectedItemsCount: `${selectedItems.length}`,\n variant,\n },\n };\n\n const sortingColumnId = getSortingColumnId(props.columnDefinitions, props.sortingColumn);\n if (sortingColumnId) {\n analyticsComponentMetadata.properties.sortingColumnId = sortingColumnId;\n analyticsComponentMetadata.properties.sortingDescending = `${props.sortingDescending || false}`;\n }\n\n const tableProps: Parameters<typeof InternalTable<T>>[0] = {\n items,\n selectedItems,\n variant,\n contentDensity,\n firstIndex,\n cellVerticalAlign,\n ...props,\n ...baseComponentProps,\n ref,\n ...getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata }),\n };\n\n const collectionPreferencesMetadata = {\n tableContentDensity: contentDensity,\n tableHasStripedRows: !!props.stripedRows,\n tableHasHiddenColumns: hasHiddenColumns,\n tableHasStickyColumns: hasStickyColumns,\n };\n\n if (variant === 'borderless' || variant === 'embedded') {\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <InternalTable {...tableProps} />\n </CollectionPreferencesMetadata.Provider>\n );\n }\n\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <AnalyticsFunnelSubStep>\n <InternalTableAsSubstep {...tableProps} />\n </AnalyticsFunnelSubStep>\n </CollectionPreferencesMetadata.Provider>\n );\n }\n) as TableForwardRefType;\n\napplyDisplayName(Table, 'Table');\nexport default Table;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { AnalyticsFunnelSubStep } from '../internal/analytics/components/analytics-funnel';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { CollectionPreferencesMetadata } from '../internal/context/collection-preferences-metadata-context';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { getSortingColumnId } from './header-cell/utils';\nimport { TableForwardRefType, TableProps } from './interfaces';\nimport InternalTable, { InternalTableAsSubstep } from './internal';\n\nexport { TableProps };\nconst Table = React.forwardRef(\n <T,>(\n {\n items = [],\n selectedItems = [],\n variant = 'container',\n contentDensity = 'comfortable',\n cellVerticalAlign = 'middle',\n firstIndex = 1,\n ...props\n }: TableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const hasHiddenColumns =\n (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||\n props.columnDisplay?.some(col => !col.visible);\n const hasStickyColumns = !!props.stickyColumns?.first || !!props.stickyColumns?.last;\n const baseComponentProps = useBaseComponent(\n 'Table',\n {\n props: {\n contentDensity,\n resizableColumns: props.resizableColumns,\n selectionType: props.selectionType,\n stickyHeader: props.stickyHeader,\n stripedRows: props.stripedRows,\n variant,\n wrapLines: props.wrapLines,\n enableKeyboardNavigation: props.enableKeyboardNavigation,\n totalItemsCount: props.totalItemsCount,\n flowType: analyticsMetadata.flowType,\n cellVerticalAlign,\n },\n metadata: {\n expandableRows: !!props.expandableRows,\n progressiveLoading: !!props.getLoadingStatus,\n groupSelection: !!props.expandableRows?.groupSelection,\n cellCounters: props.columnDefinitions.filter(dev => !!dev.counter).length,\n loaderCounters: !!props.renderLoaderCounter,\n inlineEdit: props.columnDefinitions.some(def => !!def.editConfig),\n disabledInlineEdit: props.columnDefinitions.some(def => !!def.editConfig?.disabledReason),\n hasSortableColumns: props.columnDefinitions.some(def => def.sortingField || def.sortingComparator),\n hasHiddenColumns,\n hasStickyColumns,\n hasFilterSlot: !!props.filter,\n hasPaginationSlot: !!props.pagination,\n itemsCount: items.length,\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n usesVisibleColumns: !!props.visibleColumns,\n usesColumnDisplay: !!props.columnDisplay,\n usesColumnDefinitionsVerticalAlign: props.columnDefinitions.some(\n def => def.verticalAlign !== cellVerticalAlign\n ),\n },\n },\n analyticsMetadata\n );\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataTableComponent = {\n name: 'awsui.Table',\n label: { root: 'self' },\n properties: {\n selectionType: props.selectionType || 'none',\n itemsCount: `${items.length}`,\n selectedItemsCount: `${selectedItems.length}`,\n variant,\n },\n };\n\n const sortingColumnId = getSortingColumnId(props.columnDefinitions, props.sortingColumn);\n if (sortingColumnId) {\n analyticsComponentMetadata.properties.sortingColumnId = sortingColumnId;\n analyticsComponentMetadata.properties.sortingDescending = `${props.sortingDescending || false}`;\n }\n\n const tableProps: Parameters<typeof InternalTable<T>>[0] = {\n items,\n selectedItems,\n variant,\n contentDensity,\n firstIndex,\n cellVerticalAlign,\n ...props,\n ...baseComponentProps,\n ref,\n ...getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata }),\n };\n\n const collectionPreferencesMetadata = {\n tableContentDensity: contentDensity,\n tableHasStripedRows: !!props.stripedRows,\n tableHasHiddenColumns: hasHiddenColumns,\n tableHasStickyColumns: hasStickyColumns,\n };\n\n if (variant === 'borderless' || variant === 'embedded') {\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <InternalTable {...tableProps} />\n </CollectionPreferencesMetadata.Provider>\n );\n }\n\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <AnalyticsFunnelSubStep>\n <InternalTableAsSubstep {...tableProps} />\n </AnalyticsFunnelSubStep>\n </CollectionPreferencesMetadata.Provider>\n );\n }\n) as TableForwardRefType;\n\napplyDisplayName(Table, 'Table');\nexport default Table;\n"]}
@@ -82,6 +82,8 @@ export interface TableProps<T = any> extends BaseComponentProps {
82
82
  * to reorder the items. This property accepts a custom comparator that is used to compare two items.
83
83
  * The comparator must implement ascending ordering, and the output is inverted automatically in case of descending order.
84
84
  * If present, the `sortingField` property is ignored.
85
+ * * `counter` ((ItemCounterData) => string) - Specifies secondary cell content, displayed next to the primary. Use it to display
86
+ * resource counters in the first column of expandable tables with data grouping.
85
87
  * * `editConfig` (EditConfig) - Enables inline editing in column when present. The value is used to configure the editing behavior.
86
88
  * * `editConfig.ariaLabel` (string) - Specifies a label for the edit control. Visually hidden but read by screen readers.
87
89
  * * `editConfig.errorIconAriaLabel` (string) - Specifies an ariaLabel for the error icon that is displayed when the validation fails.
@@ -154,11 +156,19 @@ export interface TableProps<T = any> extends BaseComponentProps {
154
156
  resizableColumns?: boolean;
155
157
  /**
156
158
  * Specifies alternative text for the selection components (checkboxes and radio buttons) as follows:
157
- * * `itemSelectionLabel` ((SelectionState, Item) => string) - Specifies the alternative text for an item.
158
- * You can use the first argument of type `SelectionState` to access the current selection state of the component
159
- * (for example, the `selectedItems` list). The second argument is the corresponding `Item` object.
160
- * * `allItemsSelectionLabel` ((SelectionState) => string) - Specifies the alternative text for multi-selection column header.
161
159
  * * `selectionGroupLabel` (string) - Specifies the alternative text for the whole selection and single-selection column header.
160
+ * * `itemSelectionLabel` ((SelectionState, Item) => string) - Specifies the alternative text for item selection controls.
161
+ * The selection state includes:
162
+ * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.
163
+ * * `itemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.
164
+ * * `selectedItemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.
165
+ * * `allItemsSelectionLabel` ((SelectionState) => string) - Specifies the alternative text for all items selection control.
166
+ * The selection state includes:
167
+ * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.
168
+ * * `itemsCount` (optional, number) - corresponds to `expandableRows.totalItemsCount` or `totalItemsCount`.
169
+ * * `selectedItemsCount` (optional, number) - corresponds to `expandableRows.totalSelectedItemsCount` or `selectedItems.length`.
170
+ * * `itemLoaderSelectionLabel`: ((SelectionState, Item) => string) - Specifies the alternative text for resource loader selector
171
+ * in tables with data grouping.
162
172
  * * `tableLabel` (string) - Provides an alternative text for the table. If you use a header for this table, you may reuse the string
163
173
  * to provide a caption-like description. For example, tableLabel=Instances will be announced as 'Instances table'.
164
174
  * * `resizerRoleDescription` (string) - Provides role description for table column resizer buttons.
@@ -232,7 +242,7 @@ export interface TableProps<T = any> extends BaseComponentProps {
232
242
  onSortingChange?: NonCancelableEventHandler<TableProps.SortingState<T>>;
233
243
  /**
234
244
  * Fired when a user interaction triggers a change in the list of selected items.
235
- * The event `detail` contains the current list of `selectedItems`.
245
+ * The event `detail` contains the new state for `selectedItems`.
236
246
  */
237
247
  onSelectionChange?: NonCancelableEventHandler<TableProps.SelectionChangeDetail<T>>;
238
248
  /**
@@ -284,8 +294,8 @@ export interface TableProps<T = any> extends BaseComponentProps {
284
294
  */
285
295
  totalItemsCount?: number;
286
296
  /**
287
- * Use this property to inform screen readers which range of items is currently displayed in the table.
288
- * It specifies the index (1-based) of the first item in the table.
297
+ * Use this property to inform screen readers which range of items is currently displayed in the table.
298
+ * It specifies the index (1-based) of the first item in the table.
289
299
  */
290
300
  firstIndex?: number;
291
301
  /**
@@ -320,7 +330,22 @@ export interface TableProps<T = any> extends BaseComponentProps {
320
330
  * * `getItemChildren` ((Item) => Item[]) - Use it to define nested data that are shown when an item gets expanded.
321
331
  * * `isItemExpandable` ((Item) => boolean) - Use it for items that can be expanded to show nested data.
322
332
  * * `expandedItems` (Item[]) - Use it to represent the expanded state of items.
323
- * * `onExpandableItemToggle` (TableProps.OnExpandableItemToggle<T>) - Called when an item's expand toggle is clicked.
333
+ * * `onExpandableItemToggle` (TableProps.OnExpandableItemToggle<Item>) - Called when an item's expand toggle is clicked.
334
+ * * `groupSelection` (optional, GroupSelectionState<Item>) - Tree-like selection state for tables with grouped data. When defined, the
335
+ * properties `selectionType` and `selectedItems` no longer apply. It reads as (assuming item "a.1" is nested under "a"):
336
+ * * `{ inverted: false, toggledItems: [] }` - no items are selected;
337
+ * * `{ inverted: true, toggledItems: [] }` - all items are selected;
338
+ * * `{ inverted: false, toggledItems: ["a", "a.1"] }` - all items nested under "a", unless also nested under "a.1", are selected.
339
+ * * `{ inverted: true, toggledItems: ["a", "a.1"] }` - the opposite of above.
340
+ * * `onGroupSelectionChange` (optional, TableProps.OnGroupSelectionChange<Item>) - Called when group selection changes.
341
+ * * `getItemsCount` (optional, (Item) => number) - Use it to indicate the number of resources nested under the given item.
342
+ * The value is passed as `itemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.
343
+ * * `totalItemsCount` (optional, number) - Use it to indicate the total number of resources in the table.
344
+ * The value is passed as `itemsCount` property to the `ariaLabels.allItemsSelectionLabel`.
345
+ * * `getSelectedItemsCount` (optional, (Item) => number) - Use it to indicate the number of selected resources nested under the given item.
346
+ * The value is passed as `selectedItemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.
347
+ * * `totalSelectedItemsCount` (optional, number) - Use it to indicate the total number of selected resources in the table.
348
+ * The value is passed as `selectedItemsCount` property to the `ariaLabels.allItemsSelectionLabel`.
324
349
  */
325
350
  expandableRows?: TableProps.ExpandableRows<T>;
326
351
  /**
@@ -352,6 +377,10 @@ export interface TableProps<T = any> extends BaseComponentProps {
352
377
  * the table items array is empty.
353
378
  */
354
379
  renderLoaderEmpty?: (detail: TableProps.RenderLoaderEmptyDetail<T>) => React.ReactNode;
380
+ /**
381
+ * Renders loader counter that is appended to the loader content in all loader states.
382
+ */
383
+ renderLoaderCounter?: (detail: TableProps.RenderLoaderCounterDetail<T>) => React.ReactNode;
355
384
  }
356
385
  export declare namespace TableProps {
357
386
  interface AnalyticsMetadata {
@@ -407,19 +436,25 @@ export declare namespace TableProps {
407
436
  */
408
437
  disableNativeForm?: boolean;
409
438
  }
410
- type ColumnDefinition<ItemType> = {
439
+ type ColumnDefinition<T> = {
411
440
  id?: string;
412
441
  header: React.ReactNode;
413
442
  ariaLabel?(data: LabelData): string;
414
443
  width?: number | string;
415
444
  minWidth?: number | string;
416
445
  maxWidth?: number | string;
417
- editConfig?: EditConfig<ItemType>;
446
+ counter?(props: ItemCounterData<T>): React.ReactNode;
447
+ editConfig?: EditConfig<T>;
418
448
  isRowHeader?: boolean;
419
449
  verticalAlign?: VerticalAlign;
420
450
  hasDynamicContent?: boolean;
421
- cell(item: ItemType): React.ReactNode;
422
- } & SortingColumn<ItemType>;
451
+ cell(item: T): React.ReactNode;
452
+ } & SortingColumn<T>;
453
+ interface ItemCounterData<T> {
454
+ item: T;
455
+ itemsCount?: number;
456
+ selectedItemsCount?: number;
457
+ }
423
458
  interface StickyColumns {
424
459
  first?: number;
425
460
  last?: number;
@@ -429,14 +464,17 @@ export declare namespace TableProps {
429
464
  type Variant = 'container' | 'embedded' | 'borderless' | 'stacked' | 'full-page';
430
465
  interface SelectionState<T> {
431
466
  selectedItems: ReadonlyArray<T>;
467
+ itemsCount?: number;
468
+ selectedItemsCount?: number;
432
469
  }
433
470
  interface SelectionChangeDetail<T> {
434
471
  selectedItems: T[];
435
472
  }
436
473
  type IsItemDisabled<T> = (item: T) => boolean;
437
474
  interface AriaLabels<T> {
438
- allItemsSelectionLabel?: (data: TableProps.SelectionState<T>) => string;
439
- itemSelectionLabel?: (data: TableProps.SelectionState<T>, row: T) => string;
475
+ allItemsSelectionLabel?: (data: SelectionState<T>) => string;
476
+ itemSelectionLabel?: (data: SelectionState<T>, row: T) => string;
477
+ itemLoaderSelectionLabel?: (data: SelectionState<T>, row: null | T) => string;
440
478
  selectionGroupLabel?: string;
441
479
  tableLabel?: string;
442
480
  resizerRoleDescription?: string;
@@ -501,18 +539,37 @@ export declare namespace TableProps {
501
539
  getItemChildren: (item: T) => readonly T[];
502
540
  isItemExpandable: (item: T) => boolean;
503
541
  expandedItems: ReadonlyArray<T>;
504
- onExpandableItemToggle: TableProps.OnExpandableItemToggle<T>;
542
+ onExpandableItemToggle: OnExpandableItemToggle<T>;
543
+ groupSelection?: GroupSelectionState<T>;
544
+ onGroupSelectionChange?: OnGroupSelectionChange<T>;
545
+ getItemsCount?: (item: T) => number;
546
+ totalItemsCount?: number;
547
+ getSelectedItemsCount?: (item: T) => number;
548
+ totalSelectedItemsCount?: number;
505
549
  }
506
- type OnExpandableItemToggle<T> = NonCancelableEventHandler<TableProps.ExpandableItemToggleDetail<T>>;
550
+ type OnExpandableItemToggle<T> = NonCancelableEventHandler<ExpandableItemToggleDetail<T>>;
507
551
  interface ExpandableItemToggleDetail<T> {
508
552
  item: T;
509
553
  expanded: boolean;
510
554
  }
511
- type GetLoadingStatus<T> = (item: null | T) => TableProps.LoadingStatus;
555
+ type OnGroupSelectionChange<T> = NonCancelableEventHandler<GroupSelectionChangeDetail<T>>;
556
+ interface GroupSelectionChangeDetail<T> {
557
+ groupSelection: GroupSelectionState<T>;
558
+ }
559
+ interface GroupSelectionState<T> {
560
+ inverted: boolean;
561
+ toggledItems: readonly T[];
562
+ }
563
+ type GetLoadingStatus<T> = (item: null | T) => LoadingStatus;
512
564
  type LoadingStatus = 'pending' | 'loading' | 'error' | 'finished';
513
565
  interface RenderLoaderDetail<T> {
514
566
  item: null | T;
515
567
  }
568
+ interface RenderLoaderCounterDetail<T> {
569
+ loadingStatus: LoadingStatus;
570
+ selected: boolean;
571
+ item: null | T;
572
+ }
516
573
  interface RenderLoaderEmptyDetail<T> {
517
574
  item: T;
518
575
  }
@@ -529,4 +586,5 @@ interface TableLoaderRow<T> {
529
586
  status: TableProps.LoadingStatus;
530
587
  from: number;
531
588
  }
589
+ export type InternalSelectionType = TableProps.SelectionType | 'group';
532
590
  export {};