@ni/nimble-components 20.4.2 → 20.5.0

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 (48) hide show
  1. package/dist/all-components-bundle.js +180 -36
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +2462 -2421
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/icons/all-icons.d.ts +2 -0
  6. package/dist/esm/icons/all-icons.js +2 -0
  7. package/dist/esm/icons/all-icons.js.map +1 -1
  8. package/dist/esm/icons/indent.d.ts +13 -0
  9. package/dist/esm/icons/indent.js +16 -0
  10. package/dist/esm/icons/indent.js.map +1 -0
  11. package/dist/esm/icons/outdent.d.ts +13 -0
  12. package/dist/esm/icons/outdent.js +16 -0
  13. package/dist/esm/icons/outdent.js.map +1 -0
  14. package/dist/esm/label-provider/table/index.d.ts +21 -3
  15. package/dist/esm/label-provider/table/index.js +28 -4
  16. package/dist/esm/label-provider/table/index.js.map +1 -1
  17. package/dist/esm/label-provider/table/label-token-defaults.js +7 -1
  18. package/dist/esm/label-provider/table/label-token-defaults.js.map +1 -1
  19. package/dist/esm/label-provider/table/label-tokens.d.ts +7 -1
  20. package/dist/esm/label-provider/table/label-tokens.js +27 -3
  21. package/dist/esm/label-provider/table/label-tokens.js.map +1 -1
  22. package/dist/esm/src/icons/all-icons.d.ts +2 -0
  23. package/dist/esm/src/icons/indent.d.ts +13 -0
  24. package/dist/esm/src/icons/outdent.d.ts +13 -0
  25. package/dist/esm/src/label-provider/table/index.d.ts +21 -3
  26. package/dist/esm/src/label-provider/table/label-tokens.d.ts +7 -1
  27. package/dist/esm/src/table/components/row/index.d.ts +1 -0
  28. package/dist/esm/src/table/index.d.ts +4 -0
  29. package/dist/esm/table/components/cell/template.js +1 -0
  30. package/dist/esm/table/components/cell/template.js.map +1 -1
  31. package/dist/esm/table/components/group-row/template.js +4 -1
  32. package/dist/esm/table/components/group-row/template.js.map +1 -1
  33. package/dist/esm/table/components/header/template.js +17 -5
  34. package/dist/esm/table/components/header/template.js.map +1 -1
  35. package/dist/esm/table/components/row/index.d.ts +1 -0
  36. package/dist/esm/table/components/row/index.js +4 -0
  37. package/dist/esm/table/components/row/index.js.map +1 -1
  38. package/dist/esm/table/components/row/styles.js +1 -1
  39. package/dist/esm/table/components/row/template.js +14 -9
  40. package/dist/esm/table/components/row/template.js.map +1 -1
  41. package/dist/esm/table/index.d.ts +4 -0
  42. package/dist/esm/table/index.js +7 -0
  43. package/dist/esm/table/index.js.map +1 -1
  44. package/dist/esm/table/styles.js +19 -0
  45. package/dist/esm/table/styles.js.map +1 -1
  46. package/dist/esm/table/template.js +21 -15
  47. package/dist/esm/table/template.js.map +1 -1
  48. package/package.json +2 -2
@@ -16288,7 +16288,7 @@
16288
16288
 
16289
16289
  /**
16290
16290
  * Do not edit directly
16291
- * Generated on Wed, 20 Sep 2023 15:04:09 GMT
16291
+ * Generated on Wed, 20 Sep 2023 18:34:03 GMT
16292
16292
  */
16293
16293
 
16294
16294
  const Information100DarkUi = "#a46eff";
@@ -19214,6 +19214,10 @@
19214
19214
  name: 'hourglass_16_x_16',
