@ni/nimble-components 20.2.12 → 20.2.14

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 +168 -18
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +813 -804
  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 +2 -2
@@ -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 Thu, 14 Sep 2023 13:03:32 GMT
16292
16292
  */
16293
16293
 
16294
16294
  const Information100DarkUi = "#a46eff";
@@ -55534,7 +55534,7 @@ img.ProseMirror-separator {
55534
55534
  toDOM(node) { return ["ul", { "data-tight": node.attrs.tight ? "true" : null }, 0]; }
55535
55535
  },
55536
55536
  list_item: {
55537
- content: "paragraph block*",
55537
+ content: "block+",
55538
55538
  defining: true,
55539
55539
  parseDOM: [{ tag: "li" }],
55540
55540
  toDOM() { return ["li", 0]; }
@@ -55570,13 +55570,20 @@ img.ProseMirror-separator {
55570
55570
  },
55571
55571
  marks: {
55572
55572
  em: {
55573
- parseDOM: [{ tag: "i" }, { tag: "em" },
55574
- { style: "font-style", getAttrs: value => value == "italic" && null }],
55573
+ parseDOM: [
55574
+ { tag: "i" }, { tag: "em" },
55575
+ { style: "font-style=italic" },
55576
+ { style: "font-style=normal", clearMark: m => m.type.name == "em" }
55577
+ ],
55575
55578
  toDOM() { return ["em"]; }
55576
55579
  },
55577
55580
  strong: {
55578
- parseDOM: [{ tag: "b" }, { tag: "strong" },
55579
- { style: "font-weight", getAttrs: value => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null }],
55581
+ parseDOM: [
55582
+ { tag: "strong" },
55583
+ { tag: "b", getAttrs: (node) => node.style.fontWeight != "normal" && null },
55584
+ { style: "font-weight=400", clearMark: m => m.type.name == "strong" },
55585
+ { style: "font-weight", getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null }
55586
+ ],
55580
55587
  toDOM() { return ["strong"]; }
55581
55588
  },
55582
55589
  link: {
@@ -56134,16 +56141,27 @@ img.ProseMirror-separator {
56134
56141
  trailing = "";
56135
56142
  // If whitespace has to be expelled from the node, adjust
56136
56143
  // leading and trailing accordingly.
56144
+ if (node && node.isText && marks.some(mark => {
56145
+ let info = this.marks[mark.type.name];
56146
+ return info && info.expelEnclosingWhitespace && !mark.isInSet(active);
56147
+ })) {
56148
+ let [_, lead, rest] = /^(\s*)(.*)$/m.exec(node.text);
56149
+ if (lead) {
56150
+ leading += lead;
56151
+ node = rest ? node.withText(rest) : null;
56152
+ if (!node)
56153
+ marks = active;
56154
+ }
56155
+ }
56137
56156
  if (node && node.isText && marks.some(mark => {
56138
56157
  let info = this.marks[mark.type.name];
56139
56158
  return info && info.expelEnclosingWhitespace &&
56140
- !(mark.isInSet(active) || index < parent.childCount - 1 && mark.isInSet(parent.child(index + 1).marks));
56159
+ (index == parent.childCount - 1 || !mark.isInSet(parent.child(index + 1).marks));
56141
56160
  })) {
56142
- let [_, lead, inner, trail] = /^(\s*)(.*?)(\s*)$/m.exec(node.text);
56143
- leading += lead;
56144
- trailing = trail;
56145
- if (lead || trail) {
56146
- node = inner ? node.withText(inner) : null;
56161
+ let [_, rest, trail] = /^(.*?)(\s*)$/m.exec(node.text);
56162
+ if (trail) {
56163
+ trailing = trail;
56164
+ node = rest ? node.withText(rest) : null;
56147
56165
  if (!node)
56148
56166
  marks = active;
56149
56167
  }
@@ -56188,6 +56206,7 @@ img.ProseMirror-separator {
56188
56206
  let add = marks[active.length];
56189
56207
  active.push(add);
56190
56208
  this.text(this.markString(add, true, parent, index), false);
56209
+ this.atBlockStart = false;
56191
56210
  }
56192
56211
  // Render the node. Special case code marks, since their content
56193
56212
  // may not be escaped.
@@ -56196,6 +56215,16 @@ img.ProseMirror-separator {
56196
56215
  this.markString(inner, false, parent, index + 1), false);
56197
56216
  else
56198
56217
  this.render(node, parent, index);
56218
+ this.atBlockStart = false;
56219
+ }
56220
+ // After the first non-empty text node is rendered, the end of output
56221
+ // is no longer at block start.
56222
+ //
56223
+ // FIXME: If a non-text node writes something to the output for this
56224
+ // block, the end of output is also no longer at block start. But how
56225
+ // can we detect that?
56226
+ if ((node === null || node === void 0 ? void 0 : node.isText) && node.nodeSize > 0) {
56227
+ this.atBlockStart = false;
56199
56228
  }
56200
56229
  };
56201
56230
  parent.forEach(progress);
@@ -56231,7 +56260,7 @@ img.ProseMirror-separator {
56231
56260
  esc(str, startOfLine = false) {
56232
56261
  str = str.replace(/[`*\\~\[\]_]/g, (m, i) => m == "_" && i > 0 && i + 1 < str.length && str[i - 1].match(/\w/) && str[i + 1].match(/\w/) ? m : "\\" + m);
56233
56262
  if (startOfLine)
56234
- str = str.replace(/^[#\-*+>]/, "\\$&").replace(/^(\s*\d+)\./, "$1\\.");
56263
+ str = str.replace(/^[\-*+>]/, "\\$&").replace(/^(\s*)(#{1,6})(\s|$)/, '$1\\$2$3').replace(/^(\s*\d+)\.\s/, "$1\\. ");
56235
56264
  if (this.options.escapeExtraCharacters)
56236
56265
  str = str.replace(this.options.escapeExtraCharacters, "\\$&");
56237
56266
  return str;
@@ -71812,7 +71841,9 @@ img.ProseMirror-separator {
71812
71841
  }
71813
71842
  updateScales() {
71814
71843
  const containerDiameter = Math.min(this._containerDimensions.width, this._containerDimensions.height);
71815
- const gridDimensions = this.calculateGridDimensions(this.wafermap.dies);
71844
+ const gridDimensions = this.gridDimensionsValidAndDefined()
71845
+ ? this.calculateGridDimensionsFromBoundingBox()
71846
+ : this.calculateGridDimensionsFromDies(this.wafermap.dies);
71816
71847
  // this scale is used for positioning the dies on the canvas
71817
71848
  const originLocation = this.wafermap.originLocation;
71818
71849
  this._horizontalScale = this.createHorizontalScale(originLocation, gridDimensions, containerDiameter);
@@ -71825,7 +71856,27 @@ img.ProseMirror-separator {
71825
71856
  height: this.verticalScale.bandwidth()
71826
71857
  };
71827
71858
  }
71828
- calculateGridDimensions(dies) {
71859
+ gridDimensionsValidAndDefined() {
71860
+ return (!this.wafermap.validity.invalidGridDimensions
71861
+ && typeof this.wafermap.gridMinX === 'number'
71862
+ && typeof this.wafermap.gridMinY === 'number'
71863
+ && typeof this.wafermap.gridMaxX === 'number'
71864
+ && typeof this.wafermap.gridMinX === 'number');
71865
+ }
71866
+ calculateGridDimensionsFromBoundingBox() {
71867
+ const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
71868
+ if (typeof this.wafermap.gridMaxY === 'number'
71869
+ && typeof this.wafermap.gridMinY === 'number'
71870
+ && typeof this.wafermap.gridMaxX === 'number'
71871
+ && typeof this.wafermap.gridMinX === 'number') {
71872
+ gridDimensions.origin.x = this.wafermap.gridMinX;
71873
+ gridDimensions.origin.y = this.wafermap.gridMinY;
71874
+ gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;
71875
+ gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;
71876
+ }
71877
+ return gridDimensions;
71878
+ }
71879
+ calculateGridDimensionsFromDies(dies) {
71829
71880
  if (dies.length === 0 || dies[0] === undefined) {
71830
71881
  return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
71831
71882
  }
@@ -71943,8 +71994,14 @@ img.ProseMirror-separator {
71943
71994
  const dieLabelsSuffix = this.wafermap.dieLabelsSuffix;
71944
71995
  this._diesRenderInfo = [];
71945
71996
  for (const die of this.wafermap.dies) {
71946
- const scaledX = horizontalScale(die.x) ?? 0;
71947
- const scaledY = verticalScale(die.y) ?? 0;
71997
+ const scaledX = horizontalScale(die.x);
71998
+ if (scaledX === undefined) {
71999
+ continue;
72000
+ }
72001
+ const scaledY = verticalScale(die.y);
72002
+ if (scaledY === undefined) {
72003
+ continue;
72004
+ }
71948
72005
  this._diesRenderInfo.push({
71949
72006
  x: scaledX + margin.right,
71950
72007
  y: scaledY + margin.top,
@@ -72125,7 +72182,13 @@ img.ProseMirror-separator {
72125
72182
  calculateHoverTransform() {
72126
72183
  if (this.wafermap.hoverDie !== undefined) {
72127
72184
  const scaledX = this.wafermap.dataManager.horizontalScale(this.wafermap.hoverDie.x);
72185
+ if (scaledX === undefined) {
72186
+ return '';
72187
+ }
72128
72188
  const scaledY = this.wafermap.dataManager.verticalScale(this.wafermap.hoverDie.y);
72189
+ if (scaledY === undefined) {
72190
+ return '';
72191
+ }
72129
72192
  const transformedPoint = this.wafermap.transform.apply([
72130
72193
  scaledX + this.wafermap.dataManager.margin.left,
72131
72194
  scaledY + this.wafermap.dataManager.margin.top
@@ -72345,6 +72408,10 @@ img.ProseMirror-separator {
72345
72408
  'canvasWidth',
72346
72409
  'canvasHeight',
72347
72410
  'originLocation',
72411
+ 'gridMinX',
72412
+ 'gridMaxX',
72413
+ 'gridMinY',
72414
+ 'gridMaxY',
72348
72415
  'dies',
72349
72416
  'maxCharacters',
72350
72417
  'colorScale',
@@ -72369,6 +72436,10 @@ img.ProseMirror-separator {
72369
72436
  return (this.isTracked('canvasWidth')
72370
72437
  || this.isTracked('canvasHeight')
72371
72438
  || this.isTracked('originLocation')
72439
+ || this.isTracked('gridMinX')
72440
+ || this.isTracked('gridMaxX')
72441
+ || this.isTracked('gridMinY')
72442
+ || this.isTracked('gridMaxY')
72372
72443
  || this.isTracked('dies')
72373
72444
  || this.isTracked('maxCharacters')
72374
72445
  || this.isTracked('colorScale')
@@ -72382,7 +72453,12 @@ img.ProseMirror-separator {
72382
72453
  return this.isTracked('canvasWidth') || this.isTracked('canvasHeight');
72383
72454
  }
72384
72455
  get requiresScalesUpdate() {
72385
- return this.isTracked('originLocation') || this.isTracked('dies');
72456
+ return (this.isTracked('originLocation')
72457
+ || this.isTracked('gridMinX')
72458
+ || this.isTracked('gridMaxX')
72459
+ || this.isTracked('gridMinY')
72460
+ || this.isTracked('gridMaxY')
72461
+ || this.isTracked('dies'));
72386
72462
  }
72387
72463
  get requiresLabelsFontSizeUpdate() {
72388
72464
  return this.isTracked('maxCharacters');
@@ -72419,6 +72495,43 @@ img.ProseMirror-separator {
72419
72495
  }
72420
72496
  }
72421
72497
 
72498
+ /**
72499
+ * Helper class for the nimble-wafer-map to validate that the wafer maps's grid dimensions
72500
+ * configuration is valid and report which aspects of the configuration are valid or invalid.
72501
+ */
72502
+ class WaferMapValidator {
72503
+ constructor(wafermap) {
72504
+ this.wafermap = wafermap;
72505
+ this.invalidGridDimensions = false;
72506
+ }
72507
+ getValidity() {
72508
+ return {
72509
+ invalidGridDimensions: this.invalidGridDimensions
72510
+ };
72511
+ }
72512
+ isValid() {
72513
+ return Object.values(this.getValidity()).every(x => x === false);
72514
+ }
72515
+ validateGridDimensions() {
72516
+ this.invalidGridDimensions = false;
72517
+ if (typeof this.wafermap.gridMinX === 'undefined'
72518
+ && typeof this.wafermap.gridMaxX === 'undefined'
72519
+ && typeof this.wafermap.gridMinY === 'undefined'
72520
+ && typeof this.wafermap.gridMaxY === 'undefined') {
72521
+ this.invalidGridDimensions = false;
72522
+ }
72523
+ else if (typeof this.wafermap.gridMinX !== 'number'
72524
+ || typeof this.wafermap.gridMaxX !== 'number'
72525
+ || typeof this.wafermap.gridMinY !== 'number'
72526
+ || typeof this.wafermap.gridMaxY !== 'number'
72527
+ || this.wafermap.gridMaxX < this.wafermap.gridMinX
72528
+ || this.wafermap.gridMaxY < this.wafermap.gridMinY) {
72529
+ this.invalidGridDimensions = true;
72530
+ }
72531
+ return !this.invalidGridDimensions;
72532
+ }
72533
+ }
72534
+
72422
72535
  /**
72423
72536
  * A nimble-styled WaferMap
72424
72537
  */
@@ -72431,6 +72544,10 @@ img.ProseMirror-separator {
72431
72544
  */
72432
72545
  this.waferMapUpdateTracker = new WaferMapUpdateTracker(this);
72433
72546
  this.originLocation = WaferMapOriginLocation.bottomLeft;
72547
+ this.gridMinX = undefined;
72548
+ this.gridMaxX = undefined;
72549
+ this.gridMinY = undefined;
72550
+ this.gridMaxY = undefined;
72434
72551
  this.orientation = WaferMapOrientation.top;
72435
72552
  this.maxCharacters = 4;
72436
72553
  this.dieLabelsHidden = false;
@@ -72476,6 +72593,10 @@ img.ProseMirror-separator {
72476
72593
  };
72477
72594
  this.eventCoordinator = new EventCoordinator(this);
72478
72595
  this.resizeObserver = this.createResizeObserver();
72596
+ this.waferMapValidator = new WaferMapValidator(this);
72597
+ }
72598
+ get validity() {
72599
+ return this.waferMapValidator.getValidity();
72479
72600
  }
72480
72601
  connectedCallback() {
72481
72602
  super.connectedCallback();
@@ -72500,6 +72621,7 @@ img.ProseMirror-separator {
72500
72621
  update() {
72501
72622
  if (this.waferMapUpdateTracker.requiresEventsUpdate) {
72502
72623
  this.eventCoordinator.detachEvents();
72624
+ this.waferMapValidator.validateGridDimensions();
72503
72625
  if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {
72504
72626
  this.dataManager.updateContainerDimensions();
72505
72627
  this.renderer.updateSortedDiesAndDrawWafer();
@@ -72545,6 +72667,22 @@ img.ProseMirror-separator {
72545
72667
  this.waferMapUpdateTracker.track('originLocation');
72546
72668
  this.waferMapUpdateTracker.queueUpdate();
72547
72669
  }
72670
+ gridMinXChanged() {
72671
+ this.waferMapUpdateTracker.track('gridMinX');
72672
+ this.waferMapUpdateTracker.queueUpdate();
72673
+ }
72674
+ gridMaxXChanged() {
72675
+ this.waferMapUpdateTracker.track('gridMaxX');
72676
+ this.waferMapUpdateTracker.queueUpdate();
72677
+ }
72678
+ gridMinYChanged() {
72679
+ this.waferMapUpdateTracker.track('gridMinY');
72680
+ this.waferMapUpdateTracker.queueUpdate();
72681
+ }
72682
+ gridMaxYChanged() {
72683
+ this.waferMapUpdateTracker.track('gridMaxY');
72684
+ this.waferMapUpdateTracker.queueUpdate();
72685
+ }
72548
72686
  maxCharactersChanged() {
72549
72687
  this.waferMapUpdateTracker.track('maxCharacters');
72550
72688
  this.waferMapUpdateTracker.queueUpdate();
@@ -72594,6 +72732,18 @@ img.ProseMirror-separator {
72594
72732
  __decorate$1([
72595
72733
  attr({ attribute: 'origin-location' })
72596
72734
  ], WaferMap.prototype, "originLocation", void 0);
72735
+ __decorate$1([
72736
+ attr({ attribute: 'grid-min-x', converter: nullableNumberConverter })
72737
+ ], WaferMap.prototype, "gridMinX", void 0);
72738
+ __decorate$1([
72739
+ attr({ attribute: 'grid-max-x', converter: nullableNumberConverter })
72740
+ ], WaferMap.prototype, "gridMaxX", void 0);
72741
+ __decorate$1([
72742
+ attr({ attribute: 'grid-min-y', converter: nullableNumberConverter })
72743
+ ], WaferMap.prototype, "gridMinY", void 0);
72744
+ __decorate$1([
72745
+ attr({ attribute: 'grid-max-y', converter: nullableNumberConverter })
72746
+ ], WaferMap.prototype, "gridMaxY", void 0);
72597
72747
  __decorate$1([
72598
72748
  attr
72599
72749
  ], WaferMap.prototype, "orientation", void 0);