@ni/nimble-components 20.2.12 → 20.2.13

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 (27) hide show
  1. package/dist/all-components-bundle.js +127 -6
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +805 -798
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/src/wafer-map/index.d.ts +11 -1
  6. package/dist/esm/src/wafer-map/modules/computations.d.ts +3 -1
  7. package/dist/esm/src/wafer-map/modules/wafer-map-update-tracker.d.ts +1 -1
  8. package/dist/esm/src/wafer-map/modules/wafer-map-validator.d.ts +14 -0
  9. package/dist/esm/src/wafer-map/types.d.ts +6 -0
  10. package/dist/esm/wafer-map/index.d.ts +11 -1
  11. package/dist/esm/wafer-map/index.js +38 -0
  12. package/dist/esm/wafer-map/index.js.map +1 -1
  13. package/dist/esm/wafer-map/modules/computations.d.ts +3 -1
  14. package/dist/esm/wafer-map/modules/computations.js +24 -2
  15. package/dist/esm/wafer-map/modules/computations.js.map +1 -1
  16. package/dist/esm/wafer-map/modules/prerendering.js +8 -2
  17. package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
  18. package/dist/esm/wafer-map/modules/rendering.js +6 -0
  19. package/dist/esm/wafer-map/modules/rendering.js.map +1 -1
  20. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.d.ts +1 -1
  21. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js +14 -1
  22. package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js.map +1 -1
  23. package/dist/esm/wafer-map/modules/wafer-map-validator.d.ts +14 -0
  24. package/dist/esm/wafer-map/modules/wafer-map-validator.js +37 -0
  25. package/dist/esm/wafer-map/modules/wafer-map-validator.js.map +1 -0
  26. package/dist/esm/wafer-map/types.d.ts +6 -0
  27. package/package.json +1 -1
@@ -16288,7 +16288,7 @@
16288
16288
 
16289
16289
  /**
16290
16290
  * Do not edit directly
16291
- * Generated on Wed, 13 Sep 2023 15:21:00 GMT
16291
+ * Generated on Wed, 13 Sep 2023 20:29:49 GMT
16292
16292
  */
16293
16293
 
16294
16294
  const Information100DarkUi = "#a46eff";
@@ -71812,7 +71812,9 @@ img.ProseMirror-separator {
71812
71812
  }
71813
71813
  updateScales() {
71814
71814
  const containerDiameter = Math.min(this._containerDimensions.width, this._containerDimensions.height);
71815
- const gridDimensions = this.calculateGridDimensions(this.wafermap.dies);
71815
+ const gridDimensions = this.gridDimensionsValidAndDefined()
71816
+ ? this.calculateGridDimensionsFromBoundingBox()
71817
+ : this.calculateGridDimensionsFromDies(this.wafermap.dies);
71816
71818
  // this scale is used for positioning the dies on the canvas
71817
71819
  const originLocation = this.wafermap.originLocation;
71818
71820
  this._horizontalScale = this.createHorizontalScale(originLocation, gridDimensions, containerDiameter);
@@ -71825,7 +71827,27 @@ img.ProseMirror-separator {
71825
71827
  height: this.verticalScale.bandwidth()
71826
71828
  };
71827
71829
  }
