@ni/nimble-components 20.1.22 → 20.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all-components-bundle.js +80 -9
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +3002 -2997
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/src/table/types.d.ts +1 -3
- package/dist/esm/src/table-column/base/types.d.ts +2 -1
- package/dist/esm/src/table-column/date-text/index.d.ts +2 -0
- package/dist/esm/src/theme-provider/index.d.ts +11 -3
- package/dist/esm/src/utilities/models/document-element-lang.d.ts +9 -0
- package/dist/esm/src/utilities/models/validator.d.ts +3 -1
- package/dist/esm/table/types.d.ts +1 -3
- package/dist/esm/table/types.js.map +1 -1
- package/dist/esm/table-column/base/types.d.ts +2 -1
- package/dist/esm/table-column/base/types.js.map +1 -1
- package/dist/esm/table-column/date-text/index.d.ts +2 -0
- package/dist/esm/table-column/date-text/index.js +12 -1
- package/dist/esm/table-column/date-text/index.js.map +1 -1
- package/dist/esm/theme-provider/index.d.ts +11 -3
- package/dist/esm/theme-provider/index.js +46 -7
- package/dist/esm/theme-provider/index.js.map +1 -1
- package/dist/esm/utilities/models/document-element-lang.d.ts +9 -0
- package/dist/esm/utilities/models/document-element-lang.js +26 -0
- package/dist/esm/utilities/models/document-element-lang.js.map +1 -0
- package/dist/esm/utilities/models/validator.d.ts +3 -1
- package/dist/esm/utilities/models/validator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TableColumn } from '../table-column/base';
|
|
2
|
+
import type { ValidityObject } from '../utilities/models/validator';
|
|
2
3
|
/**
|
|
3
4
|
* TableFieldName describes the type associated with keys within
|
|
4
5
|
* a table's records.
|
|
@@ -41,9 +42,6 @@ export declare type TableBooleanField<FieldName extends TableFieldName> = {
|
|
|
41
42
|
export declare type TableNumberField<FieldName extends TableFieldName> = {
|
|
42
43
|
[name in FieldName]: TableNumberFieldValue;
|
|
43
44
|
};
|
|
44
|
-
export interface ValidityObject {
|
|
45
|
-
[key: string]: boolean;
|
|
46
|
-
}
|
|
47
45
|
export interface TableValidity extends ValidityObject {
|
|
48
46
|
readonly duplicateRecordId: boolean;
|
|
49
47
|
readonly missingRecordId: boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { TableRecord
|
|
1
|
+
import type { TableRecord } from '../../table/types';
|
|
2
|
+
import type { ValidityObject } from '../../utilities/models/validator';
|
|
2
3
|
/**
|
|
3
4
|
* An object whose fields are defined by a particular TableColumn, which is used by the column's
|
|
4
5
|
* cellTemplate implementation.
|
|
@@ -39,7 +39,9 @@ export declare class TableColumnDateText extends TableColumnTextBase {
|
|
|
39
39
|
customDateStyle: DateStyle;
|
|
40
40
|
customTimeStyle: TimeStyle;
|
|
41
41
|
customHourCycle: HourCycleFormat;
|
|
42
|
+
private readonly langSubscriber;
|
|
42
43
|
connectedCallback(): void;
|
|
44
|
+
disconnectedCallback(): void;
|
|
43
45
|
get validity(): TableColumnValidity;
|
|
44
46
|
protected getColumnInternalsOptions(): ColumnInternalsOptions;
|
|
45
47
|
protected formatChanged(): void;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { DesignToken, FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import { Direction } from '@microsoft/fast-web-utilities';
|
|
3
3
|
import { Theme } from './types';
|
|
4
|
+
import type { ValidityObject } from '../utilities/models/validator';
|
|
5
|
+
export { Direction };
|
|
4
6
|
declare global {
|
|
5
7
|
interface HTMLElementTagNameMap {
|
|
6
8
|
'nimble-theme-provider': ThemeProvider;
|
|
7
9
|
}
|
|
8
10
|
}
|
|
11
|
+
export declare const lang: DesignToken<string>;
|
|
9
12
|
export declare const direction: DesignToken<Direction>;
|
|
10
13
|
export declare const theme: DesignToken<Theme>;
|
|
11
14
|
/**
|
|
@@ -14,9 +17,14 @@ export declare const theme: DesignToken<Theme>;
|
|
|
14
17
|
* @internal
|
|
15
18
|
*/
|
|
16
19
|
export declare class ThemeProvider extends FoundationElement {
|
|
17
|
-
|
|
20
|
+
lang: string;
|
|
21
|
+
direction?: Direction;
|
|
18
22
|
theme: Theme;
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
get validity(): ValidityObject;
|
|
24
|
+
private langIsInvalid;
|
|
25
|
+
checkValidity(): boolean;
|
|
26
|
+
langChanged(_prev: string | undefined | null, next: string | undefined | null): void;
|
|
27
|
+
directionChanged(_prev: Direction | undefined | null, next: Direction | undefined | null): void;
|
|
28
|
+
themeChanged(_prev: Theme | undefined | null, next: Theme | undefined | null): void;
|
|
21
29
|
}
|
|
22
30
|
export declare const themeProviderTag: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TableColumn } from '../table-column/base';
|
|
2
|
+
import type { ValidityObject } from '../utilities/models/validator';
|
|
2
3
|
/**
|
|
3
4
|
* TableFieldName describes the type associated with keys within
|
|
4
5
|
* a table's records.
|
|
@@ -41,9 +42,6 @@ export declare type TableBooleanField<FieldName extends TableFieldName> = {
|
|
|
41
42
|
export declare type TableNumberField<FieldName extends TableFieldName> = {
|
|
42
43
|
[name in FieldName]: TableNumberFieldValue;
|
|
43
44
|
};
|
|
44
|
-
export interface ValidityObject {
|
|
45
|
-
[key: string]: boolean;
|
|
46
|
-
}
|
|
47
45
|
export interface TableValidity extends ValidityObject {
|
|
48
46
|
readonly duplicateRecordId: boolean;
|
|
49
47
|
readonly missingRecordId: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/table/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/table/types.ts"],"names":[],"mappings":"AAyEA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;CAClB,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACd,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;CAChC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { TableRecord
|
|
1
|
+
import type { TableRecord } from '../../table/types';
|
|
2
|
+
import type { ValidityObject } from '../../utilities/models/validator';
|
|
2
3
|
/**
|
|
3
4
|
* An object whose fields are defined by a particular TableColumn, which is used by the column's
|
|
4
5
|
* cellTemplate implementation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/base/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/base/types.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;;OAGG;IACH,wBAAwB,EAAE,0BAA0B;CAC9C,CAAC;AAOX,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO;MACrC,uBAAuB;MACvB,OAAO;MACP,YAAY;MACZ,OAAO;MACP,aAAa;MACb,OAAO;MACP,gBAAgB;MAChB,OAAO,CAAC;AAEd,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC"}
|
|
@@ -39,7 +39,9 @@ export declare class TableColumnDateText extends TableColumnTextBase {
|
|
|
39
39
|
customDateStyle: DateStyle;
|
|
40
40
|
customTimeStyle: TimeStyle;
|
|
41
41
|
customHourCycle: HourCycleFormat;
|
|
42
|
+
private readonly langSubscriber;
|
|
42
43
|
connectedCallback(): void;
|
|
44
|
+
disconnectedCallback(): void;
|
|
43
45
|
get validity(): TableColumnValidity;
|
|
44
46
|
protected getColumnInternalsOptions(): ColumnInternalsOptions;
|
|
45
47
|
protected formatChanged(): void;
|
|
@@ -9,6 +9,7 @@ import { tableColumnDateTextGroupHeaderViewTag } from './group-header-view';
|
|
|
9
9
|
import { tableColumnDateTextCellViewTag } from './cell-view';
|
|
10
10
|
import { DateTextFormat } from './types';
|
|
11
11
|
import { TableColumnDateTextValidator } from './models/table-column-date-text-validator';
|
|
12
|
+
import { lang } from '../../theme-provider';
|
|
12
13
|
import { optionalBooleanConverter } from '../../utilities/models/converter';
|
|
13
14
|
/**
|
|
14
15
|
* The table column for displaying dates/times as text.
|
|
@@ -18,11 +19,21 @@ export class TableColumnDateText extends TableColumnTextBase {
|
|
|
18
19
|
super(...arguments);
|
|
19
20
|
/** @internal */
|
|
20
21
|
this.validator = new TableColumnDateTextValidator(this.columnInternals);
|
|
22
|
+
this.langSubscriber = {
|
|
23
|
+
handleChange: () => {
|
|
24
|
+
this.updateColumnConfig();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
21
27
|
}
|
|
22
28
|
connectedCallback() {
|
|
23
29
|
super.connectedCallback();
|
|
30
|
+
lang.subscribe(this.langSubscriber, this);
|
|
24
31
|
this.updateColumnConfig();
|
|
25
32
|
}
|
|
33
|
+
disconnectedCallback() {
|
|
34
|
+
super.disconnectedCallback();
|
|
35
|
+
lang.unsubscribe(this.langSubscriber, this);
|
|
36
|
+
}
|
|
26
37
|
get validity() {
|
|
27
38
|
return this.validator.getValidity();
|
|
28
39
|
}
|
|
@@ -121,7 +132,7 @@ export class TableColumnDateText extends TableColumnTextBase {
|
|
|
121
132
|
options = this.getCustomFormattingOptions();
|
|
122
133
|
}
|
|
123
134
|
try {
|
|
124
|
-
return new Intl.DateTimeFormat(
|
|
135
|
+
return new Intl.DateTimeFormat(lang.getValueFor(this), options);
|
|
125
136
|
}
|
|
126
137
|
catch (e) {
|
|
127
138
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/date-text/index.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/date-text/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { DesignToken, FoundationElement } from '@microsoft/fast-foundation';
|
|
2
2
|
import { Direction } from '@microsoft/fast-web-utilities';
|
|
3
3
|
import { Theme } from './types';
|
|
4
|
+
import type { ValidityObject } from '../utilities/models/validator';
|
|
5
|
+
export { Direction };
|
|
4
6
|
declare global {
|
|
5
7
|
interface HTMLElementTagNameMap {
|
|
6
8
|
'nimble-theme-provider': ThemeProvider;
|
|
7
9
|
}
|
|
8
10
|
}
|
|
11
|
+
export declare const lang: DesignToken<string>;
|
|
9
12
|
export declare const direction: DesignToken<Direction>;
|
|
10
13
|
export declare const theme: DesignToken<Theme>;
|
|
11
14
|
/**
|
|
@@ -14,9 +17,14 @@ export declare const theme: DesignToken<Theme>;
|
|
|
14
17
|
* @internal
|
|
15
18
|
*/
|
|
16
19
|
export declare class ThemeProvider extends FoundationElement {
|
|
17
|
-
|
|
20
|
+
lang: string;
|
|
21
|
+
direction?: Direction;
|
|
18
22
|
theme: Theme;
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
get validity(): ValidityObject;
|
|
24
|
+
private langIsInvalid;
|
|
25
|
+
checkValidity(): boolean;
|
|
26
|
+
langChanged(_prev: string | undefined | null, next: string | undefined | null): void;
|
|
27
|
+
directionChanged(_prev: Direction | undefined | null, next: Direction | undefined | null): void;
|
|
28
|
+
themeChanged(_prev: Theme | undefined | null, next: Theme | undefined | null): void;
|
|
21
29
|
}
|
|
22
30
|
export declare const themeProviderTag: string;
|
|
@@ -5,6 +5,23 @@ import { Direction } from '@microsoft/fast-web-utilities';
|
|
|
5
5
|
import { template } from './template';
|
|
6
6
|
import { styles } from './styles';
|
|
7
7
|
import { Theme } from './types';
|
|
8
|
+
import { documentElementLang } from '../utilities/models/document-element-lang';
|
|
9
|
+
export { Direction };
|
|
10
|
+
function isValidLang(value) {
|
|
11
|
+
try {
|
|
12
|
+
// We are relying on the Locale constructor to validate the value
|
|
13
|
+
// eslint-disable-next-line no-new
|
|
14
|
+
new Intl.Locale(value);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const lang = DesignToken.create({
|
|
22
|
+
name: 'lang',
|
|
23
|
+
cssCustomPropertyName: null
|
|
24
|
+
}).withDefault(() => (isValidLang(documentElementLang.lang) ? documentElementLang.lang : 'en-US'));
|
|
8
25
|
// Not represented as a CSS Custom Property, instead available
|
|
9
26
|
// as an attribute of theme provider.
|
|
10
27
|
export const direction = DesignToken.create({
|
|
@@ -23,8 +40,31 @@ export const theme = DesignToken.create({
|
|
|
23
40
|
export class ThemeProvider extends FoundationElement {
|
|
24
41
|
constructor() {
|
|
25
42
|
super(...arguments);
|
|
26
|
-
this.direction = Direction.ltr;
|
|
27
43
|
this.theme = Theme.light;
|
|
44
|
+
this.langIsInvalid = false;
|
|
45
|
+
}
|
|
46
|
+
get validity() {
|
|
47
|
+
return {
|
|
48
|
+
invalidLang: this.langIsInvalid
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
checkValidity() {
|
|
52
|
+
return !this.langIsInvalid;
|
|
53
|
+
}
|
|
54
|
+
langChanged(_prev, next) {
|
|
55
|
+
if (next === null || next === undefined) {
|
|
56
|
+
lang.deleteValueFor(this);
|
|
57
|
+
this.langIsInvalid = false;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (isValidLang(next)) {
|
|
61
|
+
lang.setValueFor(this, next);
|
|
62
|
+
this.langIsInvalid = false;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
lang.deleteValueFor(this);
|
|
66
|
+
this.langIsInvalid = true;
|
|
67
|
+
}
|
|
28
68
|
}
|
|
29
69
|
directionChanged(_prev, next) {
|
|
30
70
|
if (next !== undefined && next !== null) {
|
|
@@ -44,14 +84,13 @@ export class ThemeProvider extends FoundationElement {
|
|
|
44
84
|
}
|
|
45
85
|
}
|
|
46
86
|
__decorate([
|
|
47
|
-
attr(
|
|
48
|
-
|
|
49
|
-
|
|
87
|
+
attr()
|
|
88
|
+
], ThemeProvider.prototype, "lang", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
attr()
|
|
50
91
|
], ThemeProvider.prototype, "direction", void 0);
|
|
51
92
|
__decorate([
|
|
52
|
-
attr(
|
|
53
|
-
attribute: 'theme'
|
|
54
|
-
})
|
|
93
|
+
attr()
|
|
55
94
|
], ThemeProvider.prototype, "theme", void 0);
|
|
56
95
|
const nimbleDesignSystemProvider = ThemeProvider.compose({
|
|
57
96
|
baseName: 'theme-provider',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theme-provider/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,YAAY,EACZ,WAAW,EACX,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theme-provider/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { observable } from '@microsoft/fast-element';
|
|
3
|
+
/**
|
|
4
|
+
* Observable class to subscribe to changes in the page's lang attribute
|
|
5
|
+
*/
|
|
6
|
+
class DocumentElementLang {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.lang = document.documentElement.lang;
|
|
9
|
+
const observer = new MutationObserver(mutations => {
|
|
10
|
+
for (const mutation of mutations) {
|
|
11
|
+
if (mutation.type === 'attributes'
|
|
12
|
+
&& mutation.attributeName === 'lang') {
|
|
13
|
+
this.lang = mutation.target.lang;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
observer.observe(document.documentElement, {
|
|
18
|
+
attributeFilter: ['lang']
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
__decorate([
|
|
23
|
+
observable
|
|
24
|
+
], DocumentElementLang.prototype, "lang", void 0);
|
|
25
|
+
export const documentElementLang = new DocumentElementLang();
|
|
26
|
+
//# sourceMappingURL=document-element-lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-element-lang.js","sourceRoot":"","sources":["../../../../src/utilities/models/document-element-lang.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,MAAM,mBAAmB;IAIrB;QAFO,SAAI,GAAW,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;QAGhD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE;YAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAC9B,IACI,QAAQ,CAAC,IAAI,KAAK,YAAY;uBAC3B,QAAQ,CAAC,aAAa,KAAK,MAAM,EACtC;oBACE,IAAI,CAAC,IAAI,GAAI,QAAQ,CAAC,MAAsB,CAAC,IAAI,CAAC;iBACrD;aACJ;QACL,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;YACvC,eAAe,EAAE,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;IACP,CAAC;CACJ;AAjBG;IADC,UAAU;iDACyC;AAmBxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/utilities/models/validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/utilities/models/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,MAAM,OAAO,SAEX,SAAQ,OAAwB;IACvB,OAAO;QACV,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ni/nimble-components",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.2.0",
|
|
4
4
|
"description": "Styled web components for the NI Nimble Design System",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npm run generate-icons && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",
|