@ni/nimble-components 18.10.3 → 18.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/all-components-bundle.js +996 -192
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +3280 -3087
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/table/components/cell/index.d.ts +1 -0
  6. package/dist/esm/table/components/cell/index.js +4 -0
  7. package/dist/esm/table/components/cell/index.js.map +1 -1
  8. package/dist/esm/table/components/cell/styles.js +8 -0
  9. package/dist/esm/table/components/cell/styles.js.map +1 -1
  10. package/dist/esm/table/components/cell/template.js +1 -1
  11. package/dist/esm/table/components/cell/template.js.map +1 -1
  12. package/dist/esm/table/components/group-row/index.d.ts +29 -0
  13. package/dist/esm/table/components/group-row/index.js +61 -0
  14. package/dist/esm/table/components/group-row/index.js.map +1 -0
  15. package/dist/esm/table/components/group-row/styles.d.ts +1 -0
  16. package/dist/esm/table/components/group-row/styles.js +64 -0
  17. package/dist/esm/table/components/group-row/styles.js.map +1 -0
  18. package/dist/esm/table/components/group-row/template.d.ts +2 -0
  19. package/dist/esm/table/components/group-row/template.js +23 -0
  20. package/dist/esm/table/components/group-row/template.js.map +1 -0
  21. package/dist/esm/table/components/row/index.d.ts +5 -0
  22. package/dist/esm/table/components/row/index.js +30 -5
  23. package/dist/esm/table/components/row/index.js.map +1 -1
  24. package/dist/esm/table/components/row/styles.js +4 -0
  25. package/dist/esm/table/components/row/styles.js.map +1 -1
  26. package/dist/esm/table/components/row/template.js +2 -1
  27. package/dist/esm/table/components/row/template.js.map +1 -1
  28. package/dist/esm/table/index.d.ts +31 -3
  29. package/dist/esm/table/index.js +223 -22
  30. package/dist/esm/table/index.js.map +1 -1
  31. package/dist/esm/table/models/table-validator.d.ts +9 -1
  32. package/dist/esm/table/models/table-validator.js +37 -12
  33. package/dist/esm/table/models/table-validator.js.map +1 -1
  34. package/dist/esm/table/models/update-tracker.d.ts +4 -0
  35. package/dist/esm/table/models/update-tracker.js +23 -2
  36. package/dist/esm/table/models/update-tracker.js.map +1 -1
  37. package/dist/esm/table/models/virtualizer.d.ts +3 -1
  38. package/dist/esm/table/models/virtualizer.js +3 -2
  39. package/dist/esm/table/models/virtualizer.js.map +1 -1
  40. package/dist/esm/table/styles.js +19 -3
  41. package/dist/esm/table/styles.js.map +1 -1
  42. package/dist/esm/table/template.js +38 -19
  43. package/dist/esm/table/template.js.map +1 -1
  44. package/dist/esm/table/types.d.ts +26 -0
  45. package/dist/esm/table/types.js +16 -0
  46. package/dist/esm/table/types.js.map +1 -1
  47. package/dist/esm/table-column/base/group-header-view/index.d.ts +14 -0
  48. package/dist/esm/table-column/base/group-header-view/index.js +17 -0
  49. package/dist/esm/table-column/base/group-header-view/index.js.map +1 -0
  50. package/dist/esm/table-column/base/group-header-view/template.d.ts +3 -0
  51. package/dist/esm/table-column/base/group-header-view/template.js +10 -0
  52. package/dist/esm/table-column/base/group-header-view/template.js.map +1 -0
  53. package/dist/esm/table-column/base/index.d.ts +25 -0
  54. package/dist/esm/table-column/base/index.js +23 -0
  55. package/dist/esm/table-column/base/index.js.map +1 -1
  56. package/dist/esm/table-column/mixins/groupable-column.d.ts +12 -0
  57. package/dist/esm/table-column/mixins/groupable-column.js +35 -0
  58. package/dist/esm/table-column/mixins/groupable-column.js.map +1 -0
  59. package/dist/esm/table-column/text/group-header-view/index.d.ts +22 -0
  60. package/dist/esm/table-column/text/group-header-view/index.js +47 -0
  61. package/dist/esm/table-column/text/group-header-view/index.js.map +1 -0
  62. package/dist/esm/table-column/text/group-header-view/styles.d.ts +1 -0
  63. package/dist/esm/table-column/text/group-header-view/styles.js +16 -0
  64. package/dist/esm/table-column/text/group-header-view/styles.js.map +1 -0
  65. package/dist/esm/table-column/text/group-header-view/template.d.ts +2 -0
  66. package/dist/esm/table-column/text/group-header-view/template.js +15 -0
  67. package/dist/esm/table-column/text/group-header-view/template.js.map +1 -0
  68. package/dist/esm/table-column/text/index.d.ts +9 -1
  69. package/dist/esm/table-column/text/index.js +7 -1
  70. package/dist/esm/table-column/text/index.js.map +1 -1
  71. package/dist/esm/tree-item/styles.js +2 -2
  72. package/dist/esm/tree-item/styles.js.map +1 -1
  73. package/package.json +1 -1
