@ni/nimble-components 19.0.0 → 19.0.2

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 (48) hide show
  1. package/dist/all-components-bundle.js +110 -64
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +710 -708
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/table/index.d.ts +1 -0
  6. package/dist/esm/table/index.js +15 -0
  7. package/dist/esm/table/index.js.map +1 -1
  8. package/dist/esm/table/types.d.ts +29 -1
  9. package/dist/esm/table/types.js.map +1 -1
  10. package/dist/esm/table-column/base/group-header-view/index.d.ts +3 -2
  11. package/dist/esm/table-column/base/group-header-view/index.js.map +1 -1
  12. package/dist/esm/table-column/text/cell-view/index.d.ts +6 -8
  13. package/dist/esm/table-column/text/cell-view/index.js +12 -21
  14. package/dist/esm/table-column/text/cell-view/index.js.map +1 -1
  15. package/dist/esm/table-column/text/group-header-view/index.d.ts +8 -12
  16. package/dist/esm/table-column/text/group-header-view/index.js +11 -27
  17. package/dist/esm/table-column/text/group-header-view/index.js.map +1 -1
  18. package/dist/esm/table-column/text/index.d.ts +3 -28
  19. package/dist/esm/table-column/text/index.js +3 -23
  20. package/dist/esm/table-column/text/index.js.map +1 -1
  21. package/dist/esm/table-column/text-base/cell-view/index.d.ts +30 -0
  22. package/dist/esm/table-column/text-base/cell-view/index.js +23 -0
  23. package/dist/esm/table-column/text-base/cell-view/index.js.map +1 -0
  24. package/dist/esm/table-column/text-base/cell-view/styles.js.map +1 -0
  25. package/dist/esm/table-column/text-base/cell-view/template.d.ts +2 -0
  26. package/dist/esm/table-column/{text → text-base}/cell-view/template.js +1 -1
  27. package/dist/esm/table-column/text-base/cell-view/template.js.map +1 -0
  28. package/dist/esm/table-column/text-base/group-header-view/index.d.ts +35 -0
  29. package/dist/esm/table-column/text-base/group-header-view/index.js +31 -0
  30. package/dist/esm/table-column/text-base/group-header-view/index.js.map +1 -0
  31. package/dist/esm/table-column/text-base/group-header-view/styles.js.map +1 -0
  32. package/dist/esm/table-column/text-base/group-header-view/template.d.ts +2 -0
  33. package/dist/esm/table-column/{text → text-base}/group-header-view/template.js +2 -4
  34. package/dist/esm/table-column/text-base/group-header-view/template.js.map +1 -0
  35. package/dist/esm/table-column/text-base/index.d.ts +32 -0
  36. package/dist/esm/table-column/text-base/index.js +26 -0
  37. package/dist/esm/table-column/text-base/index.js.map +1 -0
  38. package/package.json +1 -1
  39. package/dist/esm/table-column/text/cell-view/styles.js.map +0 -1
  40. package/dist/esm/table-column/text/cell-view/template.d.ts +0 -2
  41. package/dist/esm/table-column/text/cell-view/template.js.map +0 -1
  42. package/dist/esm/table-column/text/group-header-view/styles.js.map +0 -1
  43. package/dist/esm/table-column/text/group-header-view/template.d.ts +0 -2
  44. package/dist/esm/table-column/text/group-header-view/template.js.map +0 -1
  45. /package/dist/esm/table-column/{text → text-base}/cell-view/styles.d.ts +0 -0
  46. /package/dist/esm/table-column/{text → text-base}/cell-view/styles.js +0 -0
  47. /package/dist/esm/table-column/{text → text-base}/group-header-view/styles.d.ts +0 -0
  48. /package/dist/esm/table-column/{text → text-base}/group-header-view/styles.js +0 -0
@@ -16366,7 +16366,7 @@
16366
16366
 
16367
16367
  /**
16368
16368
  * Do not edit directly
16369
- * Generated on Fri, 12 May 2023 17:46:09 GMT
16369
+ * Generated on Wed, 17 May 2023 21:20:25 GMT
16370
16370
  */
