UNPKG

@hashicorp/design-system-components

Version:
55 lines (52 loc) 3.48 kB
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