@@ -18,6 +18,7 @@ export declare class TableCell<TCellRecord extends TableCellRecord = TableCellRe
18
18
  menuOpen: boolean;
19
19
  actionMenuLabel?: string;
20
20
  cellViewTemplate?: ViewTemplate<TableCell>;
21
+ nestingLevel: number;
21
22
  readonly actionMenuButton?: MenuButton;
22
23
  onActionMenuBeforeToggle(event: CustomEvent<MenuButtonToggleEventDetail>): void;
23
24
  onActionMenuToggle(event: CustomEvent<MenuButtonToggleEventDetail>): void;
@@ -12,6 +12,7 @@ export class TableCell extends FoundationElement {
12
12
  super(...arguments);
13
13
  this.hasActionMenu = false;
14
14
  this.menuOpen = false;
15
+ this.nestingLevel = 0;
15
16
  }
16
17
  onActionMenuBeforeToggle(event) {
17
18
  this.$emit('cell-action-menu-beforetoggle', event.detail);
@@ -36,6 +37,9 @@ __decorate([
36
37
  __decorate([
37
38
  observable
38
39
  ], TableCell.prototype, "cellViewTemplate", void 0);
40
+ __decorate([
41
+ observable
42
+ ], TableCell.prototype, "nestingLevel", void 0);
39
43
  const nimbleTableCell = TableCell.compose({
40
44
  baseName: 'table-cell',
41
45
  template,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,SAEX,SAAQ,iBAAiB;IAF3B;;QAOW,kBAAa,GAAG,KAAK,CAAC;QAGtB,aAAQ,GAAG,KAAK,CAAC;IAsB5B,CAAC;IAZU,wBAAwB,CAC3B,KAA+C;QAE/C,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAEM,kBAAkB,CACrB,KAA+C;QAE/C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;CACJ;AA5BG;IADC,UAAU;4CACoC;AAG/C;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gDAC3B;AAG7B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;2CAC1B;AAGxB;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;kDACT;AAGhC;IADC,UAAU;mDACuC;AAkBtD,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;IACtC,QAAQ,EAAE,YAAY;IACtB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,SAEX,SAAQ,iBAAiB;IAF3B;;QAOW,kBAAa,GAAG,KAAK,CAAC;QAGtB,aAAQ,GAAG,KAAK,CAAC;QASjB,iBAAY,GAAG,CAAC,CAAC;IAgB5B,CAAC;IAZU,wBAAwB,CAC3B,KAA+C;QAE/C,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAEM,kBAAkB,CACrB,KAA+C;QAE/C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;CACJ;AA/BG;IADC,UAAU;4CACoC;AAG/C;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gDAC3B;AAG7B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;2CAC1B;AAGxB;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;kDACT;AAGhC;IADC,UAAU;mDACuC;AAGlD;IADC,UAAU;+CACa;AAkB5B,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;IACtC,QAAQ,EAAE,YAAY;IACtB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"}
@@ -5,7 +5,15 @@ export const styles = css `
5
5
  ${display('grid')}
6
6
 
7
7
  :host {
8
+ --ni-private-table-cell-nesting-level: 0;
8
9
  padding: 0px calc(${standardPadding} / 2);
10
+ padding-left: calc(
11
+ ${standardPadding} / 2 +
12
+ (
13
+ var(--ni-private-table-cell-nesting-level) *
14
+ ${standardPadding} * 2
15
+ )
16
+ );
9
17
  align-self: center;
10
18
  height: 100%;
11
19
  grid-template-columns: 1fr auto;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;4BAGO,eAAe;;;;;;;;;;;;;;;;;CAiB1C,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;;4BAIO,eAAe;;cAE7B,eAAe;;;0BAGH,eAAe;;;;;;;;;;;;;;;;;;;CAmBxC,CAAC"}
@@ -4,7 +4,7 @@ import { menuButtonTag } from '../../../menu-button';
4
4
  import { ButtonAppearance } from '../../../menu-button/types';
5
5
  // prettier-ignore
6
6
  export const template = html `
7
- <template role="cell">
7
+ <template role="cell" style="--ni-private-table-cell-nesting-level: ${x => x.nestingLevel}">
8
8
  ${x => x.cellViewTemplate}
9
9
  ${when(x => x.hasActionMenu, html `
10
10
  <${menuButtonTag} ${ref('actionMenuButton')}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAgB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACH,gBAAgB,EAEnB,MAAM,4BAA4B,CAAC;AAEpC,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAW;;UAE7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;UACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAW;eACrC,aAAa,IAAI,GAAG,CAAC,kBAAkB,CAAC;;8BAEzB,gBAAgB,CAAC,KAAK;iCACnB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAiD,CAAC;2BAC/F,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAiD,CAAC;;;mBAG3F,oBAAoB,mBAAmB,oBAAoB;kBAC5D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;gBAExB,aAAa;SACpB,CAAC;;CAET,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,WAAmB,EACI,EAAE,CAAC,IAAI,CAAW,IAAI,WAAW;uBACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU;yBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY;;QAE/C,WAAW,GAAG,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAgB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACH,gBAAgB,EAEnB,MAAM,4BAA4B,CAAC;AAEpC,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAW;0EACmC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;UACnF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;UACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAW;eACrC,aAAa,IAAI,GAAG,CAAC,kBAAkB,CAAC;;8BAEzB,gBAAgB,CAAC,KAAK;iCACnB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAiD,CAAC;2BAC/F,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAiD,CAAC;;;mBAG3F,oBAAoB,mBAAmB,oBAAoB;kBAC5D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;gBAExB,aAAa;SACpB,CAAC;;CAET,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,WAAmB,EACI,EAAE,CAAC,IAAI,CAAW,IAAI,WAAW;uBACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU;yBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY;;QAE/C,WAAW,GAAG,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { FoundationElement } from '@microsoft/fast-foundation';
2
+ import type { TableColumn } from '../../../table-column/base';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'nimble-table-group-row': TableGroupRow;
6
+ }
7
+ }
8
+ /**
9
+ * A styled cell that is used within the nimble-table-row.
10
+ * @internal
11
+ */
12
+ export declare class TableGroupRow extends FoundationElement {
13
+ groupRowValue?: unknown;
14
+ nestingLevel: number;
15
+ leafItemCount?: number;
16
+ groupColumn?: TableColumn;
17
+ expanded: boolean;
18
+ /**
19
+ * @internal
20
+ */
21
+ readonly expandIcon: HTMLElement;
22
+ /**
23
+ * @internal
24
+ */
25
+ animationClass: string;
26
+ onGroupExpandToggle(): void;
27
+ private readonly removeAnimatingClass;
28
+ }
29
+ export declare const tableGroupRowTag: string;
@@ -0,0 +1,61 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr, observable } from '@microsoft/fast-element';
3
+ import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
4
+ import { styles } from './styles';
5
+ import { template } from './template';
6
+ /**
7
+ * A styled cell that is used within the nimble-table-row.
8
+ * @internal
9
+ */
10
+ export class TableGroupRow extends FoundationElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.nestingLevel = 0;
14
+ this.expanded = false;
15
+ /**
16
+ * @internal
17
+ */
18
+ this.animationClass = '';
19
+ this.removeAnimatingClass = () => {
20
+ this.animationClass = '';
21
+ this.expandIcon.removeEventListener('transitionend', this.removeAnimatingClass);
22
+ };
23
+ }
24
+ onGroupExpandToggle() {
25
+ this.$emit('group-expand-toggle');
26
+ // To avoid a visual glitch with improper expand/collapse icons performing an
27
+ // animation, we apply a class to the appropriate group row such that we can have
28
+ // a more targeted CSS animation. We use the 'transitionend' event to remove the
29
+ // temporary class and register a function reference as the handler to avoid issues
30
+ // that may result from the 'transitionend' event not firing, as it will never result
31
+ // in multiple event listeners being registered.
32
+ this.animationClass = 'animating';
33
+ this.expandIcon.addEventListener('transitionend', this.removeAnimatingClass);
34
+ }
35
+ }
36
+ __decorate([
37
+ observable
38
+ ], TableGroupRow.prototype, "groupRowValue", void 0);
39
+ __decorate([
40
+ observable
41
+ ], TableGroupRow.prototype, "nestingLevel", void 0);
42
+ __decorate([
43
+ observable
44
+ ], TableGroupRow.prototype, "leafItemCount", void 0);
45
+ __decorate([
46
+ observable
47
+ ], TableGroupRow.prototype, "groupColumn", void 0);
48
+ __decorate([
49
+ attr({ mode: 'boolean' })
50
+ ], TableGroupRow.prototype, "expanded", void 0);
51
+ __decorate([
52
+ observable
53
+ ], TableGroupRow.prototype, "animationClass", void 0);
54
+ const nimbleTableGroupRow = TableGroupRow.compose({
55
+ baseName: 'table-group-row',
56
+ template,
57
+ styles
58
+ });
59
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableGroupRow());
60
+ export const tableGroupRowTag = DesignSystem.tagFor(TableGroupRow);
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/group-row/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAApD;;QAKW,iBAAY,GAAG,CAAC,CAAC;QASjB,aAAQ,GAAG,KAAK,CAAC;QAOxB;;WAEG;QAEI,mBAAc,GAAG,EAAE,CAAC;QAiBV,yBAAoB,GAAG,GAAS,EAAE;YAC/C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAC/B,eAAe,EACf,IAAI,CAAC,oBAAoB,CAC5B,CAAC;QACN,CAAC,CAAC;IACN,CAAC;IAtBU,mBAAmB;QACtB,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAClC,6EAA6E;QAC7E,iFAAiF;QACjF,gFAAgF;QAChF,mFAAmF;QACnF,qFAAqF;QACrF,gDAAgD;QAChD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAC5B,eAAe,EACf,IAAI,CAAC,oBAAoB,CAC5B,CAAC;IACN,CAAC;CASJ;AA/CG;IADC,UAAU;oDACoB;AAG/B;IADC,UAAU;mDACa;AAGxB;IADC,UAAU;oDACmB;AAG9B;IADC,UAAU;kDACsB;AAGjC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACF;AAWxB;IADC,UAAU;qDACgB;AA0B/B,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC;IAC9C,QAAQ,EAAE,iBAAiB;IAC3B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -0,0 +1,64 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { borderWidth, controlHeight, controlSlimHeight, fillHoverColor, mediumDelay, smallPadding, standardPadding, tableRowBorderColor } from '../../../theme-provider/design-tokens';
4
+ export const styles = css `
5
+ ${display('flex')}
6
+
7
+ :host {
8
+ align-items: center;
9
+ height: calc(${controlHeight} + 2 * ${borderWidth});
10
+ border-top: calc(2 * ${borderWidth}) solid ${tableRowBorderColor};
11
+ padding-left: calc(
12
+ ${smallPadding} * 2 + ${standardPadding} * 2 *
13
+ var(--ni-private-table-group-row-indent-level)
14
+ );
15
+ }
16
+
17
+ :host(:hover) {
18
+ background: ${fillHoverColor};
19
+ }
20
+
21
+ :host([expanded]) .animating,
22
+ :host .animating {
23
+ transition: ${mediumDelay} ease-in-out;
24
+ }
25
+
26
+ .expand-collapse-button {
27
+ width: ${controlSlimHeight};
28
+ height: ${controlSlimHeight};
29
+ }
30
+
31
+ :host([expanded]) .expander-icon {
32
+ transform: rotate(90deg);
33
+ }
34
+
35
+ .expander-icon {
36
+ transform: rotate(0deg);
37
+ }
38
+
39
+ .group-row-header-content {
40
+ display: flex;
41
+ overflow: hidden;
42
+ }
43
+
44
+ .group-header-value {
45
+ padding-left: calc(${standardPadding} / 2);
46
+ user-select: none;
47
+ overflow: hidden;
48
+ display: flex;
49
+ }
50
+
51
+ .group-row-child-count {
52
+ padding-left: 2px;
53
+ pointer-events: none;
54
+ user-select: none;
55
+ }
56
+
57
+ @media (prefers-reduced-motion) {
58
+ :host .animating,
59
+ :host([expanded]) .animating {
60
+ transition-duration: 0s;
61
+ }
62
+ }
63
+ `;
64
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/group-row/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACtB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;;uBAIE,aAAa,UAAU,WAAW;+BAC1B,WAAW,WAAW,mBAAmB;;cAE1D,YAAY,UAAU,eAAe;;;;;;sBAM7B,cAAc;;;;;sBAKd,WAAW;;;;iBAIhB,iBAAiB;kBAChB,iBAAiB;;;;;;;;;;;;;;;;;6BAiBN,eAAe;;;;;;;;;;;;;;;;;;CAkB3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { TableGroupRow } from '.';
2
+ export declare const template: import("@microsoft/fast-element").ViewTemplate<TableGroupRow, any>;
@@ -0,0 +1,23 @@
1
+ /* eslint-disable @typescript-eslint/indent */
2
+ import { html, ref } from '@microsoft/fast-element';
3
+ import { buttonTag } from '../../../button';
4
+ import { ButtonAppearance } from '../../../button/types';
5
+ import { iconArrowExpanderRightTag } from '../../../icons/arrow-expander-right';
6
+ // prettier-ignore
7
+ export const template = html `
8
+ <template @click=${x => x.onGroupExpandToggle()} style="--ni-private-table-group-row-indent-level: ${x => x.nestingLevel};">
9
+ <${buttonTag}
10
+ appearance="${ButtonAppearance.ghost}"
11
+ content-hidden
12
+ class="expand-collapse-button"
13
+ tabindex="-1"
14
+ >
15
+ <${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
16
+ </${buttonTag}>
17
+ <div class="group-row-header-content">
18
+ ${x => x.groupColumn?.internalGroupHeaderViewTemplate}
19
+ <div class="group-row-child-count">(${x => x.leafItemCount})</span>
20
+ </div>
21
+ </template>
22
+ `;
23
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/group-row/template.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAe;uBACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,sDAAsD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;WACjH,SAAS;0BACM,gBAAgB,CAAC,KAAK;;;;;eAKjC,yBAAyB,IAAI,GAAG,CAAC,YAAY,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,OAAO,yBAAyB;YAC5I,SAAS;;cAEP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,+BAA+B;kDACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;;;CAGrE,CAAC"}
@@ -11,6 +11,7 @@ declare global {
11
11
  export interface ColumnState {
12
12
  column: TableColumn;
13
13
  cellState: TableCellState;
14
+ cellIndentLevel: number;
14
15
  }
15
16
  /** Represents a single row (element) in the Table's data */
16
17
  export interface TableDataRecord extends TableRecord {
@@ -21,11 +22,15 @@ export interface TableDataRecord extends TableRecord {
21
22
  */
22
23
  export declare class TableRow<TDataRecord extends TableDataRecord = TableDataRecord> extends FoundationElement {
23
24
  recordId?: string;
25
+ selectable: boolean;
26
+ selected: boolean;
24
27
  dataRecord?: TDataRecord;
25
28
  columns: TableColumn[];
26
29
  currentActionMenuColumn?: TableColumn;
30
+ nestingLevel: number;
27
31
  menuOpen: boolean;
28
32
  get columnStates(): ColumnState[];
33
+ get ariaSelected(): 'true' | 'false' | null;
29
34
  onCellActionMenuBeforeToggle(event: CustomEvent<MenuButtonToggleEventDetail>, column: TableColumn): void;
30
35
  onCellActionMenuToggle(event: CustomEvent<MenuButtonToggleEventDetail>, column: TableColumn): void;
31
36
  closeOpenActionMenus(): void;
@@ -11,18 +11,21 @@ import { TableCell } from '../cell';
11
11
  export class TableRow extends FoundationElement {
12
12
  constructor() {
13
13
  super(...arguments);
14
+ this.selectable = false;
15
+ this.selected = false;
14
16
  this.columns = [];
17
+ this.nestingLevel = 0;
15
18
  this.menuOpen = false;
16
19
  }
17
20
  get columnStates() {
18
- return this.columns.map(column => {
21
+ return this.columns.map((column, i) => {
19
22
  const fieldNames = column.dataRecordFieldNames;
20
23
  let cellState;
21
24
  if (this.hasValidFieldNames(fieldNames) && this.dataRecord) {
22
25
  const cellDataValues = fieldNames.map(field => this.dataRecord[field]);
23
- const cellRecord = Object.fromEntries(column.cellRecordFieldNames.map((k, i) => [
26
+ const cellRecord = Object.fromEntries(column.cellRecordFieldNames.map((k, j) => [
24
27
  k,
25
- cellDataValues[i]
28
+ cellDataValues[j]
26
29
  ]));
27
30
  const columnConfig = column.columnConfig ?? {};
28
31
  cellState = {
@@ -31,11 +34,21 @@ export class TableRow extends FoundationElement {
31
34
  };
32
35
  }
33
36
  else {
34
- cellState = { cellRecord: {}, columnConfig: {} };
37
+ cellState = {
38
+ cellRecord: {},
39
+ columnConfig: {}
40
+ };
35
41
  }
36
- return { column, cellState };
42
+ const cellIndentLevel = i === 0 ? this.nestingLevel : 0;
43
+ return { column, cellState, cellIndentLevel };
37
44
  });
38
45
  }
46
+ get ariaSelected() {
47
+ if (this.selectable) {
48
+ return this.selected ? 'true' : 'false';
49
+ }
50
+ return null;
51
+ }
39
52
  onCellActionMenuBeforeToggle(event, column) {
40
53
  this.currentActionMenuColumn = column;
41
54
  this.emitToggleEvent('row-action-menu-beforetoggle', event.detail, column);
@@ -68,6 +81,12 @@ export class TableRow extends FoundationElement {
68
81
  __decorate([
69
82
  attr({ attribute: 'record-id' })
70
83
  ], TableRow.prototype, "recordId", void 0);
84
+ __decorate([
85
+ attr({ mode: 'boolean' })
86
+ ], TableRow.prototype, "selectable", void 0);
87
+ __decorate([
88
+ attr({ mode: 'boolean' })
89
+ ], TableRow.prototype, "selected", void 0);
71
90
  __decorate([
72
91
  observable
73
92
  ], TableRow.prototype, "dataRecord", void 0);
@@ -77,12 +96,18 @@ __decorate([
77
96
  __decorate([
78
97
  observable
79
98
  ], TableRow.prototype, "currentActionMenuColumn", void 0);
99
+ __decorate([
100
+ observable
101
+ ], TableRow.prototype, "nestingLevel", void 0);
80
102
  __decorate([
81
103
  attr({ attribute: 'menu-open', mode: 'boolean' })
82
104
  ], TableRow.prototype, "menuOpen", void 0);
83
105
  __decorate([
84
106
  volatile
85
107
  ], TableRow.prototype, "columnStates", null);
108
+ __decorate([
109
+ volatile
110
+ ], TableRow.prototype, "ariaSelected", null);
86
111
  const nimbleTableRow = TableRow.compose({
87
112
  baseName: 'table-row',
88
113
  template,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/row/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/row/index.ts"],"names":[],"mappings":"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"}
@@ -25,5 +25,9 @@ export const styles = css `
25
25
  :host(:hover) nimble-table-cell {
26
26
  --ni-private-table-cell-action-menu-display: block;
27
27
  }
28
+
29
+ :host([selected]) nimble-table-cell {
30
+ --ni-private-table-cell-action-menu-display: block;
31
+ }
28
32
  `;
29
33
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/row/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,WAAW,EACX,aAAa,EACb,mBAAmB,EACtB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;uBAGE,aAAa,UAAU,WAAW;+BAC1B,WAAW,WAAW,mBAAmB;;;;;;;;;;;;;;;;;;;CAmBvE,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/row/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,WAAW,EACX,aAAa,EACb,mBAAmB,EACtB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;uBAGE,aAAa,UAAU,WAAW;+BAC1B,WAAW,WAAW,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CAuBvE,CAAC"}
@@ -2,7 +2,7 @@ import { html, repeat, when } from '@microsoft/fast-element';
2
2
  import { tableCellTag } from '../cell';
3
3
  // prettier-ignore
4
4
  export const template = html `
5
- <template role="row">
5
+ <template role="row" aria-selected=${x => x.ariaSelected}>
6
6
  ${repeat(x => x.columnStates, html `
7
7
  ${when(x => !x.column.columnHidden, html `
8
8
  <${tableCellTag}
@@ -13,6 +13,7 @@ export const template = html `
13
13
  action-menu-label="${x => x.column.actionMenuLabel}"
14
14
  @cell-action-menu-beforetoggle="${(x, c) => c.parent.onCellActionMenuBeforeToggle(c.event, x.column)}"
15
15
  @cell-action-menu-toggle="${(x, c) => c.parent.onCellActionMenuToggle(c.event, x.column)}"
16
+ :nestingLevel="${x => x.cellIndentLevel};"
16
17
  >
17
18
 
18
19
  ${when((x, c) => (c.parent.currentActionMenuColumn === x.column) && x.column.actionMenuSlot, html `
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/row/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAU;;UAE5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAuB;cACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAuB;mBACxD,YAAY;;kCAEG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;yCACT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB;wCACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;yCAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe;sDAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;gDACpH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;;;sBAGlI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,MAAmB,CAAC,uBAAuB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAuB;;oCAEtH,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,cAAe,EAAE;;;qBAGjE,CAAC;oBACF,YAAY;aACnB,CAAC;SACL,CAAC;;CAET,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/row/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAU;yCACG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;UAClD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAuB;cACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAuB;mBACxD,YAAY;;kCAEG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;yCACT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB;wCACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;yCAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe;sDAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;gDACpH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;qCACnH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;;sBAGrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,MAAmB,CAAC,uBAAuB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAuB;;oCAEtH,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,cAAe,EAAE;;;qBAGjE,CAAC;oBACF,YAAY;aACnB,CAAC;SACL,CAAC;;CAET,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FoundationElement } from '@microsoft/fast-foundation';
2
2
  import { TableColumn } from '../table-column/base';
3
- import { TableActionMenuToggleEventDetail, TableRecord, TableValidity } from './types';
3
+ import { TableActionMenuToggleEventDetail, TableRecord, TableRowSelectionMode, TableRowSelectionState, TableValidity } from './types';
4
4
  import { Virtualizer } from './models/virtualizer';
5
5
  import type { TableRow } from './components/row';
6
6
  declare global {
@@ -11,12 +11,20 @@ declare global {
11
11
  interface TableRowState<TData extends TableRecord = TableRecord> {
12
12
  record: TData;
13
13
  id: string;
14
+ selectionState: TableRowSelectionState;
15
+ isGrouped: boolean;
16
+ groupRowValue?: unknown;
17
+ isExpanded: boolean;
18
+ nestingLevel?: number;
19
+ leafItemCount?: number;
20
+ groupColumn?: TableColumn;
14
21
  }
15
22
  /**
16
23
  * A nimble-styled table.
17
24
  */
18
25
  export declare class Table<TData extends TableRecord = TableRecord> extends FoundationElement {
19
26
  idFieldName?: string;
27
+ selectionMode: TableRowSelectionMode;
20
28
  /**
21
29
  * @internal
22
30
  */
@@ -75,8 +83,12 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
75
83
  private readonly tableValidator;
76
84
  private readonly updateTracker;
77
85
  private columnNotifiers;
86
+ private isInitialized;
87
+ private readonly collapsedRows;
78
88
  constructor();
79
- setData(newData: readonly TData[]): void;
89
+ setData(newData: readonly TData[]): Promise<void>;
90
+ getSelectedRecordIds(): Promise<string[]>;
91
+ setSelectedRecordIds(recordIds: string[]): Promise<void>;
80
92
  connectedCallback(): void;
81
93
  disconnectedCallback(): void;
82
94
  checkValidity(): boolean;
@@ -88,18 +100,27 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
88
100
  * is the string name of the property that changed on that column.
89
101
  */
90
102
  handleChange(source: unknown, args: unknown): void;
103
+ /** @internal */
104
+ onRowClick(rowIndex: number): Promise<void>;
105
+ /** @internal */
91
106
  onRowActionMenuBeforeToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
107
+ /** @internal */
92
108
  onRowActionMenuToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
109
+ handleGroupRowExpanded(rowIndex: number, event: Event): void;
93
110
  /**
94
111
  * @internal
95
112
  */
96
113
  update(): void;
114
+ protected selectionModeChanged(_prev: string | undefined, _next: string | undefined): void;
97
115
  protected idFieldNameChanged(_prev: string | undefined, _next: string | undefined): void;
98
116
  protected columnsChanged(_prev: TableColumn[] | undefined, _next: TableColumn[]): void;
99
117
  private readonly onViewPortScroll;
100
118
  private removeColumnObservers;
119
+ private initialize;
120
+ private processPendingUpdates;
101
121
  private observeColumns;
102
122
  private getColumnsParticipatingInSorting;
123
+ private getColumnsParticipatingInGrouping;
103
124
  private childItemsChanged;
104
125
  private updateColumnsFromChildItems;
105
126
  private updateTanStack;
@@ -107,12 +128,19 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
107
128
  private updateRowGridColumns;
108
129
  private validate;
109
130
  private validateWithData;
110
- private setTableData;
131
+ private emitSelectionChangeEvent;
111
132
  private refreshRows;
133
+ private getGroupRowColumn;
112
134
  private updateTableOptions;
135
+ private readonly getIsRowExpanded;
136
+ private readonly handleRowSelectionChange;
137
+ private readonly handleExpandedChange;
138
+ private toggleGroupExpanded;
113
139
  private calculateTanStackSortState;
140
+ private calculateTanStackGroupingState;
114
141
  private calculateTanStackRowIdFunction;
115
142
  private calculateTanStackColumns;
143
+ private calculateTanStackSelectionState;
116
144
  }
117
145
  export declare const tableTag: string;
118
146
  export {};