@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.
- package/dist/all-components-bundle.js +996 -192
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +3280 -3087
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/table/components/cell/index.d.ts +1 -0
- package/dist/esm/table/components/cell/index.js +4 -0
- package/dist/esm/table/components/cell/index.js.map +1 -1
- package/dist/esm/table/components/cell/styles.js +8 -0
- package/dist/esm/table/components/cell/styles.js.map +1 -1
- package/dist/esm/table/components/cell/template.js +1 -1
- package/dist/esm/table/components/cell/template.js.map +1 -1
- package/dist/esm/table/components/group-row/index.d.ts +29 -0
- package/dist/esm/table/components/group-row/index.js +61 -0
- package/dist/esm/table/components/group-row/index.js.map +1 -0
- package/dist/esm/table/components/group-row/styles.d.ts +1 -0
- package/dist/esm/table/components/group-row/styles.js +64 -0
- package/dist/esm/table/components/group-row/styles.js.map +1 -0
- package/dist/esm/table/components/group-row/template.d.ts +2 -0
- package/dist/esm/table/components/group-row/template.js +23 -0
- package/dist/esm/table/components/group-row/template.js.map +1 -0
- package/dist/esm/table/components/row/index.d.ts +5 -0
- package/dist/esm/table/components/row/index.js +30 -5
- package/dist/esm/table/components/row/index.js.map +1 -1
- package/dist/esm/table/components/row/styles.js +4 -0
- package/dist/esm/table/components/row/styles.js.map +1 -1
- package/dist/esm/table/components/row/template.js +2 -1
- package/dist/esm/table/components/row/template.js.map +1 -1
- package/dist/esm/table/index.d.ts +31 -3
- package/dist/esm/table/index.js +223 -22
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/table/models/table-validator.d.ts +9 -1
- package/dist/esm/table/models/table-validator.js +37 -12
- package/dist/esm/table/models/table-validator.js.map +1 -1
- package/dist/esm/table/models/update-tracker.d.ts +4 -0
- package/dist/esm/table/models/update-tracker.js +23 -2
- package/dist/esm/table/models/update-tracker.js.map +1 -1
- package/dist/esm/table/models/virtualizer.d.ts +3 -1
- package/dist/esm/table/models/virtualizer.js +3 -2
- package/dist/esm/table/models/virtualizer.js.map +1 -1
- package/dist/esm/table/styles.js +19 -3
- package/dist/esm/table/styles.js.map +1 -1
- package/dist/esm/table/template.js +38 -19
- package/dist/esm/table/template.js.map +1 -1
- package/dist/esm/table/types.d.ts +26 -0
- package/dist/esm/table/types.js +16 -0
- package/dist/esm/table/types.js.map +1 -1
- package/dist/esm/table-column/base/group-header-view/index.d.ts +14 -0
- package/dist/esm/table-column/base/group-header-view/index.js +17 -0
- package/dist/esm/table-column/base/group-header-view/index.js.map +1 -0
- package/dist/esm/table-column/base/group-header-view/template.d.ts +3 -0
- package/dist/esm/table-column/base/group-header-view/template.js +10 -0
- package/dist/esm/table-column/base/group-header-view/template.js.map +1 -0
- package/dist/esm/table-column/base/index.d.ts +25 -0
- package/dist/esm/table-column/base/index.js +23 -0
- package/dist/esm/table-column/base/index.js.map +1 -1
- package/dist/esm/table-column/mixins/groupable-column.d.ts +12 -0
- package/dist/esm/table-column/mixins/groupable-column.js +35 -0
- package/dist/esm/table-column/mixins/groupable-column.js.map +1 -0
- package/dist/esm/table-column/text/group-header-view/index.d.ts +22 -0
- package/dist/esm/table-column/text/group-header-view/index.js +47 -0
- package/dist/esm/table-column/text/group-header-view/index.js.map +1 -0
- package/dist/esm/table-column/text/group-header-view/styles.d.ts +1 -0
- package/dist/esm/table-column/text/group-header-view/styles.js +16 -0
- package/dist/esm/table-column/text/group-header-view/styles.js.map +1 -0
- package/dist/esm/table-column/text/group-header-view/template.d.ts +2 -0
- package/dist/esm/table-column/text/group-header-view/template.js +15 -0
- package/dist/esm/table-column/text/group-header-view/template.js.map +1 -0
- package/dist/esm/table-column/text/index.d.ts +9 -1
- package/dist/esm/table-column/text/index.js +7 -1
- package/dist/esm/table-column/text/index.js.map +1 -1
- package/dist/esm/tree-item/styles.js +2 -2
- package/dist/esm/tree-item/styles.js.map +1 -1
- 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;
|
|
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;;;
|
|
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
|
|
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,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,
|
|
26
|
+
const cellRecord = Object.fromEntries(column.cellRecordFieldNames.map((k, j) => [
|
|
24
27
|
k,
|
|
25
|
-
cellDataValues[
|
|
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 = {
|
|
37
|
+
cellState = {
|
|
38
|
+
cellRecord: {},
|
|
39
|
+
columnConfig: {}
|
|
40
|
+
};
|
|
35
41
|
}
|
|
36
|
-
|
|
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":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/row/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkBpC;;;GAGG;AACH,MAAM,OAAO,QAEX,SAAQ,iBAAiB;IAF3B;;QAOW,eAAU,GAAG,KAAK,CAAC;QAGnB,aAAQ,GAAG,KAAK,CAAC;QAMjB,YAAO,GAAkB,EAAE,CAAC;QAM5B,iBAAY,GAAG,CAAC,CAAC;QAGjB,aAAQ,GAAG,KAAK,CAAC;IA4F5B,CAAC;IAzFG,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,CAAC;YAC/C,IAAI,SAAyB,CAAC;YAC9B,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACxD,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CACjC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAW,CAAC,KAAK,CAAC,CACnC,CAAC;gBACF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,CAAC;oBACD,cAAc,CAAC,CAAC,CAAC;iBACpB,CAAC,CACL,CAAC;gBACF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC/C,SAAS,GAAG;oBACR,UAAU;oBACV,YAAY;iBACf,CAAC;aACL;iBAAM;gBACH,SAAS,GAAG;oBACR,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,EAAE;iBACnB,CAAC;aACL;YACD,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,IAAoB,YAAY;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SAC3C;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,4BAA4B,CAC/B,KAA+C,EAC/C,MAAmB;QAEnB,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC,eAAe,CAChB,8BAA8B,EAC9B,KAAK,CAAC,MAAM,EACZ,MAAM,CACT,CAAC;IACN,CAAC;IAEM,sBAAsB,CACzB,KAA+C,EAC/C,MAAmB;QAEnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAEM,oBAAoB;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/D,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,SAAS,IAAI,CAAC,CAAC,QAAQ,CAC/B,CAAC;YACf,IAAI,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE;gBAC1C,gBAAgB,CAAC,gBAAgB,CAAC,YAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aACnE;SACJ;IACL,CAAC;IAEO,eAAe,CACnB,SAAiB,EACjB,qBAAkD,EAClD,MAAmB;QAEnB,MAAM,MAAM,GAAqC;YAC7C,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAEO,kBAAkB,CACtB,IAA6C;QAE7C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChD,CAAC;CACJ;AAjHG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;0CACR;AAGzB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;4CACA;AAG1B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;0CACF;AAGxB;IADC,UAAU;4CACqB;AAGhC;IADC,UAAU;yCACwB;AAGnC;IADC,UAAU;yDACkC;AAG7C;IADC,UAAU;8CACa;AAGxB;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;0CAC1B;AAGxB;IADC,QAAQ;4CA6BR;AAGD;IADC,QAAQ;4CAOR;AAsDL,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -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
|
|
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
|
|
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
|
|
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 {};
|