@ni/nimble-components 16.1.4 → 16.1.6

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.
@@ -25081,10 +25081,17 @@
25081
25081
  ${display('flex')}
25082
25082
 
25083
25083
  .table-container {
25084
+ display: flex;
25085
+ flex-direction: column;
25084
25086
  width: 100%;
25085
- height: 100%;
25086
25087
  font: ${bodyFont};
25087
25088
  color: ${bodyFontColor};
25089
+ overflow: auto;
25090
+ }
25091
+
25092
+ .header-container {
25093
+ position: sticky;
25094
+ top: 0;
25088
25095
  }
25089
25096
 
25090
25097
  .header-row {
@@ -25225,7 +25232,7 @@
25225
25232
  const template$3 = html `
25226
25233
  <template role="table">
25227
25234
  <div class="table-container">
25228
- <div role="rowgroup">
25235
+ <div role="rowgroup" class="header-container">
25229
25236
  <div class="header-row" role="row">
25230
25237
  ${repeat(x => x.columnHeaders, html `
25231
25238
  <${DesignSystem.tagFor(TableHeader)} class="header">
@@ -26472,24 +26479,39 @@ Instead styling against the role which is more general and likely a better appro
26472
26479
  const template = html `
26473
26480
  <div class="wafer-map-container">
26474
26481
  <svg class="svg-root ${x => x.orientation}">
26475
- <g class="zoom-container">
26476
- <svg class="circle-base" version="1.1" x="0px" y="0px" viewbox="1 .45 20 21">
26477
- <path class="circle-drawing-path" d="m 21 12 a 10 10 330 1 1 0 -1.98 a 1 1 0 0 0 0 2"/>
26482
+ <g class="zoom-container">
26483
+ <svg
26484
+ class="circle-base"
26485
+ version="1.1"
26486
+ x="0px"
26487
+ y="0px"
26488
+ viewBox="1 .45 20 21"
26489
+ >
26490
+ <path
26491
+ class="circle-drawing-path"
26492
+ d="m 21 12 a 10 10 330 1 1 0 -1.98 a 1 1 0 0 0 0 2"
26493
+ />
26478
26494
  </svg>
26479
26495
  </g>
26480
26496
  </svg>
26481
- <div class="wafer-map-area" style="left: 0px; top: 0px">
26482
- <canvas width=500 height="500" ${ref('canvas')}>
26497
+ <div class="wafer-map-area">
26498
+ <canvas class="wafer-map-canvas" ${ref('canvas')}></canvas>
26483
26499
  </div>
26484
26500
  </div>
26485
26501
  `;
26486
26502
 
26487
26503
  const styles = css `
26488
- .wafer-map-container {
26504
+ :host {
26505
+ display: inline-block;
26489
26506
  width: 500px;
26490
26507
  height: 500px;
26508
+ }
26509
+
26510
+ .wafer-map-container {
26511
+ width: 100%;
26512
+ padding-bottom: 100%;
26491
26513
  position: relative;
26492
- display: flex;
26514
+ display: inline-block;
26493
26515
  justify-content: center;
26494
26516
  align-items: center;
26495
26517
  }
@@ -26497,6 +26519,7 @@ Instead styling against the role which is more general and likely a better appro
26497
26519
  .svg-root {
26498
26520
  width: 100%;
26499
26521
  height: 100%;
26522
+ position: absolute;
26500
26523
  }
26501
26524
 
26502
26525
  .svg-root.top {
@@ -26518,13 +26541,14 @@ Instead styling against the role which is more general and likely a better appro
26518
26541
  .zoom-container {
26519
26542
  width: 100%;
26520
26543
  height: 100%;
26544
+ position: absolute;
26521
26545
  }
26522
26546
 
26523
26547
  .circle-base {
26524
26548
  width: 100%;
26525
26549
  height: 100%;
26526
26550
  position: absolute;
26527
- fill: white;
26551
+ fill: transparent;
26528
26552
  }
26529
26553
 
26530
26554
  .circle-drawing-path {
@@ -26536,6 +26560,16 @@ Instead styling against the role which is more general and likely a better appro
26536
26560
 
26537
26561
  .wafer-map-area {
26538
26562
  position: absolute;
26563
+ justify-content: center;
26564
+ align-items: center;
26565
+ width: 100%;
26566
+ height: 100%;
26567
+ }
26568
+
26569
+ .wafer-map-canvas {
26570
+ display: inline-block;
26571
+ width: 100%;
26572
+ height: 100%;
26539
26573
  }
26540
26574
  `;
26541
26575
 
@@ -29390,8 +29424,8 @@ Instead styling against the role which is more general and likely a better appro
29390
29424
  this.context.fillText(die.text, die.x + dimensions.width / 2, die.y + dimensions.height / 2 + aproxTextHeight.width / 2);
29391
29425
  }
