@ni/nimble-components 27.0.5 → 27.1.0

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 (37) hide show
  1. package/dist/all-components-bundle.js +198 -60
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +466 -445
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/src/table/components/header/index.d.ts +1 -0
  6. package/dist/esm/src/table/models/table-layout-manager.d.ts +20 -0
  7. package/dist/esm/src/table-column/base/models/column-internals.d.ts +9 -0
  8. package/dist/esm/src/table-column/base/types.d.ts +1 -0
  9. package/dist/esm/src/table-column/icon/index.d.ts +5 -0
  10. package/dist/esm/src/table-column/icon/types.d.ts +8 -0
  11. package/dist/esm/table/components/header/index.d.ts +1 -0
  12. package/dist/esm/table/components/header/index.js +4 -0
  13. package/dist/esm/table/components/header/index.js.map +1 -1
  14. package/dist/esm/table/components/header/template.js +25 -22
  15. package/dist/esm/table/components/header/template.js.map +1 -1
  16. package/dist/esm/table/models/table-layout-manager.d.ts +20 -0
  17. package/dist/esm/table/models/table-layout-manager.js +98 -23
  18. package/dist/esm/table/models/table-layout-manager.js.map +1 -1
  19. package/dist/esm/table/models/table-update-tracker.js +1 -1
  20. package/dist/esm/table/models/table-update-tracker.js.map +1 -1
  21. package/dist/esm/table/styles.js +2 -2
  22. package/dist/esm/table/styles.js.map +1 -1
  23. package/dist/esm/table/template.js +3 -0
  24. package/dist/esm/table/template.js.map +1 -1
  25. package/dist/esm/table-column/base/models/column-internals.d.ts +9 -0
  26. package/dist/esm/table-column/base/models/column-internals.js +15 -0
  27. package/dist/esm/table-column/base/models/column-internals.js.map +1 -1
  28. package/dist/esm/table-column/base/types.d.ts +1 -0
  29. package/dist/esm/table-column/base/types.js +13 -11
  30. package/dist/esm/table-column/base/types.js.map +1 -1
  31. package/dist/esm/table-column/icon/index.d.ts +5 -0
  32. package/dist/esm/table-column/icon/index.js +32 -1
  33. package/dist/esm/table-column/icon/index.js.map +1 -1
  34. package/dist/esm/table-column/icon/types.d.ts +8 -0
  35. package/dist/esm/table-column/icon/types.js +8 -0
  36. package/dist/esm/table-column/icon/types.js.map +1 -0
  37. package/package.json +1 -1
@@ -68,6 +68,7 @@ export const template = html `
68
68
  left
69
69
  ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}
70
70
  ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getLeftDividerIndex(c.index) ? 'divider-active' : ''}`}
71
+ ${(_, c) => `${c.parent.layoutManager.hasResizableColumnToLeft(c.index - 1) ? 'draggable' : ''}`}
71
72
  "
72
73
  @mousedown="${(_, c) => c.parent.onLeftDividerMouseDown(c.event, c.index)}">
73
74
  </div>
@@ -76,6 +77,7 @@ export const template = html `
76
77
  class="header"
77
78
  sort-direction="${x => (typeof x.columnInternals.currentSortIndex === 'number' ? x.columnInternals.currentSortDirection : TableColumnSortDirection.none)}"
78
79
  ?first-sorted-column="${(x, c) => x === c.parent.firstSortedColumn}"
80
+ ?indicators-hidden="${x => x.columnInternals.hideHeaderIndicators}"
79
81
  @click="${(x, c) => c.parent.toggleColumnSort(x, c.event.shiftKey)}"
80
82
  :isGrouped=${x => (typeof x.columnInternals.groupIndex === 'number' && !x.columnInternals.groupingDisabled)}
81
83
  >
@@ -88,6 +90,7 @@ export const template = html `
88
90
  right
89
91
  ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}
