@ni/nimble-components 18.5.7 → 18.5.8
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 +290 -35
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +883 -843
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/table/components/cell/index.d.ts +1 -1
- package/dist/esm/table/components/cell/index.js.map +1 -1
- package/dist/esm/table/components/cell/template.d.ts +1 -1
- package/dist/esm/table/components/header/index.d.ts +6 -0
- package/dist/esm/table/components/header/index.js +32 -0
- package/dist/esm/table/components/header/index.js.map +1 -1
- package/dist/esm/table/components/header/styles.js +5 -0
- package/dist/esm/table/components/header/styles.js.map +1 -1
- package/dist/esm/table/components/header/template.js +15 -2
- package/dist/esm/table/components/header/template.js.map +1 -1
- package/dist/esm/table/components/row/index.d.ts +5 -1
- package/dist/esm/table/components/row/index.js.map +1 -1
- package/dist/esm/table/components/row/template.d.ts +1 -1
- package/dist/esm/table/index.d.ts +13 -2
- package/dist/esm/table/index.js +62 -30
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/table/models/sort-operations.d.ts +7 -0
- package/dist/esm/table/models/sort-operations.js +36 -0
- package/dist/esm/table/models/sort-operations.js.map +1 -0
- package/dist/esm/table/models/table-validator.d.ts +2 -0
- package/dist/esm/table/models/table-validator.js +14 -1
- package/dist/esm/table/models/table-validator.js.map +1 -1
- package/dist/esm/table/template.js +6 -1
- package/dist/esm/table/template.js.map +1 -1
- package/dist/esm/table/types.d.ts +10 -17
- package/dist/esm/table/types.js +8 -1
- package/dist/esm/table/types.js.map +1 -1
- package/dist/esm/table-column/base/index.d.ts +23 -1
- package/dist/esm/table-column/base/index.js +25 -3
- package/dist/esm/table-column/base/index.js.map +1 -1
- package/dist/esm/table-column/base/types.d.ts +26 -0
- package/dist/esm/table-column/base/types.js +15 -0
- package/dist/esm/table-column/base/types.js.map +1 -0
- package/dist/esm/table-column/text/index.d.ts +7 -1
- package/dist/esm/table-column/text/index.js +4 -1
- package/dist/esm/table-column/text/index.js.map +1 -1
- package/dist/esm/table-column/text/template.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/table/models/table-validator.spec.d.ts +0 -1
- package/dist/esm/table/models/table-validator.spec.js +0 -276
- package/dist/esm/table/models/table-validator.spec.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ElementStyles, ViewTemplate } from '@microsoft/fast-element';
|
|
2
2
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
3
3
|
import type { MenuButtonToggleEventDetail } from '../../../menu-button/types';
|
|
4
|
-
import type { TableCellRecord, TableCellState } from '
|
|
4
|
+
import type { TableCellRecord, TableCellState } from '../../../table-column/base/types';
|
|
5
5
|
declare global {
|
|
6
6
|
interface HTMLElementTagNameMap {
|
|
7
7
|
'nimble-table-cell': TableCell;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,IAAI,EACJ,uBAAuB,EAGvB,UAAU,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/cell/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,IAAI,EACJ,uBAAuB,EAGvB,UAAU,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAM7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,SAEX,SAAQ,iBAAiB;IAF3B;;QAaW,kBAAa,GAAG,KAAK,CAAC;QAGtB,aAAQ,GAAG,KAAK,CAAC;QAUhB,mBAAc,GAAc,SAAS,CAAC;IAyDlD,CAAC;IAvDmB,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,oBAAoB,CAC5B,CAAC;IACN,CAAC;IAEe,oBAAoB;QAChC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACnC;IACL,CAAC;IAEM,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;IAES,gBAAgB;QACtB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAES,mBAAmB;QACzB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,oBAAoB,CAC5B,CAAC;SACL;IACL,CAAC;IAES,iBAAiB,CACvB,IAAoB,EACpB,IAAoB;QAEpB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC3C;QAED,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AA/EG;IADC,UAAU;4CACoC;AAG/C;IADC,UAAU;+CACwB;AAGnC;IADC,UAAU;6CACuB;AAGlC;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;AAkEpC,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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableCell } from '.';
|
|
2
|
-
export declare const template: import("@microsoft/fast-element").ViewTemplate<TableCell<import("
|
|
2
|
+
export declare const template: import("@microsoft/fast-element").ViewTemplate<TableCell<import("../../../table-column/base/types").TableCellRecord>, any>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
2
|
+
import { TableColumnSortDirection } from '../../types';
|
|
2
3
|
declare global {
|
|
3
4
|
interface HTMLElementTagNameMap {
|
|
4
5
|
'nimble-table-header': TableHeader;
|
|
@@ -9,4 +10,9 @@ declare global {
|
|
|
9
10
|
* @internal
|
|
10
11
|
*/
|
|
11
12
|
export declare class TableHeader extends FoundationElement {
|
|
13
|
+
sortDirection: TableColumnSortDirection;
|
|
14
|
+
firstSortedColumn: boolean;
|
|
15
|
+
protected sortDirectionChanged(_prev: TableColumnSortDirection | undefined, _next: TableColumnSortDirection): void;
|
|
16
|
+
protected firstSortedColumnChanged(_prev: boolean | undefined, _next: boolean): void;
|
|
17
|
+
private updateAriaSort;
|
|
12
18
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr } from '@microsoft/fast-element';
|
|
1
3
|
import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
|
|
4
|
+
import { TableColumnSortDirection } from '../../types';
|
|
2
5
|
import { styles } from './styles';
|
|
3
6
|
import { template } from './template';
|
|
4
7
|
/**
|
|
@@ -6,7 +9,36 @@ import { template } from './template';
|
|
|
6
9
|
* @internal
|
|
7
10
|
*/
|
|
8
11
|
export class TableHeader extends FoundationElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.sortDirection = TableColumnSortDirection.none;
|
|
15
|
+
this.firstSortedColumn = false;
|
|
16
|
+
}
|
|
17
|
+
sortDirectionChanged(_prev, _next) {
|
|
18
|
+
this.updateAriaSort();
|
|
19
|
+
}
|
|
20
|
+
firstSortedColumnChanged(_prev, _next) {
|
|
21
|
+
this.updateAriaSort();
|
|
22
|
+
}
|
|
23
|
+
updateAriaSort() {
|
|
24
|
+
if (!this.firstSortedColumn
|
|
25
|
+
|| this.sortDirection === TableColumnSortDirection.none) {
|
|
26
|
+
this.ariaSort = null;
|
|
27
|
+
}
|
|
28
|
+
else if (this.sortDirection === TableColumnSortDirection.ascending) {
|
|
29
|
+
this.ariaSort = 'ascending';
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.ariaSort = 'descending';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
9
35
|
}
|
|
36
|
+
__decorate([
|
|
37
|
+
attr({ attribute: 'sort-direction' })
|
|
38
|
+
], TableHeader.prototype, "sortDirection", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
attr({ attribute: 'first-sorted-column', mode: 'boolean' })
|
|
41
|
+
], TableHeader.prototype, "firstSortedColumn", void 0);
|
|
10
42
|
const nimbleTableHeader = TableHeader.compose({
|
|
11
43
|
baseName: 'table-header',
|
|
12
44
|
template,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/header/index.ts"],"names":[],"mappings":"AAAA,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;AAQtC;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/header/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAAlD;;QAEW,kBAAa,GAA6B,wBAAwB,CAAC,IAAI,CAAC;QAGxE,sBAAiB,GAAG,KAAK,CAAC;IA4BrC,CAAC;IA1Ba,oBAAoB,CAC1B,KAA2C,EAC3C,KAA+B;QAE/B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAES,wBAAwB,CAC9B,KAA0B,EAC1B,KAAc;QAEd,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,IACI,CAAC,IAAI,CAAC,iBAAiB;eACpB,IAAI,CAAC,aAAa,KAAK,wBAAwB,CAAC,IAAI,EACzD;YACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,wBAAwB,CAAC,SAAS,EAAE;YAClE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;SAC/B;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;SAChC;IACL,CAAC;CACJ;AA/BG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;kDACyC;AAG/E;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;sDAC3B;AA8BrC,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC;IAC1C,QAAQ,EAAE,cAAc;IACxB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC"}
|
|
@@ -13,5 +13,10 @@ export const styles = css `
|
|
|
13
13
|
${iconColor.cssCustomProperty}: ${tableHeaderFontColor};
|
|
14
14
|
text-transform: uppercase;
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
.sort-indicator {
|
|
18
|
+
padding: 0px calc(${standardPadding} / 2);
|
|
19
|
+
width: ${standardPadding};
|
|
20
|
+
}
|
|
16
21
|
`;
|
|
17
22
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/header/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACvB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;kBAGH,aAAa;;4BAEH,eAAe;gBAC3B,eAAe;iBACd,oBAAoB;UAC3B,SAAS,CAAC,iBAAiB,KAAK,oBAAoB
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table/components/header/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACvB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;kBAGH,aAAa;;4BAEH,eAAe;gBAC3B,eAAe;iBACd,oBAAoB;UAC3B,SAAS,CAAC,iBAAiB,KAAK,oBAAoB;;;;;4BAKlC,eAAe;iBAC1B,eAAe;;CAE/B,CAAC"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import { html } from '@microsoft/fast-element';
|
|
1
|
+
import { html, when } from '@microsoft/fast-element';
|
|
2
|
+
import { DesignSystem } from '@microsoft/fast-foundation';
|
|
3
|
+
import { IconArrowDown } from '../../../icons/arrow-down';
|
|
4
|
+
import { IconArrowUp } from '../../../icons/arrow-up';
|
|
5
|
+
import { TableColumnSortDirection } from '../../types';
|
|
2
6
|
// prettier-ignore
|
|
3
7
|
export const template = html `
|
|
4
|
-
<template role="columnheader">
|
|
8
|
+
<template role="columnheader" aria-sort="${x => x.ariaSort}">
|
|
5
9
|
<slot></slot>
|
|
10
|
+
|
|
11
|
+
<span class="sort-indicator" aria-hidden="true">
|
|
12
|
+
${when(x => x.sortDirection === TableColumnSortDirection.ascending, html `
|
|
13
|
+
<${DesignSystem.tagFor(IconArrowUp)}></${DesignSystem.tagFor(IconArrowUp)}>
|
|
14
|
+
`)}
|
|
15
|
+
${when(x => x.sortDirection === TableColumnSortDirection.descending, html `
|
|
16
|
+
<${DesignSystem.tagFor(IconArrowDown)}></${DesignSystem.tagFor(IconArrowDown)}>
|
|
17
|
+
`)}
|
|
18
|
+
</span>
|
|
6
19
|
</template>
|
|
7
20
|
`;
|
|
8
21
|
//# sourceMappingURL=template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/header/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table/components/header/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAa;+CACM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;;;cAIhD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAA;mBACjE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;aAC5E,CAAC;cACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAA;mBAClE,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC;aAChF,CAAC;;;CAGb,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
2
|
-
import type { TableCellState
|
|
2
|
+
import type { TableCellState } from '../../../table-column/base/types';
|
|
3
|
+
import type { TableRecord } from '../../types';
|
|
3
4
|
import type { TableColumn } from '../../../table-column/base';
|
|
4
5
|
import type { MenuButtonToggleEventDetail } from '../../../menu-button/types';
|
|
5
6
|
declare global {
|
|
@@ -11,6 +12,9 @@ export interface ColumnState {
|
|
|
11
12
|
column: TableColumn;
|
|
12
13
|
cellState: TableCellState;
|
|
13
14
|
}
|
|
15
|
+
/** Represents a single row (element) in the Table's data */
|
|
16
|
+
export interface TableDataRecord extends TableRecord {
|
|
17
|
+
}
|
|
14
18
|
/**
|
|
15
19
|
* A styled row that is used within the nimble-table.
|
|
16
20
|
* @internal
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table/components/row/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableRow } from '.';
|
|
2
|
-
export declare const template: import("@microsoft/fast-element").ViewTemplate<TableRow<import("
|
|
2
|
+
export declare const template: import("@microsoft/fast-element").ViewTemplate<TableRow<import(".").TableDataRecord>, any>;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import { TableColumn } from '../table-column/base';
|
|
3
|
-
import
|
|
3
|
+
import { TableActionMenuToggleEventDetail, TableRecord, TableValidity } from './types';
|
|
4
4
|
import { Virtualizer } from './models/virtualizer';
|
|
5
5
|
declare global {
|
|
6
6
|
interface HTMLElementTagNameMap {
|
|
7
7
|
'nimble-table': Table;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
+
interface TableRowState<TData extends TableRecord = TableRecord> {
|
|
11
|
+
record: TData;
|
|
12
|
+
id: string;
|
|
13
|
+
}
|
|
10
14
|
/**
|
|
11
15
|
* A nimble-styled table.
|
|
12
16
|
*/
|
|
@@ -45,6 +49,10 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
45
49
|
* @internal
|
|
46
50
|
*/
|
|
47
51
|
readonly virtualizer: Virtualizer<TData>;
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
firstSortedColumn?: TableColumn;
|
|
48
56
|
private readonly table;
|
|
49
57
|
private options;
|
|
50
58
|
private readonly tableValidator;
|
|
@@ -70,10 +78,13 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
|
|
|
70
78
|
private removeColumnObservers;
|
|
71
79
|
private validateAndObserveColumns;
|
|
72
80
|
private validateColumnIds;
|
|
81
|
+
private validateColumnSortIndices;
|
|
82
|
+
private getColumnsParticipatingInSorting;
|
|
73
83
|
private updateColumnsFromChildItems;
|
|
74
84
|
private setTableData;
|
|
75
85
|
private refreshRows;
|
|
76
86
|
private updateTableOptions;
|
|
77
|
-
private
|
|
87
|
+
private setSortState;
|
|
78
88
|
private generateTanStackColumns;
|
|
79
89
|
}
|
|
90
|
+
export {};
|
package/dist/esm/table/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { attr, Observable, observable } from '@microsoft/fast-element';
|
|
3
3
|
import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
|
|
4
|
-
import { createTable as tanStackCreateTable, getCoreRowModel as tanStackGetCoreRowModel } from '@tanstack/table-core';
|
|
4
|
+
import { createTable as tanStackCreateTable, getCoreRowModel as tanStackGetCoreRowModel, getSortedRowModel as tanStackGetSortedRowModel } from '@tanstack/table-core';
|
|
5
5
|
import { TableColumn } from '../table-column/base';
|
|
6
6
|
import { TableValidator } from './models/table-validator';
|
|
7
7
|
import { styles } from './styles';
|
|
8
8
|
import { template } from './template';
|
|
9
|
+
import { TableColumnSortDirection } from './types';
|
|
9
10
|
import { Virtualizer } from './models/virtualizer';
|
|
11
|
+
import { getTanStackSortingFunction } from './models/sort-operations';
|
|
10
12
|
/**
|
|
11
13
|
* A nimble-styled table.
|
|
12
14
|
*/
|
|
@@ -35,25 +37,14 @@ export class Table extends FoundationElement {
|
|
|
35
37
|
this.canRenderRows = true;
|
|
36
38
|
this.tableValidator = new TableValidator();
|
|
37
39
|
this.columnNotifiers = [];
|
|
38
|
-
this.update = (state) => {
|
|
39
|
-
this.table.setOptions(prev => ({
|
|
40
|
-
...prev,
|
|
41
|
-
...this.options,
|
|
42
|
-
state,
|
|
43
|
-
onStateChange: (updater) => {
|
|
44
|
-
const updatedState = typeof updater === 'function'
|
|
45
|
-
? updater(state)
|
|
46
|
-
: updater;
|
|
47
|
-
this.update(updatedState);
|
|
48
|
-
}
|
|
49
|
-
}));
|
|
50
|
-
};
|
|
51
40
|
this.options = {
|
|
52
41
|
data: [],
|
|
53
42
|
onStateChange: (_) => { },
|
|
54
43
|
getCoreRowModel: tanStackGetCoreRowModel(),
|
|
44
|
+
getSortedRowModel: tanStackGetSortedRowModel(),
|
|
55
45
|
columns: [],
|
|
56
46
|
state: {},
|
|
47
|
+
enableSorting: true,
|
|
57
48
|
renderFallbackValue: null,
|
|
58
49
|
autoResetAll: false
|
|
59
50
|
};
|
|
@@ -64,7 +55,6 @@ export class Table extends FoundationElement {
|
|
|
64
55
|
return this.tableValidator.getValidity();
|
|
65
56
|
}
|
|
66
57
|
setData(newData) {
|
|
67
|
-
this.generateTanStackColumns(newData);
|
|
68
58
|
this.setTableData(newData);
|
|
69
59
|
}
|
|
70
60
|
connectedCallback() {
|
|
@@ -92,6 +82,14 @@ export class Table extends FoundationElement {
|
|
|
92
82
|
if (args === 'columnId') {
|
|
93
83
|
this.validateColumnIds();
|
|
94
84
|
}
|
|
85
|
+
else if (args === 'operandDataRecordFieldName'
|
|
86
|
+
|| args === 'sortOperation') {
|
|
87
|
+
this.generateTanStackColumns();
|
|
88
|
+
}
|
|
89
|
+
else if (args === 'sortIndex' || args === 'sortDirection') {
|
|
90
|
+
this.validateColumnSortIndices();
|
|
91
|
+
this.setSortState();
|
|
92
|
+
}
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
onRowActionMenuBeforeToggle(event) {
|
|
@@ -114,6 +112,8 @@ export class Table extends FoundationElement {
|
|
|
114
112
|
return;
|
|
115
113
|
}
|
|
116
114
|
this.validateAndObserveColumns();
|
|
115
|
+
this.generateTanStackColumns();
|
|
116
|
+
this.setSortState();
|
|
117
117
|
const slots = new Set();
|
|
118
118
|
for (const column of this.columns) {
|
|
119
119
|
if (column.actionMenuSlot) {
|
|
@@ -136,11 +136,20 @@ export class Table extends FoundationElement {
|
|
|
136
136
|
this.columnNotifiers.push(notifier);
|
|
137
137
|
}
|
|
138
138
|
this.validateColumnIds();
|
|
139
|
+
this.validateColumnSortIndices();
|
|
139
140
|
}
|
|
140
141
|
validateColumnIds() {
|
|
141
142
|
this.tableValidator.validateColumnIds(this.columns.map(x => x.columnId));
|
|
142
143
|
this.canRenderRows = this.checkValidity();
|
|
143
144
|
}
|
|
145
|
+
validateColumnSortIndices() {
|
|
146
|
+
this.tableValidator.validateColumnSortIndices(this.getColumnsParticipatingInSorting().map(x => x.sortIndex));
|
|
147
|
+
this.canRenderRows = this.checkValidity();
|
|
148
|
+
}
|
|
149
|
+
getColumnsParticipatingInSorting() {
|
|
150
|
+
return this.columns.filter(x => x.sortDirection !== TableColumnSortDirection.none
|
|
151
|
+
&& typeof x.sortIndex === 'number');
|
|
152
|
+
}
|
|
144
153
|
async updateColumnsFromChildItems() {
|
|
145
154
|
const definedElements = this.childItems.map(async (item) => (item.matches(':not(:defined)')
|
|
146
155
|
? customElements.whenDefined(item.localName)
|
|
@@ -174,27 +183,47 @@ export class Table extends FoundationElement {
|
|
|
174
183
|
this.virtualizer.dataChanged();
|
|
175
184
|
}
|
|
176
185
|
updateTableOptions(updatedOptions) {
|
|
177
|
-
this.options = {
|
|
178
|
-
|
|
186
|
+
this.options = {
|
|
187
|
+
...this.options,
|
|
188
|
+
...updatedOptions,
|
|
189
|
+
state: { ...this.options.state, ...updatedOptions.state }
|
|
190
|
+
};
|
|
191
|
+
this.table.setOptions(this.options);
|
|
179
192
|
this.refreshRows();
|
|
180
193
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
194
|
+
setSortState() {
|
|
195
|
+
const sortedColumns = this.getColumnsParticipatingInSorting().sort((x, y) => x.sortIndex - y.sortIndex);
|
|
196
|
+
this.firstSortedColumn = sortedColumns.length
|
|
197
|
+
? sortedColumns[0]
|
|
198
|
+
: undefined;
|
|
199
|
+
const tanStackSortingState = sortedColumns.map(column => {
|
|
200
|
+
return {
|
|
201
|
+
id: column.internalUniqueId,
|
|
202
|
+
desc: column.sortDirection
|
|
203
|
+
=== TableColumnSortDirection.descending
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
this.updateTableOptions({
|
|
207
|
+
state: {
|
|
208
|
+
sorting: tanStackSortingState
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
generateTanStackColumns() {
|
|
213
|
+
const generatedColumns = this.columns.map(column => {
|
|
190
214
|
const columnDef = {
|
|
191
|
-
id:
|
|
192
|
-
accessorKey:
|
|
193
|
-
|
|
215
|
+
id: column.internalUniqueId,
|
|
216
|
+
accessorKey: column.operandDataRecordFieldName,
|
|
217
|
+
sortingFn: getTanStackSortingFunction(column.sortOperation)
|
|
194
218
|
};
|
|
195
219
|
return columnDef;
|
|
196
220
|
});
|
|
197
|
-
this.updateTableOptions({
|
|
221
|
+
this.updateTableOptions({
|
|
222
|
+
// Force TanStack to detect a data update because a columns's accessor is
|
|
223
|
+
// referenced when creating a new row model.
|
|
224
|
+
data: [...this.table.options.data],
|
|
225
|
+
columns: generatedColumns
|
|
226
|
+
});
|
|
198
227
|
}
|
|
199
228
|
}
|
|
200
229
|
__decorate([
|
|
@@ -218,6 +247,9 @@ __decorate([
|
|
|
218
247
|
__decorate([
|
|
219
248
|
observable
|
|
220
249
|
], Table.prototype, "canRenderRows", void 0);
|
|
250
|
+
__decorate([
|
|
251
|
+
observable
|
|
252
|
+
], Table.prototype, "firstSortedColumn", void 0);
|
|
221
253
|
const nimbleTable = Table.compose({
|
|
222
254
|
baseName: 'table',
|
|
223
255
|
template,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,IAAI,EACJ,UAAU,EACV,UAAU,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAKH,WAAW,IAAI,mBAAmB,EAClC,eAAe,IAAI,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SortingFnOption as TanStackSortingFnOption } from '@tanstack/table-core';
|
|
2
|
+
import { TableColumnSortOperation } from '../../table-column/base/types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the sorting function for TanStack to use based on the specified
|
|
5
|
+
* TableColumnSortOperation
|
|
6
|
+
*/
|
|
7
|
+
export declare function getTanStackSortingFunction<TData>(sortOperation: TableColumnSortOperation): TanStackSortingFnOption<TData>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { sortingFns as TanStackSortingFns } from '@tanstack/table-core';
|
|
2
|
+
import { TableColumnSortOperation } from '../../table-column/base/types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the sorting function for TanStack to use based on the specified
|
|
5
|
+
* TableColumnSortOperation
|
|
6
|
+
*/
|
|
7
|
+
export function getTanStackSortingFunction(sortOperation) {
|
|
8
|
+
switch (sortOperation) {
|
|
9
|
+
case TableColumnSortOperation.basic:
|
|
10
|
+
return TanStackSortingFns.basic;
|
|
11
|
+
case TableColumnSortOperation.localeAwareCaseSensitive:
|
|
12
|
+
return localeAwareCaseSensitiveSortFunction;
|
|
13
|
+
default:
|
|
14
|
+
return TanStackSortingFns.basic;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A function to perform locale-aware and case-senstitive sorting of two rows from
|
|
19
|
+
* TanStack for a given column. The function sorts `undefined` followed by `null`
|
|
20
|
+
* before all defined strings.
|
|
21
|
+
*/
|
|
22
|
+
function localeAwareCaseSensitiveSortFunction(rowA, rowB, columnId) {
|
|
23
|
+
const valueA = rowA.getValue(columnId);
|
|
24
|
+
const valueB = rowB.getValue(columnId);
|
|
25
|
+
if (typeof valueA === 'string' && typeof valueB === 'string') {
|
|
26
|
+
return valueA.localeCompare(valueB);
|
|
27
|
+
}
|
|
28
|
+
if (valueA === valueB) {
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
if (valueA === undefined || (valueA === null && valueB !== undefined)) {
|
|
32
|
+
return -1;
|
|
33
|
+
}
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=sort-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-operations.js","sourceRoot":"","sources":["../../../../src/table/models/sort-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,IAAI,kBAAkB,EAEnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACtC,aAAuC;IAEvC,QAAQ,aAAa,EAAE;QACnB,KAAK,wBAAwB,CAAC,KAAK;YAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC;QACpC,KAAK,wBAAwB,CAAC,wBAAwB;YAClD,OAAO,oCAAoC,CAAC;QAChD;YACI,OAAO,kBAAkB,CAAC,KAAK,CAAC;KACvC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,oCAAoC,CACzC,IAAwB,EACxB,IAAwB,EACxB,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAA4B,QAAQ,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAA4B,QAAQ,CAAC,CAAC;IAElE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KACvC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE;QACnB,OAAO,CAAC,CAAC;KACZ;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,EAAE;QACnE,OAAO,CAAC,CAAC,CAAC;KACb;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -9,8 +9,10 @@ export declare class TableValidator<TData extends TableRecord> {
|
|
|
9
9
|
private invalidRecordId;
|
|
10
10
|
private duplicateColumnId;
|
|
11
11
|
private missingColumnId;
|
|
12
|
+
private duplicateSortIndex;
|
|
12
13
|
getValidity(): TableValidity;
|
|
13
14
|
isValid(): boolean;
|
|
14
15
|
validateRecordIds(data: TData[], idFieldName: string | undefined): boolean;
|
|
15
16
|
validateColumnIds(columnIds: (string | undefined)[]): boolean;
|
|
17
|
+
validateColumnSortIndices(sortIndices: number[]): boolean;
|
|
16
18
|
}
|
|
@@ -9,6 +9,7 @@ export class TableValidator {
|
|
|
9
9
|
this.invalidRecordId = false;
|
|
10
10
|
this.duplicateColumnId = false;
|
|
11
11
|
this.missingColumnId = false;
|
|
12
|
+
this.duplicateSortIndex = false;
|
|
12
13
|
}
|
|
13
14
|
getValidity() {
|
|
14
15
|
return {
|
|
@@ -16,7 +17,8 @@ export class TableValidator {
|
|
|
16
17
|
missingRecordId: this.missingRecordId,
|
|
17
18
|
invalidRecordId: this.invalidRecordId,
|
|
18
19
|
duplicateColumnId: this.duplicateColumnId,
|
|
19
|
-
missingColumnId: this.missingColumnId
|
|
20
|
+
missingColumnId: this.missingColumnId,
|
|
21
|
+
duplicateSortIndex: this.duplicateSortIndex
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
isValid() {
|
|
@@ -70,5 +72,16 @@ export class TableValidator {
|
|
|
70
72
|
}
|
|
71
73
|
return !this.missingColumnId && !this.duplicateColumnId;
|
|
72
74
|
}
|
|
75
|
+
validateColumnSortIndices(sortIndices) {
|
|
76
|
+
this.duplicateSortIndex = false;
|
|
77
|
+
const sortIndexSet = new Set();
|
|
78
|
+
for (const sortIndex of sortIndices) {
|
|
79
|
+
if (sortIndexSet.has(sortIndex)) {
|
|
80
|
+
this.duplicateSortIndex = true;
|
|
81
|
+
}
|
|
82
|
+
sortIndexSet.add(sortIndex);
|
|
83
|
+
}
|
|
84
|
+
return !this.duplicateSortIndex;
|
|
85
|
+
}
|
|
73
86
|
}
|
|
74
87
|
//# sourceMappingURL=table-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../../src/table/models/table-validator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,cAAc;IAA3B;QACY,sBAAiB,GAAG,KAAK,CAAC;QAC1B,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,KAAK,CAAC;QACxB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,oBAAe,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../../src/table/models/table-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { children, elements, html, ref, repeat, when } from '@microsoft/fast-ele
|
|
|
2
2
|
import { DesignSystem } from '@microsoft/fast-foundation';
|
|
3
3
|
import { TableHeader } from './components/header';
|
|
4
4
|
import { TableRow } from './components/row';
|
|
5
|
+
import { TableColumnSortDirection } from './types';
|
|
5
6
|
// prettier-ignore
|
|
6
7
|
export const template = html `
|
|
7
8
|
<template role="table" ${children({ property: 'childItems', filter: elements() })}>
|
|
@@ -10,7 +11,11 @@ export const template = html `
|
|
|
10
11
|
<div class="header-row" role="row">
|
|
11
12
|
${repeat(x => x.columns, html `
|
|
12
13
|
${when(x => !x.columnHidden, html `
|
|
13
|
-
<${DesignSystem.tagFor(TableHeader)}
|
|
14
|
+
<${DesignSystem.tagFor(TableHeader)}
|
|
15
|
+
class="header"
|
|
16
|
+
sort-direction="${x => (typeof x.sortIndex === 'number' ? x.sortDirection : TableColumnSortDirection.none)}"
|
|
17
|
+
?first-sorted-column="${(x, c) => x === c.parent.firstSortedColumn}"
|
|
18
|
+
>
|
|
14
19
|
<slot name="${x => x.slot}"></slot>
|
|
15
20
|
</${DesignSystem.tagFor(TableHeader)}>
|
|
16
21
|
`)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,MAAM,EACN,IAAI,EACP,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,32 +16,16 @@ export declare type TableFieldValue = string | number | boolean | null | undefin
|
|
|
16
16
|
export interface TableRecord {
|
|
17
17
|
[key: TableFieldName]: TableFieldValue;
|
|
18
18
|
}
|
|
19
|
-
/** Represents a single row (element) in the Table's data */
|
|
20
|
-
export interface TableDataRecord extends TableRecord {
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* An object whose fields are defined by a particular TableColumn, which is used by the column's
|
|
24
|
-
* cellTemplate implementation.
|
|
25
|
-
*/
|
|
26
|
-
export interface TableCellRecord extends TableRecord {
|
|
27
|
-
}
|
|
28
19
|
export declare type TableStringField<FieldName extends TableFieldName> = {
|
|
29
20
|
[name in FieldName]: string | null | undefined;
|
|
30
21
|
};
|
|
31
|
-
export interface TableCellState<TCellRecord extends TableCellRecord = TableCellRecord, TColumnConfig = unknown> {
|
|
32
|
-
cellRecord: TCellRecord;
|
|
33
|
-
columnConfig: TColumnConfig;
|
|
34
|
-
}
|
|
35
22
|
export interface TableValidity {
|
|
36
23
|
readonly duplicateRecordId: boolean;
|
|
37
24
|
readonly missingRecordId: boolean;
|
|
38
25
|
readonly invalidRecordId: boolean;
|
|
39
26
|
readonly duplicateColumnId: boolean;
|
|
40
27
|
readonly missingColumnId: boolean;
|
|
41
|
-
|
|
42
|
-
export interface TableRowState<TData extends TableRecord = TableRecord> {
|
|
43
|
-
record: TData;
|
|
44
|
-
id: string;
|
|
28
|
+
readonly duplicateSortIndex: boolean;
|
|
45
29
|
}
|
|
46
30
|
export interface TableActionMenuToggleEventDetail {
|
|
47
31
|
newState: boolean;
|
|
@@ -49,3 +33,12 @@ export interface TableActionMenuToggleEventDetail {
|
|
|
49
33
|
recordIds: string[];
|
|
50
34
|
columnId?: string;
|
|
51
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* The possible directions a table column can be sorted in.
|
|
38
|
+
*/
|
|
39
|
+
export declare const TableColumnSortDirection: {
|
|
40
|
+
readonly none: undefined;
|
|
41
|
+
readonly ascending: "ascending";
|
|
42
|
+
readonly descending: "descending";
|
|
43
|
+
};
|
|
44
|
+
export declare type TableColumnSortDirection = (typeof TableColumnSortDirection)[keyof typeof TableColumnSortDirection];
|