19215
19215
  data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="M10.774 13.4h-.047v-.49h-.404a2.491 2.491 0 0 0 .355-1.258c0-1.826-2.083-2.886-2.083-3.652s2.083-1.826 2.083-3.652a2.491 2.491 0 0 0-.355-1.257h.404V2.6h.047a.556.556 0 0 0 .499-.6H4.727a.556.556 0 0 0 .499.6h.047v.49h.404a2.491 2.491 0 0 0-.355 1.258c0 1.826 2.083 2.87 2.083 3.652s-2.083 1.826-2.083 3.652a2.491 2.491 0 0 0 .355 1.257h-.404v.491h-.047a.556.556 0 0 0-.499.6h6.546a.556.556 0 0 0-.499-.6ZM8 12.957c-1.565 0-1.975-.585-1.975-1.305a7.183 7.183 0 0 1 1.723-.656c.268 0 .289-3.513 0-3.779l-.988-1h2.454l-.962 1c-.268.286-.275 3.779 0 3.779a7.651 7.651 0 0 1 1.738.656c0 .72-.409 1.305-1.99 1.305Z"/></svg>`
19216
19216
  };
19217
+ const indent16X16 = {
19218
+ name: 'indent_16_x_16',
19219
+ data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="m2.5 7.5 1 2.5-1 2.5 5-2.5-5-2.5zM2 3h12v2H2zM9 7h5v2H9zM9 11h5v2H9z"/></svg>`
19220
+ };
19217
19221
  const indeterminantCheckbox16X16 = {
19218
19222
  name: 'indeterminant_checkbox_16_x_16',
19219
19223
  data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="M12 3a1.001 1.001 0 0 1 1 1v8a1.001 1.001 0 0 1-1 1H4a1.001 1.001 0 0 1-1-1V4a1.001 1.001 0 0 1 1-1h8m0-1H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2ZM4 4v8h8V4Zm6 6H6V6h4Z"/></svg>`
@@ -19298,6 +19302,10 @@
19298
19302
  name: 'number_list_16_x_16',
19299
19303
  data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16" xml:space="preserve"><path d="M14 11H6v2h8v-2zm0-4H6v2h8V7zm0-4H6v2h8V3zM1.999 4.644h.73V2.302h-.585v-.271c.295-.05.505-.13.681-.235h.32v2.848h.656v.346H1.999v-.346zM1.804 9.509c.951-.932 1.501-1.521 1.501-2.037 0-.365-.2-.621-.605-.621-.265 0-.496.17-.676.381l-.235-.226c.265-.3.551-.495.961-.495.591 0 .961.375.961.936 0 .621-.561 1.196-1.336 1.987.174-.016.37-.026.535-.026h.956v.355H1.804v-.254zM1.733 13.884l.21-.271c.19.201.44.376.816.376.385 0 .661-.226.661-.581 0-.38-.26-.635-1.021-.635v-.315c.676 0 .906-.261.906-.596 0-.306-.21-.501-.55-.501-.266 0-.491.136-.681.32l-.221-.26c.246-.23.541-.4.916-.4.556 0 .956.295.956.811 0 .386-.23.631-.576.761v.021c.385.09.691.37.691.811 0 .565-.471.91-1.056.91a1.363 1.363 0 0 1-1.051-.451z"/></svg>`
19300
19304
  };
