@ni/nimble-components 21.10.0 → 21.10.1

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 (69) hide show
  1. package/dist/all-components-bundle.js +27 -27
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +5 -5
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/anchor/types.d.ts +1 -1
  6. package/dist/esm/anchor-tab/index.d.ts +1 -1
  7. package/dist/esm/anchor-tabs/index.d.ts +1 -1
  8. package/dist/esm/banner/types.d.ts +1 -1
  9. package/dist/esm/breadcrumb/types.d.ts +1 -1
  10. package/dist/esm/button/types.d.ts +1 -1
  11. package/dist/esm/drawer/types.d.ts +1 -1
  12. package/dist/esm/icon-base/index.d.ts +1 -1
  13. package/dist/esm/icon-base/types.d.ts +1 -1
  14. package/dist/esm/label-provider/base/index.d.ts +1 -1
  15. package/dist/esm/label-provider/core/label-token-defaults.d.ts +1 -1
  16. package/dist/esm/label-provider/rich-text/label-token-defaults.d.ts +1 -1
  17. package/dist/esm/label-provider/table/label-token-defaults.d.ts +1 -1
  18. package/dist/esm/mapping/base/types.d.ts +2 -2
  19. package/dist/esm/menu-button/types.d.ts +1 -1
  20. package/dist/esm/number-field/types.d.ts +1 -1
  21. package/dist/esm/patterns/button/types.d.ts +2 -2
  22. package/dist/esm/patterns/dialog/types.d.ts +1 -1
  23. package/dist/esm/patterns/dropdown/types.d.ts +2 -2
  24. package/dist/esm/rich-text/editor/testing/types.d.ts +4 -4
  25. package/dist/esm/rich-text/editor/types.d.ts +3 -3
  26. package/dist/esm/rich-text-mention/base/models/mention-validator.d.ts +1 -1
  27. package/dist/esm/rich-text-mention/base/types.d.ts +2 -2
  28. package/dist/esm/select/index.d.ts +1 -1
  29. package/dist/esm/select/types.d.ts +1 -1
  30. package/dist/esm/spinner/types.d.ts +1 -1
  31. package/dist/esm/table/index.js +10 -10
  32. package/dist/esm/table/index.js.map +1 -1
  33. package/dist/esm/table/models/array-to-tree.d.ts +1 -1
  34. package/dist/esm/table/types.d.ts +12 -12
  35. package/dist/esm/table-column/anchor/index.d.ts +1 -1
  36. package/dist/esm/table-column/base/types.d.ts +1 -1
  37. package/dist/esm/table-column/date-text/index.d.ts +1 -1
  38. package/dist/esm/table-column/date-text/types.d.ts +16 -16
  39. package/dist/esm/table-column/duration-text/index.d.ts +1 -1
  40. package/dist/esm/table-column/enum-base/index.d.ts +2 -2
  41. package/dist/esm/table-column/enum-base/types.d.ts +1 -1
  42. package/dist/esm/table-column/mixins/fractional-width-column.d.ts +2 -2
  43. package/dist/esm/table-column/mixins/groupable-column.d.ts +2 -2
  44. package/dist/esm/table-column/number-text/index.d.ts +1 -1
  45. package/dist/esm/table-column/number-text/models/number-text-unit-format.d.ts +1 -1
  46. package/dist/esm/table-column/number-text/types.d.ts +2 -2
  47. package/dist/esm/table-column/text/index.d.ts +1 -1
  48. package/dist/esm/table-column/text-base/cell-view/types.d.ts +1 -1
  49. package/dist/esm/text-area/types.d.ts +1 -1
  50. package/dist/esm/text-field/types.d.ts +1 -1
  51. package/dist/esm/theme-provider/design-token-comments.d.ts +1 -1
  52. package/dist/esm/theme-provider/design-token-names.d.ts +2 -2
  53. package/dist/esm/theme-provider/types.d.ts +1 -1
  54. package/dist/esm/tooltip/types.d.ts +1 -1
  55. package/dist/esm/tree-view/types.d.ts +1 -1
  56. package/dist/esm/utilities/models/tracker.d.ts +1 -1
  57. package/dist/esm/utilities/style/types.d.ts +1 -1
  58. package/dist/esm/utilities/unit-format/decimal-unit-format.d.ts +1 -1
  59. package/dist/esm/utilities/unit-format/default-unit-format.d.ts +1 -1
  60. package/dist/esm/utilities/unit-format/scaled-unit/scaled-unit.d.ts +1 -1
  61. package/dist/esm/utilities/unit-format/scaled-unit-format/manually-translated-scaled-unit-format.d.ts +1 -1
  62. package/dist/esm/wafer-map/modules/computations.js +5 -5
  63. package/dist/esm/wafer-map/modules/computations.js.map +1 -1
  64. package/dist/esm/wafer-map/modules/data-manager.js +5 -5
  65. package/dist/esm/wafer-map/modules/data-manager.js.map +1 -1
  66. package/dist/esm/wafer-map/modules/prerendering.js +6 -6
  67. package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
  68. package/dist/esm/wafer-map/types.d.ts +4 -4
  69. package/package.json +5 -5
@@ -4,27 +4,27 @@ import type { ValidityObject } from '../utilities/models/validator';
4
4
  * TableFieldName describes the type associated with keys within
5
5
  * a table's records.
6
6
  */
7
- export declare type TableFieldName = string;
7
+ export type TableFieldName = string;
8
8
  /**
9
9
  * TableFieldValue describes the type associated with values within
10
10
  * a table's records.
11
11
  */
12
- export declare type TableFieldValue = string | number | boolean | null | undefined;
12
+ export type TableFieldValue = string | number | boolean | null | undefined;
13
13
  /**
14
14
  * TableStringFieldValue describes the type associated with values within
15
15
  * a table's string records.
16
16
  */
17
- export declare type TableStringFieldValue = string | null | undefined;
17
+ export type TableStringFieldValue = string | null | undefined;
18
18
  /**
19
19
  * TableBooleanFieldValue describes the type associated with values within
20
20
  * a table's boolean records.
21
21
  */
22
- export declare type TableBooleanFieldValue = boolean | null | undefined;
22
+ export type TableBooleanFieldValue = boolean | null | undefined;
23
23
  /**
24
24
  * TableNumberFieldValue describes the type associated with values within
25
25
  * a table's number records.
26
26
  */