16371
16371
  const Information100DarkUi = "#a46eff";
16372
16372
  const Information100LightUi = "#804ad9";
@@ -30690,6 +30690,7 @@
30690
30690
  currentColumn.columnInternals.currentSortDirection = TableColumnSortDirection.none;
30691
30691
  }
30692
30692
  }
30693
+ this.emitColumnConfigurationChangeEvent();
30693
30694
  }
30694
30695
  /**
30695
30696
  * @internal
@@ -30872,6 +30873,20 @@
30872
30873
  this.tableValidator.validateRecordIds(data, this.idFieldName);
30873
30874
  this.canRenderRows = this.checkValidity();
30874
30875
  }
30876
+ emitColumnConfigurationChangeEvent() {
30877
+ const detail = {
30878
+ columns: this.columns.map(column => ({
30879
+ columnId: column.columnId,
30880
+ sortIndex: column.columnInternals.currentSortIndex ?? undefined,
30881
+ sortDirection: column.columnInternals.currentSortDirection,
30882
+ groupIndex: column.columnInternals.groupIndex,
30883
+ hidden: column.columnHidden,
30884
+ fractionalWidth: column.columnInternals.currentFractionalWidth,
30885
+ pixelWidth: column.columnInternals.currentPixelWidth
30886
+ }))
30887
+ };
30888
+ this.$emit('column-configuration-change', detail);
30889
+ }
30875
30890
  async emitSelectionChangeEvent() {
30876
30891
  const detail = {
30877
30892
  selectedRecordIds: await this.getSelectedRecordIds()
@@ -31306,15 +31321,41 @@
31306
31321
  DesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());
31307
31322
  const tableColumnAnchorCellViewTag = DesignSystem.tagFor(TableColumnAnchorCellView);
31308
31323
 
31324
+ /**
31325
+ * The group header view base class for displaying fields of any type as text.
31326
+ */
31327
+ class TableColumnTextGroupHeaderViewBase extends TableGroupHeaderView {
31328
+ constructor() {
31329
+ super(...arguments);
31330
+ /** @internal */
31331
+ this.hasOverflow = false;
31332
+ }
31333
+ get content() {
31334
+ return this.shouldUsePlaceholder ? this.placeholder : this.text;
31335
+ }
31336
+ /** @internal */
31337
+ updateTitleOverflow() {
31338
+ this.hasOverflow = this.textSpan.offsetWidth < this.textSpan.scrollWidth;
31339
+ }
31340
+ /** @internal */
31341
+ clearTitleOverflow() {
31342
+ this.hasOverflow = false;
31343
+ }
31344
+ }
31345
+ __decorate$1([
31346
+ observable
31347
+ ], TableColumnTextGroupHeaderViewBase.prototype, "hasOverflow", void 0);
31348
+ __decorate$1([
31349
+ volatile
31350
+ ], TableColumnTextGroupHeaderViewBase.prototype, "content", null);
31351
+
31309
31352
  const template$6 = html `
31310
31353
  <span
31311
31354
  ${ref('textSpan')}
31312
- class="${x => (typeof x.groupHeaderValue === 'string' ? '' : 'placeholder')}"
31355
+ class="${x => (x.shouldUsePlaceholder ? 'placeholder' : '')}"
31313
31356
  @mouseover="${x => x.updateTitleOverflow()}"
31314
31357
  @mouseout="${x => x.clearTitleOverflow()}"
31315
- title="${x => (x.isValidContentAndHasOverflow && x.content
31316
- ? x.content
31317
- : undefined)}"
31358
+ title="${x => (x.hasOverflow && x.content ? x.content : undefined)}"
31318
31359
  >
31319
31360
  ${x => x.content}
31320
31361
  </span>
@@ -31335,33 +31376,19 @@
31335
31376
  `;
31336
31377
 
