@ni/nimble-components 24.1.5 → 24.1.7

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 (42) hide show
  1. package/dist/all-components-bundle.js +612 -134
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +3514 -3489
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/combobox/index.d.ts +172 -20
  6. package/dist/esm/combobox/index.js +453 -44
  7. package/dist/esm/combobox/index.js.map +1 -1
  8. package/dist/esm/combobox/models/combobox-form-associated.d.ts +16 -0
  9. package/dist/esm/combobox/models/combobox-form-associated.js +19 -0
  10. package/dist/esm/combobox/models/combobox-form-associated.js.map +1 -0
  11. package/dist/esm/src/combobox/index.d.ts +172 -20
  12. package/dist/esm/src/combobox/models/combobox-form-associated.d.ts +16 -0
  13. package/dist/esm/src/wafer-map/index.d.ts +8 -17
  14. package/dist/esm/src/wafer-map/modules/experimental/computations.d.ts +1 -2
  15. package/dist/esm/src/wafer-map/modules/experimental/data-manager.d.ts +4 -10
  16. package/dist/esm/src/wafer-map/modules/experimental/hover-handler.d.ts +1 -5
  17. package/dist/esm/src/wafer-map/modules/experimental/prerendering.d.ts +18 -0
  18. package/dist/esm/src/wafer-map/modules/experimental/worker-renderer.d.ts +0 -1
  19. package/dist/esm/src/wafer-map/types.d.ts +6 -0
  20. package/dist/esm/wafer-map/index.d.ts +8 -17
  21. package/dist/esm/wafer-map/index.js +35 -24
  22. package/dist/esm/wafer-map/index.js.map +1 -1
  23. package/dist/esm/wafer-map/modules/experimental/computations.d.ts +1 -2
  24. package/dist/esm/wafer-map/modules/experimental/computations.js +1 -4
  25. package/dist/esm/wafer-map/modules/experimental/computations.js.map +1 -1
  26. package/dist/esm/wafer-map/modules/experimental/data-manager.d.ts +4 -10
  27. package/dist/esm/wafer-map/modules/experimental/data-manager.js +8 -26
  28. package/dist/esm/wafer-map/modules/experimental/data-manager.js.map +1 -1
  29. package/dist/esm/wafer-map/modules/experimental/hover-handler.d.ts +1 -5
  30. package/dist/esm/wafer-map/modules/experimental/hover-handler.js +6 -10
  31. package/dist/esm/wafer-map/modules/experimental/hover-handler.js.map +1 -1
  32. package/dist/esm/wafer-map/modules/experimental/prerendering.d.ts +18 -0
  33. package/dist/esm/wafer-map/modules/experimental/prerendering.js +63 -0
  34. package/dist/esm/wafer-map/modules/experimental/prerendering.js.map +1 -0
  35. package/dist/esm/wafer-map/modules/experimental/worker-renderer.d.ts +0 -1
  36. package/dist/esm/wafer-map/modules/experimental/worker-renderer.js +6 -10
  37. package/dist/esm/wafer-map/modules/experimental/worker-renderer.js.map +1 -1
  38. package/dist/esm/wafer-map/modules/hover-handler.js +2 -4
  39. package/dist/esm/wafer-map/modules/hover-handler.js.map +1 -1
  40. package/dist/esm/wafer-map/types.d.ts +6 -0
  41. package/dist/esm/wafer-map/types.js.map +1 -1
  42. package/package.json +1 -1
