@ni/nimble-components 20.1.15 → 20.1.16
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 +1 -7
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +1 -1
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/docs/types.d.ts +6 -0
- package/dist/esm/src/table-column/base/models/column-validator.d.ts +0 -4
- package/dist/esm/src/table-column/number-text/index.d.ts +7 -0
- package/dist/esm/src/table-column/number-text/models/decimal-formatter.d.ts +9 -0
- package/dist/esm/src/table-column/number-text/models/table-column-number-text-validitor.d.ts +13 -0
- package/dist/esm/src/table-column/number-text/types.d.ts +1 -0
- package/dist/esm/table-column/base/models/column-validator.d.ts +0 -4
- package/dist/esm/table-column/base/models/column-validator.js +0 -6
- package/dist/esm/table-column/base/models/column-validator.js.map +1 -1
- package/dist/esm/table-column/number-text/index.d.ts +7 -0
- package/dist/esm/table-column/number-text/index.js +33 -7
- package/dist/esm/table-column/number-text/index.js.map +1 -1
- package/dist/esm/table-column/number-text/models/decimal-formatter.d.ts +9 -0
- package/dist/esm/table-column/number-text/models/decimal-formatter.js +21 -0
- package/dist/esm/table-column/number-text/models/decimal-formatter.js.map +1 -0
- package/dist/esm/table-column/number-text/models/table-column-number-text-validitor.d.ts +13 -0
- package/dist/esm/table-column/number-text/models/table-column-number-text-validitor.js +28 -0
- package/dist/esm/table-column/number-text/models/table-column-number-text-validitor.js.map +1 -0
- package/dist/esm/table-column/number-text/types.d.ts +1 -0
- package/dist/esm/table-column/number-text/types.js +2 -1
- package/dist/esm/table-column/number-text/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const ComponentFrameworkStatus: {
|
|
2
|
+
readonly ready: "ready";
|
|
3
|
+
readonly incubating: "incubating";
|
|
4
|
+
readonly doesNotExist: "does_not_exist";
|
|
5
|
+
};
|
|
6
|
+
export declare type ComponentFrameworkStatus = (typeof ComponentFrameworkStatus)[keyof typeof ComponentFrameworkStatus];
|
|
@@ -7,10 +7,6 @@ import type { ColumnInternals } from './column-internals';
|
|
|
7
7
|
export declare class ColumnValidator<ValidityFlagNames extends readonly string[]> extends Validator<ValidityFlagNames> {
|
|
8
8
|
private readonly columnInternals;
|
|
9
9
|
constructor(columnInternals: ColumnInternals<unknown>, configValidityKeys: ValidityFlagNames);
|
|
10
|
-
/**
|
|
11
|
-
* @returns whether the entire column configuration is valid
|
|
12
|
-
*/
|
|
13
|
-
isValidColumn(): boolean;
|
|
14
10
|
/**
|
|
15
11
|
* @returns an object containing flags for various ways the configuation can be invalid
|
|
16
12
|
*/
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { TableNumberField } from '../../table/types';
|
|
2
2
|
import { TableColumnTextBase } from '../text-base';
|
|
3
|
+
import { TableColumnValidity } from '../base/types';
|
|
3
4
|
import type { ColumnInternalsOptions } from '../base/models/column-internals';
|
|
4
5
|
import { NumberTextAlignment, NumberTextFormat } from './types';
|
|
5
6
|
import type { NumberFormatter } from './models/number-formatter';
|
|
7
|
+
import { TableColumnNumberTextValidator } from './models/table-column-number-text-validitor';
|
|
6
8
|
import { TextCellViewBaseAlignment } from '../text-base/cell-view/types';
|
|
7
9
|
export declare type TableColumnNumberTextCellRecord = TableNumberField<'value'>;
|
|
8
10
|
export interface TableColumnNumberTextColumnConfig {
|
|
@@ -18,12 +20,17 @@ declare global {
|
|
|
18
20
|
* The table column for displaying numbers as text.
|
|
19
21
|
*/
|
|
20
22
|
export declare class TableColumnNumberText extends TableColumnTextBase {
|
|
23
|
+
/** @internal */
|
|
24
|
+
validator: TableColumnNumberTextValidator;
|
|
21
25
|
format: NumberTextFormat;
|
|
22
26
|
alignment: NumberTextAlignment;
|
|
27
|
+
decimalDigits?: number;
|
|
23
28
|
connectedCallback(): void;
|
|
29
|
+
get validity(): TableColumnValidity;
|
|
24
30
|
protected getColumnInternalsOptions(): ColumnInternalsOptions;
|
|
25
31
|
private formatChanged;
|
|
26
32
|
private alignmentChanged;
|
|
33
|
+
private decimalDigitsChanged;
|
|
27
34
|
private updateColumnConfig;
|
|
28
35
|
private createFormatter;
|
|
29
36
|
private determineCellContentAlignment;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NumberFormatter } from './number-formatter';
|
|
2
|
+
/**
|
|
3
|
+
* The formatter for a number-text column whose format is configured to be 'decimal'.
|
|
4
|
+
*/
|
|
5
|
+
export declare class DecimalFormatter extends NumberFormatter {
|
|
6
|
+
private readonly formatter;
|
|
7
|
+
constructor(decimalsToDisplay: number);
|
|
8
|
+
protected format(number: number): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ColumnInternals } from '../../base/models/column-internals';
|
|
2
|
+
import { ColumnValidator } from '../../base/models/column-validator';
|
|
3
|
+
import { NumberTextFormat } from '../types';
|
|
4
|
+
declare const numberTextValidityFlagNames: readonly ["invalidDecimalDigits"];
|
|
5
|
+
/**
|
|
6
|
+
* Validator for TableColumnNumberText.
|
|
7
|
+
*/
|
|
8
|
+
export declare class TableColumnNumberTextValidator extends ColumnValidator<typeof numberTextValidityFlagNames> {
|
|
9
|
+
constructor(columnInternals: ColumnInternals<unknown>);
|
|
10
|
+
validateDecimalDigits(format: NumberTextFormat, decimalDigits: number | undefined): void;
|
|
11
|
+
private isInvalidDecimalDigitsValue;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -7,10 +7,6 @@ import type { ColumnInternals } from './column-internals';
|
|
|
7
7
|
export declare class ColumnValidator<ValidityFlagNames extends readonly string[]> extends Validator<ValidityFlagNames> {
|
|
8
8
|
private readonly columnInternals;
|
|
9
9
|
constructor(columnInternals: ColumnInternals<unknown>, configValidityKeys: ValidityFlagNames);
|
|
10
|
-
/**
|
|
11
|
-
* @returns whether the entire column configuration is valid
|
|
12
|
-
*/
|
|
13
|
-
isValidColumn(): boolean;
|
|
14
10
|
/**
|
|
15
11
|
* @returns an object containing flags for various ways the configuation can be invalid
|
|
16
12
|
*/
|
|
@@ -7,12 +7,6 @@ export class ColumnValidator extends Validator {
|
|
|
7
7
|
super(configValidityKeys);
|
|
8
8
|
this.columnInternals = columnInternals;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
* @returns whether the entire column configuration is valid
|
|
12
|
-
*/
|
|
13
|
-
isValidColumn() {
|
|
14
|
-
return this.isValid();
|
|
15
|
-
}
|
|
16
10
|
/**
|
|
17
11
|
* @returns an object containing flags for various ways the configuation can be invalid
|
|
18
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-validator.js","sourceRoot":"","sources":["../../../../../src/table-column/base/models/column-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAIhE;;GAEG;AACH,MAAM,OAAO,eAEX,SAAQ,SAA4B;IAClC,YACqB,eAAyC,EAC1D,kBAAqC;QAErC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAHT,oBAAe,GAAf,eAAe,CAA0B;IAI9D,CAAC;IAED;;OAEG;IACI,
|
|
1
|
+
{"version":3,"file":"column-validator.js","sourceRoot":"","sources":["../../../../../src/table-column/base/models/column-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAIhE;;GAEG;AACH,MAAM,OAAO,eAEX,SAAQ,SAA4B;IAClC,YACqB,eAAyC,EAC1D,kBAAqC;QAErC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAHT,oBAAe,GAAf,eAAe,CAA0B;IAI9D,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,iBAAiB,CACvB,IAAgE,EAChE,SAAkB;QAElB,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;aAAM;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAEO,yBAAyB;QAC7B,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7D,CAAC;CACJ"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { TableNumberField } from '../../table/types';
|
|
2
2
|
import { TableColumnTextBase } from '../text-base';
|
|
3
|
+
import { TableColumnValidity } from '../base/types';
|
|
3
4
|
import type { ColumnInternalsOptions } from '../base/models/column-internals';
|
|
4
5
|
import { NumberTextAlignment, NumberTextFormat } from './types';
|
|
5
6
|
import type { NumberFormatter } from './models/number-formatter';
|
|
7
|
+
import { TableColumnNumberTextValidator } from './models/table-column-number-text-validitor';
|
|
6
8
|
import { TextCellViewBaseAlignment } from '../text-base/cell-view/types';
|
|
7
9
|
export declare type TableColumnNumberTextCellRecord = TableNumberField<'value'>;
|
|
8
10
|
export interface TableColumnNumberTextColumnConfig {
|
|
@@ -18,12 +20,17 @@ declare global {
|
|
|
18
20
|
* The table column for displaying numbers as text.
|
|
19
21
|
*/
|
|
20
22
|
export declare class TableColumnNumberText extends TableColumnTextBase {
|
|
23
|
+
/** @internal */
|
|
24
|
+
validator: TableColumnNumberTextValidator;
|
|
21
25
|
format: NumberTextFormat;
|
|
22
26
|
alignment: NumberTextAlignment;
|
|
27
|
+
decimalDigits?: number;
|
|
23
28
|
connectedCallback(): void;
|
|
29
|
+
get validity(): TableColumnValidity;
|
|
24
30
|
protected getColumnInternalsOptions(): ColumnInternalsOptions;
|
|
25
31
|
private formatChanged;
|
|
26
32
|
private alignmentChanged;
|
|
33
|
+
private decimalDigitsChanged;
|
|
27
34
|
private updateColumnConfig;
|
|
28
35
|
private createFormatter;
|
|
29
36
|
private determineCellContentAlignment;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { DesignSystem } from '@microsoft/fast-foundation';
|
|
3
|
-
import { attr } from '@microsoft/fast-element';
|
|
3
|
+
import { attr, nullableNumberConverter } from '@microsoft/fast-element';
|
|
4
4
|
import { styles } from '../base/styles';
|
|
5
5
|
import { template } from '../base/template';
|
|
6
6
|
import { TableColumnTextBase } from '../text-base';
|
|
@@ -10,15 +10,26 @@ import { tableColumnNumberTextCellViewTag } from './cell-view';
|
|
|
10
10
|
import { NumberTextAlignment, NumberTextFormat } from './types';
|
|
11
11
|
import { RoundToIntegerFormatter } from './models/round-to-integer-formatter';
|
|
12
12
|
import { DefaultFormatter } from './models/default-formatter';
|
|
13
|
+
import { DecimalFormatter } from './models/decimal-formatter';
|
|
14
|
+
import { TableColumnNumberTextValidator } from './models/table-column-number-text-validitor';
|
|
13
15
|
import { TextCellViewBaseAlignment } from '../text-base/cell-view/types';
|
|
16
|
+
const defaultDecimalDigits = 2;
|
|
14
17
|
/**
|
|
15
18
|
* The table column for displaying numbers as text.
|
|
16
19
|
*/
|
|
17
20
|
export class TableColumnNumberText extends TableColumnTextBase {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
/** @internal */
|
|
24
|
+
this.validator = new TableColumnNumberTextValidator(this.columnInternals);
|
|
25
|
+
}
|
|
18
26
|
connectedCallback() {
|
|
19
27
|
super.connectedCallback();
|
|
20
28
|
this.updateColumnConfig();
|
|
21
29
|
}
|
|
30
|
+
get validity() {
|
|
31
|
+
return this.validator.getValidity();
|
|
32
|
+
}
|
|
22
33
|
getColumnInternalsOptions() {
|
|
23
34
|
return {
|
|
24
35
|
cellRecordFieldNames: ['value'],
|
|
@@ -34,17 +45,28 @@ export class TableColumnNumberText extends TableColumnTextBase {
|
|
|
34
45
|
alignmentChanged() {
|
|
35
46
|
this.updateColumnConfig();
|
|
36
47
|
}
|
|
48
|
+
decimalDigitsChanged() {
|
|
49
|
+
this.updateColumnConfig();
|
|
50
|
+
}
|
|
37
51
|
updateColumnConfig() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
this.validator.validateDecimalDigits(this.format, this.decimalDigits);
|
|
53
|
+
if (this.validator.isValid()) {
|
|
54
|
+
const columnConfig = {
|
|
55
|
+
formatter: this.createFormatter(),
|
|
56
|
+
alignment: this.determineCellContentAlignment()
|
|
57
|
+
};
|
|
58
|
+
this.columnInternals.columnConfig = columnConfig;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.columnInternals.columnConfig = undefined;
|
|
62
|
+
}
|
|
43
63
|
}
|
|
44
64
|
createFormatter() {
|
|
45
65
|
switch (this.format) {
|
|
46
66
|
case NumberTextFormat.roundToInteger:
|
|
47
67
|
return new RoundToIntegerFormatter();
|
|
68
|
+
case NumberTextFormat.decimal:
|
|
69
|
+
return new DecimalFormatter(this.decimalDigits ?? defaultDecimalDigits);
|
|
48
70
|
default:
|
|
49
71
|
return new DefaultFormatter();
|
|
50
72
|
}
|
|
@@ -57,7 +79,8 @@ export class TableColumnNumberText extends TableColumnTextBase {
|
|
|
57
79
|
return TextCellViewBaseAlignment.right;
|
|
58
80
|
}
|
|
59
81
|
// Look at format to determine the default alignment
|
|
60
|
-
if (this.format === NumberTextFormat.roundToInteger
|
|
82
|
+
if (this.format === NumberTextFormat.roundToInteger
|
|
83
|
+
|| this.format === NumberTextFormat.decimal) {
|
|
61
84
|
return TextCellViewBaseAlignment.right;
|
|
62
85
|
}
|
|
63
86
|
return TextCellViewBaseAlignment.left;
|
|
@@ -69,6 +92,9 @@ __decorate([
|
|
|
69
92
|
__decorate([
|
|
70
93
|
attr
|
|
71
94
|
], TableColumnNumberText.prototype, "alignment", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
attr({ attribute: 'decimal-digits', converter: nullableNumberConverter })
|
|
97
|
+
], TableColumnNumberText.prototype, "decimalDigits", void 0);
|
|
72
98
|
const nimbleTableColumnNumberText = TableColumnNumberText.compose({
|
|
73
99
|
baseName: 'table-column-number-text',
|
|
74
100
|
template,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/number-text/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/number-text/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NumberFormatter } from './number-formatter';
|
|
2
|
+
/**
|
|
3
|
+
* The formatter for a number-text column whose format is configured to be 'decimal'.
|
|
4
|
+
*/
|
|
5
|
+
export declare class DecimalFormatter extends NumberFormatter {
|
|
6
|
+
private readonly formatter;
|
|
7
|
+
constructor(decimalsToDisplay: number);
|
|
8
|
+
protected format(number: number): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NumberFormatter } from './number-formatter';
|
|
2
|
+
/**
|
|
3
|
+
* The formatter for a number-text column whose format is configured to be 'decimal'.
|
|
4
|
+
*/
|
|
5
|
+
export class DecimalFormatter extends NumberFormatter {
|
|
6
|
+
constructor(decimalsToDisplay) {
|
|
7
|
+
super();
|
|
8
|
+
this.formatter = new Intl.NumberFormat(undefined, {
|
|
9
|
+
maximumFractionDigits: decimalsToDisplay,
|
|
10
|
+
minimumFractionDigits: decimalsToDisplay,
|
|
11
|
+
useGrouping: true
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
format(number) {
|
|
15
|
+
// The NumberFormat option of `signDisplay: "negative"` is not supported in all browsers nimble supports.
|
|
16
|
+
// Because that option cannot be used to avoid rendering "-0", coerce the value -0 to 0 prior to formatting.
|
|
17
|
+
const valueToFormat = number === 0 ? 0 : number;
|
|
18
|
+
return this.formatter.format(valueToFormat);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=decimal-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal-formatter.js","sourceRoot":"","sources":["../../../../../src/table-column/number-text/models/decimal-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IAGjD,YAAmB,iBAAyB;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC9C,qBAAqB,EAAE,iBAAiB;YACxC,qBAAqB,EAAE,iBAAiB;YACxC,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;IACP,CAAC;IAES,MAAM,CAAC,MAAc;QAC3B,yGAAyG;QACzG,4GAA4G;QAC5G,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;CACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ColumnInternals } from '../../base/models/column-internals';
|
|
2
|
+
import { ColumnValidator } from '../../base/models/column-validator';
|
|
3
|
+
import { NumberTextFormat } from '../types';
|
|
4
|
+
declare const numberTextValidityFlagNames: readonly ["invalidDecimalDigits"];
|
|
5
|
+
/**
|
|
6
|
+
* Validator for TableColumnNumberText.
|
|
7
|
+
*/
|
|
8
|
+
export declare class TableColumnNumberTextValidator extends ColumnValidator<typeof numberTextValidityFlagNames> {
|
|
9
|
+
constructor(columnInternals: ColumnInternals<unknown>);
|
|
10
|
+
validateDecimalDigits(format: NumberTextFormat, decimalDigits: number | undefined): void;
|
|
11
|
+
private isInvalidDecimalDigitsValue;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ColumnValidator } from '../../base/models/column-validator';
|
|
2
|
+
import { NumberTextFormat } from '../types';
|
|
3
|
+
const numberTextValidityFlagNames = ['invalidDecimalDigits'];
|
|
4
|
+
// The maximum and minimum allowed configuration for 'maximumFractionDigits'
|
|
5
|
+
// and 'minimumFractionDigits' on the NumberFormat.
|
|
6
|
+
const minimumValidDecimalDigits = 0;
|
|
7
|
+
const maximumValidDecimalDigits = 20;
|
|
8
|
+
/**
|
|
9
|
+
* Validator for TableColumnNumberText.
|
|
10
|
+
*/
|
|
11
|
+
export class TableColumnNumberTextValidator extends ColumnValidator {
|
|
12
|
+
constructor(columnInternals) {
|
|
13
|
+
super(columnInternals, numberTextValidityFlagNames);
|
|
14
|
+
}
|
|
15
|
+
validateDecimalDigits(format, decimalDigits) {
|
|
16
|
+
const shouldValidateDecimalDigitsValue = format === NumberTextFormat.decimal
|
|
17
|
+
&& typeof decimalDigits === 'number';
|
|
18
|
+
const invalid = shouldValidateDecimalDigitsValue
|
|
19
|
+
? this.isInvalidDecimalDigitsValue(decimalDigits)
|
|
20
|
+
: false;
|
|
21
|
+
this.setConditionValue('invalidDecimalDigits', invalid);
|
|
22
|
+
}
|
|
23
|
+
isInvalidDecimalDigitsValue(decimalDigits) {
|
|
24
|
+
return (decimalDigits < minimumValidDecimalDigits
|
|
25
|
+
|| decimalDigits > maximumValidDecimalDigits);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=table-column-number-text-validitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-column-number-text-validitor.js","sourceRoot":"","sources":["../../../../../src/table-column/number-text/models/table-column-number-text-validitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,sBAAsB,CAAU,CAAC;AAEtE,4EAA4E;AAC5E,mDAAmD;AACnD,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,eAEnD;IACG,YAAmB,eAAyC;QACxD,KAAK,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;IACxD,CAAC;IAEM,qBAAqB,CACxB,MAAwB,EACxB,aAAiC;QAEjC,MAAM,gCAAgC,GAAG,MAAM,KAAK,gBAAgB,CAAC,OAAO;eACrE,OAAO,aAAa,KAAK,QAAQ,CAAC;QACzC,MAAM,OAAO,GAAG,gCAAgC;YAC5C,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,KAAK,CAAC;QACZ,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,2BAA2B,CAAC,aAAqB;QACrD,OAAO,CACH,aAAa,GAAG,yBAAyB;eACtC,aAAa,GAAG,yBAAyB,CAC/C,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/number-text/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/number-text/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,kBAAkB;IAClC,OAAO,EAAE,SAAS;CACZ,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ni/nimble-components",
|
|
3
|
-
"version": "20.1.
|
|
3
|
+
"version": "20.1.16",
|
|
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",
|