29392
29426
  }
29393
- clearCanvas() {
29394
- this.context.clearRect(0, 0, this.waferData.containerDimensions.width, this.waferData.containerDimensions.height);
29427
+ clearCanvas(width, height) {
29428
+ this.context.clearRect(0, 0, width, height);
29395
29429
  }
29396
29430
  }
29397
29431
 
@@ -29417,16 +29451,31 @@ Instead styling against the role which is more general and likely a better appro
29417
29451
  }
29418
29452
  connectedCallback() {
29419
29453
  super.connectedCallback();
29454
+ this.resizeObserver = new ResizeObserver(entries => {
29455
+ const entry = entries[0];
29456
+ if (entry === undefined)
29457
+ return;
29458
+ const { height, width } = entry.contentRect;
29459
+ this.canvasSideLength = Math.min(height, width);
29460
+ });
29461
+ this.resizeObserver.observe(this);
29420
29462
  this.queueRender();
29421
29463
  }
29464
+ disconnectedCallback() {
29465
+ super.disconnectedCallback();
29466
+ this.resizeObserver.unobserve(this);
29467
+ }
29422
29468
  /**
29423
29469
  * @internal
29424
29470
  */
29425
29471
  render() {
29426
29472
  this.renderQueued = false;
29427
- this.dataManager = new DataManager(this.dies, this.quadrant, { width: 500, height: 500 }, this.colorScale, this.highlightedValues, this.colorScaleMode, this.dieLabelsHidden, this.dieLabelsSuffix, this.maxCharacters);
29428
- const renderer = new RenderingModule(this.dataManager, this.canvas);
29429
- renderer.drawWafer();
29473
+ if (this.canvasSideLength === undefined || this.canvasSideLength === 0)
29474
+ return;
29475
+ this.renderer?.clearCanvas(this.canvasSideLength, this.canvasSideLength);
29476
+ this.dataManager = new DataManager(this.dies, this.quadrant, { width: this.canvasSideLength, height: this.canvasSideLength }, this.colorScale, this.highlightedValues, this.colorScaleMode, this.dieLabelsHidden, this.dieLabelsSuffix, this.maxCharacters);
29477
+ this.renderer = new RenderingModule(this.dataManager, this.canvas);
29478
+ this.renderer.drawWafer();
29430
29479
  }
29431
29480
  quadrantChanged() {
29432
29481
  this.queueRender();
@@ -29455,6 +29504,14 @@ Instead styling against the role which is more general and likely a better appro
29455
29504
  colorScaleChanged() {
29456
29505
  this.queueRender();
29457
29506
  }
29507
+ canvasSideLengthChanged() {
29508
+ if (this.canvasSideLength !== undefined
29509
+ && this.canvasSideLength !== 0) {
29510
+ this.canvas.width = this.canvasSideLength;
29511
+ this.canvas.height = this.canvasSideLength;
29512
+ }
29513
+ this.queueRender();
29514
+ }
29458
29515
  queueRender() {
29459
29516
  if (!this.$fastController.isConnected) {
29460
29517
  return;
@@ -29493,6 +29550,9 @@ Instead styling against the role which is more general and likely a better appro
29493
29550
  attribute: 'color-scale-mode'
29494
29551
  })
29495
29552
  ], WaferMap.prototype, "canvas", void 0);
29553
+ __decorate$1([
29554
+ observable
29555
+ ], WaferMap.prototype, "canvasSideLength", void 0);
29496
29556
  __decorate$1([
29497
29557
  observable
29498
29558
  ], WaferMap.prototype, "colorScaleMode", void 0);