@hashicorp/design-system-components
Version:
Helios Design System Components
55 lines (52 loc) • 3.48 kB
JavaScript
import Component from '@glimmer/component';
import { guidFor } from '@ember/object/internals';
import { cached } from '@glimmer/tracking';
import { modifier } from 'ember-modifier';
import { TrackedMap } from 'tracked-built-ins';
import { hash } from '@ember/helper';
import HdsAdvancedTableColumnManagerWidth from './width.js';
import HdsAdvancedTableColumnManagerOrder from './order.js';
import { precompileTemplate } from '@ember/template-compilation';
import { setComponentTemplate } from '@ember/component';
import { n } from 'decorator-transforms/runtime';
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
class HdsAdvancedTableColumnManager extends Component {
thElements = new TrackedMap();
syncThElements = modifier((element, [key]) => {
if (key !== undefined) {
this.thElements.set(key, element);
}
});
get normalizedColumns() {
return this.args.columns.map(column => {
return column.key !== undefined ? column : {
...column,
key: guidFor(column)
};
});
}
static {
n(this.prototype, "normalizedColumns", [cached]);
}
getColumnByKey = key => {
if (key === undefined) {
return;
}
return this.normalizedColumns.find(column => column.key === key);
};
static {
setComponentTemplate(precompileTemplate("<HdsAdvancedTableColumnManagerOrder @columns={{this.normalizedColumns}} @columnOrder={{@columnOrder}} @hasReorderableColumns={{@hasReorderableColumns}} @hasStickyFirstColumn={{@hasStickyFirstColumn}} @onColumnReorder={{@onColumnReorder}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Order|>\n <HdsAdvancedTableColumnManagerWidth @columns={{this.normalizedColumns}} @orderedColumns={{Order.orderedColumns}} @columnOrder={{Order.columnOrder}} @isSelectable={{@isSelectable}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Width|>\n {{yield (hash columns=this.normalizedColumns columnOrder=Order.columnOrder draggedColumnKey=Order.draggedColumnKey firstColumnKey=Order.firstColumnKey firstNonStickyColumnKey=Order.firstNonStickyColumnKey gridTemplateColumns=Width.gridTemplateColumns lastColumnKey=Order.lastColumnKey orderedColumns=Order.orderedColumns syncColumnOrder=Order.syncColumnOrder syncThElements=this.syncThElements syncWidthValues=Width.syncWidthValues applyTransientWidth=Width.applyTransientWidth getAppliedWidth=Width.getAppliedWidth getColumnByKey=this.getColumnByKey getSiblingColumnKeys=Width.getSiblingColumnKeys reorderHoveredColumnKey=Order.reorderHoveredColumnKey restoreColumnWidth=Width.restoreColumnWidth moveColumnToDropTarget=Order.moveColumnToDropTarget moveColumnToTarget=Order.moveColumnToTarget moveColumnToTerminalPosition=Order.moveColumnToTerminalPosition setTransientColumnWidths=Width.setTransientColumnWidths setTransientColumnWidth=Width.setTransientColumnWidth resetTransientColumnWidths=Width.resetTransientColumnWidths stepColumn=Order.stepColumn setDraggedColumnKey=Order.setDraggedColumnKey setReorderHoveredColumnKey=Order.setReorderHoveredColumnKey updateResizeDebt=Width.updateResizeDebt)}}\n </HdsAdvancedTableColumnManagerWidth>\n</HdsAdvancedTableColumnManagerOrder>", {
strictMode: true,
scope: () => ({
HdsAdvancedTableColumnManagerOrder,
HdsAdvancedTableColumnManagerWidth,
hash
})
}), this);
}
}
export { HdsAdvancedTableColumnManager as default };
//# sourceMappingURL=index.js.map