90
92
  ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getRightDividerIndex(c.index) ? 'divider-active' : ''}`}
93
+ ${(_, c) => `${c.parent.layoutManager.hasResizableColumnToLeft(c.index) ? 'draggable' : ''}`}
91
94
  "
92
95
  @mousedown="${(_, c) => c.parent.onRightDividerMouseDown(c.event, c.index)}">
93
96
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n children,\n elements,\n html,\n ref,\n repeat,\n when\n} from '@microsoft/fast-element';\nimport type { VirtualItem } from '@tanstack/virtual-core';\nimport type { Table } from '.';\nimport { tableHeaderTag } from './components/header';\nimport { tableRowTag } from './components/row';\nimport type { TableColumn } from '../table-column/base';\nimport {\n TableActionMenuToggleEventDetail,\n TableColumnSortDirection,\n TableRowSelectionMode,\n TableRowSelectionState,\n TableRowSelectionToggleEventDetail\n} from './types';\nimport { tableGroupRowTag } from './components/group-row';\nimport { buttonTag } from '../button';\nimport { ButtonAppearance } from '../button/types';\nimport { iconTriangleTwoLinesHorizontalTag } from '../icons/triangle-two-lines-horizontal';\nimport { checkboxTag } from '../checkbox';\nimport {\n tableCollapseAllLabel,\n tableRowOperationColumnLabel,\n tableSelectAllLabel\n} from '../label-provider/table/label-tokens';\n\n// prettier-ignore\nexport const template = html<Table>`\n <template\n role=\"treegrid\"\n aria-multiselectable=\"${x => x.ariaMultiSelectable}\"\n ${children({ property: 'childItems', filter: elements() })}\n >\n <div class=\"table-container ${x => (x.documentShiftKeyDown ? 'disable-select' : '')}\"\n style=\"\n --ni-private-table-scroll-x: -${x => x.scrollX}px;\n --ni-private-table-header-container-margin-right: ${x => x.virtualizer.headerContainerMarginRight}px;\n --ni-private-table-scroll-height: ${x => x.virtualizer.scrollHeight}px;\n --ni-private-table-row-container-top: ${x => x.virtualizer.rowContainerYOffset}px;\n --ni-private-table-row-grid-columns: ${x => (x.rowGridColumns ? x.rowGridColumns : '')};\n --ni-private-table-cursor-override: ${x => (x.layoutManager.isColumnBeingSized ? 'col-resize' : 'default')};\n --ni-private-table-scrollable-min-width: ${x => x.tableScrollableMinWidth}px;\n --ni-private-glass-overlay-pointer-events: ${x => (x.layoutManager.isColumnBeingSized ? 'none' : 'default')};\n \">\n <div class=\"glass-overlay\">\n <div role=\"rowgroup\" class=\"header-row-container\">\n <div class=\"header-row\" role=\"row\">\n <span role=\"${x => (x.showRowOperationColumn ? 'columnheader' : '')}\" class=\"header-row-action-container\" ${ref('headerRowActionContainer')}>\n ${when(x => x.showRowOperationColumn, html<Table>`\n <span class=\"accessibly-hidden\">\n ${x => tableRowOperationColumnLabel.getValueFor(x)}\n </span>\n `)}\n ${when(x => x.selectionMode === TableRowSelectionMode.multiple, html<Table>`\n <span class=\"checkbox-container\">\n <${checkboxTag}\n ${ref('selectionCheckbox')}\n class=\"${x => `selection-checkbox ${x.selectionMode ? x.selectionMode : ''}`}\"\n @change=\"${(x, c) => x.onAllRowsSelectionChange(c.event as CustomEvent)}\"\n title=\"${x => tableSelectAllLabel.getValueFor(x)}\"\n aria-label=\"${x => tableSelectAllLabel.getValueFor(x)}\"\n >\n </${checkboxTag}>\n </span>\n `)}\n <${buttonTag}\n class=\"collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}\"\n content-hidden\n appearance=\"${ButtonAppearance.ghost}\"\n title=\"${x => tableCollapseAllLabel.getValueFor(x)}\"\n @click=\"${x => x.handleCollapseAllRows()}\"\n >\n <${iconTriangleTwoLinesHorizontalTag} slot=\"start\"></${iconTriangleTwoLinesHorizontalTag}>\n ${x => tableCollapseAllLabel.getValueFor(x)}\n </${buttonTag}>\n </span>\n <span class=\"column-headers-container\" ${ref('columnHeadersContainer')}>\n ${repeat(x => x.visibleColumns, html<TableColumn, Table>`\n <div class=\"header-container\">\n ${when((_, c) => c.index > 0, html<TableColumn, Table>`\n <div\n class=\"\n column-divider\n left\n ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getLeftDividerIndex(c.index) ? 'divider-active' : ''}`}\n \"\n @mousedown=\"${(_, c) => c.parent.onLeftDividerMouseDown(c.event as MouseEvent, c.index)}\">\n </div>\n `)}\n <${tableHeaderTag}\n class=\"header\"\n sort-direction=\"${x => (typeof x.columnInternals.currentSortIndex === 'number' ? x.columnInternals.currentSortDirection : TableColumnSortDirection.none)}\"\n ?first-sorted-column=\"${(x, c) => x === c.parent.firstSortedColumn}\"\n @click=\"${(x, c) => c.parent.toggleColumnSort(x, (c.event as MouseEvent).shiftKey)}\"\n :isGrouped=${x => (typeof x.columnInternals.groupIndex === 'number' && !x.columnInternals.groupingDisabled)}\n >\n <slot name=\"${x => x.slot}\"></slot>\n </${tableHeaderTag}>\n ${when((_, c) => c.index < c.length - 1, html<TableColumn, Table>`\n <div\n class=\"\n column-divider\n right\n ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getRightDividerIndex(c.index) ? 'divider-active' : ''}`}\n \"\n @mousedown=\"${(_, c) => c.parent.onRightDividerMouseDown(c.event as MouseEvent, c.index)}\">\n </div>\n `)} \n </div>\n `, { positioning: true })}\n <div class=\"header-scrollbar-spacer\"></div>\n </span>\n </div>\n </div>\n <div class=\"table-viewport\" ${ref('viewport')}>\n <div class=\"table-scroll\"></div>\n <div class=\"table-row-container\" ${children({ property: 'rowElements', filter: elements(tableRowTag) })}\n role=\"rowgroup\">\n ${when(x => x.columns.length > 0 && x.canRenderRows, html<Table>`\n ${repeat(x => x.virtualizer.visibleItems, html<VirtualItem, Table>`\n ${when((x, c) => (c.parent as Table).tableData[x.index]?.isGroupRow, html<VirtualItem, Table>`\n <${tableGroupRowTag}\n class=\"group-row\"\n :groupRowValue=\"${(x, c) => c.parent.tableData[x.index]?.groupRowValue}\"\n ?expanded=\"${(x, c) => c.parent.tableData[x.index]?.isExpanded}\"\n :nestingLevel=\"${(x, c) => c.parent.tableData[x.index]?.nestingLevel}\"\n :immediateChildCount=\"${(x, c) => c.parent.tableData[x.index]?.immediateChildCount}\"\n :groupColumn=\"${(x, c) => c.parent.tableData[x.index]?.groupColumn}\"\n ?selectable=\"${(_, c) => c.parent.selectionMode === TableRowSelectionMode.multiple}\"\n selection-state=\"${(x, c) => c.parent.tableData[x.index]?.selectionState}\"\n @group-selection-toggle=\"${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event as CustomEvent<TableRowSelectionToggleEventDetail>)}\"\n @group-expand-toggle=\"${(x, c) => c.parent.handleGroupRowExpanded(x.index, c.event)}\"\n >\n </${tableGroupRowTag}>\n `)}\n ${when((x, c) => !(c.parent as Table).tableData[x.index]?.isGroupRow, html<VirtualItem, Table>`\n <${tableRowTag}\n class=\"row\"\n record-id=\"${(x, c) => c.parent.tableData[x.index]?.id}\"\n ?selectable=\"${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.none}\"\n ?selected=\"${(x, c) => c.parent.tableData[x.index]?.selectionState === TableRowSelectionState.selected}\"\n ?expanded=\"${(x, c) => c.parent.tableData[x.index]?.isExpanded}\"\n ?hide-selection=\"${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.multiple}\"\n :dataRecord=\"${(x, c) => c.parent.tableData[x.index]?.record}\"\n :columns=\"${(_, c) => c.parent.columns}\"\n :isParentRow=\"${(x, c) => c.parent.tableData[x.index]?.isParentRow}\"\n :nestingLevel=\"${(x, c) => c.parent.tableData[x.index]?.nestingLevel}\"\n ?row-operation-grid-cell-hidden=\"${(_, c) => !c.parent.showRowOperationColumn}\"\n ?loading=\"${(x, c) => c.parent.tableData[x.index]?.isLoadingChildren}\"\n @click=\"${(x, c) => c.parent.onRowClick(x.index, c.event as MouseEvent)}\"\n @row-selection-toggle=\"${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event as CustomEvent<TableRowSelectionToggleEventDetail>)}\"\n @row-action-menu-beforetoggle=\"${(x, c) => c.parent.onRowActionMenuBeforeToggle(x.index, c.event as CustomEvent<TableActionMenuToggleEventDetail>)}\"\n @row-action-menu-toggle=\"${(_, c) => c.parent.onRowActionMenuToggle(c.event as CustomEvent<TableActionMenuToggleEventDetail>)}\"\n @row-expand-toggle=\"${(x, c) => c.parent.handleRowExpanded(x.index)}\"\n :dataIndex=\"${x => x.index}\"\n >\n ${when((x, c) => (c.parent as Table).openActionMenuRecordId === (c.parent as Table).tableData[x.index]?.id, html<VirtualItem, Table>`\n ${repeat((_, c) => (c.parent as Table).actionMenuSlots, html<string, Table>`\n <slot\n name=\"${x => x}\"\n slot=\"${x => `row-action-menu-${x}`}\">\n </slot>\n `)}\n `)}\n </${tableRowTag}>\n `)}\n `)}\n `)}\n </div>\n </div>\n </div>\n </div>\n </template>\n`;\n"]}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n children,\n elements,\n html,\n ref,\n repeat,\n when\n} from '@microsoft/fast-element';\nimport type { VirtualItem } from '@tanstack/virtual-core';\nimport type { Table } from '.';\nimport { tableHeaderTag } from './components/header';\nimport { tableRowTag } from './components/row';\nimport type { TableColumn } from '../table-column/base';\nimport {\n TableActionMenuToggleEventDetail,\n TableColumnSortDirection,\n TableRowSelectionMode,\n TableRowSelectionState,\n TableRowSelectionToggleEventDetail\n} from './types';\nimport { tableGroupRowTag } from './components/group-row';\nimport { buttonTag } from '../button';\nimport { ButtonAppearance } from '../button/types';\nimport { iconTriangleTwoLinesHorizontalTag } from '../icons/triangle-two-lines-horizontal';\nimport { checkboxTag } from '../checkbox';\nimport {\n tableCollapseAllLabel,\n tableRowOperationColumnLabel,\n tableSelectAllLabel\n} from '../label-provider/table/label-tokens';\n\n// prettier-ignore\nexport const template = html<Table>`\n <template\n role=\"treegrid\"\n aria-multiselectable=\"${x => x.ariaMultiSelectable}\"\n ${children({ property: 'childItems', filter: elements() })}\n >\n <div class=\"table-container ${x => (x.documentShiftKeyDown ? 'disable-select' : '')}\"\n style=\"\n --ni-private-table-scroll-x: -${x => x.scrollX}px;\n --ni-private-table-header-container-margin-right: ${x => x.virtualizer.headerContainerMarginRight}px;\n --ni-private-table-scroll-height: ${x => x.virtualizer.scrollHeight}px;\n --ni-private-table-row-container-top: ${x => x.virtualizer.rowContainerYOffset}px;\n --ni-private-table-row-grid-columns: ${x => (x.rowGridColumns ? x.rowGridColumns : '')};\n --ni-private-table-cursor-override: ${x => (x.layoutManager.isColumnBeingSized ? 'col-resize' : 'default')};\n --ni-private-table-scrollable-min-width: ${x => x.tableScrollableMinWidth}px;\n --ni-private-glass-overlay-pointer-events: ${x => (x.layoutManager.isColumnBeingSized ? 'none' : 'default')};\n \">\n <div class=\"glass-overlay\">\n <div role=\"rowgroup\" class=\"header-row-container\">\n <div class=\"header-row\" role=\"row\">\n <span role=\"${x => (x.showRowOperationColumn ? 'columnheader' : '')}\" class=\"header-row-action-container\" ${ref('headerRowActionContainer')}>\n ${when(x => x.showRowOperationColumn, html<Table>`\n <span class=\"accessibly-hidden\">\n ${x => tableRowOperationColumnLabel.getValueFor(x)}\n </span>\n `)}\n ${when(x => x.selectionMode === TableRowSelectionMode.multiple, html<Table>`\n <span class=\"checkbox-container\">\n <${checkboxTag}\n ${ref('selectionCheckbox')}\n class=\"${x => `selection-checkbox ${x.selectionMode ? x.selectionMode : ''}`}\"\n @change=\"${(x, c) => x.onAllRowsSelectionChange(c.event as CustomEvent)}\"\n title=\"${x => tableSelectAllLabel.getValueFor(x)}\"\n aria-label=\"${x => tableSelectAllLabel.getValueFor(x)}\"\n >\n </${checkboxTag}>\n </span>\n `)}\n <${buttonTag}\n class=\"collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}\"\n content-hidden\n appearance=\"${ButtonAppearance.ghost}\"\n title=\"${x => tableCollapseAllLabel.getValueFor(x)}\"\n @click=\"${x => x.handleCollapseAllRows()}\"\n >\n <${iconTriangleTwoLinesHorizontalTag} slot=\"start\"></${iconTriangleTwoLinesHorizontalTag}>\n ${x => tableCollapseAllLabel.getValueFor(x)}\n </${buttonTag}>\n </span>\n <span class=\"column-headers-container\" ${ref('columnHeadersContainer')}>\n ${repeat(x => x.visibleColumns, html<TableColumn, Table>`\n <div class=\"header-container\">\n ${when((_, c) => c.index > 0, html<TableColumn, Table>`\n <div\n class=\"\n column-divider\n left\n ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getLeftDividerIndex(c.index) ? 'divider-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.hasResizableColumnToLeft(c.index - 1) ? 'draggable' : ''}`}\n \"\n @mousedown=\"${(_, c) => c.parent.onLeftDividerMouseDown(c.event as MouseEvent, c.index)}\">\n </div>\n `)}\n <${tableHeaderTag}\n class=\"header\"\n sort-direction=\"${x => (typeof x.columnInternals.currentSortIndex === 'number' ? x.columnInternals.currentSortDirection : TableColumnSortDirection.none)}\"\n ?first-sorted-column=\"${(x, c) => x === c.parent.firstSortedColumn}\"\n ?indicators-hidden=\"${x => x.columnInternals.hideHeaderIndicators}\"\n @click=\"${(x, c) => c.parent.toggleColumnSort(x, (c.event as MouseEvent).shiftKey)}\"\n :isGrouped=${x => (typeof x.columnInternals.groupIndex === 'number' && !x.columnInternals.groupingDisabled)}\n >\n <slot name=\"${x => x.slot}\"></slot>\n </${tableHeaderTag}>\n ${when((_, c) => c.index < c.length - 1, html<TableColumn, Table>`\n <div\n class=\"\n column-divider\n right\n ${(_, c) => `${c.parent.layoutManager.activeColumnIndex === c.index ? 'column-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.activeColumnDivider === c.parent.getRightDividerIndex(c.index) ? 'divider-active' : ''}`}\n ${(_, c) => `${c.parent.layoutManager.hasResizableColumnToLeft(c.index) ? 'draggable' : ''}`}\n \"\n @mousedown=\"${(_, c) => c.parent.onRightDividerMouseDown(c.event as MouseEvent, c.index)}\">\n </div>\n `)} \n </div>\n `, { positioning: true })}\n <div class=\"header-scrollbar-spacer\"></div>\n </span>\n </div>\n </div>\n <div class=\"table-viewport\" ${ref('viewport')}>\n <div class=\"table-scroll\"></div>\n <div class=\"table-row-container\" ${children({ property: 'rowElements', filter: elements(tableRowTag) })}\n role=\"rowgroup\">\n ${when(x => x.columns.length > 0 && x.canRenderRows, html<Table>`\n ${repeat(x => x.virtualizer.visibleItems, html<VirtualItem, Table>`\n ${when((x, c) => (c.parent as Table).tableData[x.index]?.isGroupRow, html<VirtualItem, Table>`\n <${tableGroupRowTag}\n class=\"group-row\"\n :groupRowValue=\"${(x, c) => c.parent.tableData[x.index]?.groupRowValue}\"\n ?expanded=\"${(x, c) => c.parent.tableData[x.index]?.isExpanded}\"\n :nestingLevel=\"${(x, c) => c.parent.tableData[x.index]?.nestingLevel}\"\n :immediateChildCount=\"${(x, c) => c.parent.tableData[x.index]?.immediateChildCount}\"\n :groupColumn=\"${(x, c) => c.parent.tableData[x.index]?.groupColumn}\"\n ?selectable=\"${(_, c) => c.parent.selectionMode === TableRowSelectionMode.multiple}\"\n selection-state=\"${(x, c) => c.parent.tableData[x.index]?.selectionState}\"\n @group-selection-toggle=\"${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event as CustomEvent<TableRowSelectionToggleEventDetail>)}\"\n @group-expand-toggle=\"${(x, c) => c.parent.handleGroupRowExpanded(x.index, c.event)}\"\n >\n </${tableGroupRowTag}>\n `)}\n ${when((x, c) => !(c.parent as Table).tableData[x.index]?.isGroupRow, html<VirtualItem, Table>`\n <${tableRowTag}\n class=\"row\"\n record-id=\"${(x, c) => c.parent.tableData[x.index]?.id}\"\n ?selectable=\"${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.none}\"\n ?selected=\"${(x, c) => c.parent.tableData[x.index]?.selectionState === TableRowSelectionState.selected}\"\n ?expanded=\"${(x, c) => c.parent.tableData[x.index]?.isExpanded}\"\n ?hide-selection=\"${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.multiple}\"\n :dataRecord=\"${(x, c) => c.parent.tableData[x.index]?.record}\"\n :columns=\"${(_, c) => c.parent.columns}\"\n :isParentRow=\"${(x, c) => c.parent.tableData[x.index]?.isParentRow}\"\n :nestingLevel=\"${(x, c) => c.parent.tableData[x.index]?.nestingLevel}\"\n ?row-operation-grid-cell-hidden=\"${(_, c) => !c.parent.showRowOperationColumn}\"\n ?loading=\"${(x, c) => c.parent.tableData[x.index]?.isLoadingChildren}\"\n @click=\"${(x, c) => c.parent.onRowClick(x.index, c.event as MouseEvent)}\"\n @row-selection-toggle=\"${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event as CustomEvent<TableRowSelectionToggleEventDetail>)}\"\n @row-action-menu-beforetoggle=\"${(x, c) => c.parent.onRowActionMenuBeforeToggle(x.index, c.event as CustomEvent<TableActionMenuToggleEventDetail>)}\"\n @row-action-menu-toggle=\"${(_, c) => c.parent.onRowActionMenuToggle(c.event as CustomEvent<TableActionMenuToggleEventDetail>)}\"\n @row-expand-toggle=\"${(x, c) => c.parent.handleRowExpanded(x.index)}\"\n :dataIndex=\"${x => x.index}\"\n >\n ${when((x, c) => (c.parent as Table).openActionMenuRecordId === (c.parent as Table).tableData[x.index]?.id, html<VirtualItem, Table>`\n ${repeat((_, c) => (c.parent as Table).actionMenuSlots, html<string, Table>`\n <slot\n name=\"${x => x}\"\n slot=\"${x => `row-action-menu-${x}`}\">\n </slot>\n `)}\n `)}\n </${tableRowTag}>\n `)}\n `)}\n `)}\n </div>\n </div>\n </div>\n </div>\n </template>\n`;\n"]}
@@ -98,6 +98,15 @@ export declare class ColumnInternals<TColumnConfig, TColumnValidator extends Col
98
98
  * The minimum size in pixels according to the design doc
