@ni/nimble-components 21.7.1 → 21.8.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.
@@ -11,5 +11,5 @@ export interface IconView {
11
11
  export declare class MappingIconConfig extends MappingConfig {
12
12
  readonly severity: IconSeverity;
13
13
  readonly iconTemplate: ViewTemplate<IconView>;
14
- constructor(resolvedIcon: string, severity: IconSeverity, text: string | undefined);
14
+ constructor(resolvedIcon: string | undefined, severity: IconSeverity, text: string | undefined);
15
15
  }
@@ -1,14 +1,24 @@
1
1
  import { html } from '@microsoft/fast-element';
2
2
  import { MappingConfig } from './mapping-config';
3
- const createIconTemplate = (icon) => html `
4
- <${icon}
5
- title="${x => x.text}"
6
- role="img"
7
- aria-label="${x => x.text}"
8
- severity="${x => x.severity}"
9
- class="no-shrink"
10
- >
11
- </${icon}>`;
3
+ // Create an empty template containing only a space because creating a ViewTemplate
4
+ // with an empty string throws an exception at runtime.
5
+ // prettier-ignore
6
+ const emptyTemplate = html ` `;
7
+ const createIconTemplate = (icon) => {
8
+ if (icon === undefined) {
9
+ return emptyTemplate;
10
+ }
11
+ return html `
12
+ <${icon}
13
+ title="${x => x.text}"
14
+ role="img"
15
+ aria-label="${x => x.text}"
16
+ severity="${x => x.severity}"
17
+ class="no-shrink"
18
+ >
19
+ </${icon}>
20
+ `;
21
+ };
12
22
  /**
13
23
  * Mapping configuration corresponding to a icon mapping
14
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mapping-icon-config.js","sourceRoot":"","sources":["../../../../../src/table-column/enum-base/models/mapping-icon-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAA0B,EAAE,CAAC,IAAI,CAAA;OAClE,IAAI;iBACM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;;sBAEN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;oBACb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;;QAG3B,IAAI,GAAG,CAAC;AAEhB;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAEhD,YACI,YAAoB,EACJ,QAAsB,EACtC,IAAwB;QAExB,KAAK,CAAC,IAAI,CAAC,CAAC;QAHI,aAAQ,GAAR,QAAQ,CAAc;QAItC,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;CACJ","sourcesContent":["import { html, type ViewTemplate } from '@microsoft/fast-element';\nimport type { IconSeverity } from '../../../icon-base/types';\nimport { MappingConfig } from './mapping-config';\n\nexport interface IconView {\n severity: IconSeverity;\n text?: string;\n}\nconst createIconTemplate = (icon: string): ViewTemplate<IconView> => html`\n <${icon}\n title=\"${x => x.text}\"\n role=\"img\"\n aria-label=\"${x => x.text}\"\n severity=\"${x => x.severity}\"\n class=\"no-shrink\"\n >\n </${icon}>`;\n\n/**\n * Mapping configuration corresponding to a icon mapping\n */\nexport class MappingIconConfig extends MappingConfig {\n public readonly iconTemplate: ViewTemplate<IconView>;\n public constructor(\n resolvedIcon: string,\n public readonly severity: IconSeverity,\n text: string | undefined\n ) {\n super(text);\n this.iconTemplate = createIconTemplate(resolvedIcon);\n }\n}\n"]}
1
+ {"version":3,"file":"mapping-icon-config.js","sourceRoot":"","sources":["../../../../../src/table-column/enum-base/models/mapping-icon-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,mFAAmF;AACnF,uDAAuD;AACvD,kBAAkB;AAClB,MAAM,aAAa,GAAG,IAAI,CAAU,GAAG,CAAC;AAExC,MAAM,kBAAkB,GAAG,CACvB,IAAwB,EACF,EAAE;IACxB,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,OAAO,aAAa,CAAC;KACxB;IAED,OAAO,IAAI,CAAA;WACJ,IAAI;qBACM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;;0BAEN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;wBACb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;;YAG3B,IAAI;KACX,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAEhD,YACI,YAAgC,EAChB,QAAsB,EACtC,IAAwB;QAExB,KAAK,CAAC,IAAI,CAAC,CAAC;QAHI,aAAQ,GAAR,QAAQ,CAAc;QAItC,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;CACJ","sourcesContent":["import { html, type ViewTemplate } from '@microsoft/fast-element';\nimport type { IconSeverity } from '../../../icon-base/types';\nimport { MappingConfig } from './mapping-config';\n\nexport interface IconView {\n severity: IconSeverity;\n text?: string;\n}\n\n// Create an empty template containing only a space because creating a ViewTemplate\n// with an empty string throws an exception at runtime.\n// prettier-ignore\nconst emptyTemplate = html<IconView>` `;\n\nconst createIconTemplate = (\n icon: string | undefined\n): ViewTemplate<IconView> => {\n if (icon === undefined) {\n return emptyTemplate;\n }\n\n return html`\n <${icon}\n title=\"${x => x.text}\"\n role=\"img\"\n aria-label=\"${x => x.text}\"\n severity=\"${x => x.severity}\"\n class=\"no-shrink\"\n >\n </${icon}>\n `;\n};\n\n/**\n * Mapping configuration corresponding to a icon mapping\n */\nexport class MappingIconConfig extends MappingConfig {\n public readonly iconTemplate: ViewTemplate<IconView>;\n public constructor(\n resolvedIcon: string | undefined,\n public readonly severity: IconSeverity,\n text: string | undefined\n ) {\n super(text);\n this.iconTemplate = createIconTemplate(resolvedIcon);\n }\n}\n"]}
@@ -38,9 +38,6 @@ export class TableColumnIcon extends mixinGroupableColumnAPI(mixinFractionalWidt
38
38
  }
39
39
  createMappingConfig(mapping) {
40
40
  if (mapping instanceof MappingIcon) {
41
- if (!mapping.resolvedIcon) {
42
- throw Error('Unresolved icon');
43
- }
44
41
  return new MappingIconConfig(mapping.resolvedIcon, mapping.severity, mapping.text);
45
42
  }
46
43
  if (mapping instanceof MappingSpinner) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEH,mBAAmB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAuB,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAQlF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,uBAAuB,CACxD,6BAA6B,CACzB,CAAA,mBAGC,CAAA,CACJ,CACJ;IACmB,eAAe;QAC3B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IAAoB,QAAQ;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAEkB,yBAAyB;QACxC,OAAO;YACH,oBAAoB,EAAE,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,0BAA0B;YACvC,kBAAkB,EAAE,iCAAiC;YACrD,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,wBAAwB,CAAC,KAAK;SAChD,CAAC;IACN,CAAC;IAEkB,kBAAkB,CACjC,cAA8B;QAE9B,OAAO;YACH,cAAc;SACjB,CAAC;IACN,CAAC;IAES,mBAAmB,CAAC,OAAyB;QACnD,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBACvB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;aAClC;YACD,OAAO,IAAI,iBAAiB,CACxB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,IAAI,CACf,CAAC;SACL;QACD,IAAI,OAAO,YAAY,cAAc,EAAE;YACnC,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACjD;QACD,+EAA+E;QAC/E,mEAAmE;QACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC","sourcesContent":["import { DesignSystem } from '@microsoft/fast-foundation';\nimport {\n MappingConfigs,\n TableColumnEnumBase,\n TableColumnEnumColumnConfig\n} from '../enum-base';\nimport { styles } from '../enum-base/styles';\nimport { template } from '../enum-base/template';\nimport { TableColumnSortOperation, TableColumnValidity } from '../base/types';\nimport { mixinGroupableColumnAPI } from '../mixins/groupable-column';\nimport { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';\nimport { MappingSpinner } from '../../mapping/spinner';\nimport { MappingIcon } from '../../mapping/icon';\nimport { TableColumnIconValidator } from './models/table-column-icon-validator';\nimport type { ColumnInternalsOptions } from '../base/models/column-internals';\nimport { tableColumnIconGroupHeaderViewTag } from './group-header-view';\nimport { tableColumnIconCellViewTag } from './cell-view';\nimport type { Mapping } from '../../mapping/base';\nimport type { MappingConfig } from '../enum-base/models/mapping-config';\nimport { MappingIconConfig } from '../enum-base/models/mapping-icon-config';\nimport { MappingSpinnerConfig } from '../enum-base/models/mapping-spinner-config';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-icon': TableColumnIcon;\n }\n}\n\n/**\n * Table column that maps values to icons / spinners\n */\nexport class TableColumnIcon extends mixinGroupableColumnAPI(\n mixinFractionalWidthColumnAPI(\n TableColumnEnumBase<\n TableColumnEnumColumnConfig,\n TableColumnIconValidator\n >\n )\n) {\n public override createValidator(): TableColumnIconValidator {\n return new TableColumnIconValidator(this.columnInternals);\n }\n\n public override get validity(): TableColumnValidity {\n return this.validator.getValidity();\n }\n\n protected override getColumnInternalsOptions(): ColumnInternalsOptions {\n return {\n cellRecordFieldNames: ['value'],\n cellViewTag: tableColumnIconCellViewTag,\n groupHeaderViewTag: tableColumnIconGroupHeaderViewTag,\n delegatedEvents: [],\n sortOperation: TableColumnSortOperation.basic\n };\n }\n\n protected override createColumnConfig(\n mappingConfigs: MappingConfigs\n ): TableColumnEnumColumnConfig {\n return {\n mappingConfigs\n };\n }\n\n protected createMappingConfig(mapping: Mapping<unknown>): MappingConfig {\n if (mapping instanceof MappingIcon) {\n if (!mapping.resolvedIcon) {\n throw Error('Unresolved icon');\n }\n return new MappingIconConfig(\n mapping.resolvedIcon,\n mapping.severity,\n mapping.text\n );\n }\n if (mapping instanceof MappingSpinner) {\n return new MappingSpinnerConfig(mapping.text);\n }\n // Getting here would indicate a programming error, b/c validation will prevent\n // this function from running when there is an unsupported mapping.\n throw new Error('Unsupported mapping');\n }\n}\n\nconst nimbleTableColumnIcon = TableColumnIcon.compose({\n baseName: 'table-column-icon',\n template,\n styles\n});\n\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleTableColumnIcon());\nexport const tableColumnIconTag = 'nimble-table-column-icon';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEH,mBAAmB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAuB,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAQlF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,uBAAuB,CACxD,6BAA6B,CACzB,CAAA,mBAGC,CAAA,CACJ,CACJ;IACmB,eAAe;QAC3B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,IAAoB,QAAQ;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAEkB,yBAAyB;QACxC,OAAO;YACH,oBAAoB,EAAE,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,0BAA0B;YACvC,kBAAkB,EAAE,iCAAiC;YACrD,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,wBAAwB,CAAC,KAAK;SAChD,CAAC;IACN,CAAC;IAEkB,kBAAkB,CACjC,cAA8B;QAE9B,OAAO;YACH,cAAc;SACjB,CAAC;IACN,CAAC;IAES,mBAAmB,CAAC,OAAyB;QACnD,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,iBAAiB,CACxB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,IAAI,CACf,CAAC;SACL;QACD,IAAI,OAAO,YAAY,cAAc,EAAE;YACnC,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACjD;QACD,+EAA+E;QAC/E,mEAAmE;QACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC","sourcesContent":["import { DesignSystem } from '@microsoft/fast-foundation';\nimport {\n MappingConfigs,\n TableColumnEnumBase,\n TableColumnEnumColumnConfig\n} from '../enum-base';\nimport { styles } from '../enum-base/styles';\nimport { template } from '../enum-base/template';\nimport { TableColumnSortOperation, TableColumnValidity } from '../base/types';\nimport { mixinGroupableColumnAPI } from '../mixins/groupable-column';\nimport { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';\nimport { MappingSpinner } from '../../mapping/spinner';\nimport { MappingIcon } from '../../mapping/icon';\nimport { TableColumnIconValidator } from './models/table-column-icon-validator';\nimport type { ColumnInternalsOptions } from '../base/models/column-internals';\nimport { tableColumnIconGroupHeaderViewTag } from './group-header-view';\nimport { tableColumnIconCellViewTag } from './cell-view';\nimport type { Mapping } from '../../mapping/base';\nimport type { MappingConfig } from '../enum-base/models/mapping-config';\nimport { MappingIconConfig } from '../enum-base/models/mapping-icon-config';\nimport { MappingSpinnerConfig } from '../enum-base/models/mapping-spinner-config';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-icon': TableColumnIcon;\n }\n}\n\n/**\n * Table column that maps values to icons / spinners\n */\nexport class TableColumnIcon extends mixinGroupableColumnAPI(\n mixinFractionalWidthColumnAPI(\n TableColumnEnumBase<\n TableColumnEnumColumnConfig,\n TableColumnIconValidator\n >\n )\n) {\n public override createValidator(): TableColumnIconValidator {\n return new TableColumnIconValidator(this.columnInternals);\n }\n\n public override get validity(): TableColumnValidity {\n return this.validator.getValidity();\n }\n\n protected override getColumnInternalsOptions(): ColumnInternalsOptions {\n return {\n cellRecordFieldNames: ['value'],\n cellViewTag: tableColumnIconCellViewTag,\n groupHeaderViewTag: tableColumnIconGroupHeaderViewTag,\n delegatedEvents: [],\n sortOperation: TableColumnSortOperation.basic\n };\n }\n\n protected override createColumnConfig(\n mappingConfigs: MappingConfigs\n ): TableColumnEnumColumnConfig {\n return {\n mappingConfigs\n };\n }\n\n protected createMappingConfig(mapping: Mapping<unknown>): MappingConfig {\n if (mapping instanceof MappingIcon) {\n return new MappingIconConfig(\n mapping.resolvedIcon,\n mapping.severity,\n mapping.text\n );\n }\n if (mapping instanceof MappingSpinner) {\n return new MappingSpinnerConfig(mapping.text);\n }\n // Getting here would indicate a programming error, b/c validation will prevent\n // this function from running when there is an unsupported mapping.\n throw new Error('Unsupported mapping');\n }\n}\n\nconst nimbleTableColumnIcon = TableColumnIcon.compose({\n baseName: 'table-column-icon',\n template,\n styles\n});\n\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleTableColumnIcon());\nexport const tableColumnIconTag = 'nimble-table-column-icon';\n"]}
@@ -10,6 +10,7 @@ export declare class TableColumnIconValidator extends TableColumnEnumBaseValidat
10
10
  constructor(columnInternals: ColumnInternals<unknown>);
11
11
  private static isIconMappingElement;
12
12
  private static isSupportedMappingElement;
13
+ private static hasUnresolvedIcon;
13
14
  validate(mappings: Mapping<unknown>[], keyType: MappingKeyType): void;
14
15
  private validateIconNames;
15
16
  private validateNoMissingText;
@@ -20,6 +20,10 @@ export class TableColumnIconValidator extends TableColumnEnumBaseValidator {
20
20
  static isSupportedMappingElement(mapping) {
21
21
  return (mapping instanceof MappingIcon || mapping instanceof MappingSpinner);
22
22
  }
23
+ static hasUnresolvedIcon(mappingIcon) {
24
+ return (typeof mappingIcon.icon === 'string'
25
+ && mappingIcon.resolvedIcon === undefined);
26
+ }
23
27
  validate(mappings, keyType) {
24
28
  super.validate(mappings, keyType);
25
29
  this.validateMappingTypes(mappings);
@@ -29,7 +33,7 @@ export class TableColumnIconValidator extends TableColumnEnumBaseValidator {
29
33
  validateIconNames(mappings) {
30
34
  const invalid = mappings
31
35
  .filter(TableColumnIconValidator.isIconMappingElement)
32
- .some(mappingIcon => mappingIcon.resolvedIcon === undefined);
36
+ .some(TableColumnIconValidator.hasUnresolvedIcon);
33
37
  this.setConditionValue('invalidIconName', invalid);
34
38
  }
35
39
  validateNoMissingText(mappings) {
@@ -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;AAE1D,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,YAAmB,eAAyC;QACxD,KAAK,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAClD,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;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,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;QACjE,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 type { ColumnInternals } from '../../base/models/column-internals';\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(columnInternals: ColumnInternals<unknown>) {\n super(columnInternals, 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 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(mappingIcon => mappingIcon.resolvedIcon === undefined);\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;AAE1D,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,YAAmB,eAAyC;QACxD,KAAK,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAClD,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 type { ColumnInternals } from '../../base/models/column-internals';\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(columnInternals: ColumnInternals<unknown>) {\n super(columnInternals, 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "21.7.1",
3
+ "version": "21.8.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",