@ni/nimble-components 18.12.0 → 18.12.2
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 +440 -87
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +1013 -878
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/table/components/cell/template.js +1 -0
- package/dist/esm/table/components/cell/template.js.map +1 -1
- package/dist/esm/table/components/group-row/index.d.ts +14 -1
- package/dist/esm/table/components/group-row/index.js +44 -0
- package/dist/esm/table/components/group-row/index.js.map +1 -1
- package/dist/esm/table/components/group-row/styles.js +16 -4
- package/dist/esm/table/components/group-row/styles.js.map +1 -1
- package/dist/esm/table/components/group-row/template.js +30 -10
- package/dist/esm/table/components/group-row/template.js.map +1 -1
- package/dist/esm/table/components/row/index.d.ts +12 -2
- package/dist/esm/table/components/row/index.js +40 -4
- package/dist/esm/table/components/row/index.js.map +1 -1
- package/dist/esm/table/components/row/styles.js +21 -4
- package/dist/esm/table/components/row/styles.js.map +1 -1
- package/dist/esm/table/components/row/template.js +36 -20
- package/dist/esm/table/components/row/template.js.map +1 -1
- package/dist/esm/table/index.d.ts +27 -4
- package/dist/esm/table/index.js +185 -22
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/table/styles.js +32 -9
- package/dist/esm/table/styles.js.map +1 -1
- package/dist/esm/table/template.js +37 -14
- package/dist/esm/table/template.js.map +1 -1
- package/dist/esm/table/types.d.ts +11 -0
- package/dist/esm/table/types.js +4 -2
- package/dist/esm/table/types.js.map +1 -1
- package/package.json +14 -14
|
@@ -12,6 +12,7 @@ export const template = html `
|
|
|
12
12
|
appearance="${ButtonAppearance.ghost}"
|
|
13
13
|
@beforetoggle="${(x, c) => x.onActionMenuBeforeToggle(c.event)}"
|
|
14
14
|
@toggle="${(x, c) => x.onActionMenuToggle(c.event)}"
|
|
15
|
+
@click="${(_, c) => c.event.stopPropagation()}"
|
|
15
16
|
class="action-menu"
|
|
16
17
|
>
|
|
17
18
|
<${iconThreeDotsLineTag} slot="start"></${iconThreeDotsLineTag}>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,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;;;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,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;0BACpF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE;;;mBAG1C,oBAAoB,mBAAmB,oBAAoB;kBAC5D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;gBAExB,aAAa;SACpB,CAAC;;CAET,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
1
|
+
import { Checkbox, FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import type { TableColumn } from '../../../table-column/base';
|
|
3
|
+
import { TableRowSelectionState } from '../../types';
|
|
3
4
|
declare global {
|
|
4
5
|
interface HTMLElementTagNameMap {
|
|
5
6
|
'nimble-table-group-row': TableGroupRow;
|
|
@@ -15,15 +16,27 @@ export declare class TableGroupRow extends FoundationElement {
|
|
|
15
16
|
leafItemCount?: number;
|
|
16
17
|
groupColumn?: TableColumn;
|
|
17
18
|
expanded: boolean;
|
|
19
|
+
selectable: boolean;
|
|
20
|
+
selectionState: TableRowSelectionState;
|
|
18
21
|
/**
|
|
19
22
|
* @internal
|
|
20
23
|
*/
|
|
21
24
|
readonly expandIcon: HTMLElement;
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
readonly selectionCheckbox?: Checkbox;
|
|
22
29
|
/**
|
|
23
30
|
* @internal
|
|
24
31
|
*/
|
|
25
32
|
animationClass: string;
|
|
33
|
+
private ignoreSelectionChangeEvents;
|
|
26
34
|
onGroupExpandToggle(): void;
|
|
35
|
+
/** @internal */
|
|
36
|
+
onSelectionChange(event: CustomEvent): void;
|
|
37
|
+
private selectionStateChanged;
|
|
38
|
+
private selectionCheckboxChanged;
|
|
39
|
+
private setSelectionCheckboxState;
|
|
27
40
|
private readonly removeAnimatingClass;
|
|
28
41
|
}
|
|
29
42
|
export declare const tableGroupRowTag: string;
|
|
@@ -3,6 +3,7 @@ import { attr, observable } from '@microsoft/fast-element';
|
|
|
3
3
|
import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
|
|
4
4
|
import { styles } from './styles';
|
|
5
5
|
import { template } from './template';
|
|
6
|
+
import { TableRowSelectionState } from '../../types';
|
|
6
7
|
/**
|
|
7
8
|
* A styled cell that is used within the nimble-table-row.
|
|
8
9
|
* @internal
|
|
@@ -12,10 +13,17 @@ export class TableGroupRow extends FoundationElement {
|
|
|
12
13
|
super(...arguments);
|
|
13
14
|
this.nestingLevel = 0;
|
|
14
15
|
this.expanded = false;
|
|
16
|
+
this.selectable = false;
|
|
17
|
+
this.selectionState = TableRowSelectionState.notSelected;
|
|
15
18
|
/**
|
|
16
19
|
* @internal
|
|
17
20
|
*/
|
|
18
21
|
this.animationClass = '';
|
|
22
|
+
// Programmatically updating the selection state of a checkbox fires the 'change' event.
|
|
23
|
+
// Therefore, selection change events that occur due to programmatically updating
|
|
24
|
+
// the selection checkbox 'checked' value should be ingored.
|
|
25
|
+
// https://github.com/microsoft/fast/issues/5750
|
|
26
|
+
this.ignoreSelectionChangeEvents = false;
|
|
19
27
|
this.removeAnimatingClass = () => {
|
|
20
28
|
this.animationClass = '';
|
|
21
29
|
this.expandIcon.removeEventListener('transitionend', this.removeAnimatingClass);
|
|
@@ -32,6 +40,33 @@ export class TableGroupRow extends FoundationElement {
|
|
|
32
40
|
this.animationClass = 'animating';
|
|
33
41
|
this.expandIcon.addEventListener('transitionend', this.removeAnimatingClass);
|
|
34
42
|
}
|
|
43
|
+
/** @internal */
|
|
44
|
+
onSelectionChange(event) {
|
|
45
|
+
if (this.ignoreSelectionChangeEvents) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const checkbox = event.target;
|
|
49
|
+
const detail = {
|
|
50
|
+
oldState: !checkbox.checked,
|
|
51
|
+
newState: checkbox.checked
|
|
52
|
+
};
|
|
53
|
+
this.$emit('group-selection-toggle', detail);
|
|
54
|
+
}
|
|
55
|
+
selectionStateChanged() {
|
|
56
|
+
this.setSelectionCheckboxState();
|
|
57
|
+
}
|
|
58
|
+
selectionCheckboxChanged() {
|
|
59
|
+
this.setSelectionCheckboxState();
|
|
60
|
+
}
|
|
61
|
+
setSelectionCheckboxState() {
|
|
62
|
+
if (this.selectionCheckbox) {
|
|
63
|
+
this.ignoreSelectionChangeEvents = true;
|
|
64
|
+
this.selectionCheckbox.checked = this.selectionState === TableRowSelectionState.selected;
|
|
65
|
+
this.selectionCheckbox.indeterminate = this.selectionState
|
|
66
|
+
=== TableRowSelectionState.partiallySelected;
|
|
67
|
+
this.ignoreSelectionChangeEvents = false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
35
70
|
}
|
|
36
71
|
__decorate([
|
|
37
72
|
observable
|
|
@@ -48,6 +83,15 @@ __decorate([
|
|
|
48
83
|
__decorate([
|
|
49
84
|
attr({ mode: 'boolean' })
|
|
50
85
|
], TableGroupRow.prototype, "expanded", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
attr({ mode: 'boolean' })
|
|
88
|
+
], TableGroupRow.prototype, "selectable", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
attr({ attribute: 'selection-state' })
|
|
91
|
+
], TableGroupRow.prototype, "selectionState", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
observable
|
|
94
|
+
], TableGroupRow.prototype, "selectionCheckbox", void 0);
|
|
51
95
|
__decorate([
|
|
52
96
|
observable
|
|
53
97
|
], TableGroupRow.prototype, "animationClass", void 0);
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/group-row/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,6 @@ export const styles = css `
|
|
|
8
8
|
align-items: center;
|
|
9
9
|
height: calc(${controlHeight} + 2 * ${borderWidth});
|
|
10
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
11
|
}
|
|
16
12
|
|
|
17
13
|
:host(:hover) {
|
|
@@ -24,6 +20,10 @@ export const styles = css `
|
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
.expand-collapse-button {
|
|
23
|
+
margin-left: calc(
|
|
24
|
+
${smallPadding} * 2 + ${standardPadding} * 2 *
|
|
25
|
+
var(--ni-private-table-group-row-indent-level)
|
|
26
|
+
);
|
|
27
27
|
width: ${controlSlimHeight};
|
|
28
28
|
height: ${controlSlimHeight};
|
|
29
29
|
}
|
|
@@ -60,5 +60,17 @@ export const styles = css `
|
|
|
60
60
|
transition-duration: 0s;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
.checkbox-container {
|
|
65
|
+
display: flex;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.selection-checkbox {
|
|
69
|
+
margin-left: ${standardPadding};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.selection-checkbox::part(label) {
|
|
73
|
+
padding-left: 0px;
|
|
74
|
+
}
|
|
63
75
|
`;
|
|
64
76
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +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
|
|
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;;;;sBAIlD,cAAc;;;;;sBAKd,WAAW;;;;;cAKnB,YAAY,UAAU,eAAe;;;iBAGlC,iBAAiB;kBAChB,iBAAiB;;;;;;;;;;;;;;;;;6BAiBN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;uBAwBrB,eAAe;;;;;;CAMrC,CAAC"}
|
|
@@ -1,19 +1,39 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/indent */
|
|
2
|
-
import { html, ref } from '@microsoft/fast-element';
|
|
2
|
+
import { html, ref, when } from '@microsoft/fast-element';
|
|
3
3
|
import { buttonTag } from '../../../button';
|
|
4
4
|
import { ButtonAppearance } from '../../../button/types';
|
|
5
5
|
import { iconArrowExpanderRightTag } from '../../../icons/arrow-expander-right';
|
|
6
|
+
import { checkboxTag } from '../../../checkbox';
|
|
6
7
|
// prettier-ignore
|
|
7
8
|
export const template = html `
|
|
8
|
-
<template
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
<template
|
|
10
|
+
role="row"
|
|
11
|
+
@click=${x => x.onGroupExpandToggle()}
|
|
12
|
+
style="--ni-private-table-group-row-indent-level: ${x => x.nestingLevel};"
|
|
13
|
+
>
|
|
14
|
+
${when(x => x.selectable, html `
|
|
15
|
+
<span role="gridcell" class="checkbox-container">
|
|
16
|
+
<${checkboxTag}
|
|
17
|
+
${ref('selectionCheckbox')}
|
|
18
|
+
class="selection-checkbox"
|
|
19
|
+
@change="${(x, c) => x.onSelectionChange(c.event)}"
|
|
20
|
+
@click="${(_, c) => c.event.stopPropagation()}"
|
|
21
|
+
>
|
|
22
|
+
</${checkboxTag}>
|
|
23
|
+
</span>
|
|
24
|
+
`)}
|
|
25
|
+
|
|
26
|
+
<span role="gridcell">
|
|
27
|
+
<${buttonTag}
|
|
28
|
+
appearance="${ButtonAppearance.ghost}"
|
|
29
|
+
content-hidden
|
|
30
|
+
class="expand-collapse-button"
|
|
31
|
+
tabindex="-1"
|
|
32
|
+
>
|
|
33
|
+
<${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
|
|
34
|
+
</${buttonTag}>
|
|
35
|
+
</span>
|
|
36
|
+
|
|
17
37
|
<div class="group-row-header-content">
|
|
18
38
|
${x => x.groupColumn?.columnInternals.groupHeaderViewTemplate}
|
|
19
39
|
<div class="group-row-child-count">(${x => x.leafItemCount})</span>
|
|
@@ -1 +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;
|
|
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,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAe;;;iBAG1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE;4DACe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;;UAErE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAe;;mBAElC,WAAW;sBACR,GAAG,CAAC,mBAAmB,CAAC;;+BAEf,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAoB,CAAC;8BACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE;;oBAE7C,WAAW;;SAEtB,CAAC;;;eAGK,SAAS;8BACM,gBAAgB,CAAC,KAAK;;;;;mBAKjC,yBAAyB,IAAI,GAAG,CAAC,YAAY,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,OAAO,yBAAyB;gBAC5I,SAAS;;;;cAIX,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,uBAAuB;kDACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;;;CAGrE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
1
|
+
import { Checkbox, FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import type { TableCellState } from '../../../table-column/base/types';
|
|
3
3
|
import type { TableRecord } from '../../types';
|
|
4
4
|
import type { TableColumn } from '../../../table-column/base';
|
|
@@ -24,17 +24,27 @@ export declare class TableRow<TDataRecord extends TableDataRecord = TableDataRec
|
|
|
24
24
|
recordId?: string;
|
|
25
25
|
selectable: boolean;
|
|
26
26
|
selected: boolean;
|
|
27
|
+
hideSelection: boolean;
|
|
27
28
|
dataRecord?: TDataRecord;
|
|
28
29
|
columns: TableColumn[];
|
|
29
30
|
currentActionMenuColumn?: TableColumn;
|
|
30
31
|
nestingLevel: number;
|
|
31
32
|
menuOpen: boolean;
|
|
33
|
+
/** @internal */
|
|
34
|
+
readonly selectionCheckbox?: Checkbox;
|
|
35
|
+
/** @internal */
|
|
36
|
+
readonly cellContainer: HTMLSpanElement;
|
|
37
|
+
private ignoreSelectionChangeEvents;
|
|
32
38
|
get columnStates(): ColumnState[];
|
|
33
39
|
get ariaSelected(): 'true' | 'false' | null;
|
|
40
|
+
onSelectionChange(event: CustomEvent): void;
|
|
34
41
|
onCellActionMenuBeforeToggle(event: CustomEvent<MenuButtonToggleEventDetail>, column: TableColumn): void;
|
|
35
42
|
onCellActionMenuToggle(event: CustomEvent<MenuButtonToggleEventDetail>, column: TableColumn): void;
|
|
36
43
|
closeOpenActionMenus(): void;
|
|
37
|
-
private
|
|
44
|
+
private emitActionMenuToggleEvent;
|
|
38
45
|
private hasValidFieldNames;
|
|
46
|
+
private selectedChanged;
|
|
47
|
+
private selectionCheckboxChanged;
|
|
48
|
+
private setSelectionCheckboxState;
|
|
39
49
|
}
|
|
40
50
|
export declare const tableRowTag: string;
|
|
@@ -13,9 +13,15 @@ export class TableRow extends FoundationElement {
|
|
|
13
13
|
super(...arguments);
|
|
14
14
|
this.selectable = false;
|
|
15
15
|
this.selected = false;
|
|
16
|
+
this.hideSelection = false;
|
|
16
17
|
this.columns = [];
|
|
17
18
|
this.nestingLevel = 0;
|
|
18
19
|
this.menuOpen = false;
|
|
20
|
+
// Programmatically updating the selection state of a checkbox fires the 'change' event.
|
|
21
|
+
// Therefore, selection change events that occur due to programmatically updating
|
|
22
|
+
// the selection checkbox 'checked' value should be ingored.
|
|
23
|
+
// https://github.com/microsoft/fast/issues/5750
|
|
24
|
+
this.ignoreSelectionChangeEvents = false;
|
|
19
25
|
}
|
|
20
26
|
get columnStates() {
|
|
21
27
|
return this.columns.map((column, i) => {
|
|
@@ -49,23 +55,34 @@ export class TableRow extends FoundationElement {
|
|
|
49
55
|
}
|
|
50
56
|
return null;
|
|
51
57
|
}
|
|
58
|
+
onSelectionChange(event) {
|
|
59
|
+
if (this.ignoreSelectionChangeEvents) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const checkbox = event.target;
|
|
63
|
+
const detail = {
|
|
64
|
+
oldState: !checkbox.checked,
|
|
65
|
+
newState: checkbox.checked
|
|
66
|
+
};
|
|
67
|
+
this.$emit('row-selection-toggle', detail);
|
|
68
|
+
}
|
|
52
69
|
onCellActionMenuBeforeToggle(event, column) {
|
|
53
70
|
this.currentActionMenuColumn = column;
|
|
54
|
-
this.
|
|
71
|
+
this.emitActionMenuToggleEvent('row-action-menu-beforetoggle', event.detail, column);
|
|
55
72
|
}
|
|
56
73
|
onCellActionMenuToggle(event, column) {
|
|
57
74
|
this.menuOpen = event.detail.newState;
|
|
58
|
-
this.
|
|
75
|
+
this.emitActionMenuToggleEvent('row-action-menu-toggle', event.detail, column);
|
|
59
76
|
}
|
|
60
77
|
closeOpenActionMenus() {
|
|
61
78
|
if (this.menuOpen) {
|
|
62
|
-
const cellWithMenuOpen = Array.from(this.
|
|
79
|
+
const cellWithMenuOpen = Array.from(this.cellContainer.children).find(c => c instanceof TableCell && c.menuOpen);
|
|
63
80
|
if (cellWithMenuOpen?.actionMenuButton?.open) {
|
|
64
81
|
cellWithMenuOpen.actionMenuButton.toggleButton.control.click();
|
|
65
82
|
}
|
|
66
83
|
}
|
|
67
84
|
}
|
|
68
|
-
|
|
85
|
+
emitActionMenuToggleEvent(eventType, menuButtonEventDetail, column) {
|
|
69
86
|
const detail = {
|
|
70
87
|
newState: menuButtonEventDetail.newState,
|
|
71
88
|
oldState: menuButtonEventDetail.oldState,
|
|
@@ -77,6 +94,19 @@ export class TableRow extends FoundationElement {
|
|
|
77
94
|
hasValidFieldNames(keys) {
|
|
78
95
|
return keys.every(key => key !== undefined);
|
|
79
96
|
}
|
|
97
|
+
selectedChanged() {
|
|
98
|
+
this.setSelectionCheckboxState();
|
|
99
|
+
}
|
|
100
|
+
selectionCheckboxChanged() {
|
|
101
|
+
this.setSelectionCheckboxState();
|
|
102
|
+
}
|
|
103
|
+
setSelectionCheckboxState() {
|
|
104
|
+
if (this.selectionCheckbox) {
|
|
105
|
+
this.ignoreSelectionChangeEvents = true;
|
|
106
|
+
this.selectionCheckbox.checked = this.selected;
|
|
107
|
+
this.ignoreSelectionChangeEvents = false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
80
110
|
}
|
|
81
111
|
__decorate([
|
|
82
112
|
attr({ attribute: 'record-id' })
|
|
@@ -87,6 +117,9 @@ __decorate([
|
|
|
87
117
|
__decorate([
|
|
88
118
|
attr({ mode: 'boolean' })
|
|
89
119
|
], TableRow.prototype, "selected", void 0);
|
|
120
|
+
__decorate([
|
|
121
|
+
attr({ attribute: 'hide-selection', mode: 'boolean' })
|
|
122
|
+
], TableRow.prototype, "hideSelection", void 0);
|
|
90
123
|
__decorate([
|
|
91
124
|
observable
|
|
92
125
|
], TableRow.prototype, "dataRecord", void 0);
|
|
@@ -102,6 +135,9 @@ __decorate([
|
|
|
102
135
|
__decorate([
|
|
103
136
|
attr({ attribute: 'menu-open', mode: 'boolean' })
|
|
104
137
|
], TableRow.prototype, "menuOpen", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
observable
|
|
140
|
+
], TableRow.prototype, "selectionCheckbox", void 0);
|
|
105
141
|
__decorate([
|
|
106
142
|
volatile
|
|
107
143
|
], TableRow.prototype, "columnStates", null);
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/row/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import { css } from '@microsoft/fast-element';
|
|
2
2
|
import { display } from '@microsoft/fast-foundation';
|
|
3
|
-
import { borderWidth, controlHeight, tableRowBorderColor } from '../../../theme-provider/design-tokens';
|
|
3
|
+
import { borderWidth, controlHeight, standardPadding, tableRowBorderColor } from '../../../theme-provider/design-tokens';
|
|
4
4
|
export const styles = css `
|
|
5
|
-
${display('
|
|
5
|
+
${display('flex')}
|
|
6
6
|
|
|
7
7
|
:host {
|
|
8
8
|
height: calc(${controlHeight} + 2 * ${borderWidth});
|
|
9
9
|
border-top: calc(2 * ${borderWidth}) solid ${tableRowBorderColor};
|
|
10
|
+
width: fit-content;
|
|
11
|
+
min-width: 100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.checkbox-container {
|
|
15
|
+
display: flex;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.selection-checkbox {
|
|
19
|
+
margin-left: ${standardPadding};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.selection-checkbox::part(label) {
|
|
23
|
+
padding-left: 0px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.cell-container {
|
|
27
|
+
display: grid;
|
|
28
|
+
width: 100%;
|
|
10
29
|
grid-auto-flow: column;
|
|
11
30
|
grid-auto-columns: 1fr;
|
|
12
31
|
grid-template-columns: var(--ni-private-table-row-grid-columns) auto;
|
|
13
|
-
width: fit-content;
|
|
14
|
-
min-width: 100%;
|
|
15
32
|
}
|
|
16
33
|
|
|
17
34
|
nimble-table-cell {
|
|
@@ -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,eAAe,EACf,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;;;;;;;;;;uBAUjD,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BrC,CAAC"}
|
|
@@ -1,30 +1,46 @@
|
|
|
1
|
-
import { html, repeat, when } from '@microsoft/fast-element';
|
|
1
|
+
import { html, ref, repeat, when } from '@microsoft/fast-element';
|
|
2
2
|
import { tableCellTag } from '../cell';
|
|
3
|
+
import { checkboxTag } from '../../../checkbox';
|
|
3
4
|
// prettier-ignore
|
|
4
5
|
export const template = html `
|
|
5
6
|
<template role="row" aria-selected=${x => x.ariaSelected}>
|
|
6
|
-
${
|
|
7
|
-
|
|
8
|
-
<${
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@cell-action-menu-beforetoggle="${(x, c) => c.parent.onCellActionMenuBeforeToggle(c.event, x.column)}"
|
|
15
|
-
@cell-action-menu-toggle="${(x, c) => c.parent.onCellActionMenuToggle(c.event, x.column)}"
|
|
16
|
-
:nestingLevel="${x => x.cellIndentLevel};"
|
|
7
|
+
${when(x => x.selectable && !x.hideSelection, html `
|
|
8
|
+
<span role="gridcell" class="checkbox-container">
|
|
9
|
+
<${checkboxTag}
|
|
10
|
+
${ref('selectionCheckbox')}
|
|
11
|
+
role="cell"
|
|
12
|
+
class="selection-checkbox"
|
|
13
|
+
@change="${(x, c) => x.onSelectionChange(c.event)}"
|
|
14
|
+
@click="${(_, c) => c.event.stopPropagation()}"
|
|
17
15
|
>
|
|
16
|
+
</${checkboxTag}>
|
|
17
|
+
</span>
|
|
18
|
+
`)}
|
|
19
|
+
|
|
20
|
+
<span ${ref('cellContainer')} class="cell-container">
|
|
21
|
+
${repeat(x => x.columnStates, html `
|
|
22
|
+
${when(x => !x.column.columnHidden, html `
|
|
23
|
+
<${tableCellTag}
|
|
24
|
+
class="cell"
|
|
25
|
+
:cellState="${x => x.cellState}"
|
|
26
|
+
:cellViewTemplate="${x => x.column.columnInternals.cellViewTemplate}"
|
|
27
|
+
?has-action-menu="${x => !!x.column.actionMenuSlot}"
|
|
28
|
+
action-menu-label="${x => x.column.actionMenuLabel}"
|
|
29
|
+
@cell-action-menu-beforetoggle="${(x, c) => c.parent.onCellActionMenuBeforeToggle(c.event, x.column)}"
|
|
30
|
+
@cell-action-menu-toggle="${(x, c) => c.parent.onCellActionMenuToggle(c.event, x.column)}"
|
|
31
|
+
:nestingLevel="${x => x.cellIndentLevel};"
|
|
32
|
+
>
|
|
18
33
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
${when((x, c) => (c.parent.currentActionMenuColumn === x.column) && x.column.actionMenuSlot, html `
|
|
35
|
+
<slot
|
|
36
|
+
name="${x => `row-action-menu-${x.column.actionMenuSlot}`}"
|
|
37
|
+
slot="cellActionMenu"
|
|
38
|
+
></slot>
|
|
39
|
+
`)}
|
|
40
|
+
</${tableCellTag}>
|
|
41
|
+
`)}
|
|
26
42
|
`)}
|
|
27
|
-
|
|
43
|
+
</span>
|
|
28
44
|
</template>
|
|
29
45
|
`;
|
|
30
46
|
//# sourceMappingURL=template.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/row/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAU;yCACG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;UAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAU;;mBAEjD,WAAW;sBACR,GAAG,CAAC,mBAAmB,CAAC;;;+BAGf,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAoB,CAAC;8BACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE;;oBAE7C,WAAW;;SAEtB,CAAC;;gBAEM,GAAG,CAAC,eAAe,CAAC;cACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAuB;kBACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAuB;uBACxD,YAAY;;sCAEG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;6CACT,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB;4CAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;6CAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe;0DAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;oDACpH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAiD,EAAE,CAAC,CAAC,MAAM,CAAC;yCACnH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;;;0BAGrC,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;;wCAEtH,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,cAAe,EAAE;;;yBAGjE,CAAC;wBACF,YAAY;iBACnB,CAAC;aACL,CAAC;;;CAGb,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
1
|
+
import { Checkbox, FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import { TableColumn } from '../table-column/base';
|
|
3
|
-
import { TableActionMenuToggleEventDetail, TableRecord, TableRowSelectionMode, TableRowSelectionState, TableValidity } from './types';
|
|
3
|
+
import { TableActionMenuToggleEventDetail, TableRecord, TableRowSelectionMode, TableRowSelectionState, TableRowSelectionToggleEventDetail, TableValidity } from './types';
|
|
4
4
|
import { Virtualizer } from './models/virtualizer';
|
|
5
5
|
import type { TableRow } from './components/row';
|
|
6
6
|
declare global {
|
|
@@ -61,11 +61,19 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
61
61
|
* @internal
|
|
62
62
|
*/
|
|
63
63
|
rowGridColumns?: string;
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
selectionState: TableRowSelectionState;
|
|
64
68
|
get validity(): TableValidity;
|
|
65
69
|
/**
|
|
66
70
|
* @internal
|
|
67
71
|
*/
|
|
68
72
|
readonly viewport: HTMLElement;
|
|
73
|
+
/**
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
readonly selectionCheckbox?: Checkbox;
|
|
69
77
|
/**
|
|
70
78
|
* @internal
|
|
71
79
|
*/
|
|
@@ -85,6 +93,7 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
85
93
|
private columnNotifiers;
|
|
86
94
|
private isInitialized;
|
|
87
95
|
private readonly collapsedRows;
|
|
96
|
+
private ignoreSelectionChangeEvents;
|
|
88
97
|
constructor();
|
|
89
98
|
setData(newData: readonly TData[]): Promise<void>;
|
|
90
99
|
getSelectedRecordIds(): Promise<string[]>;
|
|
@@ -101,16 +110,22 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
101
110
|
*/
|
|
102
111
|
handleChange(source: unknown, args: unknown): void;
|
|
103
112
|
/** @internal */
|
|
113
|
+
onRowSelectionToggle(rowIndex: number, event: CustomEvent<TableRowSelectionToggleEventDetail>): Promise<void>;
|
|
114
|
+
/** @internal */
|
|
104
115
|
onRowClick(rowIndex: number): Promise<void>;
|
|
105
116
|
/** @internal */
|
|
106
|
-
|
|
117
|
+
onAllRowsSelectionChange(event: CustomEvent): Promise<void>;
|
|
118
|
+
/** @internal */
|
|
119
|
+
onRowActionMenuBeforeToggle(rowIndex: number, event: CustomEvent<TableActionMenuToggleEventDetail>): Promise<void>;
|
|
120
|
+
/** @internal */
|
|
121
|
+
onRowActionMenuToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): Promise<void>;
|
|
107
122
|
/** @internal */
|
|
108
|
-
onRowActionMenuToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
|
|
109
123
|
handleGroupRowExpanded(rowIndex: number, event: Event): void;
|
|
110
124
|
/**
|
|
111
125
|
* @internal
|
|
112
126
|
*/
|
|
113
127
|
update(): void;
|
|
128
|
+
get ariaMultiSelectable(): 'true' | 'false' | null;
|
|
114
129
|
protected selectionModeChanged(_prev: string | undefined, _next: string | undefined): void;
|
|
115
130
|
protected idFieldNameChanged(_prev: string | undefined, _next: string | undefined): void;
|
|
116
131
|
protected columnsChanged(_prev: TableColumn[] | undefined, _next: TableColumn[]): void;
|
|
@@ -129,9 +144,17 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
129
144
|
private validate;
|
|
130
145
|
private validateWithData;
|
|
131
146
|
private emitSelectionChangeEvent;
|
|
147
|
+
private selectionStateChanged;
|
|
148
|
+
private selectionCheckboxChanged;
|
|
149
|
+
private setSelectionCheckboxState;
|
|
132
150
|
private refreshRows;
|
|
151
|
+
private getTableSelectionState;
|
|
152
|
+
private getRowSelectionState;
|
|
153
|
+
private getGroupedRowSelectionState;
|
|
133
154
|
private getGroupRowColumn;
|
|
134
155
|
private updateTableOptions;
|
|
156
|
+
private selectSingleRow;
|
|
157
|
+
private deselectAllLeafRows;
|
|
135
158
|
private readonly getIsRowExpanded;
|
|
136
159
|
private readonly handleRowSelectionChange;
|
|
137
160
|
private readonly handleExpandedChange;
|