99
99
  */
100
100
  minPixelWidth: number;
101
+ /**
102
+ * Whether or not resizing the column has been disabled.
103
+ */
104
+ resizingDisabled: boolean;
105
+ /**
106
+ * Whether or not the grouping and sorting indicators should be hidden in the column header
107
+ * when the column is grouped or sorted.
108
+ */
109
+ hideHeaderIndicators: boolean;
101
110
  /**
102
111
  * @internal Do not write to this value directly. It is used by the Table in order to store
103
112
  * the resolved value of the fractionalWidth after updates programmatic or interactive updates.
@@ -37,6 +37,15 @@ export class ColumnInternals {
37
37
  * The minimum size in pixels according to the design doc
38
38
  */
39
39
  this.minPixelWidth = defaultMinPixelWidth;
40
+ /**
41
+ * Whether or not resizing the column has been disabled.
42
+ */
43
+ this.resizingDisabled = false;
44
+ /**
45
+ * Whether or not the grouping and sorting indicators should be hidden in the column header
46
+ * when the column is grouped or sorted.
47
+ */
48
+ this.hideHeaderIndicators = false;
40
49
  /**
41
50
  * @internal Do not write to this value directly. It is used by the Table in order to store
42
51
  * the resolved value of the fractionalWidth after updates programmatic or interactive updates.
@@ -88,6 +97,12 @@ __decorate([
88
97
  __decorate([
89
98
  observable
90
99
  ], ColumnInternals.prototype, "minPixelWidth", void 0);
100
+ __decorate([
101
+ observable
102
+ ], ColumnInternals.prototype, "resizingDisabled", void 0);
103
+ __decorate([
104
+ observable
105
+ ], ColumnInternals.prototype, "hideHeaderIndicators", void 0);
91
106
  __decorate([
92
107
  observable
93
108
  ], ColumnInternals.prototype, "currentFractionalWidth", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"column-internals.js","sourceRoot":"","sources":["../../../../../src/table-column/base/models/column-internals.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAgB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAkB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAwC/D;;;GAGG;AACH,MAAM,OAAO,eAAe;IAqHxB,YAAmB,OAAiD;QA5GpE;;WAEG;QACa,aAAQ,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAwBzD;;WAEG;QAEI,kBAAa,GAA6B,wBAAwB,CAAC,KAAK,CAAC;QAEhF;;;WAGG;QAEI,yBAAoB,GAA4C,EAAE,CAAC;QAO1E;;WAEG;QAEI,qBAAgB,GAAG,KAAK,CAAC;QAgBhC;;;WAGG;QAEI,oBAAe,GAAG,sBAAsB,CAAC;QAEhD;;WAEG;QAEI,kBAAa,GAAG,oBAAoB,CAAC;QAE5C;;;WAGG;QAEI,2BAAsB,GAAG,sBAAsB,CAAC;QAgBvD;;;WAGG;QAEI,yBAAoB,GAA6B,wBAAwB,CAAC,IAAI,CAAC;QAKlF,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,GAAG,6BAA6B,CACxD,OAAO,CAAC,kBAAkB,CAC7B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,wBAAwB,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAES,sBAAsB;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACvD,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;CACJ;AA3GU;IADN,UAAU;qDACyB;AAM7B;IADN,UAAU;mEACwC;AAM5C;IADN,UAAU;sDACqE;AAOzE;IADN,UAAU;6DAC+D;AAWnE;IADN,UAAU;yDACqB;AAQzB;IADN,UAAU;mDACgB;AAMpB;IADN,UAAU;mDACgB;AAOpB;IADN,UAAU;wDACqC;AAMzC;IADN,UAAU;sDACiC;AAOrC;IADN,UAAU;+DAC4C;AAOhD;IADN,UAAU;0DACuB;AAO3B;IADN,UAAU;yDAC6B;AAOjC;IADN,UAAU;6DAC2E;AAwB1F,MAAM,UAAU,yBAAyB,CACrC,eAAuB,EACvB,GAAG,IAA6D;IAEhE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,IAAI,eAAe,KAAK,GAAG,EAAE;YACzB,OAAO,IAAI,CAAC;SACf;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { uniqueId } from '@microsoft/fast-web-utilities';\nimport { ViewTemplate, observable } from '@microsoft/fast-element';\nimport { TableColumnSortDirection, TableFieldName } from '../../../table/types';\nimport type { TableCell } from '../../../table/components/cell';\nimport {\n TableColumnSortOperation,\n defaultFractionalWidth,\n defaultMinPixelWidth\n} from '../types';\nimport type { TableGroupRow } from '../../../table/components/group-row';\nimport { createGroupHeaderViewTemplate } from '../group-header-view/template';\nimport { createCellViewTemplate } from '../cell-view/template';\nimport type { ColumnValidator } from './column-validator';\n\nexport interface ColumnInternalsOptions<\n TColumnValidator extends ColumnValidator<[]> = ColumnValidator<[]>\n> {\n /**\n * The tag (element name) of the custom element that renders the cell content for the column.\n * That element should derive from TableCellView<TCellRecord, TColumnConfig>.\n */\n readonly cellViewTag: string;\n\n /**\n * The names of the fields that should be present in TCellRecord.\n * This array is parallel with the field names specified by `dataRecordFieldNames`.\n */\n readonly cellRecordFieldNames: readonly TableFieldName[];\n\n /**\n * The tag to use to render the group header content for a column.\n * The element this tag refers to must derive from TableGroupHeaderView.\n */\n readonly groupHeaderViewTag: string;\n\n /**\n * The names of events that should be delegated from the cell view to the column.\n */\n readonly delegatedEvents: readonly string[];\n\n /**\n * The sort operation to use for the column (defaults to TableColumnSortOperation.basic)\n */\n readonly sortOperation?: TableColumnSortOperation;\n\n /**\n * The validator for the column\n */\n readonly validator: TColumnValidator;\n}\n\n/**\n * Internal column state configured by plugin authors\n * @internal\n */\nexport class ColumnInternals<\n TColumnConfig,\n TColumnValidator extends ColumnValidator<[]>\n> {\n /**\n * @see ColumnInternalsOptions.cellRecordFieldNames\n */\n public readonly cellRecordFieldNames: readonly TableFieldName[];\n\n /**\n * A unique id used internally in the table to identify specific column instances\n */\n public readonly uniqueId = uniqueId('table-column-slot');\n\n /**\n * Template for the cell view\n */\n public readonly cellViewTemplate: ViewTemplate<TableCell>;\n\n /**\n * The names of events that should be delegated from the cell view to the column.\n */\n public readonly delegatedEvents: readonly string[];\n\n /**\n * The relevant, static configuration a column requires its cell view to have access to.\n */\n @observable\n public columnConfig?: TColumnConfig;\n\n /**\n * The name of the data field that will be used for operations on the table, such as sorting and grouping.\n */\n @observable\n public operandDataRecordFieldName?: TableFieldName;\n\n /**\n * The operation to use when sorting the table by this column.\n */\n @observable\n public sortOperation: TableColumnSortOperation = TableColumnSortOperation.basic;\n\n /**\n * The names of the fields from the row's record that correlate to the data that will be in TCellRecord.\n * This array is parallel with the field names specified by `cellRecordFieldNames`.\n */\n @observable\n public dataRecordFieldNames: readonly (TableFieldName | undefined)[] = [];\n\n /**\n * Template for the group header view\n */\n public readonly groupHeaderViewTemplate: ViewTemplate<TableGroupRow>;\n\n /**\n * Whether or not this column can be used to group rows by\n */\n @observable\n public groupingDisabled = false;\n\n /**\n * Specifies the grouping precedence of the column within the set of all columns participating in grouping.\n * Columns are rendered in the grouping tree from lowest group-index as the tree root to highest\n * group-index as tree leaves.\n */\n @observable\n public groupIndex?: number;\n\n /**\n * Used by column plugins to set a specific pixel width. Sets currentPixelWidth when changed.\n */\n @observable\n public pixelWidth?: number;\n\n /**\n * Used by column plugins to size a column proportionally to the available\n * width of a row. Sets currentFractionalWidth when changed.\n */\n @observable\n public fractionalWidth = defaultFractionalWidth;\n\n /**\n * The minimum size in pixels according to the design doc\n */\n @observable\n public minPixelWidth = defaultMinPixelWidth;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the fractionalWidth after updates programmatic or interactive updates.\n */\n @observable\n public currentFractionalWidth = defaultFractionalWidth;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the pixelWidth after programmatic or interactive updates.\n */\n @observable\n public currentPixelWidth?: number;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the sortIndex after programmatic or interactive updates.\n */\n @observable\n public currentSortIndex?: number | null;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the sortDirection after programmatic or interactive updates.\n */\n @observable\n public currentSortDirection: TableColumnSortDirection = TableColumnSortDirection.none;\n\n public readonly validator: TColumnValidator;\n\n public constructor(options: ColumnInternalsOptions<TColumnValidator>) {\n this.cellRecordFieldNames = options.cellRecordFieldNames;\n this.cellViewTemplate = createCellViewTemplate(options.cellViewTag);\n this.groupHeaderViewTemplate = createGroupHeaderViewTemplate(\n options.groupHeaderViewTag\n );\n this.delegatedEvents = options.delegatedEvents;\n this.sortOperation = options.sortOperation ?? TableColumnSortOperation.basic;\n this.validator = options.validator;\n }\n\n protected fractionalWidthChanged(): void {\n this.currentFractionalWidth = this.fractionalWidth;\n }\n\n protected pixelWidthChanged(): void {\n this.currentPixelWidth = this.pixelWidth;\n }\n}\n\nexport function isColumnInternalsProperty(\n changedProperty: string,\n ...args: (keyof ColumnInternals<unknown, ColumnValidator<[]>>)[]\n): boolean {\n for (const arg of args) {\n if (changedProperty === arg) {\n return true;\n }\n }\n return false;\n}\n"]}
