@ni/nimble-components 20.0.1 → 20.0.3

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 (45) hide show
  1. package/dist/all-components-bundle.js +290 -112
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +1501 -1500
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/anchor-tabs/index.d.ts +1 -0
  6. package/dist/esm/anchor-tabs/index.js +5 -2
  7. package/dist/esm/anchor-tabs/index.js.map +1 -1
  8. package/dist/esm/src/anchor-tabs/index.d.ts +1 -0
  9. package/dist/esm/src/wafer-map/index.d.ts +16 -9
  10. package/dist/esm/src/wafer-map/modules/computations.d.ts +19 -8
  11. package/dist/esm/src/wafer-map/modules/data-manager.d.ts +8 -1
  12. package/dist/esm/src/wafer-map/modules/event-coordinator.d.ts +1 -1
  13. package/dist/esm/src/wafer-map/modules/hover-handler.d.ts +1 -1
  14. package/dist/esm/src/wafer-map/modules/prerendering.d.ts +13 -6
  15. package/dist/esm/src/wafer-map/modules/rendering.d.ts +3 -3
  16. package/dist/esm/src/wafer-map/modules/wafer-map-update-tracker.d.ts +24 -0
  17. package/dist/esm/src/wafer-map/modules/zoom-handler.d.ts +2 -2
  18. package/dist/esm/wafer-map/index.d.ts +16 -9
  19. package/dist/esm/wafer-map/index.js +67 -41
  20. package/dist/esm/wafer-map/index.js.map +1 -1
  21. package/dist/esm/wafer-map/modules/computations.d.ts +19 -8
  22. package/dist/esm/wafer-map/modules/computations.js +44 -12
  23. package/dist/esm/wafer-map/modules/computations.js.map +1 -1
  24. package/dist/esm/wafer-map/modules/data-manager.d.ts +8 -1
  25. package/dist/esm/wafer-map/modules/data-manager.js +24 -2
  26. package/dist/esm/wafer-map/modules/data-manager.js.map +1 -1
  27. package/dist/esm/wafer-map/modules/event-coordinator.d.ts +1 -1
  28. package/dist/esm/wafer-map/modules/event-coordinator.js +8 -8
  29. package/dist/esm/wafer-map/modules/event-coordinator.js.map +1 -1
  30. package/dist/esm/wafer-map/modules/hover-handler.d.ts +1 -1
  31. package/dist/esm/wafer-map/modules/hover-handler.js +9 -9
  32. package/dist/esm/wafer-map/modules/hover-handler.js.map +1 -1
  33. package/dist/esm/wafer-map/modules/prerendering.d.ts +13 -6
  34. package/dist/esm/wafer-map/modules/prerendering.js +29 -8
  35. package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
  36. package/dist/esm/wafer-map/modules/rendering.d.ts +3 -3
  37. package/dist/esm/wafer-map/modules/rendering.js +15 -13
  38. package/dist/esm/wafer-map/modules/rendering.js.map +1 -1
  39. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.d.ts +24 -0
  40. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js +77 -0
  41. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js.map +1 -0
  42. package/dist/esm/wafer-map/modules/zoom-handler.d.ts +2 -2
  43. package/dist/esm/wafer-map/modules/zoom-handler.js +13 -15
  44. package/dist/esm/wafer-map/modules/zoom-handler.js.map +1 -1
  45. package/package.json +1 -1