27
- export declare type TableNumberFieldValue = number | null | undefined;
27
+ export type TableNumberFieldValue = number | null | undefined;
28
28
  /**
29
29
  * TableRecord describes the data structure that backs a single row in a table.
30
30
  * It is made up of fields, which are key/value pairs that have a key of type
@@ -45,13 +45,13 @@ export interface TableNode<TRecord extends TableRecord = TableRecord> {
45
45
  originalIndex: number;
46
46
  clientRecord: TRecord;
47
47
  }
48
- export declare type TableStringField<FieldName extends TableFieldName> = {
48
+ export type TableStringField<FieldName extends TableFieldName> = {
49
49
  [name in FieldName]: TableStringFieldValue;
50
50
  };
51
- export declare type TableBooleanField<FieldName extends TableFieldName> = {
51
+ export type TableBooleanField<FieldName extends TableFieldName> = {
52
52
  [name in FieldName]: TableBooleanFieldValue;
53
53
  };
54
- export declare type TableNumberField<FieldName extends TableFieldName> = {
54
+ export type TableNumberField<FieldName extends TableFieldName> = {
55
55
  [name in FieldName]: TableNumberFieldValue;
56
56
  };
57
57
  export interface TableValidity extends ValidityObject {
@@ -84,7 +84,7 @@ export declare const TableRecordDelayedHierarchyState: {
84
84
  readonly canLoadChildren: "can-load-children";
85
85
  readonly loadingChildren: "loading-children";
86
86
  };
87
- export declare type TableRecordDelayedHierarchyState = (typeof TableRecordDelayedHierarchyState)[keyof typeof TableRecordDelayedHierarchyState];
87
+ export type TableRecordDelayedHierarchyState = (typeof TableRecordDelayedHierarchyState)[keyof typeof TableRecordDelayedHierarchyState];
88
88
  export interface TableActionMenuToggleEventDetail {
89
89
  newState: boolean;
90
90
  oldState: boolean;
@@ -99,7 +99,7 @@ export declare const TableColumnSortDirection: {
99
99
  readonly ascending: "ascending";
100
100
  readonly descending: "descending";
101
101
  };
102
- export declare type TableColumnSortDirection = (typeof TableColumnSortDirection)[keyof typeof TableColumnSortDirection];
102
+ export type TableColumnSortDirection = (typeof TableColumnSortDirection)[keyof typeof TableColumnSortDirection];
103
103
  /**
104
104
  * The selection modes of rows in the table.
105
105
  */
@@ -108,7 +108,7 @@ export declare const TableRowSelectionMode: {
108
108
  readonly single: "single";
109
109
  readonly multiple: "multiple";
110
110
  };
111
- export declare type TableRowSelectionMode = (typeof TableRowSelectionMode)[keyof typeof TableRowSelectionMode];
111
+ export type TableRowSelectionMode = (typeof TableRowSelectionMode)[keyof typeof TableRowSelectionMode];
112
112
  /**
113
113
  * @internal
114
114
  *
@@ -119,7 +119,7 @@ export declare const TableRowSelectionState: {
119
119
  readonly selected: "selected";
120
120
  readonly partiallySelected: "partially-selected";
121
121
  };
122
- export declare type TableRowSelectionState = (typeof TableRowSelectionState)[keyof typeof TableRowSelectionState];
122
+ export type TableRowSelectionState = (typeof TableRowSelectionState)[keyof typeof TableRowSelectionState];
123
123
  /**
124
124
  * @internal
125
125
  *
@@ -2,7 +2,7 @@ import { TableColumn } from '../base';
2
2
  import type { TableStringField } from '../../table/types';
3
3
  import type { AnchorAppearance } from '../../anchor/types';
4
4
  import type { ColumnInternalsOptions } from '../base/models/column-internals';
5
- export declare type TableColumnAnchorCellRecord = TableStringField<'label' | 'href'>;
5
+ export type TableColumnAnchorCellRecord = TableStringField<'label' | 'href'>;
6
6
  export interface TableColumnAnchorColumnConfig {
7
7
  appearance: AnchorAppearance;
8
8
  underlineHidden?: boolean;
@@ -31,7 +31,7 @@ export declare const TableColumnSortOperation: {
31
31
  */
32
32
  readonly localeAwareCaseSensitive: "localeAwareCaseSensitive";
33
33
  };
34
- export declare type TableColumnSortOperation = (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation];
34
+ export type TableColumnSortOperation = (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation];
35
35
  export interface TableColumnValidity extends ValidityObject {
36
36
  }
37
37
  export declare const defaultMinPixelWidth: number;
@@ -4,7 +4,7 @@ import { TableColumnValidity } from '../base/types';
4
4
  import type { ColumnInternalsOptions } from '../base/models/column-internals';
5
5
  import { DateTextFormat, LocaleMatcherAlgorithm, EraFormat, YearFormat, DayFormat, HourFormat, MinuteFormat, SecondFormat, TimeZoneNameFormat, FormatMatcherAlgorithm, DayPeriodFormat, DateStyle, TimeStyle, HourCycleFormat, MonthFormat, WeekdayFormat } from './types';
6
6
  import { TableColumnDateTextValidator } from './models/table-column-date-text-validator';
7
- export declare type TableColumnDateTextCellRecord = TableNumberField<'value'>;
7
+ export type TableColumnDateTextCellRecord = TableNumberField<'value'>;
8
8
  export interface TableColumnDateTextColumnConfig {
9
9
  formatter: Intl.DateTimeFormat;
10
10
  }
@@ -5,19 +5,19 @@ export declare const DateTextFormat: {
5
5
  readonly default: undefined;
6
6
  readonly custom: "custom";
7
7
  };
