@ni/nimble-components 24.1.14 → 25.1.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.
Files changed (52) hide show
  1. package/README.md +7 -0
  2. package/dist/all-components-bundle.js +272 -182
  3. package/dist/all-components-bundle.js.map +1 -1
  4. package/dist/all-components-bundle.min.js +450 -424
  5. package/dist/all-components-bundle.min.js.map +1 -1
  6. package/dist/esm/mapping/icon/index.d.ts +1 -0
  7. package/dist/esm/mapping/icon/index.js +7 -0
  8. package/dist/esm/mapping/icon/index.js.map +1 -1
  9. package/dist/esm/mapping/spinner/index.d.ts +1 -0
  10. package/dist/esm/mapping/spinner/index.js +7 -0
  11. package/dist/esm/mapping/spinner/index.js.map +1 -1
  12. package/dist/esm/src/mapping/icon/index.d.ts +1 -0
  13. package/dist/esm/src/mapping/spinner/index.d.ts +1 -0
  14. package/dist/esm/src/table/testing/table.pageobject.d.ts +4 -4
  15. package/dist/esm/src/table-column/enum-base/models/mapping-icon-config.d.ts +3 -1
  16. package/dist/esm/src/table-column/enum-base/models/mapping-spinner-config.d.ts +8 -1
  17. package/dist/esm/src/table-column/icon/cell-view/index.d.ts +8 -4
  18. package/dist/esm/src/table-column/icon/cell-view/styles.d.ts +1 -0
  19. package/dist/esm/src/table-column/icon/group-header-view/index.d.ts +6 -4
  20. package/dist/esm/src/table-column/icon/testing/table-column-icon.pageobject.d.ts +23 -0
  21. package/dist/esm/table/testing/table.pageobject.d.ts +4 -4
  22. package/dist/esm/table/testing/table.pageobject.js +15 -37
  23. package/dist/esm/table/testing/table.pageobject.js.map +1 -1
  24. package/dist/esm/table-column/enum-base/models/mapping-icon-config.d.ts +3 -1
  25. package/dist/esm/table-column/enum-base/models/mapping-icon-config.js +4 -3
  26. package/dist/esm/table-column/enum-base/models/mapping-icon-config.js.map +1 -1
  27. package/dist/esm/table-column/enum-base/models/mapping-spinner-config.d.ts +8 -1
  28. package/dist/esm/table-column/enum-base/models/mapping-spinner-config.js +13 -1
  29. package/dist/esm/table-column/enum-base/models/mapping-spinner-config.js.map +1 -1
  30. package/dist/esm/table-column/icon/cell-view/index.d.ts +8 -4
  31. package/dist/esm/table-column/icon/cell-view/index.js +31 -7
  32. package/dist/esm/table-column/icon/cell-view/index.js.map +1 -1
  33. package/dist/esm/table-column/icon/cell-view/styles.d.ts +1 -0
  34. package/dist/esm/table-column/icon/cell-view/styles.js +27 -0
  35. package/dist/esm/table-column/icon/cell-view/styles.js.map +1 -0
  36. package/dist/esm/table-column/icon/cell-view/template.js +15 -8
  37. package/dist/esm/table-column/icon/cell-view/template.js.map +1 -1
  38. package/dist/esm/table-column/icon/group-header-view/index.d.ts +6 -4
  39. package/dist/esm/table-column/icon/group-header-view/index.js +18 -9
  40. package/dist/esm/table-column/icon/group-header-view/index.js.map +1 -1
  41. package/dist/esm/table-column/icon/group-header-view/styles.js +5 -3
  42. package/dist/esm/table-column/icon/group-header-view/styles.js.map +1 -1
  43. package/dist/esm/table-column/icon/group-header-view/template.js +10 -24
  44. package/dist/esm/table-column/icon/group-header-view/template.js.map +1 -1
  45. package/dist/esm/table-column/icon/index.js +7 -2
  46. package/dist/esm/table-column/icon/index.js.map +1 -1
  47. package/dist/esm/table-column/icon/models/table-column-icon-validator.js +4 -1
  48. package/dist/esm/table-column/icon/models/table-column-icon-validator.js.map +1 -1
  49. package/dist/esm/table-column/icon/testing/table-column-icon.pageobject.d.ts +23 -0
  50. package/dist/esm/table-column/icon/testing/table-column-icon.pageobject.js +79 -0
  51. package/dist/esm/table-column/icon/testing/table-column-icon.pageobject.js.map +1 -0
  52. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"table-column-icon-validator.js","sourceRoot":"","sources":["../../../../../src/table-column/icon/models/table-column-icon-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACH,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,yDAAyD,CAAC;AAGjE,MAAM,qBAAqB,GAAG;IAC1B,GAAG,yBAAyB;IAC5B,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,4BAE7C;IACG;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAC/B,OAAyB;QAEzB,OAAO,OAAO,YAAY,WAAW,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACpC,OAAyB;QAEzB,OAAO,CACH,OAAO,YAAY,WAAW,IAAI,OAAO,YAAY,cAAc,CACtE,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,WAAwB;QACrD,OAAO,CACH,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;eACjC,WAAW,CAAC,YAAY,KAAK,SAAS,CAC5C,CAAC;IACN,CAAC;IAEe,QAAQ,CACpB,QAA4B,EAC5B,OAAuB;QAEvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,iBAAiB,CAAC,QAA4B;QAClD,MAAM,OAAO,GAAG,QAAQ;aACnB,MAAM,CAAC,wBAAwB,CAAC,oBAAoB,CAAC;aACrD,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,qBAAqB,CAAC,QAA4B;QACtD,MAAM,OAAO,GAAG,QAAQ;aACnB,MAAM,CAAC,wBAAwB,CAAC,yBAAyB,CAAC;aAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,oBAAoB,CAAC,QAA4B;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CACxB,wBAAwB,CAAC,yBAAyB,CACrD,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;CACJ","sourcesContent":["import type { Mapping } from '../../../mapping/base';\nimport { MappingIcon } from '../../../mapping/icon';\nimport { MappingSpinner } from '../../../mapping/spinner';\nimport {\n TableColumnEnumBaseValidator,\n enumBaseValidityFlagNames\n} from '../../enum-base/models/table-column-enum-base-validator';\nimport type { MappingKeyType } from '../../enum-base/types';\n\nconst iconValidityFlagNames = [\n ...enumBaseValidityFlagNames,\n 'unsupportedMappingType',\n 'invalidIconName',\n 'missingTextValue'\n] as const;\n\n/**\n * Validator for TableColumnIcon\n */\nexport class TableColumnIconValidator extends TableColumnEnumBaseValidator<\n typeof iconValidityFlagNames\n> {\n public constructor() {\n super(iconValidityFlagNames);\n }\n\n private static isIconMappingElement(\n mapping: Mapping<unknown>\n ): mapping is MappingIcon {\n return mapping instanceof MappingIcon;\n }\n\n private static isSupportedMappingElement(\n mapping: Mapping<unknown>\n ): mapping is MappingIcon | MappingSpinner {\n return (\n mapping instanceof MappingIcon || mapping instanceof MappingSpinner\n );\n }\n\n private static hasUnresolvedIcon(mappingIcon: MappingIcon): boolean {\n return (\n typeof mappingIcon.icon === 'string'\n && mappingIcon.resolvedIcon === undefined\n );\n }\n\n public override validate(\n mappings: Mapping<unknown>[],\n keyType: MappingKeyType\n ): void {\n super.validate(mappings, keyType);\n this.validateMappingTypes(mappings);\n this.validateIconNames(mappings);\n this.validateNoMissingText(mappings);\n }\n\n private validateIconNames(mappings: Mapping<unknown>[]): void {\n const invalid = mappings\n .filter(TableColumnIconValidator.isIconMappingElement)\n .some(TableColumnIconValidator.hasUnresolvedIcon);\n this.setConditionValue('invalidIconName', invalid);\n }\n\n private validateNoMissingText(mappings: Mapping<unknown>[]): void {\n const invalid = mappings\n .filter(TableColumnIconValidator.isSupportedMappingElement)\n .some(mapping => mapping.text === undefined);\n this.setConditionValue('missingTextValue', invalid);\n }\n\n private validateMappingTypes(mappings: Mapping<unknown>[]): void {\n const valid = mappings.every(\n TableColumnIconValidator.isSupportedMappingElement\n );\n this.setConditionValue('unsupportedMappingType', !valid);\n }\n}\n"]}