19305
+ const outdent16X16 = {
19306
+ name: 'outdent_16_x_16',
19307
+ data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="m7.5 12.5-1-2.5 1-2.5-5 2.5 5 2.5zM2 3h12v2H2zM9 7h5v2H9zM9 11h5v2H9z"/></svg>`
19308
+ };
19301
19309
  const paste16X16 = {
19302
19310
  name: 'paste_16_x_16',
19303
19311
  data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="M9 5V3H3v6h2v1H2V2h8v3ZM6 6v8h8V6Z"/></svg>`
@@ -22769,6 +22777,19 @@
22769
22777
  registerIcon('icon-hourglass', IconHourglass);
22770
22778
  DesignSystem.tagFor(IconHourglass);
22771
22779
 
22780
+ // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
22781
+ // See generation source in nimble-components/build/generate-icons
22782
+ /**
22783
+ * The icon component for the 'indent' icon
22784
+ */
22785
+ class IconIndent extends Icon {
22786
+ constructor() {
22787
+ super(indent16X16);
22788
+ }
22789
+ }
22790
+ registerIcon('icon-indent', IconIndent);
22791
+ DesignSystem.tagFor(IconIndent);
22792
+
22772
22793
  // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
22773
22794
  // See generation source in nimble-components/build/generate-icons
22774
22795
  /**
@@ -23029,6 +23050,19 @@
23029
23050
  registerIcon('icon-number-list', IconNumberList);
23030
23051
  const iconNumberListTag = DesignSystem.tagFor(IconNumberList);
23031
23052
 
23053
+ // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
23054
+ // See generation source in nimble-components/build/generate-icons
23055
+ /**
23056
+ * The icon component for the 'outdent' icon
23057
+ */
23058
+ class IconOutdent extends Icon {
23059
+ constructor() {
23060
+ super(outdent16X16);
23061
+ }
23062
+ }
23063
+ registerIcon('icon-outdent', IconOutdent);
23064
+ DesignSystem.tagFor(IconOutdent);
23065
+
23032
23066
  // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
23033
23067
  // See generation source in nimble-components/build/generate-icons
23034
23068
  /**
@@ -23702,7 +23736,13 @@
23702
23736
  tableGroupExpandLabel: 'Expand group',
23703
23737
  tableGroupsCollapseAllLabel: 'Collapse all groups',
23704
23738
  tableCellActionMenuLabel: 'Options',
23705
- tableColumnHeaderGroupedIndicatorLabel: 'Grouped'
23739
+ tableColumnHeaderGroupedLabel: 'Grouped',
23740
+ tableColumnHeaderSortedAscendingLabel: 'Sorted ascending',
23741
+ tableColumnHeaderSortedDescendingLabel: 'Sorted descending',
23742
+ tableSelectAllLabel: 'Select all rows',
23743
+ tableGroupSelectAllLabel: 'Select all rows in group',
23744
+ tableRowSelectLabel: 'Select row',
23745
+ tableRowOperationColumnLabel: 'Row operations'
23706
23746
  };
23707
23747
 
23708
23748
  const tableGroupCollapseLabel = DesignToken.create({
@@ -23721,17 +23761,47 @@
23721
23761
  name: 'table-cell-action-menu-label',
23722
23762
  cssCustomPropertyName: null
23723
23763
  }).withDefault(tableLabelDefaults.tableCellActionMenuLabel);
23724
- const tableColumnHeaderGroupedIndicatorLabel = DesignToken.create({
23725
- name: 'table-column-header-grouped-indicator-label',
23764
+ const tableColumnHeaderGroupedLabel = DesignToken.create({
23765
+ name: 'table-column-header-grouped-label',
23766
+ cssCustomPropertyName: null
23767
+ }).withDefault(tableLabelDefaults.tableColumnHeaderGroupedLabel);
23768
+ const tableColumnHeaderSortedAscendingLabel = DesignToken.create({
23769
+ name: 'table-column-header-sorted-ascending-label',
23770
+ cssCustomPropertyName: null
23771
+ }).withDefault(tableLabelDefaults.tableColumnHeaderSortedAscendingLabel);
23772
+ const tableColumnHeaderSortedDescendingLabel = DesignToken.create({
23773
+ name: 'table-column-header-sorted-descending-label',
23774
+ cssCustomPropertyName: null
23775
+ }).withDefault(tableLabelDefaults.tableColumnHeaderSortedDescendingLabel);
23776
+ const tableSelectAllLabel = DesignToken.create({
23777
+ name: 'table-select-all-label',
23726
23778
  cssCustomPropertyName: null
23727
- }).withDefault(tableLabelDefaults.tableColumnHeaderGroupedIndicatorLabel);
23779
+ }).withDefault(tableLabelDefaults.tableSelectAllLabel);
23780
+ const tableGroupSelectAllLabel = DesignToken.create({
23781
+ name: 'table-group-select-all-label',
23782
+ cssCustomPropertyName: null
23783
+ }).withDefault(tableLabelDefaults.tableGroupSelectAllLabel);
23784
+ const tableRowSelectLabel = DesignToken.create({
23785
+ name: 'table-row-select-label',
23786
+ cssCustomPropertyName: null
23787
+ }).withDefault(tableLabelDefaults.tableRowSelectLabel);
23788
+ const tableRowOperationColumnLabel = DesignToken.create({
23789
+ name: 'table-row-operation-column-label',
23790
+ cssCustomPropertyName: null
23791
+ }).withDefault(tableLabelDefaults.tableRowOperationColumnLabel);
23728
23792
 
23729
23793
  const supportedLabels = {
23730
23794
  groupCollapse: tableGroupCollapseLabel,
23731
23795
  groupExpand: tableGroupExpandLabel,
23732
23796
  groupsCollapseAll: tableGroupsCollapseAllLabel,
23733
23797
  cellActionMenu: tableCellActionMenuLabel,
23734
- columnHeaderGroupedIndicator: tableColumnHeaderGroupedIndicatorLabel
23798
+ columnHeaderGrouped: tableColumnHeaderGroupedLabel,
23799
+ columnHeaderSortedAscending: tableColumnHeaderSortedAscendingLabel,
23800
+ columnHeaderSortedDescending: tableColumnHeaderSortedDescendingLabel,
23801
+ selectAll: tableSelectAllLabel,
23802
+ groupSelectAll: tableGroupSelectAllLabel,
23803
+ rowSelect: tableRowSelectLabel,
23804
+ rowOperationColumn: tableRowOperationColumnLabel
23735
23805
  };
23736
23806
  /**
23737
23807
  * Label provider for the Nimble table (and its sub-components and columns)
@@ -23755,8 +23825,26 @@
23755
23825
  attr({ attribute: 'cell-action-menu' })
23756
23826
  ], LabelProviderTable.prototype, "cellActionMenu", void 0);
23757
23827
  __decorate$1([
23758
- attr({ attribute: 'column-header-grouped-indicator' })
23759
- ], LabelProviderTable.prototype, "columnHeaderGroupedIndicator", void 0);
23828
+ attr({ attribute: 'column-header-grouped' })
23829
+ ], LabelProviderTable.prototype, "columnHeaderGrouped", void 0);
23830
+ __decorate$1([
23831
+ attr({ attribute: 'column-header-sorted-ascending' })
23832
+ ], LabelProviderTable.prototype, "columnHeaderSortedAscending", void 0);
23833
+ __decorate$1([
23834
+ attr({ attribute: 'column-header-sorted-descending' })
23835
+ ], LabelProviderTable.prototype, "columnHeaderSortedDescending", void 0);
23836
+ __decorate$1([
23837
+ attr({ attribute: 'select-all' })
23838
+ ], LabelProviderTable.prototype, "selectAll", void 0);
23839
+ __decorate$1([
23840
+ attr({ attribute: 'group-select-all' })
23841
+ ], LabelProviderTable.prototype, "groupSelectAll", void 0);
23842
+ __decorate$1([
23843
+ attr({ attribute: 'row-select' })
23844
+ ], LabelProviderTable.prototype, "rowSelect", void 0);
23845
+ __decorate$1([
23846
+ attr({ attribute: 'row-operation-column' })
23847
+ ], LabelProviderTable.prototype, "rowOperationColumn", void 0);
23760
23848
  const nimbleLabelProviderTable = LabelProviderTable.compose({
23761
23849
  baseName: 'label-provider-table'
23762
23850
  });
@@ -63839,6 +63927,25 @@ img.ProseMirror-separator {
63839
63927
  .row {
63840
63928
  position: relative;
63841
63929
  }
63930
+
63931
+ .accessibly-hidden {
63932
+ ${
63933
+ /**
63934
+ * Hide content visually while keeping it screen reader-accessible.
63935
+ * Source: https://webaim.org/techniques/css/invisiblecontent/#techniques
63936
+ * See discussion here: https://github.com/microsoft/fast/issues/5740#issuecomment-1068195035
63937
+ */
63938
+ ''}
63939
+ display: inline-block;
63940
+ height: 1px;
63941
+ width: 1px;
63942
+ position: absolute;
63943
+ margin: -1px;
63944
+ clip: rect(1px, 1px, 1px, 1px);
63945
+ clip-path: inset(50%);
63946
+ overflow: hidden;
63947
+ padding: 0;
63948
+ }
63842
63949
  `.withBehaviors(themeBehavior(Theme.color, css `