1
+ {"version":3,"file":"column-internals.js","sourceRoot":"","sources":["../../../../../src/table-column/base/models/column-internals.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAgB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAkB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAwC/D;;;GAGG;AACH,MAAM,OAAO,eAAe;IAkIxB,YAAmB,OAAiD;QAzHpE;;WAEG;QACa,aAAQ,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAwBzD;;WAEG;QAEI,kBAAa,GAA6B,wBAAwB,CAAC,KAAK,CAAC;QAEhF;;;WAGG;QAEI,yBAAoB,GAA4C,EAAE,CAAC;QAO1E;;WAEG;QAEI,qBAAgB,GAAG,KAAK,CAAC;QAgBhC;;;WAGG;QAEI,oBAAe,GAAG,sBAAsB,CAAC;QAEhD;;WAEG;QAEI,kBAAa,GAAG,oBAAoB,CAAC;QAE5C;;WAEG;QAEI,qBAAgB,GAAG,KAAK,CAAC;QAEhC;;;WAGG;QAEI,yBAAoB,GAAG,KAAK,CAAC;QAEpC;;;WAGG;QAEI,2BAAsB,GAAG,sBAAsB,CAAC;QAgBvD;;;WAGG;QAEI,yBAAoB,GAA6B,wBAAwB,CAAC,IAAI,CAAC;QAKlF,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,GAAG,6BAA6B,CACxD,OAAO,CAAC,kBAAkB,CAC7B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,wBAAwB,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAES,sBAAsB;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACvD,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;CACJ;AAxHU;IADN,UAAU;qDACyB;AAM7B;IADN,UAAU;mEACwC;AAM5C;IADN,UAAU;sDACqE;AAOzE;IADN,UAAU;6DAC+D;AAWnE;IADN,UAAU;yDACqB;AAQzB;IADN,UAAU;mDACgB;AAMpB;IADN,UAAU;mDACgB;AAOpB;IADN,UAAU;wDACqC;AAMzC;IADN,UAAU;sDACiC;AAMrC;IADN,UAAU;yDACqB;AAOzB;IADN,UAAU;6DACyB;AAO7B;IADN,UAAU;+DAC4C;AAOhD;IADN,UAAU;0DACuB;AAO3B;IADN,UAAU;yDAC6B;AAOjC;IADN,UAAU;6DAC2E;AAwB1F,MAAM,UAAU,yBAAyB,CACrC,eAAuB,EACvB,GAAG,IAA6D;IAEhE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,IAAI,eAAe,KAAK,GAAG,EAAE;YACzB,OAAO,IAAI,CAAC;SACf;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { uniqueId } from '@microsoft/fast-web-utilities';\nimport { ViewTemplate, observable } from '@microsoft/fast-element';\nimport { TableColumnSortDirection, TableFieldName } from '../../../table/types';\nimport type { TableCell } from '../../../table/components/cell';\nimport {\n TableColumnSortOperation,\n defaultFractionalWidth,\n defaultMinPixelWidth\n} from '../types';\nimport type { TableGroupRow } from '../../../table/components/group-row';\nimport { createGroupHeaderViewTemplate } from '../group-header-view/template';\nimport { createCellViewTemplate } from '../cell-view/template';\nimport type { ColumnValidator } from './column-validator';\n\nexport interface ColumnInternalsOptions<\n TColumnValidator extends ColumnValidator<[]> = ColumnValidator<[]>\n> {\n /**\n * The tag (element name) of the custom element that renders the cell content for the column.\n * That element should derive from TableCellView<TCellRecord, TColumnConfig>.\n */\n readonly cellViewTag: string;\n\n /**\n * The names of the fields that should be present in TCellRecord.\n * This array is parallel with the field names specified by `dataRecordFieldNames`.\n */\n readonly cellRecordFieldNames: readonly TableFieldName[];\n\n /**\n * The tag to use to render the group header content for a column.\n * The element this tag refers to must derive from TableGroupHeaderView.\n */\n readonly groupHeaderViewTag: string;\n\n /**\n * The names of events that should be delegated from the cell view to the column.\n */\n readonly delegatedEvents: readonly string[];\n\n /**\n * The sort operation to use for the column (defaults to TableColumnSortOperation.basic)\n */\n readonly sortOperation?: TableColumnSortOperation;\n\n /**\n * The validator for the column\n */\n readonly validator: TColumnValidator;\n}\n\n/**\n * Internal column state configured by plugin authors\n * @internal\n */\nexport class ColumnInternals<\n TColumnConfig,\n TColumnValidator extends ColumnValidator<[]>\n> {\n /**\n * @see ColumnInternalsOptions.cellRecordFieldNames\n */\n public readonly cellRecordFieldNames: readonly TableFieldName[];\n\n /**\n * A unique id used internally in the table to identify specific column instances\n */\n public readonly uniqueId = uniqueId('table-column-slot');\n\n /**\n * Template for the cell view\n */\n public readonly cellViewTemplate: ViewTemplate<TableCell>;\n\n /**\n * The names of events that should be delegated from the cell view to the column.\n */\n public readonly delegatedEvents: readonly string[];\n\n /**\n * The relevant, static configuration a column requires its cell view to have access to.\n */\n @observable\n public columnConfig?: TColumnConfig;\n\n /**\n * The name of the data field that will be used for operations on the table, such as sorting and grouping.\n */\n @observable\n public operandDataRecordFieldName?: TableFieldName;\n\n /**\n * The operation to use when sorting the table by this column.\n */\n @observable\n public sortOperation: TableColumnSortOperation = TableColumnSortOperation.basic;\n\n /**\n * The names of the fields from the row's record that correlate to the data that will be in TCellRecord.\n * This array is parallel with the field names specified by `cellRecordFieldNames`.\n */\n @observable\n public dataRecordFieldNames: readonly (TableFieldName | undefined)[] = [];\n\n /**\n * Template for the group header view\n */\n public readonly groupHeaderViewTemplate: ViewTemplate<TableGroupRow>;\n\n /**\n * Whether or not this column can be used to group rows by\n */\n @observable\n public groupingDisabled = false;\n\n /**\n * Specifies the grouping precedence of the column within the set of all columns participating in grouping.\n * Columns are rendered in the grouping tree from lowest group-index as the tree root to highest\n * group-index as tree leaves.\n */\n @observable\n public groupIndex?: number;\n\n /**\n * Used by column plugins to set a specific pixel width. Sets currentPixelWidth when changed.\n */\n @observable\n public pixelWidth?: number;\n\n /**\n * Used by column plugins to size a column proportionally to the available\n * width of a row. Sets currentFractionalWidth when changed.\n */\n @observable\n public fractionalWidth = defaultFractionalWidth;\n\n /**\n * The minimum size in pixels according to the design doc\n */\n @observable\n public minPixelWidth = defaultMinPixelWidth;\n\n /**\n * Whether or not resizing the column has been disabled.\n */\n @observable\n public resizingDisabled = false;\n\n /**\n * Whether or not the grouping and sorting indicators should be hidden in the column header\n * when the column is grouped or sorted.\n */\n @observable\n public hideHeaderIndicators = false;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the fractionalWidth after updates programmatic or interactive updates.\n */\n @observable\n public currentFractionalWidth = defaultFractionalWidth;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the pixelWidth after programmatic or interactive updates.\n */\n @observable\n public currentPixelWidth?: number;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the sortIndex after programmatic or interactive updates.\n */\n @observable\n public currentSortIndex?: number | null;\n\n /**\n * @internal Do not write to this value directly. It is used by the Table in order to store\n * the resolved value of the sortDirection after programmatic or interactive updates.\n */\n @observable\n public currentSortDirection: TableColumnSortDirection = TableColumnSortDirection.none;\n\n public readonly validator: TColumnValidator;\n\n public constructor(options: ColumnInternalsOptions<TColumnValidator>) {\n this.cellRecordFieldNames = options.cellRecordFieldNames;\n this.cellViewTemplate = createCellViewTemplate(options.cellViewTag);\n this.groupHeaderViewTemplate = createGroupHeaderViewTemplate(\n options.groupHeaderViewTag\n );\n this.delegatedEvents = options.delegatedEvents;\n this.sortOperation = options.sortOperation ?? TableColumnSortOperation.basic;\n this.validator = options.validator;\n }\n\n protected fractionalWidthChanged(): void {\n this.currentFractionalWidth = this.fractionalWidth;\n }\n\n protected pixelWidthChanged(): void {\n this.currentPixelWidth = this.pixelWidth;\n }\n}\n\nexport function isColumnInternalsProperty(\n changedProperty: string,\n ...args: (keyof ColumnInternals<unknown, ColumnValidator<[]>>)[]\n): boolean {\n for (const arg of args) {\n if (changedProperty === arg) {\n return true;\n }\n }\n return false;\n}\n"]}
@@ -35,4 +35,5 @@ export type TableColumnSortOperation = (typeof TableColumnSortOperation)[keyof t
35
35
  export interface TableColumnValidity extends ValidityObject {
36
36
  }
37
37
  export declare const defaultMinPixelWidth: number;
38
+ export declare const singleIconColumnWidth: number;
38
39
  export declare const defaultFractionalWidth = 1;
@@ -12,19 +12,21 @@ export const TableColumnSortOperation = {
12
12
  */
13
13
  localeAwareCaseSensitive: 'localeAwareCaseSensitive'
14
14
  };
15
- const groupIconSize = 16;
16
- const sortIconSize = 16;
17
- const spacing = 8;
18
- const menuDropdownSize = 24;
15
+ const columnIconSize = 16; // `iconSize` token
16
+ const columnSpacing = 8; // `mediumPadding` token
17
+ const menuDropdownSize = 24; // `controlSlimHeight` token
19
18
  const oneCharPlusEllipsisSize = 21;
20
- export const defaultMinPixelWidth = spacing
19
+ export const defaultMinPixelWidth = columnSpacing // left cell padding
21
20
  + oneCharPlusEllipsisSize
22
- + spacing
23
- + sortIconSize
24
- + spacing
25
- + groupIconSize
26
- + spacing
21
+ + columnSpacing
22
+ + columnIconSize // sort icon
23
+ + columnSpacing
24
+ + columnIconSize // group icon
25
+ + columnSpacing
27
26
  + menuDropdownSize
28
- + spacing;
27
+ + columnSpacing; // right cell padding
28
+ export const singleIconColumnWidth = columnSpacing // left cell padding
29
+ + columnIconSize
30
+ + columnSpacing; // right cell padding
29
31
  export const defaultFractionalWidth = 1;
30
32
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/base/types.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;;OAGG;IACH,wBAAwB,EAAE,0BAA0B;CAC9C,CAAC;AAOX,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO;MACrC,uBAAuB;MACvB,OAAO;MACP,YAAY;MACZ,OAAO;MACP,aAAa;MACb,OAAO;MACP,gBAAgB;MAChB,OAAO,CAAC;AAEd,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC","sourcesContent":["import type { TableRecord } from '../../table/types';\nimport type { ValidityObject } from '../../utilities/models/validator';\n\n/**\n * An object whose fields are defined by a particular TableColumn, which is used by the column's\n * cellTemplate implementation.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface TableCellRecord extends TableRecord {}\n\nexport interface TableCellState<\n TCellRecord extends TableCellRecord = TableCellRecord,\n TColumnConfig = unknown\n> {\n cellRecord?: TCellRecord;\n columnConfig?: TColumnConfig;\n}\n\n/**\n * The event details for the 'delegated-event' CustomEvent\n */\nexport interface DelegatedEventEventDetails {\n originalEvent: Event;\n recordId: string;\n}\n\n/**\n * The possible operations to use when sorting a table column.\n */\nexport const TableColumnSortOperation = {\n /**\n * Performs a sort using `===`, `<`, and `>` operators\n */\n basic: 'basic',\n /**\n * Performs a locale-aware case-sensitive string sort on the columns.\n * Only use this sort operation if the field is of type `string | undefined | null`.\n */\n localeAwareCaseSensitive: 'localeAwareCaseSensitive'\n} as const;\nexport type TableColumnSortOperation =\n (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface TableColumnValidity extends ValidityObject {}\n\nconst groupIconSize = 16;\nconst sortIconSize = 16;\nconst spacing = 8;\nconst menuDropdownSize = 24;\nconst oneCharPlusEllipsisSize = 21;\nexport const defaultMinPixelWidth = spacing\n + oneCharPlusEllipsisSize\n + spacing\n + sortIconSize\n + spacing\n + groupIconSize\n + spacing\n + menuDropdownSize\n + spacing;\n\nexport const defaultFractionalWidth = 1;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/base/types.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;;OAGG;IACH,wBAAwB,EAAE,0BAA0B;CAC9C,CAAC;AAOX,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,mBAAmB;AAC9C,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,wBAAwB;AACjD,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,4BAA4B;AACzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB;MAChE,uBAAuB;MACvB,aAAa;MACb,cAAc,CAAC,YAAY;MAC3B,aAAa;MACb,cAAc,CAAC,aAAa;MAC5B,aAAa;MACb,gBAAgB;MAChB,aAAa,CAAC,CAAC,qBAAqB;AAE1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,oBAAoB;MACjE,cAAc;MACd,aAAa,CAAC,CAAC,qBAAqB;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC","sourcesContent":["import type { TableRecord } from '../../table/types';\nimport type { ValidityObject } from '../../utilities/models/validator';\n\n/**\n * An object whose fields are defined by a particular TableColumn, which is used by the column's\n * cellTemplate implementation.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface TableCellRecord extends TableRecord {}\n\nexport interface TableCellState<\n TCellRecord extends TableCellRecord = TableCellRecord,\n TColumnConfig = unknown\n> {\n cellRecord?: TCellRecord;\n columnConfig?: TColumnConfig;\n}\n\n/**\n * The event details for the 'delegated-event' CustomEvent\n */\nexport interface DelegatedEventEventDetails {\n originalEvent: Event;\n recordId: string;\n}\n\n/**\n * The possible operations to use when sorting a table column.\n */\nexport const TableColumnSortOperation = {\n /**\n * Performs a sort using `===`, `<`, and `>` operators\n */\n basic: 'basic',\n /**\n * Performs a locale-aware case-sensitive string sort on the columns.\n * Only use this sort operation if the field is of type `string | undefined | null`.\n */\n localeAwareCaseSensitive: 'localeAwareCaseSensitive'\n} as const;\nexport type TableColumnSortOperation =\n (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface TableColumnValidity extends ValidityObject {}\n\nconst columnIconSize = 16; // `iconSize` token\nconst columnSpacing = 8; // `mediumPadding` token\nconst menuDropdownSize = 24; // `controlSlimHeight` token\nconst oneCharPlusEllipsisSize = 21;\nexport const defaultMinPixelWidth = columnSpacing // left cell padding\n + oneCharPlusEllipsisSize\n + columnSpacing\n + columnIconSize // sort icon\n + columnSpacing\n + columnIconSize // group icon\n + columnSpacing\n + menuDropdownSize\n + columnSpacing; // right cell padding\n\nexport const singleIconColumnWidth = columnSpacing // left cell padding\n + columnIconSize\n + columnSpacing; // right cell padding\n\nexport const defaultFractionalWidth = 1;\n"]}
@@ -3,6 +3,7 @@ import { TableColumnIconValidator } from './models/table-column-icon-validator';
3
3
  import type { ColumnInternalsOptions } from '../base/models/column-internals';
4
4
  import type { Mapping } from '../../mapping/base';
5
5
  import type { MappingConfig } from '../enum-base/models/mapping-config';
6
+ import { TableColumnMappingWidthMode } from './types';
6
7
  declare global {
7
8
  interface HTMLElementTagNameMap {
8
9
  'nimble-table-column-icon': TableColumnIcon;
@@ -32,9 +33,13 @@ declare const TableColumnIcon_base: (abstract new (...args: any[]) => {
32
33
  * Table column that maps values to icons / spinners
33
34
  */
34
35
  export declare class TableColumnIcon extends TableColumnIcon_base {
36
+ widthMode: TableColumnMappingWidthMode;
37
+ minPixelWidthChanged(): void;
35
38
  protected getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnIconValidator>;
36
39
  protected createColumnConfig(mappingConfigs: MappingConfigs): TableColumnEnumColumnConfig;
37
40
  protected createMappingConfig(mapping: Mapping<unknown>): MappingConfig;
41
+ private widthModeChanged;
42
+ private getConfiguredMinPixelWidth;
38
43
  }
39
44
  export declare const tableColumnIconTag = "nimble-table-column-icon";
40
45
  export {};
@@ -1,8 +1,10 @@
1
+ import { __decorate } from "tslib";
1
2
  import { DesignSystem } from '@microsoft/fast-foundation';
3
+ import { attr } from '@microsoft/fast-element';
2
4
  import { TableColumnEnumBase } from '../enum-base';
3
5
  import { styles } from '../enum-base/styles';
4
6
  import { template } from '../enum-base/template';
5
- import { TableColumnSortOperation } from '../base/types';
7
+ import { TableColumnSortOperation, singleIconColumnWidth, defaultMinPixelWidth } from '../base/types';
6
8
  import { mixinGroupableColumnAPI } from '../mixins/groupable-column';
7
9
  import { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';
8
10
  import { MappingSpinner } from '../../mapping/spinner';
@@ -14,10 +16,16 @@ import { MappingIconConfig } from '../enum-base/models/mapping-icon-config';
14
16
  import { MappingSpinnerConfig } from '../enum-base/models/mapping-spinner-config';
15
17
  import { MappingText } from '../../mapping/text';
16
18
  import { MappingTextConfig } from '../enum-base/models/mapping-text-config';
19
+ import { TableColumnMappingWidthMode } from './types';
17
20
  /**
18
21
  * Table column that maps values to icons / spinners
19
22
  */
20
23
  export class TableColumnIcon extends mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI((TableColumnEnumBase))) {
24
+ minPixelWidthChanged() {
25
+ if (this.widthMode !== TableColumnMappingWidthMode.iconSize) {
26
+ this.columnInternals.minPixelWidth = this.getConfiguredMinPixelWidth();
27
+ }
28
+ }
21
29
  getColumnInternalsOptions() {
22
30
  return {
23
31
  cellRecordFieldNames: ['value'],
@@ -47,7 +55,30 @@ export class TableColumnIcon extends mixinGroupableColumnAPI(mixinFractionalWidt
47
55
  // this function from running when there is an unsupported mapping.
48
56
  throw new Error('Unsupported mapping');
49
57
  }
58
+ widthModeChanged() {
59
+ if (this.widthMode === TableColumnMappingWidthMode.iconSize) {
60
+ this.columnInternals.resizingDisabled = true;
61
+ this.columnInternals.hideHeaderIndicators = true;
62
+ this.columnInternals.pixelWidth = singleIconColumnWidth;
63
+ this.columnInternals.minPixelWidth = singleIconColumnWidth;
64
+ }
65
+ else {
66
+ this.columnInternals.resizingDisabled = false;
67
+ this.columnInternals.hideHeaderIndicators = false;
68
+ this.columnInternals.pixelWidth = undefined;
69
+ this.columnInternals.minPixelWidth = this.getConfiguredMinPixelWidth();
70
+ }
71
+ }
72
+ getConfiguredMinPixelWidth() {
73
+ if (typeof this.minPixelWidth === 'number') {
74
+ return this.minPixelWidth;
75
+ }
76
+ return defaultMinPixelWidth;
77
+ }
50
78
  }
79
+ __decorate([
80
+ attr({ attribute: 'width-mode' })
81
+ ], TableColumnIcon.prototype, "widthMode", void 0);
51
82
  const nimbleTableColumnIcon = TableColumnIcon.compose({
52
83
  baseName: 'table-column-icon',
53
84
  template,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAEH,mBAAmB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAQ5E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,uBAAuB,CACxD,6BAA6B,CACzB,CAAA,mBAGC,CAAA,CACJ,CACJ;IACsB,yBAAyB;QACxC,OAAO;YACH,oBAAoB,EAAE,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,0BAA0B;YACvC,kBAAkB,EAAE,iCAAiC;YACrD,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,wBAAwB,CAAC,KAAK;YAC7C,SAAS,EAAE,IAAI,wBAAwB,EAAE;SAC5C,CAAC;IACN,CAAC;IAEkB,kBAAkB,CACjC,cAA8B;QAE9B,OAAO;YACH,cAAc;SACjB,CAAC;IACN,CAAC;IAES,mBAAmB,CAAC,OAAyB;QACnD,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,iBAAiB,CACxB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,UAAU,CACrB,CAAC;SACL;QACD,IAAI,OAAO,YAAY,cAAc,EAAE;YACnC,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;SACrE;QACD,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9C;QACD,+EAA+E;QAC/E,mEAAmE;QACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC","sourcesContent":["import { DesignSystem } from '@microsoft/fast-foundation';\nimport {\n MappingConfigs,\n TableColumnEnumBase,\n TableColumnEnumColumnConfig\n} from '../enum-base';\nimport { styles } from '../enum-base/styles';\nimport { template } from '../enum-base/template';\nimport { TableColumnSortOperation } from '../base/types';\nimport { mixinGroupableColumnAPI } from '../mixins/groupable-column';\nimport { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';\nimport { MappingSpinner } from '../../mapping/spinner';\nimport { MappingIcon } from '../../mapping/icon';\nimport { TableColumnIconValidator } from './models/table-column-icon-validator';\nimport type { ColumnInternalsOptions } from '../base/models/column-internals';\nimport { tableColumnIconGroupHeaderViewTag } from './group-header-view';\nimport { tableColumnIconCellViewTag } from './cell-view';\nimport type { Mapping } from '../../mapping/base';\nimport type { MappingConfig } from '../enum-base/models/mapping-config';\nimport { MappingIconConfig } from '../enum-base/models/mapping-icon-config';\nimport { MappingSpinnerConfig } from '../enum-base/models/mapping-spinner-config';\nimport { MappingText } from '../../mapping/text';\nimport { MappingTextConfig } from '../enum-base/models/mapping-text-config';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-icon': TableColumnIcon;\n }\n}\n\n/**\n * Table column that maps values to icons / spinners\n */\nexport class TableColumnIcon extends mixinGroupableColumnAPI(\n mixinFractionalWidthColumnAPI(\n TableColumnEnumBase<\n TableColumnEnumColumnConfig,\n TableColumnIconValidator\n >\n )\n) {\n protected override getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnIconValidator> {\n return {\n cellRecordFieldNames: ['value'],\n cellViewTag: tableColumnIconCellViewTag,\n groupHeaderViewTag: tableColumnIconGroupHeaderViewTag,\n delegatedEvents: [],\n sortOperation: TableColumnSortOperation.basic,\n validator: new TableColumnIconValidator()\n };\n }\n\n protected override createColumnConfig(\n mappingConfigs: MappingConfigs\n ): TableColumnEnumColumnConfig {\n return {\n mappingConfigs\n };\n }\n\n protected createMappingConfig(mapping: Mapping<unknown>): MappingConfig {\n if (mapping instanceof MappingIcon) {\n return new MappingIconConfig(\n mapping.resolvedIcon,\n mapping.severity,\n mapping.text,\n mapping.textHidden\n );\n }\n if (mapping instanceof MappingSpinner) {\n return new MappingSpinnerConfig(mapping.text, mapping.textHidden);\n }\n if (mapping instanceof MappingText) {\n return new MappingTextConfig(mapping.text);\n }\n // Getting here would indicate a programming error, b/c validation will prevent\n // this function from running when there is an unsupported mapping.\n throw new Error('Unsupported mapping');\n }\n}\n\nconst nimbleTableColumnIcon = TableColumnIcon.compose({\n baseName: 'table-column-icon',\n template,\n styles\n});\n\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleTableColumnIcon());\nexport const tableColumnIconTag = 'nimble-table-column-icon';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/icon/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DesignSystem } from '@microsoft/fast-foundation';\nimport { attr } from '@microsoft/fast-element';\nimport {\n MappingConfigs,\n TableColumnEnumBase,\n TableColumnEnumColumnConfig\n} from '../enum-base';\nimport { styles } from '../enum-base/styles';\nimport { template } from '../enum-base/template';\nimport {\n TableColumnSortOperation,\n singleIconColumnWidth,\n defaultMinPixelWidth\n} from '../base/types';\nimport { mixinGroupableColumnAPI } from '../mixins/groupable-column';\nimport { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';\nimport { MappingSpinner } from '../../mapping/spinner';\nimport { MappingIcon } from '../../mapping/icon';\nimport { TableColumnIconValidator } from './models/table-column-icon-validator';\nimport type { ColumnInternalsOptions } from '../base/models/column-internals';\nimport { tableColumnIconGroupHeaderViewTag } from './group-header-view';\nimport { tableColumnIconCellViewTag } from './cell-view';\nimport type { Mapping } from '../../mapping/base';\nimport type { MappingConfig } from '../enum-base/models/mapping-config';\nimport { MappingIconConfig } from '../enum-base/models/mapping-icon-config';\nimport { MappingSpinnerConfig } from '../enum-base/models/mapping-spinner-config';\nimport { MappingText } from '../../mapping/text';\nimport { MappingTextConfig } from '../enum-base/models/mapping-text-config';\nimport { TableColumnMappingWidthMode } from './types';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-table-column-icon': TableColumnIcon;\n }\n}\n\n/**\n * Table column that maps values to icons / spinners\n */\nexport class TableColumnIcon extends mixinGroupableColumnAPI(\n mixinFractionalWidthColumnAPI(\n TableColumnEnumBase<\n TableColumnEnumColumnConfig,\n TableColumnIconValidator\n >\n )\n) {\n @attr({ attribute: 'width-mode' })\n public widthMode: TableColumnMappingWidthMode;\n\n public override minPixelWidthChanged(): void {\n if (this.widthMode !== TableColumnMappingWidthMode.iconSize) {\n this.columnInternals.minPixelWidth = this.getConfiguredMinPixelWidth();\n }\n }\n\n protected override getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnIconValidator> {\n return {\n cellRecordFieldNames: ['value'],\n cellViewTag: tableColumnIconCellViewTag,\n groupHeaderViewTag: tableColumnIconGroupHeaderViewTag,\n delegatedEvents: [],\n sortOperation: TableColumnSortOperation.basic,\n validator: new TableColumnIconValidator()\n };\n }\n\n protected override createColumnConfig(\n mappingConfigs: MappingConfigs\n ): TableColumnEnumColumnConfig {\n return {\n mappingConfigs\n };\n }\n\n protected createMappingConfig(mapping: Mapping<unknown>): MappingConfig {\n if (mapping instanceof MappingIcon) {\n return new MappingIconConfig(\n mapping.resolvedIcon,\n mapping.severity,\n mapping.text,\n mapping.textHidden\n );\n }\n if (mapping instanceof MappingSpinner) {\n return new MappingSpinnerConfig(mapping.text, mapping.textHidden);\n }\n if (mapping instanceof MappingText) {\n return new MappingTextConfig(mapping.text);\n }\n // Getting here would indicate a programming error, b/c validation will prevent\n // this function from running when there is an unsupported mapping.\n throw new Error('Unsupported mapping');\n }\n\n private widthModeChanged(): void {\n if (this.widthMode === TableColumnMappingWidthMode.iconSize) {\n this.columnInternals.resizingDisabled = true;\n this.columnInternals.hideHeaderIndicators = true;\n this.columnInternals.pixelWidth = singleIconColumnWidth;\n this.columnInternals.minPixelWidth = singleIconColumnWidth;\n } else {\n this.columnInternals.resizingDisabled = false;\n this.columnInternals.hideHeaderIndicators = false;\n this.columnInternals.pixelWidth = undefined;\n this.columnInternals.minPixelWidth = this.getConfiguredMinPixelWidth();\n }\n }\n\n private getConfiguredMinPixelWidth(): number {\n if (typeof this.minPixelWidth === 'number') {\n return this.minPixelWidth;\n }\n return defaultMinPixelWidth;\n }\n}\n\nconst nimbleTableColumnIcon = TableColumnIcon.compose({\n baseName: 'table-column-icon',\n template,\n styles\n});\n\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleTableColumnIcon());\nexport const tableColumnIconTag = 'nimble-table-column-icon';\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Width mode for the icon column
3
+ */
4
+ export declare const TableColumnMappingWidthMode: {
5
+ readonly default: undefined;
6
+ readonly iconSize: "icon-size";
7
+ };
8
+ export type TableColumnMappingWidthMode = (typeof TableColumnMappingWidthMode)[keyof typeof TableColumnMappingWidthMode];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Width mode for the icon column
3
+ */
4
+ export const TableColumnMappingWidthMode = {
5
+ default: undefined,
6
+ iconSize: 'icon-size'
7
+ };
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/table-column/icon/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACvC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,WAAW;CACf,CAAC","sourcesContent":["/**\n * Width mode for the icon column\n */\nexport const TableColumnMappingWidthMode = {\n default: undefined,\n iconSize: 'icon-size'\n} as const;\nexport type TableColumnMappingWidthMode =\n (typeof TableColumnMappingWidthMode)[keyof typeof TableColumnMappingWidthMode];\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "27.0.5",
3
+ "version": "27.1.0",
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",