@@ -45,6 +45,7 @@ export declare class AnchorTabs extends FoundationElement {
45
45
  */
46
46
  connectedCallback(): void;
47
47
  private readonly isDisabledElement;
48
+ private readonly isHiddenElement;
48
49
  private readonly isFocusableElement;
49
50
  private readonly setTabs;
50
51
  private getTabIds;
@@ -24,8 +24,11 @@ export class AnchorTabs extends FoundationElement {
24
24
  this.isDisabledElement = (el) => {
25
25
  return el.getAttribute('aria-disabled') === 'true';
26
26
  };
27
+ this.isHiddenElement = (el) => {
28
+ return el.hasAttribute('hidden');
29
+ };
27
30
  this.isFocusableElement = (el) => {
28
- return !this.isDisabledElement(el);
31
+ return !this.isDisabledElement(el) && !this.isHiddenElement(el);
29
32
  };
30
33
  this.setTabs = () => {
31
34
  const gridHorizontalProperty = 'gridColumn';
@@ -184,7 +187,7 @@ export class AnchorTabs extends FoundationElement {
184
187
  });
185
188
  }
186
189
  focusFirstOrLast(focusLast) {
187
- const focusableTabs = this.tabs.filter(t => !this.isDisabledElement(t));
190
+ const focusableTabs = this.tabs.filter(t => this.isFocusableElement(t));
188
191
  const focusableIndex = focusLast ? focusableTabs.length - 1 : 0;
189
192
  const index = this.tabs.indexOf(focusableTabs[focusableIndex]);
190
193
  if (index > -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/anchor-tabs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/anchor-tabs/index.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare class AnchorTabs extends FoundationElement {
45
45
  */
46
46
  connectedCallback(): void;
47
47
  private readonly isDisabledElement;
48
+ private readonly isHiddenElement;
48
49
  private readonly isFocusableElement;
49
50
  private readonly setTabs;
50
51
  private getTabIds;
@@ -3,6 +3,7 @@ import { ZoomTransform } from 'd3-zoom';
3
3
  import { DataManager } from './modules/data-manager';
4
4
  import { RenderingModule } from './modules/rendering';
5
5
  import { HoverDieOpacity, WaferMapColorScale, WaferMapColorScaleMode, WaferMapDie, WaferMapOrientation, WaferMapQuadrant } from './types';
6
+ import { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';
6
7
  declare global {
7
8
  interface HTMLElementTagNameMap {
8
9
  'nimble-wafer-map': WaferMap;
@@ -12,6 +13,11 @@ declare global {
12
13
  * A nimble-styled WaferMap
13
14
  */
14
15
  export declare class WaferMap extends FoundationElement {
16
+ /**
17
+ * @internal
18
+ * needs to be initialized before the properties trigger changes
19
+ */
20
+ readonly waferMapUpdateTracker: WaferMapUpdateTracker;
15
21
  quadrant: WaferMapQuadrant;
16
22
  orientation: WaferMapOrientation;
17
23
  maxCharacters: number;
@@ -33,11 +39,11 @@ export declare class WaferMap extends FoundationElement {
33
39
  /**
34
40
  * @internal
35
41
  */
36
- dataManager?: DataManager;
42
+ readonly dataManager: DataManager;
37
43
  /**
38
44
  * @internal
39
45
  */
40
- renderer?: RenderingModule;
46
+ readonly renderer: RenderingModule;
41
47
  /**
42
48
  * @internal
43
49
  */
@@ -77,20 +83,21 @@ export declare class WaferMap extends FoundationElement {
77
83
  highlightedValues: string[];
78
84
  dies: WaferMapDie[];
79
85
  colorScale: WaferMapColorScale;
80
- private eventCoordinator?;
81
- private resizeObserver?;
86
+ private readonly eventCoordinator;
87
+ private readonly resizeObserver;
82
88
  connectedCallback(): void;
83
89
  disconnectedCallback(): void;
84
90
  /**
85
91
  * @internal
92
+ * Update function called when an update is queued.
93
+ * It will check which updates are needed based on which properties have changed.
94
+ * Each update represents a different starting point of the same sequential update flow.
95
+ * The updates snowball one after the other, this function only choses the 'altitude'.
96
+ * The hover does not require an event update, but it's also the last update in the sequence.
86
97
  */
87
- render(): void;
88
- private queueRender;
89
- private queueRenderHover;
90
- private initializeInternalModules;
98
+ update(): void;
91
99
  private createResizeObserver;
92
100
  private quadrantChanged;
93
- private orientationChanged;
94
101
  private maxCharactersChanged;
95
102
  private dieLabelsHiddenChanged;
96
103
  private dieLabelsSuffixChanged;
@@ -5,17 +5,28 @@ import { Dimensions, Margin } from '../types';
5
5
  * Computations calculates and stores different measures which are used in the Wafermap
6
6
  */
7
7
  export declare class Computations {
8
- readonly containerDimensions: Dimensions;
9
- readonly dieDimensions: Dimensions;
10
- readonly radius: number;
11
- readonly margin: Margin;
12
- readonly horizontalScale: ScaleBand<number>;
13
- readonly verticalScale: ScaleBand<number>;
14
- readonly invertedHorizontalScale: ScaleQuantile<number, number>;
15
- readonly invertedVerticalScale: ScaleQuantile<number, number>;
8
+ private readonly wafermap;
9
+ get containerDimensions(): Dimensions;
10
+ get dieDimensions(): Dimensions;
11
+ get radius(): number;
12
+ get margin(): Margin;
13
+ get horizontalScale(): ScaleBand<number>;
14
+ get verticalScale(): ScaleBand<number>;
15
+ get invertedHorizontalScale(): ScaleQuantile<number, number>;
16
+ get invertedVerticalScale(): ScaleQuantile<number, number>;
17
+ private _containerDimensions;
18
+ private _dieDimensions;
19
+ private _radius;
20
+ private _margin;
21
+ private _horizontalScale;
22
+ private _verticalScale;
23
+ private _invertedHorizontalScale;
24
+ private _invertedVerticalScale;
16
25
  private readonly defaultPadding;
17
26
  private readonly baseMarginPercentage;
18
27
  constructor(wafermap: WaferMap);
28
+ updateContainerDimensions(): void;
29
+ updateScales(): void;
19
30
  private calculateGridDimensions;
20
31
  private calculateContainerDimensions;
21
32
  private createHorizontalScale;
@@ -5,6 +5,7 @@ import type { Dimensions, Margin, DieRenderInfo, WaferMapDie, PointCoordinates }
5
5
  * Data Manager uses Computations and Prerendering modules in order and exposes the results
6
6
  */
7
7
  export declare class DataManager {
8
+ private readonly wafermap;
8
9
  get containerDimensions(): Dimensions;
9
10
  get dieDimensions(): Dimensions;
10
11
  get radius(): number;
@@ -15,9 +16,15 @@ export declare class DataManager {
15
16
  get invertedVerticalScale(): ScaleQuantile<number, number>;
16
17
  get labelsFontSize(): number;
17
18
  get diesRenderInfo(): DieRenderInfo[];
19
+ get data(): Map<string, WaferMapDie>;
18
20
  private readonly computations;
19
21
  private readonly prerendering;
20
- private readonly dataMap;
22
+ private dataMap;
21
23
  constructor(wafermap: WaferMap);
24
+ updateContainerDimensions(): void;
25
+ updateScales(): void;
26
+ updateLabelsFontSize(): void;
27
+ updateDiesRenderInfo(): void;
22
28
  getWaferMapDie(point: PointCoordinates): WaferMapDie | undefined;
29
+ private updateDataMap;
23
30
  }
@@ -11,9 +11,9 @@ export declare class EventCoordinator {
11
11
  private readonly zoomHandler;
12
12
  private readonly hoverHandler;
13
13
  constructor(wafermap: WaferMap);
14
+ attachEvents(): void;
14
15
  detachEvents(): void;
15
16
  private readonly onWheelMove;
16
17
  private readonly onMouseMove;
17
18
  private readonly onMouseOut;
18
- private attachEvents;
19
19
  }
@@ -6,7 +6,7 @@ export declare class HoverHandler {
6
6
  private readonly wafermap;
7
7
  constructor(wafermap: WaferMap);
8
8
  mousemove(event: MouseEvent): void;
9
- mouseout(_event: MouseEvent): void;
9
+ mouseout(): void;
10
10
  private calculateDieCoordinates;
11
11
  private hoversOverDie;
12
12
  }
@@ -1,18 +1,25 @@
1
- import { ScaleBand, ScaleLinear, ScaleOrdinal } from 'd3-scale';
2
- import type { Dimensions, Margin, DieRenderInfo } from '../types';
1
+ import { ScaleLinear, ScaleOrdinal } from 'd3-scale';
2
+ import type { DieRenderInfo } from '../types';
3
3
  import type { WaferMap } from '..';
4
+ import type { DataManager } from './data-manager';
4
5
  /**
5
6
  * Prerendering prepares render-ready dies data to be used by the rendering module
6
7
  */
7
8
  export declare class Prerendering {
8
- readonly labelsFontSize: number;
9
- readonly diesRenderInfo: DieRenderInfo[];
10
- readonly d3ColorScale: ScaleOrdinal<string, string> | ScaleLinear<string, string>;
9
+ private readonly wafermap;
10
+ private readonly dataManager;
11
+ get labelsFontSize(): number;
12
+ get diesRenderInfo(): DieRenderInfo[];
13
+ d3ColorScale: ScaleOrdinal<string, string> | ScaleLinear<string, string>;
14
+ private _labelsFontSize;
15
+ private _diesRenderInfo;
11
16
  private readonly fontSizeFactor;
12
17
  private readonly nonHighlightedOpacity;
13
18
  private readonly emptyDieColor;
14
19
  private readonly nanDieColor;
15
- constructor(wafermap: WaferMap, horizontalScale: ScaleBand<number>, verticalScale: ScaleBand<number>, dieDimensions: Readonly<Dimensions>, margin: Readonly<Margin>);
20
+ constructor(wafermap: WaferMap, dataManager: Readonly<DataManager>);
21
+ updateLabelsFontSize(): void;
22
+ updateDiesRenderInfo(): void;
16
23
  private calculateLabelsFontSize;
17
24
  private createD3ColorScale;
18
25
  private dieHasData;
@@ -4,13 +4,13 @@ import type { WaferMap } from '..';
4
4
  */
5
5
  export declare class RenderingModule {
6
6
  private readonly wafermap;
7
- private readonly dies;
8
- private readonly dimensions;
9
- private readonly labelFontSize;
7
+ private dies;
8
+ private readonly minDieDim;
10
9
  constructor(wafermap: WaferMap);
11
10
  drawWafer(): void;
12
11
  renderHover(): void;
13
12
  private calculateHoverTransform;
13
+ private sortDies;
14
14
  private renderDies;
15
15
  private renderText;
16
16
  private clearCanvas;
@@ -0,0 +1,24 @@
1
+ import type { WaferMap } from '..';
2
+ import { UpdateTracker } from '../../utilities/models/update-tracker';
3
+ declare const trackedItems: readonly ["canvasWidth", "canvasHeight", "quadrant", "dies", "maxCharacters", "colorScale", "colorScaleMode", "highlightedValues", "dieLabelsHidden", "dieLabelsSuffix", "transform", "hoverDie"];
4
+ /**
5
+ * Helper class to track what updates are needed to the wafer based on configuration
6
+ * changes.
7
+ */
8
+ export declare class WaferMapUpdateTracker extends UpdateTracker<typeof trackedItems> {
9
+ private readonly wafermap;
10
+ private updateQueued;
11
+ constructor(wafermap: WaferMap);
12
+ get requiresEventsUpdate(): boolean;
13
+ get requiresContainerDimensionsUpdate(): boolean;
14
+ get requiresScalesUpdate(): boolean;
15
+ get requiresLabelsFontSizeUpdate(): boolean;
16
+ get requiresDiesRenderInfoUpdate(): boolean;
17
+ get requiresRenderHoverUpdate(): boolean;
18
+ /**
19
+ * Queues an update using the DOM and until the update is run no other updates are queued.
20
+ * After the update is finished, all the tracked items are reset.
21
+ */
22
+ queueUpdate(): void;
23
+ }
24
+ export {};
@@ -8,9 +8,9 @@ export declare class ZoomHandler {
8
8
  private readonly minScale;
9
9
  private readonly minExtentPoint;
10
10
  private readonly extentPadding;
11
- private readonly zoomBehavior;
11
+ private zoomBehavior;
12
12
  constructor(wafermap: WaferMap);
13
+ createZoomBehavior(): void;
13
14
  private rescale;
14
- private createZoomBehavior;
15
15
  private getZoomMax;
16
16
  }
@@ -3,6 +3,7 @@ import { ZoomTransform } from 'd3-zoom';
3
3
  import { DataManager } from './modules/data-manager';
4
4
  import { RenderingModule } from './modules/rendering';
5
5
  import { HoverDieOpacity, WaferMapColorScale, WaferMapColorScaleMode, WaferMapDie, WaferMapOrientation, WaferMapQuadrant } from './types';
6
+ import { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';
6
7
  declare global {
7
8
  interface HTMLElementTagNameMap {
8
9
  'nimble-wafer-map': WaferMap;
@@ -12,6 +13,11 @@ declare global {
12
13
  * A nimble-styled WaferMap
13
14
  */
14
15
  export declare class WaferMap extends FoundationElement {
16
+ /**
17
+ * @internal
18
+ * needs to be initialized before the properties trigger changes
19
+ */
20
+ readonly waferMapUpdateTracker: WaferMapUpdateTracker;
15
21
  quadrant: WaferMapQuadrant;
16
22
  orientation: WaferMapOrientation;
17
23
  maxCharacters: number;
@@ -33,11 +39,11 @@ export declare class WaferMap extends FoundationElement {
33
39
  /**
34
40
  * @internal
35
41
  */
36
- dataManager?: DataManager;
42
+ readonly dataManager: DataManager;
37
43
  /**
38
44
  * @internal
39
45
  */
40
- renderer?: RenderingModule;
46
+ readonly renderer: RenderingModule;
41
47
  /**
42
48
  * @internal
43
49
  */
@@ -77,20 +83,21 @@ export declare class WaferMap extends FoundationElement {
77
83
  highlightedValues: string[];
78
84
  dies: WaferMapDie[];
79
85
  colorScale: WaferMapColorScale;
80
- private eventCoordinator?;
81
- private resizeObserver?;
86
+ private readonly eventCoordinator;
87
+ private readonly resizeObserver;
82
88
  connectedCallback(): void;
83
89
  disconnectedCallback(): void;
84
90
  /**
85
91
  * @internal
92
+ * Update function called when an update is queued.
93
+ * It will check which updates are needed based on which properties have changed.
94
+ * Each update represents a different starting point of the same sequential update flow.
95
+ * The updates snowball one after the other, this function only choses the 'altitude'.
96
+ * The hover does not require an event update, but it's also the last update in the sequence.
86
97
  */
87
- render(): void;
88
- private queueRender;
89
- private queueRenderHover;
90
- private initializeInternalModules;
98
+ update(): void;
91
99
  private createResizeObserver;
92
100
  private quadrantChanged;
93
- private orientationChanged;
94
101
  private maxCharactersChanged;
95
102
  private dieLabelsHiddenChanged;
96
103
  private dieLabelsSuffixChanged;
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { attr, DOM, nullableNumberConverter, observable } from '@microsoft/fast-element';
2
+ import { attr, nullableNumberConverter, observable } from '@microsoft/fast-element';
3
3
  import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
4
4
  import { zoomIdentity } from 'd3-zoom';
5
5
  import { template } from './template';
@@ -8,18 +8,32 @@ import { DataManager } from './modules/data-manager';
8
8
  import { RenderingModule } from './modules/rendering';
9
9
  import { EventCoordinator } from './modules/event-coordinator';
10
10
  import { HoverDieOpacity, WaferMapColorScaleMode, WaferMapOrientation, WaferMapQuadrant } from './types';
11
+ import { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';
11
12
  /**
12
13
  * A nimble-styled WaferMap
13
14
  */
14
15
  export class WaferMap extends FoundationElement {
15
16
  constructor() {
16
17
  super(...arguments);
18
+ /**
19
+ * @internal
20
+ * needs to be initialized before the properties trigger changes
21
+ */
22
+ this.waferMapUpdateTracker = new WaferMapUpdateTracker(this);
17
23
  this.quadrant = WaferMapQuadrant.topLeft;
18
24
  this.orientation = WaferMapOrientation.top;
19
25
  this.maxCharacters = 4;
20
26
  this.dieLabelsHidden = false;
21
27
  this.dieLabelsSuffix = '';
22
28
  this.colorScaleMode = WaferMapColorScaleMode.linear;
29
+ /**
30
+ * @internal
31
+ */
32
+ this.dataManager = new DataManager(this);
33
+ /**
34
+ * @internal
35
+ */
36
+ this.renderer = new RenderingModule(this);
23
37
  /**
24
38
  * @internal
25
39
  */
@@ -50,13 +64,16 @@ export class WaferMap extends FoundationElement {
50
64
  colors: [],
51
65
  values: []
52
66
  };
67
+ this.eventCoordinator = new EventCoordinator(this);
68
+ this.resizeObserver = this.createResizeObserver();
53
69
  }
54
70
  connectedCallback() {
55
71
  super.connectedCallback();
56
72
  this.canvasContext = this.canvas.getContext('2d', {
57
73
  willReadFrequently: true
58
74
  });
59
- this.resizeObserver = this.createResizeObserver();
75
+ this.resizeObserver.observe(this);
76
+ this.waferMapUpdateTracker.trackAll();
60
77
  }
61
78
  disconnectedCallback() {
62
79
  super.disconnectedCallback();
@@ -64,33 +81,34 @@ export class WaferMap extends FoundationElement {
64
81
  }
65
82
  /**
66
83
  * @internal
84
+ * Update function called when an update is queued.
85
+ * It will check which updates are needed based on which properties have changed.
86
+ * Each update represents a different starting point of the same sequential update flow.
87
+ * The updates snowball one after the other, this function only choses the 'altitude'.
88
+ * The hover does not require an event update, but it's also the last update in the sequence.
67
89
  */
68
- render() {
69
- this.renderQueued = false;
70
- this.initializeInternalModules();
71
- this.renderer?.drawWafer();
72
- }
73
- queueRender() {
74
- if (!this.$fastController.isConnected) {
75
- return;
90
+ update() {
91
+ if (this.waferMapUpdateTracker.requiresEventsUpdate) {
92
+ this.eventCoordinator.detachEvents();
93
+ if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {
94
+ this.dataManager.updateContainerDimensions();
95
+ }
96
+ else if (this.waferMapUpdateTracker.requiresScalesUpdate) {
97
+ this.dataManager.updateScales();
98
+ }
99
+ else if (this.waferMapUpdateTracker.requiresLabelsFontSizeUpdate) {
100
+ this.dataManager.updateLabelsFontSize();
101
+ }
102
+ else if (this.waferMapUpdateTracker.requiresDiesRenderInfoUpdate) {
103
+ this.dataManager.updateDiesRenderInfo();
104
+ }
105
+ this.renderer.drawWafer();
106
+ this.eventCoordinator.attachEvents();
76
107
  }
77
- if (!this.renderQueued) {
78
- this.renderQueued = true;
79
- DOM.queueUpdate(() => this.render());
108
+ else if (this.waferMapUpdateTracker.requiresRenderHoverUpdate) {
109
+ this.renderer.renderHover();
80
110
  }
81
111
  }
82
- queueRenderHover() {
83
- if (!this.$fastController.isConnected) {
84
- return;
85
- }
86
- DOM.queueUpdate(() => this.renderer?.renderHover());
87
- }
88
- initializeInternalModules() {
89
- this.eventCoordinator?.detachEvents();
90
- this.dataManager = new DataManager(this);
91
- this.renderer = new RenderingModule(this);
92
- this.eventCoordinator = new EventCoordinator(this);
93
- }
94
112
  createResizeObserver() {
95
113
  const resizeObserver = new ResizeObserver(entries => {
96
114
  const entry = entries[0];
@@ -105,48 +123,56 @@ export class WaferMap extends FoundationElement {
105
123
  this.canvasWidth = width;
106
124
  this.canvasHeight = height;
107
125
  });
108
- resizeObserver.observe(this);
109
126
  return resizeObserver;
110
127
  }
111
128
  quadrantChanged() {
112
- this.queueRender();
113
- }
114
- orientationChanged() {
115
- this.queueRender();
129
+ this.waferMapUpdateTracker.track('quadrant');
130
+ this.waferMapUpdateTracker.queueUpdate();
116
131
  }
117
132
  maxCharactersChanged() {
118
- this.queueRender();
133
+ this.waferMapUpdateTracker.track('maxCharacters');
134
+ this.waferMapUpdateTracker.queueUpdate();
119
135
  }
120
136
  dieLabelsHiddenChanged() {
121
- this.queueRender();
137
+ this.waferMapUpdateTracker.track('dieLabelsHidden');
138
+ this.waferMapUpdateTracker.queueUpdate();
122
139
  }
123
140
  dieLabelsSuffixChanged() {
124
- this.queueRender();
141
+ this.waferMapUpdateTracker.track('dieLabelsSuffix');
142
+ this.waferMapUpdateTracker.queueUpdate();
125
143
  }
126
144
  colorScaleModeChanged() {
127
- this.queueRender();
145
+ this.waferMapUpdateTracker.track('colorScaleMode');
146
+ this.waferMapUpdateTracker.queueUpdate();
128
147
  }
129
148
  highlightedValuesChanged() {
130
- this.queueRender();
149
+ this.waferMapUpdateTracker.track('highlightedValues');
150
+ this.waferMapUpdateTracker.queueUpdate();
131
151
  }
132
152
  diesChanged() {
133
- this.queueRender();
153
+ this.waferMapUpdateTracker.track('dies');
154
+ this.waferMapUpdateTracker.queueUpdate();
134
155
  }
135
156
  colorScaleChanged() {
136
- this.queueRender();
157
+ this.waferMapUpdateTracker.track('colorScale');
158
+ this.waferMapUpdateTracker.queueUpdate();
137
159
  }
138
160
  transformChanged() {
139
- this.queueRender();
161
+ this.waferMapUpdateTracker.track('transform');
162
+ this.waferMapUpdateTracker.queueUpdate();
140
163
  }
141
164
  canvasWidthChanged() {
142
- this.queueRender();
165
+ this.waferMapUpdateTracker.track('canvasWidth');
166
+ this.waferMapUpdateTracker.queueUpdate();
143
167
  }
144
168
  canvasHeightChanged() {
145
- this.queueRender();
169
+ this.waferMapUpdateTracker.track('canvasHeight');
170
+ this.waferMapUpdateTracker.queueUpdate();
146
171
  }
147
172
  hoverDieChanged() {
148
173
  this.$emit('die-hover', { currentDie: this.hoverDie });
149
- this.queueRenderHover();
174
+ this.waferMapUpdateTracker.track('hoverDie');
175
+ this.waferMapUpdateTracker.queueUpdate();
150
176
  }
151
177
  }
152
178
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wafer-map/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wafer-map/index.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,28 @@ import { Dimensions, Margin } from '../types';
5
5
  * Computations calculates and stores different measures which are used in the Wafermap
6
6
  */
7
7
  export declare class Computations {
8
- readonly containerDimensions: Dimensions;
9
- readonly dieDimensions: Dimensions;
10
- readonly radius: number;
11
- readonly margin: Margin;
12
- readonly horizontalScale: ScaleBand<number>;
13
- readonly verticalScale: ScaleBand<number>;
14
- readonly invertedHorizontalScale: ScaleQuantile<number, number>;
15
- readonly invertedVerticalScale: ScaleQuantile<number, number>;
8
+ private readonly wafermap;
9
+ get containerDimensions(): Dimensions;
10
+ get dieDimensions(): Dimensions;
11
+ get radius(): number;
12
+ get margin(): Margin;
13
+ get horizontalScale(): ScaleBand<number>;
14
+ get verticalScale(): ScaleBand<number>;
15
+ get invertedHorizontalScale(): ScaleQuantile<number, number>;
16
+ get invertedVerticalScale(): ScaleQuantile<number, number>;
17
+ private _containerDimensions;
18
+ private _dieDimensions;
19
+ private _radius;
20
+ private _margin;
21
+ private _horizontalScale;
22
+ private _verticalScale;
23
+ private _invertedHorizontalScale;
24
+ private _invertedVerticalScale;
16
25
  private readonly defaultPadding;
17
26
  private readonly baseMarginPercentage;
18
27
  constructor(wafermap: WaferMap);
28
+ updateContainerDimensions(): void;
29
+ updateScales(): void;
19
30
  private calculateGridDimensions;
20
31
  private calculateContainerDimensions;
21
32
  private createHorizontalScale;