31337
31378
  /**
31338
- * The custom element used to render a group row header for a group representing rows
31339
- * grouped by a TableColumnText column.
31379
+ * The group header view for displaying string fields as text.
31340
31380
  */
31341
- class TableColumnTextGroupHeaderView extends TableGroupHeaderView {
31342
- constructor() {
31343
- super(...arguments);
31344
- /** @internal */
31345
- this.isValidContentAndHasOverflow = false;
31381
+ class TableColumnTextGroupHeaderView extends TableColumnTextGroupHeaderViewBase {
31382
+ get text() {
31383
+ return this.groupHeaderValue;
31346
31384
  }
31347
- get content() {
31348
- return typeof this.groupHeaderValue === 'string'
31349
- ? this.groupHeaderValue
31350
- : this.columnConfig?.placeholder ?? '';
31385
+ get placeholder() {
31386
+ return this.columnConfig?.placeholder ?? '';
31351
31387
  }
31352
- updateTitleOverflow() {
31353
- this.isValidContentAndHasOverflow = this.textSpan.offsetWidth < this.textSpan.scrollWidth;
31354
- }
31355
- clearTitleOverflow() {
31356
- this.isValidContentAndHasOverflow = false;
31388
+ get shouldUsePlaceholder() {
31389
+ return typeof this.groupHeaderValue !== 'string';
31357
31390
  }
31358
31391
  }
31359
- __decorate$1([
31360
- observable
31361
- ], TableColumnTextGroupHeaderView.prototype, "isValidContentAndHasOverflow", void 0);
31362
- __decorate$1([
31363
- volatile
31364
- ], TableColumnTextGroupHeaderView.prototype, "content", null);
31365
31392
  const tableColumnTextGroupHeaderView = TableColumnTextGroupHeaderView.compose({
31366
31393
  baseName: 'table-column-text-group-header',
31367
31394
  template: template$6,
@@ -31490,24 +31517,31 @@
31490
31517
  .register(nimbleTableColumnAnchor());
31491
31518
  DesignSystem.tagFor(TableColumnAnchor);
31492
31519
 
31493
- const styles$9 = css `
31494
- span {
31495
- font: ${bodyFont};
31496
- color: ${bodyFontColor};
31497
- white-space: nowrap;
31498
- overflow: hidden;
31499
- text-overflow: ellipsis;
31500
- }
31501
-
31502
- .placeholder {
31503
- color: ${controlLabelFontColor};
31520
+ /**
31521
+ * The base class for table columns that display fields of any type as text.
31522
+ */
31523
+ class TableColumnTextBase extends mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI((TableColumn))) {
31524
+ fieldNameChanged() {
31525
+ this.columnInternals.dataRecordFieldNames = [this.fieldName];
31526
+ this.columnInternals.operandDataRecordFieldName = this.fieldName;
31527
+ }
31528
+ placeholderChanged() {
31529
+ this.columnInternals.columnConfig = {
31530
+ placeholder: this.placeholder ?? ''
31531
+ };
31532
+ }
31504
31533
  }
31505
- `;
31534
+ __decorate$1([
31535
+ attr({ attribute: 'field-name' })
31536
+ ], TableColumnTextBase.prototype, "fieldName", void 0);
31537
+ __decorate$1([
31538
+ attr
31539
+ ], TableColumnTextBase.prototype, "placeholder", void 0);
31506
31540
 
31507
31541
  const template$5 = html `
31508
31542
  <span
31509
31543
  ${ref('textSpan')}
31510
- class="${x => (typeof x.cellRecord.value === 'string' ? '' : 'placeholder')}"
31544
+ class="${x => (x.shouldUsePlaceholder ? 'placeholder' : '')}"
31511
31545
  @mouseover="${x => {
31512
31546
  x.isValidContentAndHasOverflow = !!x.content && x.textSpan.offsetWidth < x.textSpan.scrollWidth;
31513
31547
  }}"
@@ -31520,27 +31554,54 @@
31520
31554
  </span>
31521
31555
  `;
31522
31556
 
31557
+ const styles$9 = css `
31558
+ span {
31559
+ font: ${bodyFont};
31560
+ color: ${bodyFontColor};
31561
+ white-space: nowrap;
31562
+ overflow: hidden;
31563
+ text-overflow: ellipsis;
31564
+ }
31565
+
31566
+ .placeholder {
31567
+ color: ${controlLabelFontColor};
31568
+ }
31569
+ `;
31570
+
31523
31571
  /**
31524
- * A cell view for displaying strings
31572
+ * The cell view base class for displaying fields of any type as text.
31525
31573
  */
31526
- class TableColumnTextCellView extends TableCellView {
31574
+ class TableColumnTextCellViewBase extends TableCellView {
31527
31575
  constructor() {
31528
31576
  super(...arguments);
31529
31577
  /** @internal */
31530
31578
  this.isValidContentAndHasOverflow = false;
31531
31579
  }
31532
31580
  get content() {
31533
- return typeof this.cellRecord.value === 'string'
31534
- ? this.cellRecord.value
31535
- : this.columnConfig.placeholder;
31581
+ return this.shouldUsePlaceholder ? this.placeholder : this.text;
31536
31582
  }
31537
31583
  }
31538
31584
  __decorate$1([
31539
31585
  observable
31540
- ], TableColumnTextCellView.prototype, "isValidContentAndHasOverflow", void 0);
31586
+ ], TableColumnTextCellViewBase.prototype, "isValidContentAndHasOverflow", void 0);
31541
31587
  __decorate$1([
31542
31588
  volatile
31543
- ], TableColumnTextCellView.prototype, "content", null);
31589
+ ], TableColumnTextCellViewBase.prototype, "content", null);
31590
+
31591
+ /**
31592
+ * A cell view for displaying string fields as text
31593
+ */
31594
+ class TableColumnTextCellView extends TableColumnTextCellViewBase {
31595
+ get text() {
31596
+ return this.cellRecord.value;
31597
+ }
31598
+ get placeholder() {
31599
+ return this.columnConfig.placeholder;
31600
+ }
31601
+ get shouldUsePlaceholder() {
31602
+ return typeof this.cellRecord.value !== 'string';
31603
+ }
31604
+ }
31544
31605
  const textCellView = TableColumnTextCellView.compose({
31545
31606
  baseName: 'table-column-text-cell-view',
31546
31607
  template: template$5,
@@ -31550,9 +31611,9 @@
31550
31611
  const tableColumnTextCellViewTag = DesignSystem.tagFor(TableColumnTextCellView);
31551
31612
 
31552
31613
  /**
31553
- * The table column for displaying strings.
31614
+ * The table column for displaying string fields as text.
31554
31615
  */
31555
- class TableColumnText extends mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI((TableColumn))) {
31616
+ class TableColumnText extends TableColumnTextBase {
31556
31617
  constructor() {
31557
31618
  super({
31558
31619
  cellRecordFieldNames: ['value'],
@@ -31562,22 +31623,7 @@
31562
31623
  });
31563
31624
  this.columnInternals.sortOperation = TableColumnSortOperation.localeAwareCaseSensitive;
31564
31625
  }
31565
- fieldNameChanged() {
31566
- this.columnInternals.dataRecordFieldNames = [this.fieldName];
31567
- this.columnInternals.operandDataRecordFieldName = this.fieldName;
31568
- }
31569
- placeholderChanged() {
31570
- this.columnInternals.columnConfig = {
31571
- placeholder: this.placeholder ?? ''
31572
- };
31573
- }
31574
31626
  }
31575
- __decorate$1([
31576
- attr({ attribute: 'field-name' })
31577
- ], TableColumnText.prototype, "fieldName", void 0);
31578
- __decorate$1([
31579
- attr
31580
- ], TableColumnText.prototype, "placeholder", void 0);
31581
31627
  const nimbleTableColumnText = TableColumnText.compose({
31582
31628
  baseName: 'table-column-text',
31583
31629
  template: template$8,