63843
63950
  .table-row-container::before {
63844
63951
  content: '';
@@ -63878,15 +63985,27 @@ img.ProseMirror-separator {
63878
63985
  @mousedown="${(_x, c) => !(c.event.detail > 1)}"
63879
63986
  >
63880
63987
  <slot></slot>
63881
- ${'' /* Omit title attribute for sort indicators because aria-sort is set on the 1st sorted column */}
63988
+ ${'' /* Set aria-hidden="true" on sort indicators because aria-sort is set on the 1st sorted column */}
63882
63989
  ${when(x => x.sortDirection === TableColumnSortDirection.ascending, html `
63883
- <${iconArrowUpTag} class="sort-indicator" aria-hidden="true"></${iconArrowUpTag}>
63990
+ <${iconArrowUpTag}
63991
+ class="sort-indicator"
63992
+ title="${x => tableColumnHeaderSortedAscendingLabel.getValueFor(x)}"
63993
+ aria-hidden="true"
63994
+ ></${iconArrowUpTag}>
63884
63995
  `)}
63885
63996
  ${when(x => x.sortDirection === TableColumnSortDirection.descending, html `
63886
- <${iconArrowDownTag} class="sort-indicator" aria-hidden="true"></${iconArrowDownTag}>
63997
+ <${iconArrowDownTag}
63998
+ class="sort-indicator"
63999
+ title="${x => tableColumnHeaderSortedDescendingLabel.getValueFor(x)}"
64000
+ aria-hidden="true"
64001
+ ></${iconArrowDownTag}>
63887
64002
  `)}
63888
64003
  ${when(x => x.isGrouped, html `
63889
- <${iconTwoSquaresInBracketsTag} class="grouped-indicator" title="${x => tableColumnHeaderGroupedIndicatorLabel.getValueFor(x)}"></${iconTwoSquaresInBracketsTag}>
64004
+ <${iconTwoSquaresInBracketsTag}
64005
+ class="grouped-indicator"
64006
+ title="${x => tableColumnHeaderGroupedLabel.getValueFor(x)}"
64007
+ aria-label="${x => tableColumnHeaderGroupedLabel.getValueFor(x)}"
64008
+ ></${iconTwoSquaresInBracketsTag}>
63890
64009
  `)}
63891
64010
  </template>
63892
64011
  `;
@@ -63973,7 +64092,7 @@ img.ProseMirror-separator {
63973
64092
  background-color: ${fillHoverSelectedColor};
63974
64093
  }
63975
64094
 
63976
- .checkbox-container {
64095
+ .row-operations-container {
63977
64096
  display: flex;
63978
64097
  }
63979
64098
 
@@ -64071,6 +64190,7 @@ img.ProseMirror-separator {
64071
64190
  @toggle="${(x, c) => x.onActionMenuToggle(c.event)}"
64072
64191
  @click="${(_, c) => c.event.stopPropagation()}"
64073
64192
  class="action-menu"
64193
+ title="${x => x.actionMenuLabel ?? tableCellActionMenuLabel.getValueFor(x)}"
64074
64194
  >
64075
64195
  <${iconThreeDotsLineTag} slot="start"></${iconThreeDotsLineTag}>
64076
64196
  ${x => x.actionMenuLabel ?? tableCellActionMenuLabel.getValueFor(x)}
@@ -64137,15 +64257,19 @@ img.ProseMirror-separator {
64137
64257
  // prettier-ignore
64138
64258
  const template$e = html `
64139
64259
  <template role="row" aria-selected=${x => x.ariaSelected}>
64140
- ${when(x => x.selectable && !x.hideSelection, html `
64141
- <span role="gridcell" class="checkbox-container">
64142
- <${checkboxTag}
64143
- ${ref('selectionCheckbox')}
64144
- class="selection-checkbox"
64145
- @change="${(x, c) => x.onSelectionChange(c.event)}"
64146
- @click="${(_, c) => c.event.stopPropagation()}"
64147
- >
64148
- </${checkboxTag}>
64260
+ ${when(x => !x.rowOperationGridCellHidden, html `
64261
+ <span role="gridcell" class="row-operations-container">
64262
+ ${when(x => x.selectable && !x.hideSelection, html `
64263
+ <${checkboxTag}
64264
+ ${ref('selectionCheckbox')}
64265
+ class="selection-checkbox"
64266
+ @change="${(x, c) => x.onSelectionChange(c.event)}"
64267
+ @click="${(_, c) => c.event.stopPropagation()}"
64268
+ title="${x => tableRowSelectLabel.getValueFor(x)}"
64269
+ aria-label="${x => tableRowSelectLabel.getValueFor(x)}"
64270
+ >
64271
+ </${checkboxTag}>
64272
+ `)}
64149
64273
  </span>
64150
64274
  `)}
64151
64275
  ${'' /* This is needed to help align the cell widths exactly with the column headers, due to the space reserved for
@@ -64199,6 +64323,7 @@ img.ProseMirror-separator {
64199
64323
  this.columns = [];
64200
64324
  this.nestingLevel = 0;
64201
64325
  this.menuOpen = false;
64326
+ this.rowOperationGridCellHidden = false;
64202
64327
  /**
64203
64328
  * @internal
64204
64329
  * An array that parallels the `columns` array and contains the indent
@@ -64369,6 +64494,9 @@ img.ProseMirror-separator {
64369
64494
  __decorate$1([
64370
64495
  attr({ attribute: 'menu-open', mode: 'boolean' })
64371
64496
  ], TableRow.prototype, "menuOpen", void 0);
64497
+ __decorate$1([
64498
+ attr({ attribute: 'row-operation-grid-cell-hidden', mode: 'boolean' })
64499
+ ], TableRow.prototype, "rowOperationGridCellHidden", void 0);
64372
64500
  __decorate$1([
64373
64501
  observable
64374
64502
  ], TableRow.prototype, "cellIndentLevels", void 0);
@@ -64511,6 +64639,8 @@ img.ProseMirror-separator {
64511
64639
  class="selection-checkbox"
64512
64640
  @change="${(x, c) => x.onSelectionChange(c.event)}"
64513
64641
  @click="${(_, c) => c.event.stopPropagation()}"
64642
+ title="${x => tableGroupSelectAllLabel.getValueFor(x)}"
64643
+ aria-label="${x => tableGroupSelectAllLabel.getValueFor(x)}"
64514
64644
  >
64515
64645
  </${checkboxTag}>
64516
64646
  </span>
@@ -64522,6 +64652,7 @@ img.ProseMirror-separator {
64522
64652
  content-hidden
64523
64653
  class="expand-collapse-button"
64524
64654
  tabindex="-1"
64655
+ title="${x => (x.expanded ? tableGroupCollapseLabel.getValueFor(x) : tableGroupExpandLabel.getValueFor(x))}"
64525
64656
  >
64526
64657
  <${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
64527
64658
  ${x => (x.expanded ? tableGroupCollapseLabel.getValueFor(x) : tableGroupExpandLabel.getValueFor(x))}
@@ -64659,29 +64790,34 @@ img.ProseMirror-separator {
64659
64790
  <div class="glass-overlay">
64660
64791
  <div role="rowgroup" class="header-row-container">
64661
64792
  <div class="header-row" role="row">
64662
- <span class="header-row-action-container" ${ref('headerRowActionContainer')}>
64793
+ <span role="${x => (x.showRowOperationColumn ? 'columnheader' : '')}" class="header-row-action-container" ${ref('headerRowActionContainer')}>
64794
+ ${when(x => x.showRowOperationColumn, html `
64795
+ <span class="accessibly-hidden">
64796
+ ${x => tableRowOperationColumnLabel.getValueFor(x)}
64797
+ </span>
64798
+ `)}
64663
64799
  ${when(x => x.selectionMode === TableRowSelectionMode.multiple, html `
64664
- <span role="columnheader" class="checkbox-container">
64800
+ <span class="checkbox-container">
64665
64801
  <${checkboxTag}
64666
64802
  ${ref('selectionCheckbox')}
64667
64803
  class="${x => `selection-checkbox ${x.selectionMode ?? ''}`}"
64668
64804
  @change="${(x, c) => x.onAllRowsSelectionChange(c.event)}"
64805
+ title="${x => tableSelectAllLabel.getValueFor(x)}"
64806
+ aria-label="${x => tableSelectAllLabel.getValueFor(x)}"
64669
64807
  >
64670
64808
  </${checkboxTag}>
64671
64809
  </span>
64672
64810
  `)}
64673
- <span role="gridcell">
64674
- <${buttonTag}
64675
- class="collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}"
64676
- content-hidden
64677
- appearance="${ButtonAppearance.ghost}"
64678
- title="${x => tableGroupsCollapseAllLabel.getValueFor(x)}"
64679
- @click="${x => x.handleCollapseAllGroupRows()}"
64680
- >
64681
- <${iconTriangleTwoLinesHorizontalTag} slot="start"></${iconTriangleTwoLinesHorizontalTag}>
64682
- ${x => tableGroupsCollapseAllLabel.getValueFor(x)}
64683
- </${buttonTag}>
64684
- </span>
64811
+ <${buttonTag}
64812
+ class="collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}"
64813
+ content-hidden
64814
+ appearance="${ButtonAppearance.ghost}"
64815
+ title="${x => tableGroupsCollapseAllLabel.getValueFor(x)}"
64816
+ @click="${x => x.handleCollapseAllGroupRows()}"
64817
+ >
64818
+ <${iconTriangleTwoLinesHorizontalTag} slot="start"></${iconTriangleTwoLinesHorizontalTag}>
64819
+ ${x => tableGroupsCollapseAllLabel.getValueFor(x)}
64820
+ </${buttonTag}>
64685
64821
  </span>
64686
64822
  <span class="column-headers-container" ${ref('columnHeadersContainer')}>
64687
64823
  ${repeat(x => x.visibleColumns, html `
@@ -64742,6 +64878,7 @@ img.ProseMirror-separator {
64742
64878
  :dataRecord="${(x, c) => c.parent.tableData[x.index]?.record}"
64743
64879
  :columns="${(_, c) => c.parent.columns}"
64744
64880
  :nestingLevel="${(x, c) => c.parent.tableData[x.index]?.nestingLevel}"
64881
+ ?row-operation-grid-cell-hidden="${(_, c) => !c.parent.showRowOperationColumn}"
64745
64882
  @click="${(x, c) => c.parent.onRowClick(x.index, c.event)}"
64746
64883
  @row-selection-toggle="${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event)}"
64747
64884
  @row-action-menu-beforetoggle="${(x, c) => c.parent.onRowActionMenuBeforeToggle(x.index, c.event)}"
@@ -66356,6 +66493,13 @@ img.ProseMirror-separator {
66356
66493
  get validity() {
66357
66494
  return this.tableValidator.getValidity();
66358
66495
  }
66496
+ /**
66497
+ * @internal
66498
+ */
66499
+ get showRowOperationColumn() {
66500
+ return (this.selectionMode === TableRowSelectionMode.multiple
66501
+ || this.showCollapseAll);
66502
+ }
66359
66503
  async setData(newData) {
66360
66504
  await this.processPendingUpdates();
66361
66505
  const data = newData.map(record => {