@ni/nimble-components 20.0.2 → 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.
- package/dist/all-components-bundle.js +285 -110
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +1500 -1499
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/src/wafer-map/index.d.ts +16 -9
- package/dist/esm/src/wafer-map/modules/computations.d.ts +19 -8
- package/dist/esm/src/wafer-map/modules/data-manager.d.ts +8 -1
- package/dist/esm/src/wafer-map/modules/event-coordinator.d.ts +1 -1
- package/dist/esm/src/wafer-map/modules/hover-handler.d.ts +1 -1
- package/dist/esm/src/wafer-map/modules/prerendering.d.ts +13 -6
- package/dist/esm/src/wafer-map/modules/rendering.d.ts +3 -3
- package/dist/esm/src/wafer-map/modules/wafer-map-update-tracker.d.ts +24 -0
- package/dist/esm/src/wafer-map/modules/zoom-handler.d.ts +2 -2
- package/dist/esm/wafer-map/index.d.ts +16 -9
- package/dist/esm/wafer-map/index.js +67 -41
- package/dist/esm/wafer-map/index.js.map +1 -1
- package/dist/esm/wafer-map/modules/computations.d.ts +19 -8
- package/dist/esm/wafer-map/modules/computations.js +44 -12
- package/dist/esm/wafer-map/modules/computations.js.map +1 -1
- package/dist/esm/wafer-map/modules/data-manager.d.ts +8 -1
- package/dist/esm/wafer-map/modules/data-manager.js +24 -2
- package/dist/esm/wafer-map/modules/data-manager.js.map +1 -1
- package/dist/esm/wafer-map/modules/event-coordinator.d.ts +1 -1
- package/dist/esm/wafer-map/modules/event-coordinator.js +8 -8
- package/dist/esm/wafer-map/modules/event-coordinator.js.map +1 -1
- package/dist/esm/wafer-map/modules/hover-handler.d.ts +1 -1
- package/dist/esm/wafer-map/modules/hover-handler.js +9 -9
- package/dist/esm/wafer-map/modules/hover-handler.js.map +1 -1
- package/dist/esm/wafer-map/modules/prerendering.d.ts +13 -6
- package/dist/esm/wafer-map/modules/prerendering.js +29 -8
- package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
- package/dist/esm/wafer-map/modules/rendering.d.ts +3 -3
- package/dist/esm/wafer-map/modules/rendering.js +15 -13
- package/dist/esm/wafer-map/modules/rendering.js.map +1 -1
- package/dist/esm/wafer-map/modules/wafer-map-update-tracker.d.ts +24 -0
- package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js +77 -0
- package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js.map +1 -0
- package/dist/esm/wafer-map/modules/zoom-handler.d.ts +2 -2
- package/dist/esm/wafer-map/modules/zoom-handler.js +13 -15
- package/dist/esm/wafer-map/modules/zoom-handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computations.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/computations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAa,SAAS,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AAG9E,OAAO,EAAsB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAWhE;;GAEG;AACH,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"computations.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/computations.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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
|
}
|
|
@@ -5,9 +5,9 @@ import { Prerendering } from './prerendering';
|
|
|
5
5
|
*/
|
|
6
6
|
export class DataManager {
|
|
7
7
|
constructor(wafermap) {
|
|
8
|
+
this.wafermap = wafermap;
|
|
8
9
|
this.computations = new Computations(wafermap);
|
|
9
|
-
this.prerendering = new Prerendering(wafermap, this
|
|
10
|
-
this.dataMap = new Map(wafermap.dies.map(die => [`${die.x}_${die.y}`, die]));
|
|
10
|
+
this.prerendering = new Prerendering(wafermap, this);
|
|
11
11
|
}
|
|
12
12
|
get containerDimensions() {
|
|
13
13
|
return this.computations.containerDimensions;
|
|
@@ -39,8 +39,30 @@ export class DataManager {
|
|
|
39
39
|
get diesRenderInfo() {
|
|
40
40
|
return this.prerendering.diesRenderInfo;
|
|
41
41
|
}
|
|
42
|
+
get data() {
|
|
43
|
+
return this.dataMap;
|
|
44
|
+
}
|
|
45
|
+
updateContainerDimensions() {
|
|
46
|
+
this.computations.updateContainerDimensions();
|
|
47
|
+
this.updateDataMap();
|
|
48
|
+
this.updateLabelsFontSize();
|
|
49
|
+
}
|
|
50
|
+
updateScales() {
|
|
51
|
+
this.computations.updateScales();
|
|
52
|
+
this.updateDataMap();
|
|
53
|
+
this.updateLabelsFontSize();
|
|
54
|
+
}
|
|
55
|
+
updateLabelsFontSize() {
|
|
56
|
+
this.prerendering.updateLabelsFontSize();
|
|
57
|
+
}
|
|
58
|
+
updateDiesRenderInfo() {
|
|
59
|
+
this.prerendering.updateDiesRenderInfo();
|
|
60
|
+
}
|
|
42
61
|
getWaferMapDie(point) {
|
|
43
62
|
return this.dataMap.get(`${point.x}_${point.y}`);
|
|
44
63
|
}
|
|
64
|
+
updateDataMap() {
|
|
65
|
+
this.dataMap = new Map(this.wafermap.dies.map(die => [`${die.x}_${die.y}`, die]));
|
|
66
|
+
}
|
|
45
67
|
}
|
|
46
68
|
//# sourceMappingURL=data-manager.js.map
|
|
@@ -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;
|
|
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"}
|
|
@@ -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
|
}
|
|
@@ -12,24 +12,24 @@ export class EventCoordinator {
|
|
|
12
12
|
this.onMouseMove = (event) => {
|
|
13
13
|
this.hoverHandler.mousemove(event);
|
|
14
14
|
};
|
|
15
|
-
this.onMouseOut = (
|
|
16
|
-
this.hoverHandler.mouseout(
|
|
15
|
+
this.onMouseOut = () => {
|
|
16
|
+
this.hoverHandler.mouseout();
|
|
17
17
|
};
|
|
18
18
|
this.zoomHandler = new ZoomHandler(wafermap);
|
|
19
19
|
this.hoverHandler = new HoverHandler(wafermap);
|
|
20
|
-
this.attachEvents();
|
|
21
|
-
}
|
|
22
|
-
detachEvents() {
|
|
23
|
-
this.wafermap.removeEventListener('mousemove', this.onMouseMove);
|
|
24
|
-
this.wafermap.removeEventListener('mouseout', this.onMouseOut);
|
|
25
|
-
this.wafermap.canvas.removeEventListener('wheel', this.onWheelMove);
|
|
26
20
|
}
|
|
27
21
|
attachEvents() {
|
|
22
|
+
this.zoomHandler.createZoomBehavior();
|
|
28
23
|
this.wafermap.addEventListener('mousemove', this.onMouseMove);
|
|
29
24
|
this.wafermap.addEventListener('mouseout', this.onMouseOut);
|
|
30
25
|
this.wafermap.canvas.addEventListener('wheel', this.onWheelMove, {
|
|
31
26
|
passive: false
|
|
32
27
|
});
|
|
33
28
|
}
|
|
29
|
+
detachEvents() {
|
|
30
|
+
this.wafermap.removeEventListener('mousemove', this.onMouseMove);
|
|
31
|
+
this.wafermap.removeEventListener('mouseout', this.onMouseOut);
|
|
32
|
+
this.wafermap.canvas.removeEventListener('wheel', this.onWheelMove);
|
|
33
|
+
}
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=event-coordinator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-coordinator.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/event-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C;;GAEG;AACH,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"event-coordinator.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/event-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAGzB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAoBrC,gBAAW,GAAG,CAAC,KAAY,EAAQ,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC,CAAC;QAEe,gBAAW,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACvD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC;QAEe,eAAU,GAAG,GAAS,EAAE;YACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC,CAAC;QA7BE,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;YAC7D,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;IACP,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;CAaJ"}
|
|
@@ -11,7 +11,7 @@ export class HoverHandler {
|
|
|
11
11
|
x: event.offsetX,
|
|
12
12
|
y: event.offsetY
|
|
13
13
|
};
|
|
14
|
-
if (!this.hoversOverDie(mousePosition)) {
|
|
14
|
+
if (!this.hoversOverDie(this.wafermap, mousePosition)) {
|
|
15
15
|
this.wafermap.hoverDie = undefined;
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
@@ -20,17 +20,17 @@ export class HoverHandler {
|
|
|
20
20
|
mousePosition.x,
|
|
21
21
|
mousePosition.y
|
|
22
22
|
]);
|
|
23
|
-
const dieCoordinates = this.calculateDieCoordinates({
|
|
23
|
+
const dieCoordinates = this.calculateDieCoordinates(this.wafermap, {
|
|
24
24
|
x: invertedPoint[0],
|
|
25
25
|
y: invertedPoint[1]
|
|
26
26
|
});
|
|
27
27
|
this.wafermap.hoverDie = this.wafermap.dataManager.getWaferMapDie(dieCoordinates);
|
|
28
28
|
}
|
|
29
|
-
mouseout(
|
|
29
|
+
mouseout() {
|
|
30
30
|
this.wafermap.hoverDie = undefined;
|
|
31
31
|
}
|
|
32
|
-
calculateDieCoordinates(mousePosition) {
|
|
33
|
-
const axisLocation =
|
|
32
|
+
calculateDieCoordinates(wafermap, mousePosition) {
|
|
33
|
+
const axisLocation = wafermap.quadrant;
|
|
34
34
|
const xRoundFunction = axisLocation === WaferMapQuadrant.bottomLeft
|
|
35
35
|
|| axisLocation === WaferMapQuadrant.topLeft
|
|
36
36
|
? Math.floor
|
|
@@ -40,12 +40,12 @@ export class HoverHandler {
|
|
|
40
40
|
? Math.floor
|
|
41
41
|
: Math.ceil;
|
|
42
42
|
// go to x and y scale to get the x,y values of the die.
|
|
43
|
-
const x = xRoundFunction(
|
|
44
|
-
const y = yRoundFunction(
|
|
43
|
+
const x = xRoundFunction(wafermap.dataManager.invertedHorizontalScale(mousePosition.x - wafermap.dataManager.margin.left));
|
|
44
|
+
const y = yRoundFunction(wafermap.dataManager.invertedVerticalScale(mousePosition.y - wafermap.dataManager.margin.top));
|
|
45
45
|
return { x, y };
|
|
46
46
|
}
|
|
47
|
-
hoversOverDie(mousePosition) {
|
|
48
|
-
const rgba =
|
|
47
|
+
hoversOverDie(wafermap, mousePosition) {
|
|
48
|
+
const rgba = wafermap.canvasContext.getImageData(mousePosition.x, mousePosition.y, 1, 1).data;
|
|
49
49
|
let rgbaSum = 0;
|
|
50
50
|
for (const color of rgba) {
|
|
51
51
|
rgbaSum += color;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/hover-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/hover-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IACnD,SAAS,CAAC,KAAiB;QAC9B,MAAM,aAAa,GAAqB;YACpC,CAAC,EAAE,KAAK,CAAC,OAAO;YAChB,CAAC,EAAE,KAAK,CAAC,OAAO;SACnB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;YACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;YACnC,OAAO;SACV;QACD,sDAAsD;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;YACjD,aAAa,CAAC,CAAC;YACf,aAAa,CAAC,CAAC;SAClB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/D,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YACnB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACtF,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;IACvC,CAAC;IAEO,uBAAuB,CAC3B,QAAkB,EAClB,aAA+B;QAE/B,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACvC,MAAM,cAAc,GAAG,YAAY,KAAK,gBAAgB,CAAC,UAAU;eAC5D,YAAY,KAAK,gBAAgB,CAAC,OAAO;YAC5C,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChB,MAAM,cAAc,GAAG,YAAY,KAAK,gBAAgB,CAAC,OAAO;eACzD,YAAY,KAAK,gBAAgB,CAAC,QAAQ;YAC7C,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChB,wDAAwD;QACxD,MAAM,CAAC,GAAG,cAAc,CACpB,QAAQ,CAAC,WAAW,CAAC,uBAAuB,CACxC,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CACrD,CACJ,CAAC;QACF,MAAM,CAAC,GAAG,cAAc,CACpB,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CACtC,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CACpD,CACJ,CAAC;QACF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa,CACjB,QAAkB,EAClB,aAA+B;QAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAC5C,aAAa,CAAC,CAAC,EACf,aAAa,CAAC,CAAC,EACf,CAAC,EACD,CAAC,CACJ,CAAC,IAAI,CAAC;QACP,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACtB,OAAO,IAAI,KAAK,CAAC;SACpB;QACD,OAAO,OAAO,GAAG,CAAC,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
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
|
|
9
|
-
readonly
|
|
10
|
-
|
|
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,
|
|
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;
|
|
@@ -5,22 +5,43 @@ 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
|
-
constructor(wafermap,
|
|
8
|
+
constructor(wafermap, dataManager) {
|
|
9
|
+
this.wafermap = wafermap;
|
|
10
|
+
this.dataManager = dataManager;
|
|
9
11
|
this.fontSizeFactor = 0.8;
|
|
10
12
|
this.nonHighlightedOpacity = 0.3;
|
|
11
13
|
this.emptyDieColor = 'rgba(218,223,236,1)';
|
|
12
14
|
this.nanDieColor = 'rgba(122,122,122,1)';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
|
|
15
|
+
}
|
|
16
|
+
get labelsFontSize() {
|
|
17
|
+
return this._labelsFontSize;
|
|
18
|
+
}
|
|
19
|
+
get diesRenderInfo() {
|
|
20
|
+
return this._diesRenderInfo;
|
|
21
|
+
}
|
|
22
|
+
updateLabelsFontSize() {
|
|
23
|
+
this._labelsFontSize = this.calculateLabelsFontSize(this.dataManager.dieDimensions, this.wafermap.maxCharacters);
|
|
24
|
+
this.updateDiesRenderInfo();
|
|
25
|
+
}
|
|
26
|
+
updateDiesRenderInfo() {
|
|
27
|
+
this.d3ColorScale = this.createD3ColorScale(this.wafermap.colorScale, this.wafermap.colorScaleMode);
|
|
28
|
+
const margin = this.dataManager.margin;
|
|
29
|
+
const horizontalScale = this.dataManager.horizontalScale;
|
|
30
|
+
const verticalScale = this.dataManager.verticalScale;
|
|
31
|
+
const colorScaleMode = this.wafermap.colorScaleMode;
|
|
32
|
+
const highlightedValues = this.wafermap.highlightedValues;
|
|
33
|
+
const maxCharacters = this.wafermap.maxCharacters;
|
|
34
|
+
const dieLabelsHidden = this.wafermap.dieLabelsHidden;
|
|
35
|
+
const dieLabelsSuffix = this.wafermap.dieLabelsSuffix;
|
|
36
|
+
this._diesRenderInfo = [];
|
|
37
|
+
for (const die of this.wafermap.dies) {
|
|
17
38
|
const scaledX = horizontalScale(die.x) ?? 0;
|
|
18
39
|
const scaledY = verticalScale(die.y) ?? 0;
|
|
19
|
-
this.
|
|
40
|
+
this._diesRenderInfo.push({
|
|
20
41
|
x: scaledX + margin.right,
|
|
21
42
|
y: scaledY + margin.top,
|
|
22
|
-
fillStyle: this.calculateFillStyle(die.value,
|
|
23
|
-
text: this.buildLabel(die.value,
|
|
43
|
+
fillStyle: this.calculateFillStyle(die.value, colorScaleMode, highlightedValues),
|
|
44
|
+
text: this.buildLabel(die.value, maxCharacters, dieLabelsHidden, dieLabelsSuffix)
|
|
24
45
|
});
|
|
25
46
|
}
|
|
26
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerendering.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/prerendering.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"prerendering.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/prerendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@ import type { WaferMap } from '..';
|
|
|
4
4
|
*/
|
|
5
5
|
export declare class RenderingModule {
|
|
6
6
|
private readonly wafermap;
|
|
7
|
-
private
|
|
8
|
-
private readonly
|
|
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;
|
|
@@ -5,14 +5,13 @@ import { HoverDieOpacity } from '../types';
|
|
|
5
5
|
export class RenderingModule {
|
|
6
6
|
constructor(wafermap) {
|
|
7
7
|
this.wafermap = wafermap;
|
|
8
|
-
this.
|
|
9
|
-
this.dimensions = wafermap.dataManager.dieDimensions;
|
|
10
|
-
this.labelFontSize = wafermap.dataManager.labelsFontSize;
|
|
8
|
+
this.minDieDim = 50;
|
|
11
9
|
}
|
|
12
10
|
drawWafer() {
|
|
13
11
|
this.wafermap.canvasContext.save();
|
|
14
12
|
this.clearCanvas();
|
|
15
13
|
this.scaleCanvas();
|
|
14
|
+
this.sortDies();
|
|
16
15
|
this.renderDies();
|
|
17
16
|
this.renderText();
|
|
18
17
|
this.wafermap.canvasContext.restore();
|
|
@@ -40,8 +39,8 @@ export class RenderingModule {
|
|
|
40
39
|
}
|
|
41
40
|
return '';
|
|
42
41
|
}
|
|
43
|
-
|
|
44
|
-
this.dies.sort((a, b) => {
|
|
42
|
+
sortDies() {
|
|
43
|
+
this.dies = this.wafermap.dataManager.diesRenderInfo.sort((a, b) => {
|
|
45
44
|
if (a.fillStyle > b.fillStyle) {
|
|
46
45
|
return 1;
|
|
47
46
|
}
|
|
@@ -50,6 +49,8 @@ export class RenderingModule {
|
|
|
50
49
|
}
|
|
51
50
|
return 0;
|
|
52
51
|
});
|
|
52
|
+
}
|
|
53
|
+
renderDies() {
|
|
53
54
|
let prev;
|
|
54
55
|
for (const die of this.dies) {
|
|
55
56
|
if (!prev) {
|
|
@@ -58,25 +59,26 @@ export class RenderingModule {
|
|
|
58
59
|
if (prev && die.fillStyle !== prev.fillStyle && die.fillStyle) {
|
|
59
60
|
this.wafermap.canvasContext.fillStyle = die.fillStyle;
|
|
60
61
|
}
|
|
61
|
-
this.wafermap.canvasContext.fillRect(die.x, die.y, this.
|
|
62
|
+
this.wafermap.canvasContext.fillRect(die.x, die.y, this.wafermap.dataManager.dieDimensions.width, this.wafermap.dataManager.dieDimensions.height);
|
|
62
63
|
prev = die;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
renderText() {
|
|
66
|
-
const dieSize = this.
|
|
67
|
-
* this.
|
|
67
|
+
const dieSize = this.wafermap.dataManager.dieDimensions.width
|
|
68
|
+
* this.wafermap.dataManager.dieDimensions.height
|
|
68
69
|
* (this.wafermap.transform.k || 1);
|
|
69
|
-
const fontsize = this.
|
|
70
|
+
const fontsize = this.wafermap.dataManager.labelsFontSize;
|
|
70
71
|
this.wafermap.canvasContext.font = `${fontsize.toString()}px sans-serif`;
|
|
71
72
|
this.wafermap.canvasContext.fillStyle = '#ffffff';
|
|
72
73
|
this.wafermap.canvasContext.textAlign = 'center';
|
|
73
74
|
this.wafermap.canvasContext.lineCap = 'butt';
|
|
74
75
|
const approxTextHeight = this.wafermap.canvasContext.measureText('M');
|
|
75
|
-
|
|
76
|
+
const dieDimensions = this.wafermap.dataManager.dieDimensions;
|
|
77
|
+
if (dieSize >= this.minDieDim) {
|
|
76
78
|
for (const die of this.dies) {
|
|
77
|
-
this.wafermap.canvasContext.fillText(die.text, die.x +
|
|
78
|
-
+
|
|
79
|
-
+ approxTextHeight.width / 2,
|
|
79
|
+
this.wafermap.canvasContext.fillText(die.text, die.x + dieDimensions.width / 2, die.y
|
|
80
|
+
+ dieDimensions.height / 2
|
|
81
|
+
+ approxTextHeight.width / 2, dieDimensions.width - (dieDimensions.width / 100) * 20);
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/rendering.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { DOM } from '@microsoft/fast-element';
|
|
2
|
+
import { UpdateTracker } from '../../utilities/models/update-tracker';
|
|
3
|
+
const trackedItems = [
|
|
4
|
+
'canvasWidth',
|
|
5
|
+
'canvasHeight',
|
|
6
|
+
'quadrant',
|
|
7
|
+
'dies',
|
|
8
|
+
'maxCharacters',
|
|
9
|
+
'colorScale',
|
|
10
|
+
'colorScaleMode',
|
|
11
|
+
'highlightedValues',
|
|
12
|
+
'dieLabelsHidden',
|
|
13
|
+
'dieLabelsSuffix',
|
|
14
|
+
'transform',
|
|
15
|
+
'hoverDie'
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Helper class to track what updates are needed to the wafer based on configuration
|
|
19
|
+
* changes.
|
|
20
|
+
*/
|
|
21
|
+
export class WaferMapUpdateTracker extends UpdateTracker {
|
|
22
|
+
constructor(wafermap) {
|
|
23
|
+
super(trackedItems);
|
|
24
|
+
this.wafermap = wafermap;
|
|
25
|
+
this.updateQueued = false;
|
|
26
|
+
}
|
|
27
|
+
get requiresEventsUpdate() {
|
|
28
|
+
return (this.isTracked('canvasWidth')
|
|
29
|
+
|| this.isTracked('canvasHeight')
|
|
30
|
+
|| this.isTracked('quadrant')
|
|
31
|
+
|| this.isTracked('dies')
|
|
32
|
+
|| this.isTracked('maxCharacters')
|
|
33
|
+
|| this.isTracked('colorScale')
|
|
34
|
+
|| this.isTracked('colorScaleMode')
|
|
35
|
+
|| this.isTracked('highlightedValues')
|
|
36
|
+
|| this.isTracked('dieLabelsHidden')
|
|
37
|
+
|| this.isTracked('dieLabelsSuffix')
|
|
38
|
+
|| this.isTracked('transform'));
|
|
39
|
+
}
|
|
40
|
+
get requiresContainerDimensionsUpdate() {
|
|
41
|
+
return this.isTracked('canvasWidth') || this.isTracked('canvasHeight');
|
|
42
|
+
}
|
|
43
|
+
get requiresScalesUpdate() {
|
|
44
|
+
return this.isTracked('quadrant') || this.isTracked('dies');
|
|
45
|
+
}
|
|
46
|
+
get requiresLabelsFontSizeUpdate() {
|
|
47
|
+
return this.isTracked('maxCharacters');
|
|
48
|
+
}
|
|
49
|
+
get requiresDiesRenderInfoUpdate() {
|
|
50
|
+
return (this.isTracked('colorScale')
|
|
51
|
+
|| this.isTracked('colorScaleMode')
|
|
52
|
+
|| this.isTracked('highlightedValues')
|
|
53
|
+
|| this.isTracked('dieLabelsHidden')
|
|
54
|
+
|| this.isTracked('dieLabelsSuffix'));
|
|
55
|
+
}
|
|
56
|
+
get requiresRenderHoverUpdate() {
|
|
57
|
+
return this.isTracked('hoverDie');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Queues an update using the DOM and until the update is run no other updates are queued.
|
|
61
|
+
* After the update is finished, all the tracked items are reset.
|
|
62
|
+
*/
|
|
63
|
+
queueUpdate() {
|
|
64
|
+
if (!this.wafermap.$fastController.isConnected) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!this.updateQueued) {
|
|
68
|
+
this.updateQueued = true;
|
|
69
|
+
DOM.queueUpdate(() => {
|
|
70
|
+
this.wafermap.update();
|
|
71
|
+
this.untrackAll();
|
|
72
|
+
this.updateQueued = false;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=wafer-map-update-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wafer-map-update-tracker.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/wafer-map-update-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,MAAM,YAAY,GAAG;IACjB,aAAa;IACb,cAAc;IACd,UAAU;IACV,MAAM;IACN,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,UAAU;CACJ,CAAC;AAEX;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAkC;IAEzE,YAAoC,QAAkB;QAClD,KAAK,CAAC,YAAY,CAAC,CAAC;QADY,aAAQ,GAAR,QAAQ,CAAU;QAD9C,iBAAY,GAAG,KAAK,CAAC;IAG7B,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;eAC1B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;eAC9B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;eAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;eACtB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;eAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;eAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;eAChC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;eACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;eACjC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;eACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CACjC,CAAC;IACN,CAAC;IAED,IAAW,iCAAiC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,IAAW,4BAA4B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,4BAA4B;QACnC,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;eACzB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;eAChC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;eACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;eACjC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CACvC,CAAC;IACN,CAAC;IAED,IAAW,yBAAyB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACa,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE;YAC5C,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ"}
|
|
@@ -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
|
|
11
|
+
private zoomBehavior;
|
|
12
12
|
constructor(wafermap: WaferMap);
|
|
13
|
+
createZoomBehavior(): void;
|
|
13
14
|
private rescale;
|
|
14
|
-
private createZoomBehavior;
|
|
15
15
|
private getZoomMax;
|
|
16
16
|
}
|
|
@@ -10,22 +10,9 @@ export class ZoomHandler {
|
|
|
10
10
|
this.minScale = 1.1;
|
|
11
11
|
this.minExtentPoint = [-100, -100];
|
|
12
12
|
this.extentPadding = 100;
|
|
13
|
-
this.zoomBehavior = this.createZoomBehavior();
|
|
14
|
-
this.zoomBehavior(select(this.wafermap.canvas));
|
|
15
|
-
}
|
|
16
|
-
rescale(event) {
|
|
17
|
-
const transform = event.transform;
|
|
18
|
-
if (transform.k === this.minScale) {
|
|
19
|
-
this.zoomTransform = zoomIdentity;
|
|
20
|
-
this.zoomBehavior.transform(select(this.wafermap.canvas), zoomIdentity);
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
this.zoomTransform = transform;
|
|
24
|
-
}
|
|
25
|
-
this.wafermap.transform = this.zoomTransform;
|
|
26
13
|
}
|
|
27
14
|
createZoomBehavior() {
|
|
28
|
-
|
|
15
|
+
this.zoomBehavior = zoom()
|
|
29
16
|
.scaleExtent([
|
|
30
17
|
1.1,
|
|
31
18
|
this.getZoomMax(this.wafermap.canvasWidth * this.wafermap.canvasHeight, this.wafermap.dataManager.containerDimensions.width
|
|
@@ -48,7 +35,18 @@ export class ZoomHandler {
|
|
|
48
35
|
// See: https://github.com/d3/d3-zoom/blob/v3.0.0/README.md#zoom_on
|
|
49
36
|
this.rescale(event);
|
|
50
37
|
});
|
|
51
|
-
|
|
38
|
+
this.zoomBehavior(select(this.wafermap.canvas));
|
|
39
|
+
}
|
|
40
|
+
rescale(event) {
|
|
41
|
+
const transform = event.transform;
|
|
42
|
+
if (transform.k === this.minScale) {
|
|
43
|
+
this.zoomTransform = zoomIdentity;
|
|
44
|
+
this.zoomBehavior.transform(select(this.wafermap.canvas), zoomIdentity);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.zoomTransform = transform;
|
|
48
|
+
}
|
|
49
|
+
this.wafermap.transform = this.zoomTransform;
|
|
52
50
|
}
|
|
53
51
|
getZoomMax(canvasArea, dataArea) {
|
|
54
52
|
return Math.ceil((dataArea / canvasArea) * 100);
|