8
- export declare type DateTextFormat = (typeof DateTextFormat)[keyof typeof DateTextFormat];
9
- export declare type LocaleMatcherAlgorithm = Intl.DateTimeFormatOptions['localeMatcher'];
10
- export declare type WeekdayFormat = Intl.DateTimeFormatOptions['weekday'];
11
- export declare type EraFormat = Intl.DateTimeFormatOptions['era'];
12
- export declare type YearFormat = Intl.DateTimeFormatOptions['year'];
13
- export declare type MonthFormat = Intl.DateTimeFormatOptions['month'];
14
- export declare type DayFormat = Intl.DateTimeFormatOptions['day'];
15
- export declare type HourFormat = Intl.DateTimeFormatOptions['hour'];
16
- export declare type MinuteFormat = Intl.DateTimeFormatOptions['minute'];
17
- export declare type SecondFormat = Intl.DateTimeFormatOptions['second'];
18
- export declare type TimeZoneNameFormat = Intl.DateTimeFormatOptions['timeZoneName'];
19
- export declare type FormatMatcherAlgorithm = Intl.DateTimeFormatOptions['formatMatcher'];
20
- export declare type DayPeriodFormat = Intl.DateTimeFormatOptions['dayPeriod'];
21
- export declare type DateStyle = Intl.DateTimeFormatOptions['dateStyle'];
22
- export declare type TimeStyle = Intl.DateTimeFormatOptions['timeStyle'];
23
- export declare type HourCycleFormat = Intl.DateTimeFormatOptions['hourCycle'];
8
+ export type DateTextFormat = (typeof DateTextFormat)[keyof typeof DateTextFormat];
9
+ export type LocaleMatcherAlgorithm = Intl.DateTimeFormatOptions['localeMatcher'];
10
+ export type WeekdayFormat = Intl.DateTimeFormatOptions['weekday'];
11
+ export type EraFormat = Intl.DateTimeFormatOptions['era'];
12
+ export type YearFormat = Intl.DateTimeFormatOptions['year'];
13
+ export type MonthFormat = Intl.DateTimeFormatOptions['month'];
14
+ export type DayFormat = Intl.DateTimeFormatOptions['day'];
15
+ export type HourFormat = Intl.DateTimeFormatOptions['hour'];
16
+ export type MinuteFormat = Intl.DateTimeFormatOptions['minute'];
17
+ export type SecondFormat = Intl.DateTimeFormatOptions['second'];
18
+ export type TimeZoneNameFormat = Intl.DateTimeFormatOptions['timeZoneName'];
19
+ export type FormatMatcherAlgorithm = Intl.DateTimeFormatOptions['formatMatcher'];
20
+ export type DayPeriodFormat = Intl.DateTimeFormatOptions['dayPeriod'];
21
+ export type DateStyle = Intl.DateTimeFormatOptions['dateStyle'];
22
+ export type TimeStyle = Intl.DateTimeFormatOptions['timeStyle'];
23
+ export type HourCycleFormat = Intl.DateTimeFormatOptions['hourCycle'];
@@ -2,7 +2,7 @@ import type { TableNumberField } from '../../table/types';
2
2
  import { TableColumnTextBase } from '../text-base';
3
3
  import type { ColumnInternalsOptions } from '../base/models/column-internals';
4
4
  import { DurationFormatter } from './models/duration-formatter';
5
- export declare type TableColumnDurationTextCellRecord = TableNumberField<'value'>;
5
+ export type TableColumnDurationTextCellRecord = TableNumberField<'value'>;
6
6
  export interface TableColumnDurationTextColumnConfig {
7
7
  formatter: DurationFormatter;
8
8
  }
@@ -6,8 +6,8 @@ import type { MappingKeyType } from './types';
6
6
  import type { MappingConfig } from './models/mapping-config';
7
7
  import type { MappingKey } from '../../mapping/base/types';
8
8
  import type { TableColumnEnumBaseValidator } from './models/table-column-enum-base-validator';
9
- export declare type TableColumnEnumCellRecord = TableStringField<'value'> | TableBooleanField<'value'> | TableNumberField<'value'>;
10
- export declare type MappingConfigs = Map<MappingKey, MappingConfig>;
9
+ export type TableColumnEnumCellRecord = TableStringField<'value'> | TableBooleanField<'value'> | TableNumberField<'value'>;
10
+ export type MappingConfigs = Map<MappingKey, MappingConfig>;
11
11
  export interface TableColumnEnumColumnConfig {
12
12
  mappingConfigs: MappingConfigs;
13
13
  }
@@ -7,4 +7,4 @@ export declare const MappingKeyType: {
7
7
  readonly number: "number";
8
8
  readonly boolean: "boolean";
9
9
  };
10
- export declare type MappingKeyType = (typeof MappingKeyType)[keyof typeof MappingKeyType];
10
+ export type MappingKeyType = (typeof MappingKeyType)[keyof typeof MappingKeyType];
@@ -1,6 +1,6 @@
1
1
  import type { TableColumn } from '../base';