1
+ {"version":3,"file":"table-column-icon-validator.js","sourceRoot":"","sources":["../../../../../src/table-column/icon/models/table-column-icon-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACH,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,yDAAyD,CAAC;AAGjE,MAAM,qBAAqB,GAAG;IAC1B,GAAG,yBAAyB;IAC5B,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,4BAE7C;IACG;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAC/B,OAAyB;QAEzB,OAAO,OAAO,YAAY,WAAW,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACpC,OAAyB;QAEzB,OAAO,CACH,OAAO,YAAY,WAAW;eAC3B,OAAO,YAAY,cAAc;eACjC,OAAO,YAAY,WAAW,CACpC,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,WAAwB;QACrD,OAAO,CACH,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;eACjC,WAAW,CAAC,YAAY,KAAK,SAAS,CAC5C,CAAC;IACN,CAAC;IAEe,QAAQ,CACpB,QAA4B,EAC5B,OAAuB;QAEvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,iBAAiB,CAAC,QAA4B;QAClD,MAAM,OAAO,GAAG,QAAQ;aACnB,MAAM,CAAC,wBAAwB,CAAC,oBAAoB,CAAC;aACrD,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,qBAAqB,CAAC,QAA4B;QACtD,MAAM,OAAO,GAAG,QAAQ;aACnB,MAAM,CAAC,wBAAwB,CAAC,yBAAyB,CAAC;aAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,oBAAoB,CAAC,QAA4B;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CACxB,wBAAwB,CAAC,yBAAyB,CACrD,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;CACJ","sourcesContent":["import type { Mapping } from '../../../mapping/base';\nimport { MappingIcon } from '../../../mapping/icon';\nimport { MappingSpinner } from '../../../mapping/spinner';\nimport { MappingText } from '../../../mapping/text';\nimport {\n TableColumnEnumBaseValidator,\n enumBaseValidityFlagNames\n} from '../../enum-base/models/table-column-enum-base-validator';\nimport type { MappingKeyType } from '../../enum-base/types';\n\nconst iconValidityFlagNames = [\n ...enumBaseValidityFlagNames,\n 'unsupportedMappingType',\n 'invalidIconName',\n 'missingTextValue'\n] as const;\n\n/**\n * Validator for TableColumnIcon\n */\nexport class TableColumnIconValidator extends TableColumnEnumBaseValidator<\n typeof iconValidityFlagNames\n> {\n public constructor() {\n super(iconValidityFlagNames);\n }\n\n private static isIconMappingElement(\n mapping: Mapping<unknown>\n ): mapping is MappingIcon {\n return mapping instanceof MappingIcon;\n }\n\n private static isSupportedMappingElement(\n mapping: Mapping<unknown>\n ): mapping is MappingIcon | MappingSpinner | MappingText {\n return (\n mapping instanceof MappingIcon\n || mapping instanceof MappingSpinner\n || mapping instanceof MappingText\n );\n }\n\n private static hasUnresolvedIcon(mappingIcon: MappingIcon): boolean {\n return (\n typeof mappingIcon.icon === 'string'\n && mappingIcon.resolvedIcon === undefined\n );\n }\n\n public override validate(\n mappings: Mapping<unknown>[],\n keyType: MappingKeyType\n ): void {\n super.validate(mappings, keyType);\n this.validateMappingTypes(mappings);\n this.validateIconNames(mappings);\n this.validateNoMissingText(mappings);\n }\n\n private validateIconNames(mappings: Mapping<unknown>[]): void {\n const invalid = mappings\n .filter(TableColumnIconValidator.isIconMappingElement)\n .some(TableColumnIconValidator.hasUnresolvedIcon);\n this.setConditionValue('invalidIconName', invalid);\n }\n\n private validateNoMissingText(mappings: Mapping<unknown>[]): void {\n const invalid = mappings\n .filter(TableColumnIconValidator.isSupportedMappingElement)\n .some(mapping => mapping.text === undefined);\n this.setConditionValue('missingTextValue', invalid);\n }\n\n private validateMappingTypes(mappings: Mapping<unknown>[]): void {\n const valid = mappings.every(\n TableColumnIconValidator.isSupportedMappingElement\n );\n this.setConditionValue('unsupportedMappingType', !valid);\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import type { TablePageObject } from '../../../table/testing/table.pageobject';
2
+ import type { TableRecord } from '../../../table/types';
3
+ /**
4
+ * Page object for `nimble-table-column-icon`.
5
+ */
6
+ export declare class TableColumnIconPageObject<T extends TableRecord> {
7
+ private readonly tablePageObject;
8
+ constructor(tablePageObject: TablePageObject<T>);
9
+ getRenderedCellIconSeverity(rowIndex: number, columnIndex: number): string;
10
+ getRenderedCellIconAriaLabel(rowIndex: number, columnIndex: number): string;
11
+ getRenderedCellIconAriaHidden(rowIndex: number, columnIndex: number): string;
12
+ getRenderedGroupHeaderIconAriaHidden(groupRowIndex: number): string;
13
+ getRenderedCellIconTitle(rowIndex: number, columnIndex: number): string;
14
+ getRenderedGroupHeaderIconTagName(groupRowIndex: number): string;
15
+ getRenderedCellTextTitle(rowIndex: number, columnIndex: number): string;
16
+ getRenderedGroupHeaderTextTitle(groupRowIndex: number): string;
17
+ getRenderedCellText(rowIndex: number, columnIndex: number): string;
18
+ getRenderedGroupHeaderText(groupRowIndex: number): string;
19
+ dispatchEventToCellText(rowIndex: number, columnIndex: number, event: Event): boolean | undefined;
20
+ dispatchEventToGroupHeaderText(groupRowIndex: number, event: Event): boolean | undefined;
21
+ private getRenderedIconOrSpinner;
22
+ private getRenderedTextElement;
23
+ }
@@ -0,0 +1,79 @@
1
+ import { Icon } from '../../../icon-base';
2
+ import { Spinner } from '../../../spinner';
3
+ /**
4
+ * Page object for `nimble-table-column-icon`.
5
+ */
6
+ export class TableColumnIconPageObject {
7
+ constructor(tablePageObject) {
8
+ this.tablePageObject = tablePageObject;
9
+ }
10
+ getRenderedCellIconSeverity(rowIndex, columnIndex) {
11
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getRenderedCellView(rowIndex, columnIndex));
12
+ if (!(iconOrSpinner instanceof Icon)) {
13
+ throw new Error(`Icon not found at cell ${rowIndex},${columnIndex}`);
14
+ }
15
+ return iconOrSpinner.severity ?? '';
16
+ }
17
+ getRenderedCellIconAriaLabel(rowIndex, columnIndex) {
18
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getRenderedCellView(rowIndex, columnIndex));
19
+ return iconOrSpinner.getAttribute('aria-label') ?? '';
20
+ }
21
+ getRenderedCellIconAriaHidden(rowIndex, columnIndex) {
22
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getRenderedCellView(rowIndex, columnIndex));
23
+ return iconOrSpinner.getAttribute('aria-hidden') ?? '';
24
+ }
25
+ getRenderedGroupHeaderIconAriaHidden(groupRowIndex) {
26
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getGroupRowHeaderView(groupRowIndex));
27
+ return iconOrSpinner.getAttribute('aria-hidden') ?? '';
28
+ }
29
+ getRenderedCellIconTitle(rowIndex, columnIndex) {
30
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getRenderedCellView(rowIndex, columnIndex));
31
+ return iconOrSpinner.title;
32
+ }
33
+ getRenderedGroupHeaderIconTagName(groupRowIndex) {
34
+ const iconOrSpinner = this.getRenderedIconOrSpinner(this.tablePageObject.getGroupRowHeaderView(groupRowIndex));
35
+ return iconOrSpinner.tagName.toLocaleLowerCase();
36
+ }
37
+ getRenderedCellTextTitle(rowIndex, columnIndex) {
38
+ const cellView = this.tablePageObject.getRenderedCellView(rowIndex, columnIndex);
39
+ const textElement = this.getRenderedTextElement(cellView);
40
+ return textElement?.title ?? '';
41
+ }
42
+ getRenderedGroupHeaderTextTitle(groupRowIndex) {
43
+ const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);
44
+ const textElement = this.getRenderedTextElement(groupHeader);
45
+ return textElement?.title ?? '';
46
+ }
47
+ getRenderedCellText(rowIndex, columnIndex) {
48
+ const cellView = this.tablePageObject.getRenderedCellView(rowIndex, columnIndex);
49
+ const textElement = this.getRenderedTextElement(cellView);
50
+ return textElement?.textContent?.trim() ?? '';
51
+ }
52
+ getRenderedGroupHeaderText(groupRowIndex) {
53
+ const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);
54
+ const textElement = this.getRenderedTextElement(groupHeader);
55
+ return textElement?.textContent?.trim() ?? '';
56
+ }
57
+ dispatchEventToCellText(rowIndex, columnIndex, event) {
58
+ const cellView = this.tablePageObject.getRenderedCellView(rowIndex, columnIndex);
59
+ const textElement = this.getRenderedTextElement(cellView);
60
+ return textElement.dispatchEvent(event);
61
+ }
62
+ dispatchEventToGroupHeaderText(groupRowIndex, event) {
63
+ const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);
64
+ const textElement = this.getRenderedTextElement(groupHeader);
65
+ return textElement.dispatchEvent(event);
66
+ }
67
+ getRenderedIconOrSpinner(view) {
68
+ const viewShadowRoot = view.shadowRoot;
69
+ const spinnerOrIcon = viewShadowRoot.querySelector('.reserve-icon-size')?.firstElementChild;
70
+ if (!(spinnerOrIcon instanceof Icon || spinnerOrIcon instanceof Spinner)) {
71
+ throw new Error('Icon or Spinner not found');
72
+ }
73
+ return spinnerOrIcon;
74
+ }
75
+ getRenderedTextElement(view) {
76
+ return view.shadowRoot.querySelector('.text');
77
+ }
78
+ }
79
+ //# sourceMappingURL=table-column-icon.pageobject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-column-icon.pageobject.js","sourceRoot":"","sources":["../../../../../src/table-column/icon/testing/table-column-icon.pageobject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAM3C;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAClC,YAAoC,eAAmC;QAAnC,oBAAe,GAAf,eAAe,CAAoB;IAAG,CAAC;IAEpE,2BAA2B,CAC9B,QAAgB,EAChB,WAAmB;QAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAClE,CAAC;QACF,IAAI,CAAC,CAAC,aAAa,YAAY,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CACX,0BAA0B,QAAQ,IAAI,WAAW,EAAE,CACtD,CAAC;SACL;QACD,OAAO,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,CAAC;IAEM,4BAA4B,CAC/B,QAAgB,EAChB,WAAmB;QAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAClE,CAAC;QACF,OAAO,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAEM,6BAA6B,CAChC,QAAgB,EAChB,WAAmB;QAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAClE,CAAC;QACF,OAAO,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAEM,oCAAoC,CAAC,aAAqB;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAC5D,CAAC;QACF,OAAO,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAEM,wBAAwB,CAC3B,QAAgB,EAChB,WAAmB;QAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAClE,CAAC;QACF,OAAO,aAAa,CAAC,KAAK,CAAC;IAC/B,CAAC;IAEM,iCAAiC,CAAC,aAAqB;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAC5D,CAAC;QACF,OAAO,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrD,CAAC;IAEM,wBAAwB,CAC3B,QAAgB,EAChB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACrD,QAAQ,EACR,WAAW,CACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IAEM,+BAA+B,CAAC,aAAqB;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IAEM,mBAAmB,CAAC,QAAgB,EAAE,WAAmB;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACrD,QAAQ,EACR,WAAW,CACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAEM,0BAA0B,CAAC,aAAqB;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAEM,uBAAuB,CAC1B,QAAgB,EAChB,WAAmB,EACnB,KAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACrD,QAAQ,EACR,WAAW,CACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,WAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,8BAA8B,CACjC,aAAqB,EACrB,KAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,WAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEO,wBAAwB,CAC5B,IAA0C;QAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAW,CAAC;QACxC,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAC9C,oBAAoB,CACvB,EAAE,iBAAiB,CAAC;QACrB,IACI,CAAC,CAAC,aAAa,YAAY,IAAI,IAAI,aAAa,YAAY,OAAO,CAAC,EACtE;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,sBAAsB,CAC1B,IAA0C;QAE1C,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAkB,OAAO,CAAC,CAAC;IACpE,CAAC;CACJ","sourcesContent":["import { Icon } from '../../../icon-base';\nimport { Spinner } from '../../../spinner';\nimport type { TablePageObject } from '../../../table/testing/table.pageobject';\nimport type { TableRecord } from '../../../table/types';\nimport type { TableCellView } from '../../base/cell-view';\nimport type { TableGroupHeaderView } from '../../base/group-header-view';\n\n/**\n * Page object for `nimble-table-column-icon`.\n */\nexport class TableColumnIconPageObject<T extends TableRecord> {\n public constructor(private readonly tablePageObject: TablePageObject<T>) {}\n\n public getRenderedCellIconSeverity(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getRenderedCellView(rowIndex, columnIndex)\n );\n if (!(iconOrSpinner instanceof Icon)) {\n throw new Error(\n `Icon not found at cell ${rowIndex},${columnIndex}`\n );\n }\n return iconOrSpinner.severity ?? '';\n }\n\n public getRenderedCellIconAriaLabel(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getRenderedCellView(rowIndex, columnIndex)\n );\n return iconOrSpinner.getAttribute('aria-label') ?? '';\n }\n\n public getRenderedCellIconAriaHidden(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getRenderedCellView(rowIndex, columnIndex)\n );\n return iconOrSpinner.getAttribute('aria-hidden') ?? '';\n }\n\n public getRenderedGroupHeaderIconAriaHidden(groupRowIndex: number): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getGroupRowHeaderView(groupRowIndex)\n );\n return iconOrSpinner.getAttribute('aria-hidden') ?? '';\n }\n\n public getRenderedCellIconTitle(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getRenderedCellView(rowIndex, columnIndex)\n );\n return iconOrSpinner.title;\n }\n\n public getRenderedGroupHeaderIconTagName(groupRowIndex: number): string {\n const iconOrSpinner = this.getRenderedIconOrSpinner(\n this.tablePageObject.getGroupRowHeaderView(groupRowIndex)\n );\n return iconOrSpinner.tagName.toLocaleLowerCase();\n }\n\n public getRenderedCellTextTitle(\n rowIndex: number,\n columnIndex: number\n ): string {\n const cellView = this.tablePageObject.getRenderedCellView(\n rowIndex,\n columnIndex\n );\n const textElement = this.getRenderedTextElement(cellView);\n return textElement?.title ?? '';\n }\n\n public getRenderedGroupHeaderTextTitle(groupRowIndex: number): string {\n const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);\n const textElement = this.getRenderedTextElement(groupHeader);\n return textElement?.title ?? '';\n }\n\n public getRenderedCellText(rowIndex: number, columnIndex: number): string {\n const cellView = this.tablePageObject.getRenderedCellView(\n rowIndex,\n columnIndex\n );\n const textElement = this.getRenderedTextElement(cellView);\n return textElement?.textContent?.trim() ?? '';\n }\n\n public getRenderedGroupHeaderText(groupRowIndex: number): string {\n const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);\n const textElement = this.getRenderedTextElement(groupHeader);\n return textElement?.textContent?.trim() ?? '';\n }\n\n public dispatchEventToCellText(\n rowIndex: number,\n columnIndex: number,\n event: Event\n ): boolean | undefined {\n const cellView = this.tablePageObject.getRenderedCellView(\n rowIndex,\n columnIndex\n );\n const textElement = this.getRenderedTextElement(cellView);\n return textElement!.dispatchEvent(event);\n }\n\n public dispatchEventToGroupHeaderText(\n groupRowIndex: number,\n event: Event\n ): boolean | undefined {\n const groupHeader = this.tablePageObject.getGroupRowHeaderView(groupRowIndex);\n const textElement = this.getRenderedTextElement(groupHeader);\n return textElement!.dispatchEvent(event);\n }\n\n private getRenderedIconOrSpinner(\n view: TableCellView | TableGroupHeaderView\n ): Icon | Spinner {\n const viewShadowRoot = view.shadowRoot!;\n const spinnerOrIcon = viewShadowRoot.querySelector(\n '.reserve-icon-size'\n )?.firstElementChild;\n if (\n !(spinnerOrIcon instanceof Icon || spinnerOrIcon instanceof Spinner)\n ) {\n throw new Error('Icon or Spinner not found');\n }\n\n return spinnerOrIcon;\n }\n\n private getRenderedTextElement(\n view: TableCellView | TableGroupHeaderView\n ): HTMLSpanElement | null {\n return view.shadowRoot!.querySelector<HTMLSpanElement>('.text');\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "24.1.14",
3
+ "version": "25.1.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 generate-workers && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",
@@ -110,9 +110,8 @@
110
110
  "@babel/core": "^7.20.12",
111
111
  "@chromatic-com/storybook": "^1.2.25",
112
112
  "@microsoft/fast-react-wrapper": "^0.3.22",
113
- "@ni/eslint-config-javascript": "^4.2.0",
114
- "@ni/eslint-config-typescript": "^4.2.0",
115
113
  "@ni/jasmine-parameterized": "^0.2.4",
114
+ "@ni-private/eslint-config-nimble": "^1.0.0",
116
115
  "@rollup/plugin-commonjs": "^25.0.7",
117
116
  "@rollup/plugin-json": "^6.0.0",
118
117
  "@rollup/plugin-node-resolve": "^15.0.1",