71828
- calculateGridDimensions(dies) {
71830
+ gridDimensionsValidAndDefined() {
71831
+ return (!this.wafermap.validity.invalidGridDimensions
71832
+ && typeof this.wafermap.gridMinX === 'number'
71833
+ && typeof this.wafermap.gridMinY === 'number'
71834
+ && typeof this.wafermap.gridMaxX === 'number'
71835
+ && typeof this.wafermap.gridMinX === 'number');
71836
+ }
71837
+ calculateGridDimensionsFromBoundingBox() {
71838
+ const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
71839
+ if (typeof this.wafermap.gridMaxY === 'number'
71840
+ && typeof this.wafermap.gridMinY === 'number'
71841
+ && typeof this.wafermap.gridMaxX === 'number'
71842
+ && typeof this.wafermap.gridMinX === 'number') {
71843
+ gridDimensions.origin.x = this.wafermap.gridMinX;
71844
+ gridDimensions.origin.y = this.wafermap.gridMinY;
71845
+ gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;
71846
+ gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;
71847
+ }
71848
+ return gridDimensions;
71849
+ }
71850
+ calculateGridDimensionsFromDies(dies) {
71829
71851
  if (dies.length === 0 || dies[0] === undefined) {
71830
71852
  return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
71831
71853
  }
@@ -71943,8 +71965,14 @@ img.ProseMirror-separator {
71943
71965
  const dieLabelsSuffix = this.wafermap.dieLabelsSuffix;
71944
71966
  this._diesRenderInfo = [];
71945
71967
  for (const die of this.wafermap.dies) {
71946
- const scaledX = horizontalScale(die.x) ?? 0;
71947
- const scaledY = verticalScale(die.y) ?? 0;
71968
+ const scaledX = horizontalScale(die.x);
71969
+ if (scaledX === undefined) {
71970
+ continue;
71971
+ }
71972
+ const scaledY = verticalScale(die.y);
71973
+ if (scaledY === undefined) {
71974
+ continue;
71975
+ }
71948
71976
  this._diesRenderInfo.push({
71949
71977
  x: scaledX + margin.right,
71950
71978
  y: scaledY + margin.top,
@@ -72125,7 +72153,13 @@ img.ProseMirror-separator {
72125
72153
  calculateHoverTransform() {
72126
72154
  if (this.wafermap.hoverDie !== undefined) {
72127
72155
  const scaledX = this.wafermap.dataManager.horizontalScale(this.wafermap.hoverDie.x);
72156
+ if (scaledX === undefined) {
72157
+ return '';
72158
+ }
72128
72159
  const scaledY = this.wafermap.dataManager.verticalScale(this.wafermap.hoverDie.y);
72160
+ if (scaledY === undefined) {
72161
+ return '';
72162
+ }
72129
72163
  const transformedPoint = this.wafermap.transform.apply([
72130
72164
  scaledX + this.wafermap.dataManager.margin.left,
72131
72165
  scaledY + this.wafermap.dataManager.margin.top
@@ -72345,6 +72379,10 @@ img.ProseMirror-separator {
72345
72379
  'canvasWidth',
72346
72380
  'canvasHeight',
72347
72381
  'originLocation',
72382
+ 'gridMinX',
72383
+ 'gridMaxX',
72384
+ 'gridMinY',
72385
+ 'gridMaxY',
72348
72386
  'dies',
72349
72387
  'maxCharacters',
72350
72388
  'colorScale',
@@ -72369,6 +72407,10 @@ img.ProseMirror-separator {
72369
72407
  return (this.isTracked('canvasWidth')
72370
72408
  || this.isTracked('canvasHeight')
72371
72409
  || this.isTracked('originLocation')
72410
+ || this.isTracked('gridMinX')
72411
+ || this.isTracked('gridMaxX')
72412
+ || this.isTracked('gridMinY')
72413
+ || this.isTracked('gridMaxY')
72372
72414
  || this.isTracked('dies')
72373
72415
  || this.isTracked('maxCharacters')
72374
72416
  || this.isTracked('colorScale')
@@ -72382,7 +72424,12 @@ img.ProseMirror-separator {
72382
72424
  return this.isTracked('canvasWidth') || this.isTracked('canvasHeight');
72383
72425
  }
72384
72426
  get requiresScalesUpdate() {
72385
- return this.isTracked('originLocation') || this.isTracked('dies');
72427
+ return (this.isTracked('originLocation')
72428
+ || this.isTracked('gridMinX')
72429
+ || this.isTracked('gridMaxX')
72430
+ || this.isTracked('gridMinY')
72431
+ || this.isTracked('gridMaxY')
72432
+ || this.isTracked('dies'));
72386
72433
  }
72387
72434
  get requiresLabelsFontSizeUpdate() {
72388
72435
  return this.isTracked('maxCharacters');
@@ -72419,6 +72466,43 @@ img.ProseMirror-separator {
72419
72466
  }
72420
72467
  }
72421
72468
 
72469
+ /**
72470
+ * Helper class for the nimble-wafer-map to validate that the wafer maps's grid dimensions
72471
+ * configuration is valid and report which aspects of the configuration are valid or invalid.
72472
+ */
72473
+ class WaferMapValidator {
72474
+ constructor(wafermap) {
72475
+ this.wafermap = wafermap;
72476
+ this.invalidGridDimensions = false;
72477
+ }
72478
+ getValidity() {
72479
+ return {
72480
+ invalidGridDimensions: this.invalidGridDimensions
72481
+ };
72482
+ }
72483
+ isValid() {
72484
+ return Object.values(this.getValidity()).every(x => x === false);
72485
+ }
72486
+ validateGridDimensions() {
72487
+ this.invalidGridDimensions = false;
72488
+ if (typeof this.wafermap.gridMinX === 'undefined'
72489
+ && typeof this.wafermap.gridMaxX === 'undefined'
72490
+ && typeof this.wafermap.gridMinY === 'undefined'
72491
+ && typeof this.wafermap.gridMaxY === 'undefined') {
72492
+ this.invalidGridDimensions = false;
72493
+ }
72494
+ else if (typeof this.wafermap.gridMinX !== 'number'
72495
+ || typeof this.wafermap.gridMaxX !== 'number'
72496
+ || typeof this.wafermap.gridMinY !== 'number'
72497
+ || typeof this.wafermap.gridMaxY !== 'number'
72498
+ || this.wafermap.gridMaxX < this.wafermap.gridMinX
72499
+ || this.wafermap.gridMaxY < this.wafermap.gridMinY) {
72500
+ this.invalidGridDimensions = true;
72501
+ }
72502
+ return !this.invalidGridDimensions;
72503
+ }
72504
+ }
72505
+
72422
72506
  /**
72423
72507
  * A nimble-styled WaferMap
72424
72508
  */
@@ -72431,6 +72515,10 @@ img.ProseMirror-separator {
72431
72515
  */
72432
72516
  this.waferMapUpdateTracker = new WaferMapUpdateTracker(this);
72433
72517
  this.originLocation = WaferMapOriginLocation.bottomLeft;
72518
+ this.gridMinX = undefined;
72519
+ this.gridMaxX = undefined;
72520
+ this.gridMinY = undefined;
72521
+ this.gridMaxY = undefined;
72434
72522
  this.orientation = WaferMapOrientation.top;
72435
72523
  this.maxCharacters = 4;
72436
72524
  this.dieLabelsHidden = false;
@@ -72476,6 +72564,10 @@ img.ProseMirror-separator {
72476
72564
  };
72477
72565
  this.eventCoordinator = new EventCoordinator(this);
72478
72566
  this.resizeObserver = this.createResizeObserver();
72567
+ this.waferMapValidator = new WaferMapValidator(this);
72568
+ }
72569
+ get validity() {
72570
+ return this.waferMapValidator.getValidity();
72479
72571
  }
72480
72572
  connectedCallback() {
72481
72573
  super.connectedCallback();
@@ -72500,6 +72592,7 @@ img.ProseMirror-separator {
72500
72592
  update() {
72501
72593
  if (this.waferMapUpdateTracker.requiresEventsUpdate) {
72502
72594
  this.eventCoordinator.detachEvents();
72595
+ this.waferMapValidator.validateGridDimensions();
72503
72596
  if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {
72504
72597
  this.dataManager.updateContainerDimensions();
72505
72598
  this.renderer.updateSortedDiesAndDrawWafer();
@@ -72545,6 +72638,22 @@ img.ProseMirror-separator {
72545
72638
  this.waferMapUpdateTracker.track('originLocation');
72546
72639
  this.waferMapUpdateTracker.queueUpdate();
72547
72640
  }
72641
+ gridMinXChanged() {
72642
+ this.waferMapUpdateTracker.track('gridMinX');
72643
+ this.waferMapUpdateTracker.queueUpdate();
72644
+ }
72645
+ gridMaxXChanged() {
72646
+ this.waferMapUpdateTracker.track('gridMaxX');
72647
+ this.waferMapUpdateTracker.queueUpdate();
72648
+ }
72649
+ gridMinYChanged() {
72650
+ this.waferMapUpdateTracker.track('gridMinY');
72651
+ this.waferMapUpdateTracker.queueUpdate();
72652
+ }
72653
+ gridMaxYChanged() {
72654
+ this.waferMapUpdateTracker.track('gridMaxY');
72655
+ this.waferMapUpdateTracker.queueUpdate();
72656
+ }
72548
72657
  maxCharactersChanged() {
72549
72658
  this.waferMapUpdateTracker.track('maxCharacters');
72550
72659
  this.waferMapUpdateTracker.queueUpdate();
@@ -72594,6 +72703,18 @@ img.ProseMirror-separator {
72594
72703
  __decorate$1([
72595
72704
  attr({ attribute: 'origin-location' })
72596
72705
  ], WaferMap.prototype, "originLocation", void 0);
72706
+ __decorate$1([
72707
+ attr({ attribute: 'grid-min-x', converter: nullableNumberConverter })
72708
+ ], WaferMap.prototype, "gridMinX", void 0);
72709
+ __decorate$1([
72710
+ attr({ attribute: 'grid-max-x', converter: nullableNumberConverter })
72711
+ ], WaferMap.prototype, "gridMaxX", void 0);
72712
+ __decorate$1([
72713
+ attr({ attribute: 'grid-min-y', converter: nullableNumberConverter })
72714
+ ], WaferMap.prototype, "gridMinY", void 0);
72715
+ __decorate$1([
72716
+ attr({ attribute: 'grid-max-y', converter: nullableNumberConverter })
72717
+ ], WaferMap.prototype, "gridMaxY", void 0);
72597
72718
  __decorate$1([
72598
72719
  attr
72599
72720
  ], WaferMap.prototype, "orientation", void 0);