2
- declare type SizedTableColumn = Pick<TableColumn, 'columnInternals'>;
3
- declare type SizedTableColumnConstructor = abstract new (...args: any[]) => SizedTableColumn;
2
+ type SizedTableColumn = Pick<TableColumn, 'columnInternals'>;
3
+ type SizedTableColumnConstructor = abstract new (...args: any[]) => SizedTableColumn;
4
4
  export declare function mixinFractionalWidthColumnAPI<TBase extends SizedTableColumnConstructor>(base: TBase): (abstract new (...args: any[]) => {
5
5
  fractionalWidth?: number | null | undefined;
6
6
  minPixelWidth?: number | null | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { TableColumn } from '../base';
2
- declare type GroupableTableColumn = Pick<TableColumn, 'columnInternals'>;
3
- declare type GroupableTableColumnConstructor = abstract new (...args: any[]) => GroupableTableColumn;
2
+ type GroupableTableColumn = Pick<TableColumn, 'columnInternals'>;
3
+ type GroupableTableColumnConstructor = abstract new (...args: any[]) => GroupableTableColumn;
4
4
  export declare function mixinGroupableColumnAPI<TBase extends GroupableTableColumnConstructor>(base: TBase): (abstract new (...args: any[]) => {
5
5
  groupingDisabled: boolean;
6
6
  groupIndex?: number | null | undefined;
@@ -6,7 +6,7 @@ import { NumberTextAlignment, NumberTextFormat } from './types';
6
6
  import type { UnitFormat } from '../../utilities/unit-format/unit-format';
7
7
  import { TableColumnNumberTextValidator } from './models/table-column-number-text-validator';
8
8
  import { TextCellViewBaseAlignment } from '../text-base/cell-view/types';
9
- export declare type TableColumnNumberTextCellRecord = TableNumberField<'value'>;
9
+ export type TableColumnNumberTextCellRecord = TableNumberField<'value'>;
10
10
  export interface TableColumnNumberTextColumnConfig {
11
11
  formatter: UnitFormat;
12
12
  alignment: TextCellViewBaseAlignment;
@@ -5,7 +5,7 @@ export interface NumberTextUnitFormatOptions extends UnitFormatOptions {
5
5
  decimalDigits?: number;
6
6
  decimalMaximumDigits?: number;
7
7
  }
8
- declare type ResolvedNumberTextUnitFormatOptions = NumberTextUnitFormatOptions & Required<UnitFormatOptions>;
8
+ type ResolvedNumberTextUnitFormatOptions = NumberTextUnitFormatOptions & Required<UnitFormatOptions>;
9
9
  /**
10
10
  * Format for numbers (with optional units) in a number-text table column.
11
11
  */
@@ -5,7 +5,7 @@ export declare const NumberTextFormat: {
5
5
  readonly default: undefined;
6
6
  readonly decimal: "decimal";
7
7
  };
8
- export declare type NumberTextFormat = (typeof NumberTextFormat)[keyof typeof NumberTextFormat];
8
+ export type NumberTextFormat = (typeof NumberTextFormat)[keyof typeof NumberTextFormat];
9
9
  /**
10
10
  * The aligment of the value in the number-text table column.
11
11
  * The `default` alignment is determined by the column's `NumberTextFormat`.
@@ -15,4 +15,4 @@ export declare const NumberTextAlignment: {
15
15
  readonly left: "left";
16
16
  readonly right: "right";
17
17
  };
18
- export declare type NumberTextAlignment = (typeof NumberTextAlignment)[keyof typeof NumberTextAlignment];
18
+ export type NumberTextAlignment = (typeof NumberTextAlignment)[keyof typeof NumberTextAlignment];
@@ -1,7 +1,7 @@
1
1
  import type { TableStringField } from '../../table/types';
2
2
  import { TableColumnTextBase } from '../text-base';
3
3
  import type { ColumnInternalsOptions } from '../base/models/column-internals';
4
- export declare type TableColumnTextCellRecord = TableStringField<'value'>;
4
+ export type TableColumnTextCellRecord = TableStringField<'value'>;
5
5
  export interface TableColumnTextColumnConfig {
6
6
  }
7
7
  declare global {
@@ -5,4 +5,4 @@ export declare const TextCellViewBaseAlignment: {
5
5
  readonly left: "left";
6
6
  readonly right: "right";
7
7
  };
8
- export declare type TextCellViewBaseAlignment = (typeof TextCellViewBaseAlignment)[keyof typeof TextCellViewBaseAlignment];
8
+ export type TextCellViewBaseAlignment = (typeof TextCellViewBaseAlignment)[keyof typeof TextCellViewBaseAlignment];
@@ -4,4 +4,4 @@ export declare const TextAreaAppearance: {
4
4
  readonly outline: "outline";
5
5
  readonly block: "block";
6
6
  };
7
- export declare type TextAreaAppearance = (typeof TextAreaAppearance)[keyof typeof TextAreaAppearance];
7
+ export type TextAreaAppearance = (typeof TextAreaAppearance)[keyof typeof TextAreaAppearance];
@@ -12,4 +12,4 @@ export declare const TextFieldAppearance: {
12
12
  readonly block: "block";
13
13
  readonly frameless: "frameless";
14
14
  };
15
- export declare type TextFieldAppearance = (typeof TextFieldAppearance)[keyof typeof TextFieldAppearance];
15
+ export type TextFieldAppearance = (typeof TextFieldAppearance)[keyof typeof TextFieldAppearance];
@@ -1,5 +1,5 @@
1
1
  import type * as TokensNamespace from './design-tokens';
2
- declare type TokenName = keyof typeof TokensNamespace;
2
+ type TokenName = keyof typeof TokensNamespace;
3
3
  export declare const comments: {
4
4
  readonly [key in TokenName]: string | null;
5
5
  };
@@ -3,7 +3,7 @@
3
3
  * See: https://github.com/ni/nimble/blob/main/packages/nimble-components/CONTRIBUTING.md#token-naming
4
4
  */
5
5
  import type * as TokensNamespace from './design-tokens';
6
- declare type TokenName = keyof typeof TokensNamespace;
6
+ type TokenName = keyof typeof TokensNamespace;
7
7
  export declare const tokenNames: {
8
8
  readonly [key in TokenName]: string;
9
9
  };
@@ -14,6 +14,6 @@ export declare const scssPropertySetterMarkdown: (tokenName: string, cssProperty
14
14
  export declare const scssInternalPropertyFromTokenName: (tokenName: string) => string;
15
15
  export declare const scssInternalPropertySetterMarkdown: (tokenName: string, property: string) => string;
16
16
  declare const tokenSuffixes: readonly ["RgbPartialColor", "FontColor", "FontLineHeight", "FontWeight", "FontSize", "TextTransform", "FontFamily", "BoxShadow", "MaxHeight", "MinWidth", "Font", "Size", "Width", "Height", "Delay", "Padding", "Color"];
17
- export declare type TokenSuffix = (typeof tokenSuffixes)[number];
17
+ export type TokenSuffix = (typeof tokenSuffixes)[number];
18
18
  export declare const suffixFromTokenName: (tokenName: string) => TokenSuffix | undefined;
19
19
  export {};
@@ -3,4 +3,4 @@ export declare const Theme: {
3
3
  readonly dark: "dark";
4
4
  readonly color: "color";
5
5
  };
6
- export declare type Theme = (typeof Theme)[keyof typeof Theme];
6
+ export type Theme = (typeof Theme)[keyof typeof Theme];
@@ -7,4 +7,4 @@ export declare const TooltipSeverity: {
7
7
  readonly error: "error";
8
8
  readonly information: "information";
9
9
  };
10
- export declare type TooltipSeverity = (typeof TooltipSeverity)[keyof typeof TooltipSeverity];
10
+ export type TooltipSeverity = (typeof TooltipSeverity)[keyof typeof TooltipSeverity];
@@ -5,4 +5,4 @@ export declare const TreeViewSelectionMode: {
5
5
  readonly leavesOnly: "leaves-only";
6
6
  readonly none: "none";
7
7
  };
8
- export declare type TreeViewSelectionMode = (typeof TreeViewSelectionMode)[keyof typeof TreeViewSelectionMode];
8
+ export type TreeViewSelectionMode = (typeof TreeViewSelectionMode)[keyof typeof TreeViewSelectionMode];
@@ -1,4 +1,4 @@
1
- declare type ObjectFromList<T extends readonly string[]> = {
1
+ type ObjectFromList<T extends readonly string[]> = {
2
2
  [K in T extends readonly (infer U)[] ? U : never]: boolean;
3
3
  };
4
4
  /**
@@ -2,4 +2,4 @@ export declare const ZIndexLevels: {
2
2
  readonly zIndex1: "1";
3
3
  readonly zIndex1000: "1000";
4
4
  };
5
- export declare type ZIndexLevels = (typeof ZIndexLevels)[keyof typeof ZIndexLevels];
5
+ export type ZIndexLevels = (typeof ZIndexLevels)[keyof typeof ZIndexLevels];
@@ -3,7 +3,7 @@ interface DecimalUnitFormatOptions extends UnitFormatOptions {
3
3
  minimumFractionDigits?: number;
4
4
  maximumFractionDigits?: number;
5
5
  }
6
- declare type ResolvedDecimalUnitFormatOptions = Required<DecimalUnitFormatOptions>;
6
+ type ResolvedDecimalUnitFormatOptions = Required<DecimalUnitFormatOptions>;
7
7
  /**
8
8
  * Format for decimal numbers with units.
9
9
  */
@@ -1,7 +1,7 @@
1
1
  import { UnitFormat, UnitFormatOptions } from './unit-format';
2
2
  interface DefaultUnitFormatOptions extends UnitFormatOptions {
3
3
  }
4
- declare type ResolvedDefaultUnitFormatOptions = Required<DefaultUnitFormatOptions>;
4
+ type ResolvedDefaultUnitFormatOptions = Required<DefaultUnitFormatOptions>;
5
5
  /**
6
6
  * Format for numbers with units to show in a tabular form.
7
7
  * Large and tiny numbers are shown exponentially and the rest as decimal.
@@ -3,7 +3,7 @@ export interface ScaledUnitFormatFactoryOptions {
3
3
  readonly locale: string;
4
4
  readonly intlNumberFormatOptions?: Intl.NumberFormatOptions;
5
5
  }
6
- declare type ScaledUnitFormatFactory = (scaledUnitFormatFactoryOptions: ScaledUnitFormatFactoryOptions) => ScaledUnitFormat;
6
+ type ScaledUnitFormatFactory = (scaledUnitFormatFactoryOptions: ScaledUnitFormatFactoryOptions) => ScaledUnitFormat;
7
7
  /**
8
8
  * A unit that represents a scaled version of a base unit.
9
9
  */
@@ -12,7 +12,7 @@ export declare class UnitTranslation {
12
12
  /**
13
13
  * A map of locales of string format "[lang]" or "[lang]-[region]", for example "en" and / or "en-us", to UnitTranslation objects
14
14
  */
15
- export declare type UnitTranslations = ReadonlyMap<string, UnitTranslation>;
15
+ export type UnitTranslations = ReadonlyMap<string, UnitTranslation>;
16
16
  export interface ManuallyTranslatedScaledUnitFormatOptions {
17
17
  /**
18
18
  * Translations for the unit by locale string.
@@ -5,11 +5,6 @@ import { WaferMapOriginLocation } from '../types';
5
5
  * Computations calculates and stores different measures which are used in the Wafermap
6
6
  */
7
7
  export class Computations {
8
- constructor(wafermap) {
9
- this.wafermap = wafermap;
10
- this.defaultPadding = 0;
11
- this.baseMarginPercentage = 0.04;
12
- }
13
8
  get containerDimensions() {
14
9
  return this._containerDimensions;
15
10
  }
@@ -34,6 +29,11 @@ export class Computations {
34
29
  get invertedVerticalScale() {
35
30
  return this._invertedVerticalScale;
36
31
  }
32
+ constructor(wafermap) {
33
+ this.wafermap = wafermap;
34
+ this.defaultPadding = 0;
35
+ this.baseMarginPercentage = 0.04;
36
+ }
37
37
  updateContainerDimensions() {
38
38
  const canvasDimensions = {
39
39
  width: this.wafermap.canvasWidth,
@@ -1 +1 @@
1
- {"version":3,"file":"computations.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/computations.ts"],"names":[],"mappings":"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","sourcesContent":["import { range } from 'd3-array';\nimport { ScaleBand, scaleBand, scaleQuantile, ScaleQuantile } from 'd3-scale';\nimport type { WaferMap } from '..';\nimport type { WaferMapDie } from '../types';\nimport { Dimensions, Margin, WaferMapOriginLocation } from '../types';\n\ninterface GridDimensions {\n origin: {\n x: number,\n y: number\n };\n rows: number;\n cols: number;\n}\n\n/**\n * Computations calculates and stores different measures which are used in the Wafermap\n */\nexport class Computations {\n public get containerDimensions(): Dimensions {\n return this._containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this._dieDimensions;\n }\n\n public get radius(): number {\n return this._radius;\n }\n\n public get margin(): Margin {\n return this._margin;\n }\n\n public get horizontalScale(): ScaleBand<number> {\n return this._horizontalScale;\n }\n\n public get verticalScale(): ScaleBand<number> {\n return this._verticalScale;\n }\n\n public get invertedHorizontalScale(): ScaleQuantile<number, number> {\n return this._invertedHorizontalScale;\n }\n\n public get invertedVerticalScale(): ScaleQuantile<number, number> {\n return this._invertedVerticalScale;\n }\n\n private _containerDimensions!: Dimensions;\n private _dieDimensions!: Dimensions;\n private _radius!: number;\n private _margin!: Margin;\n private _horizontalScale!: ScaleBand<number>;\n private _verticalScale!: ScaleBand<number>;\n private _invertedHorizontalScale!: ScaleQuantile<number, number>;\n private _invertedVerticalScale!: ScaleQuantile<number, number>;\n private readonly defaultPadding = 0;\n private readonly baseMarginPercentage = 0.04;\n\n public constructor(private readonly wafermap: WaferMap) {}\n\n public updateContainerDimensions(): void {\n const canvasDimensions = {\n width: this.wafermap.canvasWidth,\n height: this.wafermap.canvasHeight\n };\n const canvasDiameter = Math.min(\n canvasDimensions.width,\n canvasDimensions.height\n );\n const canvasMargin = {\n top: (canvasDimensions.height - canvasDiameter) / 2,\n right: (canvasDimensions.width - canvasDiameter) / 2,\n bottom: (canvasDimensions.height - canvasDiameter) / 2,\n left: (canvasDimensions.width - canvasDiameter) / 2\n };\n const baseMargin = {\n top: canvasDiameter * this.baseMarginPercentage,\n right: canvasDiameter * this.baseMarginPercentage,\n bottom: canvasDiameter * this.baseMarginPercentage,\n left: canvasDiameter * this.baseMarginPercentage\n };\n this._margin = this.calculateMarginAddition(baseMargin, canvasMargin);\n this._containerDimensions = this.calculateContainerDimensions(\n canvasDimensions,\n this._margin\n );\n const containerDiameter = Math.min(\n this._containerDimensions.width,\n this._containerDimensions.height\n );\n this._radius = containerDiameter / 2;\n this.updateScales();\n }\n\n public updateScales(): void {\n const containerDiameter = Math.min(\n this._containerDimensions.width,\n this._containerDimensions.height\n );\n const gridDimensions = this.gridDimensionsValidAndDefined()\n ? this.calculateGridDimensionsFromBoundingBox()\n : this.calculateGridDimensionsFromDies(this.wafermap.dies);\n // this scale is used for positioning the dies on the canvas\n const originLocation = this.wafermap.originLocation;\n this._horizontalScale = this.createHorizontalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._invertedHorizontalScale = this.createInvertedHorizontalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n // this scale is used for positioning the dies on the canvas\n this._verticalScale = this.createVerticalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._invertedVerticalScale = this.createInvertedVerticalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._dieDimensions = {\n width: this.horizontalScale.bandwidth(),\n height: this.verticalScale.bandwidth()\n };\n }\n\n private gridDimensionsValidAndDefined(): boolean {\n return (\n !this.wafermap.validity.invalidGridDimensions\n && typeof this.wafermap.gridMinX === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n );\n }\n\n private calculateGridDimensionsFromBoundingBox(): GridDimensions {\n const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n if (\n typeof this.wafermap.gridMaxY === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n ) {\n gridDimensions.origin.x = this.wafermap.gridMinX;\n gridDimensions.origin.y = this.wafermap.gridMinY;\n gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;\n gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;\n }\n return gridDimensions;\n }\n\n private calculateGridDimensionsFromDies(\n dies: Readonly<Readonly<WaferMapDie>[]>\n ): GridDimensions {\n if (dies.length === 0 || dies[0] === undefined) {\n return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n }\n\n const minPoint = { x: dies[0].x, y: dies[0].y };\n const maxPoint = { x: dies[0].x, y: dies[0].y };\n\n for (const die of dies) {\n if (die.x < minPoint.x) {\n minPoint.x = die.x;\n }\n if (die.y < minPoint.y) {\n minPoint.y = die.y;\n }\n if (die.x > maxPoint.x) {\n maxPoint.x = die.x;\n }\n if (die.y > maxPoint.y) {\n maxPoint.y = die.y;\n }\n }\n\n return {\n origin: minPoint,\n rows: maxPoint.y - minPoint.y + 1,\n cols: maxPoint.x - minPoint.x + 1\n };\n }\n\n private calculateContainerDimensions(\n canvasDimensions: Dimensions,\n margin: Margin\n ): Dimensions {\n return {\n width: canvasDimensions.width - margin.left - margin.right,\n height: canvasDimensions.height - margin.top - margin.bottom\n };\n }\n\n private createHorizontalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerWidth: number\n ): ScaleBand<number> {\n const scale = scaleBand<number>()\n .domain(range(grid.origin.x, grid.origin.x + grid.cols))\n .paddingInner(0)\n .paddingOuter(0)\n .align(0)\n .round(false);\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ) {\n return scale.range([0, containerWidth]);\n }\n return scale.range([containerWidth, 0]);\n }\n\n private createInvertedHorizontalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerWidth: number\n ): ScaleQuantile<number, number> {\n const scale = scaleQuantile().domain([0, containerWidth]);\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ) {\n return scale.range(range(grid.origin.x, grid.origin.x + grid.cols));\n }\n return scale.range(\n range(grid.origin.x, grid.origin.x + grid.cols).reverse()\n );\n }\n\n private createVerticalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerHeight: number\n ): ScaleBand<number> {\n const scale = scaleBand<number>()\n .domain(range(grid.origin.y, grid.origin.y + grid.rows))\n .paddingInner(this.defaultPadding)\n .paddingOuter(0)\n .align(0)\n .round(false);\n // html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid\n // we need to flip the vertical scale\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ) {\n return scale.range([containerHeight, 0]);\n }\n return scale.range([0, containerHeight]);\n }\n\n private createInvertedVerticalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerHeight: number\n ): ScaleQuantile<number, number> {\n const scale = scaleQuantile().domain([0, containerHeight]);\n // html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid\n // we need to flip the inverted vertical scale\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ) {\n return scale.range(\n range(grid.origin.y, grid.origin.y + grid.rows).reverse()\n );\n }\n return scale.range(range(grid.origin.y, grid.origin.y + grid.rows));\n }\n\n private calculateMarginAddition(\n baseMargin: Margin,\n addedMargin: Margin\n ): Margin {\n return {\n top: baseMargin.top + addedMargin.top,\n right: baseMargin.right + addedMargin.right,\n bottom: baseMargin.bottom + addedMargin.bottom,\n left: baseMargin.left + addedMargin.left\n };\n }\n}\n"]}
1
+ {"version":3,"file":"computations.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/computations.ts"],"names":[],"mappings":"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","sourcesContent":["import { range } from 'd3-array';\nimport { ScaleBand, scaleBand, scaleQuantile, ScaleQuantile } from 'd3-scale';\nimport type { WaferMap } from '..';\nimport type { WaferMapDie } from '../types';\nimport { Dimensions, Margin, WaferMapOriginLocation } from '../types';\n\ninterface GridDimensions {\n origin: {\n x: number,\n y: number\n };\n rows: number;\n cols: number;\n}\n\n/**\n * Computations calculates and stores different measures which are used in the Wafermap\n */\nexport class Computations {\n public get containerDimensions(): Dimensions {\n return this._containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this._dieDimensions;\n }\n\n public get radius(): number {\n return this._radius;\n }\n\n public get margin(): Margin {\n return this._margin;\n }\n\n public get horizontalScale(): ScaleBand<number> {\n return this._horizontalScale;\n }\n\n public get verticalScale(): ScaleBand<number> {\n return this._verticalScale;\n }\n\n public get invertedHorizontalScale(): ScaleQuantile<number, number> {\n return this._invertedHorizontalScale;\n }\n\n public get invertedVerticalScale(): ScaleQuantile<number, number> {\n return this._invertedVerticalScale;\n }\n\n private _containerDimensions!: Dimensions;\n private _dieDimensions!: Dimensions;\n private _radius!: number;\n private _margin!: Margin;\n private _horizontalScale!: ScaleBand<number>;\n private _verticalScale!: ScaleBand<number>;\n private _invertedHorizontalScale!: ScaleQuantile<number, number>;\n private _invertedVerticalScale!: ScaleQuantile<number, number>;\n private readonly defaultPadding = 0;\n private readonly baseMarginPercentage = 0.04;\n\n public constructor(private readonly wafermap: WaferMap) {}\n\n public updateContainerDimensions(): void {\n const canvasDimensions = {\n width: this.wafermap.canvasWidth,\n height: this.wafermap.canvasHeight\n };\n const canvasDiameter = Math.min(\n canvasDimensions.width,\n canvasDimensions.height\n );\n const canvasMargin = {\n top: (canvasDimensions.height - canvasDiameter) / 2,\n right: (canvasDimensions.width - canvasDiameter) / 2,\n bottom: (canvasDimensions.height - canvasDiameter) / 2,\n left: (canvasDimensions.width - canvasDiameter) / 2\n };\n const baseMargin = {\n top: canvasDiameter * this.baseMarginPercentage,\n right: canvasDiameter * this.baseMarginPercentage,\n bottom: canvasDiameter * this.baseMarginPercentage,\n left: canvasDiameter * this.baseMarginPercentage\n };\n this._margin = this.calculateMarginAddition(baseMargin, canvasMargin);\n this._containerDimensions = this.calculateContainerDimensions(\n canvasDimensions,\n this._margin\n );\n const containerDiameter = Math.min(\n this._containerDimensions.width,\n this._containerDimensions.height\n );\n this._radius = containerDiameter / 2;\n this.updateScales();\n }\n\n public updateScales(): void {\n const containerDiameter = Math.min(\n this._containerDimensions.width,\n this._containerDimensions.height\n );\n const gridDimensions = this.gridDimensionsValidAndDefined()\n ? this.calculateGridDimensionsFromBoundingBox()\n : this.calculateGridDimensionsFromDies(this.wafermap.dies);\n // this scale is used for positioning the dies on the canvas\n const originLocation = this.wafermap.originLocation;\n this._horizontalScale = this.createHorizontalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._invertedHorizontalScale = this.createInvertedHorizontalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n // this scale is used for positioning the dies on the canvas\n this._verticalScale = this.createVerticalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._invertedVerticalScale = this.createInvertedVerticalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._dieDimensions = {\n width: this.horizontalScale.bandwidth(),\n height: this.verticalScale.bandwidth()\n };\n }\n\n private gridDimensionsValidAndDefined(): boolean {\n return (\n !this.wafermap.validity.invalidGridDimensions\n && typeof this.wafermap.gridMinX === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n );\n }\n\n private calculateGridDimensionsFromBoundingBox(): GridDimensions {\n const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n if (\n typeof this.wafermap.gridMaxY === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n ) {\n gridDimensions.origin.x = this.wafermap.gridMinX;\n gridDimensions.origin.y = this.wafermap.gridMinY;\n gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;\n gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;\n }\n return gridDimensions;\n }\n\n private calculateGridDimensionsFromDies(\n dies: Readonly<Readonly<WaferMapDie>[]>\n ): GridDimensions {\n if (dies.length === 0 || dies[0] === undefined) {\n return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n }\n\n const minPoint = { x: dies[0].x, y: dies[0].y };\n const maxPoint = { x: dies[0].x, y: dies[0].y };\n\n for (const die of dies) {\n if (die.x < minPoint.x) {\n minPoint.x = die.x;\n }\n if (die.y < minPoint.y) {\n minPoint.y = die.y;\n }\n if (die.x > maxPoint.x) {\n maxPoint.x = die.x;\n }\n if (die.y > maxPoint.y) {\n maxPoint.y = die.y;\n }\n }\n\n return {\n origin: minPoint,\n rows: maxPoint.y - minPoint.y + 1,\n cols: maxPoint.x - minPoint.x + 1\n };\n }\n\n private calculateContainerDimensions(\n canvasDimensions: Dimensions,\n margin: Margin\n ): Dimensions {\n return {\n width: canvasDimensions.width - margin.left - margin.right,\n height: canvasDimensions.height - margin.top - margin.bottom\n };\n }\n\n private createHorizontalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerWidth: number\n ): ScaleBand<number> {\n const scale = scaleBand<number>()\n .domain(range(grid.origin.x, grid.origin.x + grid.cols))\n .paddingInner(0)\n .paddingOuter(0)\n .align(0)\n .round(false);\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ) {\n return scale.range([0, containerWidth]);\n }\n return scale.range([containerWidth, 0]);\n }\n\n private createInvertedHorizontalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerWidth: number\n ): ScaleQuantile<number, number> {\n const scale = scaleQuantile().domain([0, containerWidth]);\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ) {\n return scale.range(range(grid.origin.x, grid.origin.x + grid.cols));\n }\n return scale.range(\n range(grid.origin.x, grid.origin.x + grid.cols).reverse()\n );\n }\n\n private createVerticalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerHeight: number\n ): ScaleBand<number> {\n const scale = scaleBand<number>()\n .domain(range(grid.origin.y, grid.origin.y + grid.rows))\n .paddingInner(this.defaultPadding)\n .paddingOuter(0)\n .align(0)\n .round(false);\n // html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid\n // we need to flip the vertical scale\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ) {\n return scale.range([containerHeight, 0]);\n }\n return scale.range([0, containerHeight]);\n }\n\n private createInvertedVerticalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerHeight: number\n ): ScaleQuantile<number, number> {\n const scale = scaleQuantile().domain([0, containerHeight]);\n // html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid\n // we need to flip the inverted vertical scale\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ) {\n return scale.range(\n range(grid.origin.y, grid.origin.y + grid.rows).reverse()\n );\n }\n return scale.range(range(grid.origin.y, grid.origin.y + grid.rows));\n }\n\n private calculateMarginAddition(\n baseMargin: Margin,\n addedMargin: Margin\n ): Margin {\n return {\n top: baseMargin.top + addedMargin.top,\n right: baseMargin.right + addedMargin.right,\n bottom: baseMargin.bottom + addedMargin.bottom,\n left: baseMargin.left + addedMargin.left\n };\n }\n}\n"]}
@@ -4,11 +4,6 @@ import { Prerendering } from './prerendering';
4
4
  * Data Manager uses Computations and Prerendering modules in order and exposes the results
5
5
  */
6
6
  export class DataManager {
7
- constructor(wafermap) {
8
- this.wafermap = wafermap;
9
- this.computations = new Computations(wafermap);
10
- this.prerendering = new Prerendering(wafermap, this);
11
- }
12
7
  get containerDimensions() {
13
8
  return this.computations.containerDimensions;
14
9
  }
@@ -42,6 +37,11 @@ export class DataManager {
42
37
  get data() {
43
38
  return this.dataMap;
44
39
  }
40
+ constructor(wafermap) {
41
+ this.wafermap = wafermap;
42
+ this.computations = new Computations(wafermap);
43
+ this.prerendering = new Prerendering(wafermap, this);
44
+ }
45
45
  updateContainerDimensions() {
46
46
  this.computations.updateContainerDimensions();
47
47
  this.updateDataMap();
@@ -1 +1 @@
1
- {"version":3,"file":"data-manager.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/data-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;GAEG;AACH,MAAM,OAAO,WAAW;IAiDpB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAnDD,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC;IACrD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAWM,yBAAyB;QAC5B,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,cAAc,CAAC,KAAuB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC5D,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { ScaleBand, ScaleQuantile } from 'd3-scale';\nimport { Computations } from './computations';\nimport { Prerendering } from './prerendering';\nimport type { WaferMap } from '..';\nimport type {\n Dimensions,\n Margin,\n DieRenderInfo,\n WaferMapDie,\n PointCoordinates\n} from '../types';\n\n/**\n * Data Manager uses Computations and Prerendering modules in order and exposes the results\n */\nexport class DataManager {\n public get containerDimensions(): Dimensions {\n return this.computations.containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this.computations.dieDimensions;\n }\n\n public get radius(): number {\n return this.computations.radius;\n }\n\n public get margin(): Margin {\n return this.computations.margin;\n }\n\n public get horizontalScale(): ScaleBand<number> {\n return this.computations.horizontalScale;\n }\n\n public get invertedHorizontalScale(): ScaleQuantile<number, number> {\n return this.computations.invertedHorizontalScale;\n }\n\n public get verticalScale(): ScaleBand<number> {\n return this.computations.verticalScale;\n }\n\n public get invertedVerticalScale(): ScaleQuantile<number, number> {\n return this.computations.invertedVerticalScale;\n }\n\n public get labelsFontSize(): number {\n return this.prerendering.labelsFontSize;\n }\n\n public get diesRenderInfo(): DieRenderInfo[] {\n return this.prerendering.diesRenderInfo;\n }\n\n public get data(): Map<string, WaferMapDie> {\n return this.dataMap;\n }\n\n private readonly computations;\n private readonly prerendering;\n private dataMap!: Map<string, WaferMapDie>;\n\n public constructor(private readonly wafermap: WaferMap) {\n this.computations = new Computations(wafermap);\n this.prerendering = new Prerendering(wafermap, this);\n }\n\n public updateContainerDimensions(): void {\n this.computations.updateContainerDimensions();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateScales(): void {\n this.computations.updateScales();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateLabelsFontSize(): void {\n this.prerendering.updateLabelsFontSize();\n }\n\n public updateDiesRenderInfo(): void {\n this.prerendering.updateDiesRenderInfo();\n }\n\n public getWaferMapDie(point: PointCoordinates): WaferMapDie | undefined {\n return this.dataMap.get(`${point.x}_${point.y}`);\n }\n\n private updateDataMap(): void {\n this.dataMap = new Map(\n this.wafermap.dies.map(die => [`${die.x}_${die.y}`, die])\n );\n }\n}\n"]}
1
+ {"version":3,"file":"data-manager.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/data-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC;IACrD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAMD,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,yBAAyB;QAC5B,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,cAAc,CAAC,KAAuB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC5D,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { ScaleBand, ScaleQuantile } from 'd3-scale';\nimport { Computations } from './computations';\nimport { Prerendering } from './prerendering';\nimport type { WaferMap } from '..';\nimport type {\n Dimensions,\n Margin,\n DieRenderInfo,\n WaferMapDie,\n PointCoordinates\n} from '../types';\n\n/**\n * Data Manager uses Computations and Prerendering modules in order and exposes the results\n */\nexport class DataManager {\n public get containerDimensions(): Dimensions {\n return this.computations.containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this.computations.dieDimensions;\n }\n\n public get radius(): number {\n return this.computations.radius;\n }\n\n public get margin(): Margin {\n return this.computations.margin;\n }\n\n public get horizontalScale(): ScaleBand<number> {\n return this.computations.horizontalScale;\n }\n\n public get invertedHorizontalScale(): ScaleQuantile<number, number> {\n return this.computations.invertedHorizontalScale;\n }\n\n public get verticalScale(): ScaleBand<number> {\n return this.computations.verticalScale;\n }\n\n public get invertedVerticalScale(): ScaleQuantile<number, number> {\n return this.computations.invertedVerticalScale;\n }\n\n public get labelsFontSize(): number {\n return this.prerendering.labelsFontSize;\n }\n\n public get diesRenderInfo(): DieRenderInfo[] {\n return this.prerendering.diesRenderInfo;\n }\n\n public get data(): Map<string, WaferMapDie> {\n return this.dataMap;\n }\n\n private readonly computations;\n private readonly prerendering;\n private dataMap!: Map<string, WaferMapDie>;\n\n public constructor(private readonly wafermap: WaferMap) {\n this.computations = new Computations(wafermap);\n this.prerendering = new Prerendering(wafermap, this);\n }\n\n public updateContainerDimensions(): void {\n this.computations.updateContainerDimensions();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateScales(): void {\n this.computations.updateScales();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateLabelsFontSize(): void {\n this.prerendering.updateLabelsFontSize();\n }\n\n public updateDiesRenderInfo(): void {\n this.prerendering.updateDiesRenderInfo();\n }\n\n public getWaferMapDie(point: PointCoordinates): WaferMapDie | undefined {\n return this.dataMap.get(`${point.x}_${point.y}`);\n }\n\n private updateDataMap(): void {\n this.dataMap = new Map(\n this.wafermap.dies.map(die => [`${die.x}_${die.y}`, die])\n );\n }\n}\n"]}
@@ -5,6 +5,12 @@ import { WaferMapColorScaleMode } from '../types';
5
5
  * Prerendering prepares render-ready dies data to be used by the rendering module
6
6
  */
7
7
  export class Prerendering {
8
+ get labelsFontSize() {
9
+ return this._labelsFontSize;
10
+ }
11
+ get diesRenderInfo() {
12
+ return this._diesRenderInfo;
13
+ }
8
14
  constructor(wafermap, dataManager) {
9
15
  this.wafermap = wafermap;
10
16
  this.dataManager = dataManager;
@@ -13,12 +19,6 @@ export class Prerendering {
13
19
  this.emptyDieColor = 'rgba(218,223,236,1)';
14
20
  this.nanDieColor = 'rgba(122,122,122,1)';
15
21
  }
16
- get labelsFontSize() {
17
- return this._labelsFontSize;
18
- }
19
- get diesRenderInfo() {
20
- return this._diesRenderInfo;
21
- }
22
22
  updateLabelsFontSize() {
23
23
  this._labelsFontSize = this.calculateLabelsFontSize(this.dataManager.dieDimensions, this.wafermap.maxCharacters);
24
24
  this.updateDiesRenderInfo();