@@ -6,18 +6,14 @@ export class WorkerRenderer {
6
6
  constructor(wafermap) {
7
7
  this.wafermap = wafermap;
8
8
  }
9
- updateSortedDiesAndDrawWafer() {
10
- // redundant function for backwards compatibility
11
- this.drawWafer();
12
- }
13
9
  drawWafer() {
14
10
  // rendering will be implemented in a future PR
15
11
  this.renderHover();
16
12
  }
17
13
  renderHover() {
18
- this.wafermap.hoverWidth = this.wafermap.dataManager.dieDimensions.width
14
+ this.wafermap.hoverWidth = this.wafermap.experimentalDataManager.dieDimensions.width
19
15
  * this.wafermap.transform.k;
20
- this.wafermap.hoverHeight = this.wafermap.dataManager.dieDimensions.height
16
+ this.wafermap.hoverHeight = this.wafermap.experimentalDataManager.dieDimensions.height
21
17
  * this.wafermap.transform.k;
22
18
  this.wafermap.hoverOpacity = this.wafermap.hoverDie === undefined
23
19
  ? HoverDieOpacity.hide
@@ -26,17 +22,17 @@ export class WorkerRenderer {
26
22
  }
27
23
  calculateHoverTransform() {
28
24
  if (this.wafermap.hoverDie !== undefined) {
29
- const scaledX = this.wafermap.dataManager.horizontalScale(this.wafermap.hoverDie.x);
25
+ const scaledX = this.wafermap.experimentalDataManager.horizontalScale(this.wafermap.hoverDie.x);
30
26
  if (scaledX === undefined) {
31
27
  return '';
32
28
  }
33
- const scaledY = this.wafermap.dataManager.verticalScale(this.wafermap.hoverDie.y);
29
+ const scaledY = this.wafermap.experimentalDataManager.verticalScale(this.wafermap.hoverDie.y);
34
30
  if (scaledY === undefined) {
35
31
  return '';
36
32
  }
37
33
  const transformedPoint = this.wafermap.transform.apply([
38
- scaledX + this.wafermap.dataManager.margin.left,
39
- scaledY + this.wafermap.dataManager.margin.top
34
+ scaledX + this.wafermap.experimentalDataManager.margin.left,
35
+ scaledY + this.wafermap.experimentalDataManager.margin.top
40
36
  ]);
41
37
  return `translate(${transformedPoint[0]}, ${transformedPoint[1]})`;
42
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-renderer.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/worker-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,cAAc;IACvB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEnD,4BAA4B;QAC/B,iDAAiD;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAEM,SAAS;QACZ,+CAA+C;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK;cAClE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM;cACpE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAC7D,CAAC,CAAC,eAAe,CAAC,IAAI;YACtB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAClE,CAAC;IAEO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC3B,CAAC;YACF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,EAAE,CAAC;aACb;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC3B,CAAC;YACF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,EAAE,CAAC;aACb;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnD,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;gBAC/C,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;aACjD,CAAC,CAAC;YACH,OAAO,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;SACtE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ","sourcesContent":["import type { WaferMap } from '../..';\nimport { HoverDieOpacity } from '../../types';\n\n/**\n * Responsible for drawing the dies inside the wafer map, adding dieText and scaling the canvas\n */\nexport class WorkerRenderer {\n public constructor(private readonly wafermap: WaferMap) {}\n\n public updateSortedDiesAndDrawWafer(): void {\n // redundant function for backwards compatibility\n this.drawWafer();\n }\n\n public drawWafer(): void {\n // rendering will be implemented in a future PR\n this.renderHover();\n }\n\n public renderHover(): void {\n this.wafermap.hoverWidth = this.wafermap.dataManager.dieDimensions.width\n * this.wafermap.transform.k;\n this.wafermap.hoverHeight = this.wafermap.dataManager.dieDimensions.height\n * this.wafermap.transform.k;\n this.wafermap.hoverOpacity = this.wafermap.hoverDie === undefined\n ? HoverDieOpacity.hide\n : HoverDieOpacity.show;\n this.wafermap.hoverTransform = this.calculateHoverTransform();\n }\n\n private calculateHoverTransform(): string {\n if (this.wafermap.hoverDie !== undefined) {\n const scaledX = this.wafermap.dataManager.horizontalScale(\n this.wafermap.hoverDie.x\n );\n if (scaledX === undefined) {\n return '';\n }\n const scaledY = this.wafermap.dataManager.verticalScale(\n this.wafermap.hoverDie.y\n );\n if (scaledY === undefined) {\n return '';\n }\n const transformedPoint = this.wafermap.transform.apply([\n scaledX + this.wafermap.dataManager.margin.left,\n scaledY + this.wafermap.dataManager.margin.top\n ]);\n return `translate(${transformedPoint[0]}, ${transformedPoint[1]})`;\n }\n return '';\n }\n}\n"]}
1
+ {"version":3,"file":"worker-renderer.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/worker-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,cAAc;IACvB,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEnD,SAAS;QACZ,+CAA+C;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,aAAa,CAAC,KAAK;cAC9E,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM;cAChF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAC7D,CAAC,CAAC,eAAe,CAAC,IAAI;YACtB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAClE,CAAC;IAEO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CACjE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC3B,CAAC;YACF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,EAAE,CAAC;aACb;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,aAAa,CAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC3B,CAAC;YACF,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,EAAE,CAAC;aACb;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnD,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI;gBAC3D,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG;aAC7D,CAAC,CAAC;YACH,OAAO,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;SACtE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ","sourcesContent":["import type { WaferMap } from '../..';\nimport { HoverDieOpacity } from '../../types';\n\n/**\n * Responsible for drawing the dies inside the wafer map, adding dieText and scaling the canvas\n */\nexport class WorkerRenderer {\n public constructor(private readonly wafermap: WaferMap) {}\n\n public drawWafer(): void {\n // rendering will be implemented in a future PR\n this.renderHover();\n }\n\n public renderHover(): void {\n this.wafermap.hoverWidth = this.wafermap.experimentalDataManager.dieDimensions.width\n * this.wafermap.transform.k;\n this.wafermap.hoverHeight = this.wafermap.experimentalDataManager.dieDimensions.height\n * this.wafermap.transform.k;\n this.wafermap.hoverOpacity = this.wafermap.hoverDie === undefined\n ? HoverDieOpacity.hide\n : HoverDieOpacity.show;\n this.wafermap.hoverTransform = this.calculateHoverTransform();\n }\n\n private calculateHoverTransform(): string {\n if (this.wafermap.hoverDie !== undefined) {\n const scaledX = this.wafermap.experimentalDataManager.horizontalScale(\n this.wafermap.hoverDie.x\n );\n if (scaledX === undefined) {\n return '';\n }\n const scaledY = this.wafermap.experimentalDataManager.verticalScale(\n this.wafermap.hoverDie.y\n );\n if (scaledY === undefined) {\n return '';\n }\n const transformedPoint = this.wafermap.transform.apply([\n scaledX + this.wafermap.experimentalDataManager.margin.left,\n scaledY + this.wafermap.experimentalDataManager.margin.top\n ]);\n return `translate(${transformedPoint[0]}, ${transformedPoint[1]})`;\n }\n return '';\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import { WaferMapOriginLocation } from '../types';
2
- import { DataManager } from './data-manager';
3
2
  /**
4
3
  * HoverHandler deals with user interactions and events like hovering
5
4
  */
@@ -7,7 +6,7 @@ export class HoverHandler {
7
6
  constructor(wafermap) {
8
7
  this.wafermap = wafermap;
9
8
  this.onMouseMove = (event) => {
10
- if (this.wafermap.isExperimentalRenderer()) {
9
+ if (this.wafermap.isExperimentalUpdate()) {
11
10
  return;
12
11
  }
13
12
  const mousePosition = {
@@ -52,8 +51,7 @@ export class HoverHandler {
52
51
  this.wafermap.removeEventListener('mouseout', this.onMouseOut);
53
52
  }
54
53
  calculateDieCoordinates(mousePosition) {
55
- if (!this.wafermap.isExperimentalRenderer()
56
- && this.wafermap.dataManager instanceof DataManager) {
54
+ if (!this.wafermap.isExperimentalUpdate()) {
57
55
  const originLocation = this.wafermap.originLocation;
58
56
  const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft
59
57
  || originLocation === WaferMapOriginLocation.topLeft
@@ -1 +1 @@
1
- {"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/hover-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WaferMap } from '..';\nimport { PointCoordinates, WaferMapOriginLocation } from '../types';\nimport { DataManager } from './data-manager';\n\n/**\n * HoverHandler deals with user interactions and events like hovering\n */\nexport class HoverHandler {\n public constructor(private readonly wafermap: WaferMap) {}\n\n /**\n * @internal\n */\n public connect(): void {\n this.wafermap.addEventListener('mousemove', this.onMouseMove);\n this.wafermap.addEventListener('mouseout', this.onMouseOut);\n }\n\n /**\n * @internal\n */\n public disconnect(): void {\n this.wafermap.removeEventListener('mousemove', this.onMouseMove);\n this.wafermap.removeEventListener('mouseout', this.onMouseOut);\n }\n\n private readonly onMouseMove = (event: MouseEvent): void => {\n if (this.wafermap.isExperimentalRenderer()) {\n return;\n }\n const mousePosition: PointCoordinates = {\n x: event.offsetX,\n y: event.offsetY\n };\n\n if (!this.hoversOverDie(mousePosition)) {\n this.wafermap.hoverDie = undefined;\n return;\n }\n // get original mouse position in case we are in zoom.\n const invertedPoint = this.wafermap.transform.invert([\n mousePosition.x,\n mousePosition.y\n ]);\n\n const dieCoordinates = this.calculateDieCoordinates({\n x: invertedPoint[0],\n y: invertedPoint[1]\n });\n if (dieCoordinates === undefined) {\n this.wafermap.hoverDie = undefined;\n return;\n }\n\n this.wafermap.hoverDie = this.wafermap.dataManager.getWaferMapDie(dieCoordinates);\n };\n\n private readonly onMouseOut = (_event: MouseEvent): void => {\n this.wafermap.hoverDie = undefined;\n };\n\n private calculateDieCoordinates(\n mousePosition: PointCoordinates\n ): PointCoordinates | undefined {\n if (\n !this.wafermap.isExperimentalRenderer()\n && this.wafermap.dataManager instanceof DataManager\n ) {\n const originLocation = this.wafermap.originLocation;\n const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ? Math.floor\n : Math.ceil;\n const yRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ? Math.floor\n : Math.ceil;\n // go to x and y scale to get the x,y values of the die.\n const x = xRoundFunction(\n this.wafermap.dataManager.invertedHorizontalScale(\n mousePosition.x - this.wafermap.dataManager.margin.left\n )\n );\n const y = yRoundFunction(\n this.wafermap.dataManager.invertedVerticalScale(\n mousePosition.y - this.wafermap.dataManager.margin.top\n )\n );\n return { x, y };\n }\n return undefined;\n }\n\n private hoversOverDie(mousePosition: PointCoordinates): boolean {\n const rgba = this.wafermap.canvasContext.getImageData(\n mousePosition.x,\n mousePosition.y,\n 1,\n 1\n ).data;\n let rgbaSum = 0;\n for (const color of rgba) {\n rgbaSum += color;\n }\n return rgbaSum > 0;\n }\n}\n"]}
1
+ {"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../src/wafer-map/modules/hover-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WaferMap } from '..';\nimport { PointCoordinates, WaferMapOriginLocation } from '../types';\n\n/**\n * HoverHandler deals with user interactions and events like hovering\n */\nexport class HoverHandler {\n public constructor(private readonly wafermap: WaferMap) {}\n\n /**\n * @internal\n */\n public connect(): void {\n this.wafermap.addEventListener('mousemove', this.onMouseMove);\n this.wafermap.addEventListener('mouseout', this.onMouseOut);\n }\n\n /**\n * @internal\n */\n public disconnect(): void {\n this.wafermap.removeEventListener('mousemove', this.onMouseMove);\n this.wafermap.removeEventListener('mouseout', this.onMouseOut);\n }\n\n private readonly onMouseMove = (event: MouseEvent): void => {\n if (this.wafermap.isExperimentalUpdate()) {\n return;\n }\n const mousePosition: PointCoordinates = {\n x: event.offsetX,\n y: event.offsetY\n };\n\n if (!this.hoversOverDie(mousePosition)) {\n this.wafermap.hoverDie = undefined;\n return;\n }\n // get original mouse position in case we are in zoom.\n const invertedPoint = this.wafermap.transform.invert([\n mousePosition.x,\n mousePosition.y\n ]);\n\n const dieCoordinates = this.calculateDieCoordinates({\n x: invertedPoint[0],\n y: invertedPoint[1]\n });\n if (dieCoordinates === undefined) {\n this.wafermap.hoverDie = undefined;\n return;\n }\n this.wafermap.hoverDie = this.wafermap.dataManager.getWaferMapDie(dieCoordinates);\n };\n\n private readonly onMouseOut = (_event: MouseEvent): void => {\n this.wafermap.hoverDie = undefined;\n };\n\n private calculateDieCoordinates(\n mousePosition: PointCoordinates\n ): PointCoordinates | undefined {\n if (!this.wafermap.isExperimentalUpdate()) {\n const originLocation = this.wafermap.originLocation;\n const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ? Math.floor\n : Math.ceil;\n const yRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ? Math.floor\n : Math.ceil;\n // go to x and y scale to get the x,y values of the die.\n const x = xRoundFunction(\n this.wafermap.dataManager.invertedHorizontalScale(\n mousePosition.x - this.wafermap.dataManager.margin.left\n )\n );\n const y = yRoundFunction(\n this.wafermap.dataManager.invertedVerticalScale(\n mousePosition.y - this.wafermap.dataManager.margin.top\n )\n );\n return { x, y };\n }\n return undefined;\n }\n\n private hoversOverDie(mousePosition: PointCoordinates): boolean {\n const rgba = this.wafermap.canvasContext.getImageData(\n mousePosition.x,\n mousePosition.y,\n 1,\n 1\n ).data;\n let rgbaSum = 0;\n for (const color of rgba) {\n rgbaSum += color;\n }\n return rgbaSum > 0;\n }\n}\n"]}
@@ -71,3 +71,9 @@ export type WaferRequiredFields = {
71
71
  rowIndex: Int32;
72
72
  value: Float64;
73
73
  };
74
+ interface IColorScaleMarker {
75
+ color: string;
76
+ value: number;
77
+ }
78
+ export type ColorScale = IColorScaleMarker[];
79
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/wafer-map/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;CACf,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAC;AAKX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACN,CAAC;AAKX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import type { Float64, Int32 } from 'apache-arrow';\n\nexport const WaferMapOriginLocation = {\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right',\n topLeft: 'top-left',\n topRight: 'top-right'\n} as const;\n\nexport type WaferMapOriginLocation =\n (typeof WaferMapOriginLocation)[keyof typeof WaferMapOriginLocation];\n\nexport const WaferMapOrientation = {\n top: 'top',\n bottom: 'bottom',\n left: 'left',\n right: 'right'\n} as const;\n\nexport type WaferMapOrientation =\n (typeof WaferMapOrientation)[keyof typeof WaferMapOrientation];\n\nexport const HoverDieOpacity = {\n show: 'show',\n hide: 'hide'\n} as const;\n\nexport type HoverDieOpacity =\n (typeof HoverDieOpacity)[keyof typeof HoverDieOpacity];\n\nexport const WaferMapColorScaleMode = {\n linear: 'linear',\n ordinal: 'ordinal'\n} as const;\n\nexport type WaferMapColorScaleMode =\n (typeof WaferMapColorScaleMode)[keyof typeof WaferMapColorScaleMode];\n\nexport interface WaferMapDie {\n value: string;\n x: number;\n y: number;\n // The metadata field is not used by the wafer-map and is only for optionally storing arbitrary metadata.\n metadata?: unknown;\n tags?: string[];\n}\n\nexport interface HoverDie {\n index: number;\n x: number;\n y: number;\n}\n\nexport interface WaferMapColorScale {\n colors: string[];\n values: string[];\n}\n\nexport interface Dimensions {\n readonly width: number;\n readonly height: number;\n}\n\nexport interface Margin {\n readonly top: number;\n readonly right: number;\n readonly bottom: number;\n readonly left: number;\n}\n\nexport interface DieRenderInfo {\n readonly x: number;\n readonly y: number;\n readonly fillStyle: string;\n readonly text: string;\n}\n\nexport interface PointCoordinates {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface ValidityObject {\n [key: string]: boolean;\n}\nexport interface WaferMapValidity extends ValidityObject {\n readonly invalidGridDimensions: boolean;\n readonly invalidDiesTableSchema: boolean;\n}\n\n// Apache arrow probably should not be using a Record and index types on TypeMap\n// because in strict checking they end up required.\n// See: https://github.com/apache/arrow/issues/12663#issuecomment-1088244575\n// We can work around that issue by using a type alias instead of an interface\n// Where index signatures are looser.\n// See: https://github.com/microsoft/TypeScript/issues/15300#issuecomment-1317901527\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type WaferRequiredFields = {\n colIndex: Int32,\n rowIndex: Int32,\n value: Float64\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/wafer-map/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;CACf,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAC;AAKX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACN,CAAC;AAKX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import type { Float64, Int32 } from 'apache-arrow';\n\nexport const WaferMapOriginLocation = {\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right',\n topLeft: 'top-left',\n topRight: 'top-right'\n} as const;\n\nexport type WaferMapOriginLocation =\n (typeof WaferMapOriginLocation)[keyof typeof WaferMapOriginLocation];\n\nexport const WaferMapOrientation = {\n top: 'top',\n bottom: 'bottom',\n left: 'left',\n right: 'right'\n} as const;\n\nexport type WaferMapOrientation =\n (typeof WaferMapOrientation)[keyof typeof WaferMapOrientation];\n\nexport const HoverDieOpacity = {\n show: 'show',\n hide: 'hide'\n} as const;\n\nexport type HoverDieOpacity =\n (typeof HoverDieOpacity)[keyof typeof HoverDieOpacity];\n\nexport const WaferMapColorScaleMode = {\n linear: 'linear',\n ordinal: 'ordinal'\n} as const;\n\nexport type WaferMapColorScaleMode =\n (typeof WaferMapColorScaleMode)[keyof typeof WaferMapColorScaleMode];\n\nexport interface WaferMapDie {\n value: string;\n x: number;\n y: number;\n // The metadata field is not used by the wafer-map and is only for optionally storing arbitrary metadata.\n metadata?: unknown;\n tags?: string[];\n}\n\nexport interface HoverDie {\n index: number;\n x: number;\n y: number;\n}\n\nexport interface WaferMapColorScale {\n colors: string[];\n values: string[];\n}\n\nexport interface Dimensions {\n readonly width: number;\n readonly height: number;\n}\n\nexport interface Margin {\n readonly top: number;\n readonly right: number;\n readonly bottom: number;\n readonly left: number;\n}\n\nexport interface DieRenderInfo {\n readonly x: number;\n readonly y: number;\n readonly fillStyle: string;\n readonly text: string;\n}\n\nexport interface PointCoordinates {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface ValidityObject {\n [key: string]: boolean;\n}\nexport interface WaferMapValidity extends ValidityObject {\n readonly invalidGridDimensions: boolean;\n readonly invalidDiesTableSchema: boolean;\n}\n\n// Apache arrow probably should not be using a Record and index types on TypeMap\n// because in strict checking they end up required.\n// See: https://github.com/apache/arrow/issues/12663#issuecomment-1088244575\n// We can work around that issue by using a type alias instead of an interface\n// Where index signatures are looser.\n// See: https://github.com/microsoft/TypeScript/issues/15300#issuecomment-1317901527\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type WaferRequiredFields = {\n colIndex: Int32,\n rowIndex: Int32,\n value: Float64\n};\n\ninterface IColorScaleMarker {\n color: string;\n value: number;\n}\n\nexport type ColorScale = IColorScaleMarker[];\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "24.1.5",
3
+ "version": "24.1.7",
4
4
  "description": "Styled web components for the NI Nimble Design System",
5
5
  "scripts": {
6
6
  "build": "npm run generate-icons && npm run generate-workers && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",