@hashicorp/design-system-components 4.24.0-rc-20251001191123 → 4.24.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.
- package/declarations/components/hds/advanced-table/models/row.d.ts +3 -2
- package/declarations/components/hds/advanced-table/models/table.d.ts +2 -1
- package/dist/components/hds/advanced-table/index.js +2 -0
- package/dist/components/hds/advanced-table/index.js.map +1 -1
- package/dist/components/hds/advanced-table/models/row.js +19 -15
- package/dist/components/hds/advanced-table/models/row.js.map +1 -1
- package/dist/components/hds/advanced-table/models/table.js +24 -15
- package/dist/components/hds/advanced-table/models/table.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,21 +3,22 @@
|
|
|
3
3
|
* SPDX-License-Identifier: MPL-2.0
|
|
4
4
|
*/
|
|
5
5
|
import type { HdsAdvancedTableColumn, HdsAdvancedTableCell } from '../types';
|
|
6
|
+
import type HdsAdvancedTableTableModel from './table';
|
|
6
7
|
interface HdsAdvancedTableRowArgs {
|
|
7
8
|
[key: string]: unknown;
|
|
8
9
|
columns: HdsAdvancedTableColumn[];
|
|
10
|
+
table: HdsAdvancedTableTableModel;
|
|
9
11
|
id?: string;
|
|
10
12
|
childrenKey?: string;
|
|
11
|
-
columnOrder?: string[];
|
|
12
13
|
}
|
|
13
14
|
export default class HdsAdvancedTableRow {
|
|
14
15
|
id: string;
|
|
15
16
|
[key: string]: unknown;
|
|
16
17
|
isOpen: boolean;
|
|
17
18
|
cells: HdsAdvancedTableCell[];
|
|
18
|
-
columnOrder: string[];
|
|
19
19
|
children: HdsAdvancedTableRow[];
|
|
20
20
|
childrenKey: string;
|
|
21
|
+
table: HdsAdvancedTableTableModel;
|
|
21
22
|
get hasChildren(): boolean;
|
|
22
23
|
get showChildren(): boolean;
|
|
23
24
|
get orderedCells(): HdsAdvancedTableCell[];
|
|
@@ -6,7 +6,7 @@ import HdsAdvancedTableRow from './row.ts';
|
|
|
6
6
|
import HdsAdvancedTableColumn from './column.ts';
|
|
7
7
|
import type { HdsAdvancedTableSignature } from '../index.ts';
|
|
8
8
|
import type { HdsAdvancedTableExpandState, HdsAdvancedTableCell, HdsAdvancedTableColumnReorderCallback, HdsAdvancedTableColumnReorderSide, HdsAdvancedTableSortingFunction } from '../types';
|
|
9
|
-
type HdsAdvancedTableTableArgs = Pick<HdsAdvancedTableSignature['Args'], 'model' | 'columns' | 'columnOrder' | 'childrenKey' | 'hasResizableColumns' | 'sortBy' | 'sortOrder' | 'onSort' | 'onColumnReorder' | 'onColumnResize'>;
|
|
9
|
+
type HdsAdvancedTableTableArgs = Pick<HdsAdvancedTableSignature['Args'], 'model' | 'columns' | 'columnOrder' | 'childrenKey' | 'hasReorderableColumns' | 'hasResizableColumns' | 'sortBy' | 'sortOrder' | 'onSort' | 'onColumnReorder' | 'onColumnResize'>;
|
|
10
10
|
export default class HdsAdvancedTableTableModel {
|
|
11
11
|
columns: HdsAdvancedTableColumn[];
|
|
12
12
|
columnOrder: string[];
|
|
@@ -17,6 +17,7 @@ export default class HdsAdvancedTableTableModel {
|
|
|
17
17
|
sortOrder: HdsAdvancedTableTableArgs['sortOrder'];
|
|
18
18
|
gridElement?: HTMLDivElement;
|
|
19
19
|
childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];
|
|
20
|
+
hasReorderableColumns?: HdsAdvancedTableTableArgs['hasReorderableColumns'];
|
|
20
21
|
hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];
|
|
21
22
|
onColumnReorder?: HdsAdvancedTableColumnReorderCallback;
|
|
22
23
|
onSort?: HdsAdvancedTableSignature['Args']['onSort'];
|
|
@@ -170,6 +170,7 @@ class HdsAdvancedTable extends Component {
|
|
|
170
170
|
columns,
|
|
171
171
|
columnOrder,
|
|
172
172
|
childrenKey,
|
|
173
|
+
hasReorderableColumns,
|
|
173
174
|
hasResizableColumns,
|
|
174
175
|
sortBy,
|
|
175
176
|
sortOrder,
|
|
@@ -181,6 +182,7 @@ class HdsAdvancedTable extends Component {
|
|
|
181
182
|
columns,
|
|
182
183
|
columnOrder,
|
|
183
184
|
childrenKey,
|
|
185
|
+
hasReorderableColumns,
|
|
184
186
|
hasResizableColumns,
|
|
185
187
|
sortBy,
|
|
186
188
|
sortOrder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/advanced-table/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { modifier } from 'ember-modifier';\nimport HdsAdvancedTableTableModel from './models/table.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableModel,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderCallback,\n} from './types.ts';\nimport type HdsAdvancedTableColumnType from './models/column.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.ts';\nimport type HdsAdvancedTableTd from './td.ts';\nimport type HdsAdvancedTableTh from './th.ts';\nimport type HdsAdvancedTableTr from './tr.ts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport const BORDER_WIDTH = 1;\n\nconst DEFAULT_SCROLL_DIMENSIONS = {\n bottom: '0px',\n height: '0px',\n left: '0px',\n right: '0px',\n width: '0px',\n};\n\nconst getScrollIndicatorDimensions = (\n scrollWrapper: HTMLDivElement,\n theadElement: HTMLDivElement,\n hasStickyFirstColumn: boolean,\n hasFirstColumnPxWidth: boolean,\n isStickyColumnPinned: boolean\n) => {\n const horizontalScrollBarHeight =\n scrollWrapper.offsetHeight - scrollWrapper.clientHeight;\n const verticalScrollBarWidth =\n scrollWrapper.offsetWidth - scrollWrapper.clientWidth;\n\n let leftOffset = 0;\n\n if (hasStickyFirstColumn) {\n const stickyColumnHeaders = theadElement.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n\n stickyColumnHeaders?.forEach((el) => {\n // querySelectorAll returns Elements, which don't have offsetWidth\n // need to use offsetWidth to account for the cell borders\n const elAsHTMLElement = el as HTMLElement;\n leftOffset += elAsHTMLElement.offsetWidth;\n });\n\n // offsets the left: -1px position if there are multiple sticky columns or the first column has a fixed pixel width\n if (stickyColumnHeaders.length > 1 || hasFirstColumnPxWidth) {\n leftOffset -= 1;\n }\n\n // offsets the left: -1px position if the sticky column is already pinned when the scroll indicator is calculated\n if (isStickyColumnPinned) {\n leftOffset -= 1;\n }\n }\n\n return {\n bottom: `${horizontalScrollBarHeight}px`,\n height: `${scrollWrapper.offsetHeight - horizontalScrollBarHeight}px`,\n left: `${leftOffset}px`,\n right: `${verticalScrollBarWidth}px`,\n width: `${scrollWrapper.offsetWidth - verticalScrollBarWidth}px`,\n };\n};\n\nconst getStickyColumnLeftOffset = (\n theadElement: HTMLDivElement,\n hasRowSelection: boolean,\n isStickyColumnPinned: boolean\n) => {\n // if there is no select checkbox column, the sticky column is all the way to the left\n if (!hasRowSelection) return '0px';\n\n const selectableCell = theadElement.querySelector(\n '.hds-advanced-table__th--is-selectable'\n ) as HTMLElement;\n\n let leftOffset = selectableCell?.offsetWidth ?? 0;\n\n // if the sticky column is pinned when the offset is calculated, we need to account for the increased width of the border\n if (isStickyColumnPinned && leftOffset > 0) {\n leftOffset -= 2;\n }\n\n return `${leftOffset}px`;\n};\n\nexport interface HdsAdvancedTableSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n columnOrder?: string[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: HdsAdvancedTableModel;\n reorderedMessageText?: string;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasReorderableColumns?: boolean;\n hasResizableColumns?: boolean;\n hasStickyHeader?: boolean;\n hasStickyFirstColumn?: boolean;\n childrenKey?: string;\n maxHeight?: string;\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onColumnResize?: (columnKey: string, newWidth?: string) => void;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n };\n Blocks: {\n body?: [\n {\n Td?: WithBoundArgs<typeof HdsAdvancedTableTd, 'align'>;\n Tr?: WithBoundArgs<\n typeof HdsAdvancedTableTr,\n | 'selectionScope'\n | 'isLastRow'\n | 'isSelectable'\n | 'onSelectionChange'\n | 'didInsert'\n | 'willDestroy'\n | 'selectionAriaLabelSuffix'\n | 'hasStickyColumn'\n | 'isStickyColumnPinned'\n | 'isParentRow'\n | 'depth'\n | 'displayRow'\n >;\n Th?: WithBoundArgs<\n typeof HdsAdvancedTableTh,\n | 'depth'\n | 'isExpandable'\n | 'isExpanded'\n | 'newLabel'\n | 'parentId'\n | 'scope'\n | 'isStickyColumn'\n | 'isStickyColumnPinned'\n | 'onClickToggle'\n >;\n data?: Record<string, unknown>;\n rowIndex?: number | string;\n isOpen?: HdsAdvancedTableExpandState;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable extends Component<HdsAdvancedTableSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n @tracked private _tableHeight = 0;\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _tableModel!: HdsAdvancedTableTableModel;\n private _scrollHandler!: (event: Event) => void;\n private _resizeObserver!: ResizeObserver;\n private _theadElement!: HTMLDivElement;\n private _scrollWrapperElement!: HTMLDivElement;\n\n @tracked scrollIndicatorDimensions = DEFAULT_SCROLL_DIMENSIONS;\n @tracked isStickyColumnPinned = false;\n @tracked isStickyHeaderPinned = false;\n @tracked hasPinnedFirstColumn: boolean | undefined = undefined;\n @tracked reorderedMessageText = '';\n @tracked showScrollIndicatorLeft = false;\n @tracked showScrollIndicatorRight = false;\n @tracked showScrollIndicatorTop = false;\n @tracked showScrollIndicatorBottom = false;\n @tracked stickyColumnOffset = '0px';\n\n constructor(owner: Owner, args: HdsAdvancedTableSignature['Args']) {\n super(owner, args);\n\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasResizableColumns,\n sortBy,\n sortOrder,\n hasStickyFirstColumn,\n onSort,\n } = args;\n\n this._tableModel = new HdsAdvancedTableTableModel({\n model,\n columns,\n columnOrder,\n childrenKey,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder: this._onColumnReorder.bind(this),\n onSort,\n });\n\n this._runAssertions();\n\n if (hasStickyFirstColumn) {\n this.hasPinnedFirstColumn = true;\n }\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get childrenKey(): string {\n const { childrenKey = 'children' } = this.args;\n\n return childrenKey;\n }\n\n get hasStickyFirstColumn(): boolean | undefined {\n // The user-controlled `hasPinnedFirstColumn` variable takes precedence over the model's `hasStickyFirstColumn` property.\n if (this.hasPinnedFirstColumn !== undefined) {\n return this.hasPinnedFirstColumn;\n } else if (this.args.hasStickyFirstColumn === false) {\n return this.args.hasStickyFirstColumn;\n }\n\n return undefined;\n }\n\n get hasScrollIndicator(): boolean {\n if (this.hasStickyFirstColumn) {\n return true;\n }\n\n return false;\n }\n\n get sortedMessageText(): string {\n const { sortedMessageText } = this.args;\n const { sortBy, sortOrder } = this._tableModel;\n\n if (sortedMessageText !== undefined) {\n return sortedMessageText;\n } else if (sortBy !== undefined && sortOrder !== undefined) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${sortBy} ${sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get hasStickyHeader(): boolean {\n if (this.args.maxHeight && this.args.hasStickyHeader !== false) {\n return true;\n } else if (this.args.hasStickyHeader && !this.args.maxHeight) {\n assert('Must set @maxHeight to use @hasStickyHeader.', false);\n }\n\n return false;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n // returns the grid-template-columns CSS attribute for the grid\n get gridTemplateColumns(): string {\n const { isSelectable } = this.args;\n const { orderedColumns } = this._tableModel;\n\n // if there is a select checkbox, the first column has a 'min-content' width to hug the checkbox content\n let style = isSelectable ? 'min-content ' : '';\n\n for (let i = 0; i < orderedColumns.length; i++) {\n style += ` ${orderedColumns[i]!.appliedWidth}`;\n }\n\n return style;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this._tableModel.hasRowsWithChildren) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n return classes.join(' ');\n }\n\n get theadClassNames(): string {\n const classes = ['hds-advanced-table__thead'];\n\n if (this.hasStickyHeader) {\n classes.push('hds-advanced-table__thead--sticky');\n }\n\n if (this.isStickyHeaderPinned) {\n classes.push('hds-advanced-table__thead--is-pinned');\n }\n\n if (this._tableModel.hasResizableColumns) {\n classes.push('hds-advanced-table__thead--has-resizable-columns');\n }\n\n return classes.join(' ');\n }\n\n private _registerGridElement = modifier((element: HTMLDivElement) => {\n this._tableModel.gridElement = element;\n });\n\n private _registerThElement = modifier(\n (element: HTMLDivElement, [column]: [HdsAdvancedTableColumnType]) => {\n if (column === undefined) {\n return;\n }\n\n column.thElement = element;\n }\n );\n\n private _setUpScrollWrapper = modifier((element: HTMLDivElement) => {\n this._scrollWrapperElement = element;\n\n const updateHorizontalScrollIndicators = () => {\n this.showScrollIndicatorRight = element.clientWidth < element.scrollWidth;\n };\n\n this._scrollHandler = () => {\n this._updateScrollIndicators(element);\n };\n\n element.addEventListener('scroll', this._scrollHandler);\n\n const updateMeasurements = () => {\n this._tableHeight = element.offsetHeight;\n\n const hasFirstColumnPxWidth =\n this._tableModel.columns[0]?.pxWidth !== undefined;\n\n this.scrollIndicatorDimensions = getScrollIndicatorDimensions(\n element,\n this._theadElement,\n this.hasStickyFirstColumn ? true : false,\n hasFirstColumnPxWidth,\n this.isStickyColumnPinned\n );\n\n if (this.hasStickyFirstColumn) {\n this.stickyColumnOffset = getStickyColumnLeftOffset(\n this._theadElement,\n isSelectable,\n this.isStickyColumnPinned\n );\n }\n };\n\n const { isSelectable = false } = this.args;\n\n this._resizeObserver = new ResizeObserver((entries) => {\n entries.forEach(() => {\n updateMeasurements();\n updateHorizontalScrollIndicators();\n });\n });\n\n this._resizeObserver.observe(element);\n\n updateMeasurements();\n\n // on render check if should show right scroll indicator\n updateHorizontalScrollIndicators();\n\n // on render check if should show bottom scroll indicator\n if (element.clientHeight < element.scrollHeight) {\n this.showScrollIndicatorBottom = true;\n }\n\n return () => {\n element.removeEventListener('scroll', this._scrollHandler);\n this._resizeObserver.disconnect();\n };\n });\n\n private _runAssertions() {\n const {\n columns,\n hasReorderableColumns,\n hasResizableColumns,\n hasStickyFirstColumn,\n } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n const sortableColumns = columns.filter((column) => column.isSortable);\n const sortableColumnLabels = sortableColumns.map(\n (column) => column.label\n );\n\n assert(\n 'Cannot have reorderable columns if there are nested rows.',\n !hasReorderableColumns\n );\n\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumnLabels.toString()}`,\n sortableColumns.length === 0\n );\n\n assert(\n 'Cannot have a sticky first column if there are nested rows.',\n hasStickyFirstColumn === undefined\n );\n\n assert(\n `Cannot have resizable columns if there are nested rows.`,\n !hasResizableColumns\n );\n }\n\n if (hasReorderableColumns) {\n assert(\n 'Cannot have both reorderable columns and a sticky first column.',\n hasStickyFirstColumn === undefined\n );\n }\n }\n\n private _setUpThead = modifier((element: HTMLDivElement) => {\n this._theadElement = element;\n });\n\n private _onColumnReorder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n const { reorderedMessageText } = this.args;\n\n if (reorderedMessageText !== undefined) {\n this.reorderedMessageText = reorderedMessageText;\n } else {\n const newPosition = insertedAt + 1;\n const translatedReorderedMessageText = this.hdsIntl.t(\n 'hds.advanced-table.reordered-message',\n {\n default: `Moved ${column.label} column to position ${newPosition}`,\n columnLabel: column.label,\n newPosition,\n }\n );\n\n this.reorderedMessageText = translatedReorderedMessageText;\n }\n\n this.args.onColumnReorder?.({\n column,\n newOrder,\n insertedAt,\n });\n };\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n setupTableModelData(): void {\n const { columns, model, sortBy, sortOrder } = this.args;\n\n this._tableModel.setupData({\n columns,\n model,\n sortBy,\n sortOrder,\n });\n }\n\n @action\n updateTableModelColumnOrder(): void {\n if (this.args.columnOrder === undefined) {\n return;\n }\n\n this._tableModel.columnOrder = this.args.columnOrder;\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this._selectableRows = this._selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n }\n }\n\n private _updateScrollIndicators(element: HTMLElement): void {\n // 6px as a buffer so the shadow doesn't appear over the border radius on the edge of the table\n const SCROLL_BUFFER = 6;\n\n // left scroll indicator and sticky column styles\n if (element.scrollLeft > SCROLL_BUFFER) {\n if (this.hasStickyFirstColumn) {\n this.isStickyColumnPinned = true;\n }\n if (!this.showScrollIndicatorLeft) {\n this.showScrollIndicatorLeft = true;\n }\n } else if (element.scrollLeft === 0 && this.showScrollIndicatorLeft) {\n this.isStickyColumnPinned = false;\n this.showScrollIndicatorLeft = false;\n }\n\n // the right edge is how far the user can scroll, which is the full width of the table - the visible section of the table (also subtract the buffer)\n const rightEdge = element.scrollWidth - element.clientWidth - SCROLL_BUFFER;\n\n // right scroll indicator\n if (element.scrollLeft < rightEdge) {\n this.showScrollIndicatorRight = true;\n } else {\n this.showScrollIndicatorRight = false;\n }\n\n // sticky header\n if (element.scrollTop > 0) {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = true;\n }\n this.showScrollIndicatorTop = true;\n } else {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = false;\n }\n this.showScrollIndicatorTop = false;\n }\n\n // the bottom edge is how far the user can scroll, which is the full height of the table - the visible section of the table (also subtract the buffer)\n const bottomEdge =\n element.scrollHeight - element.clientHeight - SCROLL_BUFFER;\n\n // bottom scroll indicator\n if (element.scrollTop < bottomEdge) {\n this.showScrollIndicatorBottom = true;\n } else {\n this.showScrollIndicatorBottom = false;\n }\n }\n\n private _onPinFirstColumn = (): void => {\n this.hasPinnedFirstColumn = this.hasPinnedFirstColumn ? false : true;\n // we need to retrigger the scroll indicator updates if the pinned state is changed when the table is already scrolled\n this._updateScrollIndicators(this._scrollWrapperElement);\n };\n\n private _isStickyColumn = (\n column: HdsAdvancedTableColumnType\n ): boolean | undefined => {\n if (column.isFirst && this.hasStickyFirstColumn !== undefined) {\n return this.hasStickyFirstColumn;\n }\n return undefined;\n };\n}\n"],"names":["DENSITIES","Object","values","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","BORDER_WIDTH","DEFAULT_SCROLL_DIMENSIONS","bottom","height","left","right","width","getScrollIndicatorDimensions","scrollWrapper","theadElement","hasStickyFirstColumn","hasFirstColumnPxWidth","isStickyColumnPinned","horizontalScrollBarHeight","offsetHeight","clientHeight","verticalScrollBarWidth","offsetWidth","clientWidth","leftOffset","stickyColumnHeaders","querySelectorAll","forEach","el","elAsHTMLElement","length","getStickyColumnLeftOffset","hasRowSelection","selectableCell","querySelector","HdsAdvancedTable","Component","g","prototype","service","i","void 0","tracked","undefined","_selectableRows","_captionId","guidFor","_tableModel","_scrollHandler","_resizeObserver","_theadElement","_scrollWrapperElement","constructor","owner","args","model","columns","columnOrder","childrenKey","hasResizableColumns","sortBy","sortOrder","onSort","HdsAdvancedTableTableModel","onColumnReorder","_onColumnReorder","bind","_runAssertions","hasPinnedFirstColumn","identityKey","hasScrollIndicator","sortedMessageText","isSelectable","hasRowsWithChildren","assert","isStriped","density","join","includes","hasStickyHeader","maxHeight","valign","gridTemplateColumns","orderedColumns","style","appliedWidth","classNames","classes","push","theadClassNames","isStickyHeaderPinned","_registerGridElement","modifier","element","gridElement","_registerThElement","column","thElement","_setUpScrollWrapper","updateHorizontalScrollIndicators","showScrollIndicatorRight","scrollWidth","_updateScrollIndicators","addEventListener","updateMeasurements","_tableHeight","pxWidth","scrollIndicatorDimensions","stickyColumnOffset","ResizeObserver","entries","observe","scrollHeight","showScrollIndicatorBottom","removeEventListener","disconnect","hasReorderableColumns","sortableColumns","filter","isSortable","sortableColumnLabels","map","label","toString","_setUpThead","newOrder","insertedAt","reorderedMessageText","newPosition","translatedReorderedMessageText","hdsIntl","t","default","columnLabel","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","reduce","acc","row","checked","selectableRowsStates","isSelected","setupTableModelData","setupData","n","action","updateTableModelColumnOrder","onSelectionAllChange","_selectAllCheckbox","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","selectableRowsCount","selectedRowsCount","indeterminate","SCROLL_BUFFER","scrollLeft","showScrollIndicatorLeft","rightEdge","scrollTop","showScrollIndicatorTop","bottomEdge","_onPinFirstColumn","_isStickyColumn","isFirst","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/advanced-table/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { modifier } from 'ember-modifier';\nimport HdsAdvancedTableTableModel from './models/table.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableModel,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderCallback,\n} from './types.ts';\nimport type HdsAdvancedTableColumnType from './models/column.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.ts';\nimport type HdsAdvancedTableTd from './td.ts';\nimport type HdsAdvancedTableTh from './th.ts';\nimport type HdsAdvancedTableTr from './tr.ts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport const BORDER_WIDTH = 1;\n\nconst DEFAULT_SCROLL_DIMENSIONS = {\n bottom: '0px',\n height: '0px',\n left: '0px',\n right: '0px',\n width: '0px',\n};\n\nconst getScrollIndicatorDimensions = (\n scrollWrapper: HTMLDivElement,\n theadElement: HTMLDivElement,\n hasStickyFirstColumn: boolean,\n hasFirstColumnPxWidth: boolean,\n isStickyColumnPinned: boolean\n) => {\n const horizontalScrollBarHeight =\n scrollWrapper.offsetHeight - scrollWrapper.clientHeight;\n const verticalScrollBarWidth =\n scrollWrapper.offsetWidth - scrollWrapper.clientWidth;\n\n let leftOffset = 0;\n\n if (hasStickyFirstColumn) {\n const stickyColumnHeaders = theadElement.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n\n stickyColumnHeaders?.forEach((el) => {\n // querySelectorAll returns Elements, which don't have offsetWidth\n // need to use offsetWidth to account for the cell borders\n const elAsHTMLElement = el as HTMLElement;\n leftOffset += elAsHTMLElement.offsetWidth;\n });\n\n // offsets the left: -1px position if there are multiple sticky columns or the first column has a fixed pixel width\n if (stickyColumnHeaders.length > 1 || hasFirstColumnPxWidth) {\n leftOffset -= 1;\n }\n\n // offsets the left: -1px position if the sticky column is already pinned when the scroll indicator is calculated\n if (isStickyColumnPinned) {\n leftOffset -= 1;\n }\n }\n\n return {\n bottom: `${horizontalScrollBarHeight}px`,\n height: `${scrollWrapper.offsetHeight - horizontalScrollBarHeight}px`,\n left: `${leftOffset}px`,\n right: `${verticalScrollBarWidth}px`,\n width: `${scrollWrapper.offsetWidth - verticalScrollBarWidth}px`,\n };\n};\n\nconst getStickyColumnLeftOffset = (\n theadElement: HTMLDivElement,\n hasRowSelection: boolean,\n isStickyColumnPinned: boolean\n) => {\n // if there is no select checkbox column, the sticky column is all the way to the left\n if (!hasRowSelection) return '0px';\n\n const selectableCell = theadElement.querySelector(\n '.hds-advanced-table__th--is-selectable'\n ) as HTMLElement;\n\n let leftOffset = selectableCell?.offsetWidth ?? 0;\n\n // if the sticky column is pinned when the offset is calculated, we need to account for the increased width of the border\n if (isStickyColumnPinned && leftOffset > 0) {\n leftOffset -= 2;\n }\n\n return `${leftOffset}px`;\n};\n\nexport interface HdsAdvancedTableSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n columnOrder?: string[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: HdsAdvancedTableModel;\n reorderedMessageText?: string;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasReorderableColumns?: boolean;\n hasResizableColumns?: boolean;\n hasStickyHeader?: boolean;\n hasStickyFirstColumn?: boolean;\n childrenKey?: string;\n maxHeight?: string;\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onColumnResize?: (columnKey: string, newWidth?: string) => void;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n };\n Blocks: {\n body?: [\n {\n Td?: WithBoundArgs<typeof HdsAdvancedTableTd, 'align'>;\n Tr?: WithBoundArgs<\n typeof HdsAdvancedTableTr,\n | 'selectionScope'\n | 'isLastRow'\n | 'isSelectable'\n | 'onSelectionChange'\n | 'didInsert'\n | 'willDestroy'\n | 'selectionAriaLabelSuffix'\n | 'hasStickyColumn'\n | 'isStickyColumnPinned'\n | 'isParentRow'\n | 'depth'\n | 'displayRow'\n >;\n Th?: WithBoundArgs<\n typeof HdsAdvancedTableTh,\n | 'depth'\n | 'isExpandable'\n | 'isExpanded'\n | 'newLabel'\n | 'parentId'\n | 'scope'\n | 'isStickyColumn'\n | 'isStickyColumnPinned'\n | 'onClickToggle'\n >;\n data?: Record<string, unknown>;\n rowIndex?: number | string;\n isOpen?: HdsAdvancedTableExpandState;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable extends Component<HdsAdvancedTableSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n @tracked private _tableHeight = 0;\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _tableModel!: HdsAdvancedTableTableModel;\n private _scrollHandler!: (event: Event) => void;\n private _resizeObserver!: ResizeObserver;\n private _theadElement!: HTMLDivElement;\n private _scrollWrapperElement!: HTMLDivElement;\n\n @tracked scrollIndicatorDimensions = DEFAULT_SCROLL_DIMENSIONS;\n @tracked isStickyColumnPinned = false;\n @tracked isStickyHeaderPinned = false;\n @tracked hasPinnedFirstColumn: boolean | undefined = undefined;\n @tracked reorderedMessageText = '';\n @tracked showScrollIndicatorLeft = false;\n @tracked showScrollIndicatorRight = false;\n @tracked showScrollIndicatorTop = false;\n @tracked showScrollIndicatorBottom = false;\n @tracked stickyColumnOffset = '0px';\n\n constructor(owner: Owner, args: HdsAdvancedTableSignature['Args']) {\n super(owner, args);\n\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasReorderableColumns,\n hasResizableColumns,\n sortBy,\n sortOrder,\n hasStickyFirstColumn,\n onSort,\n } = args;\n\n this._tableModel = new HdsAdvancedTableTableModel({\n model,\n columns,\n columnOrder,\n childrenKey,\n hasReorderableColumns,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder: this._onColumnReorder.bind(this),\n onSort,\n });\n\n this._runAssertions();\n\n if (hasStickyFirstColumn) {\n this.hasPinnedFirstColumn = true;\n }\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get childrenKey(): string {\n const { childrenKey = 'children' } = this.args;\n\n return childrenKey;\n }\n\n get hasStickyFirstColumn(): boolean | undefined {\n // The user-controlled `hasPinnedFirstColumn` variable takes precedence over the model's `hasStickyFirstColumn` property.\n if (this.hasPinnedFirstColumn !== undefined) {\n return this.hasPinnedFirstColumn;\n } else if (this.args.hasStickyFirstColumn === false) {\n return this.args.hasStickyFirstColumn;\n }\n\n return undefined;\n }\n\n get hasScrollIndicator(): boolean {\n if (this.hasStickyFirstColumn) {\n return true;\n }\n\n return false;\n }\n\n get sortedMessageText(): string {\n const { sortedMessageText } = this.args;\n const { sortBy, sortOrder } = this._tableModel;\n\n if (sortedMessageText !== undefined) {\n return sortedMessageText;\n } else if (sortBy !== undefined && sortOrder !== undefined) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${sortBy} ${sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get hasStickyHeader(): boolean {\n if (this.args.maxHeight && this.args.hasStickyHeader !== false) {\n return true;\n } else if (this.args.hasStickyHeader && !this.args.maxHeight) {\n assert('Must set @maxHeight to use @hasStickyHeader.', false);\n }\n\n return false;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n // returns the grid-template-columns CSS attribute for the grid\n get gridTemplateColumns(): string {\n const { isSelectable } = this.args;\n const { orderedColumns } = this._tableModel;\n\n // if there is a select checkbox, the first column has a 'min-content' width to hug the checkbox content\n let style = isSelectable ? 'min-content ' : '';\n\n for (let i = 0; i < orderedColumns.length; i++) {\n style += ` ${orderedColumns[i]!.appliedWidth}`;\n }\n\n return style;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this._tableModel.hasRowsWithChildren) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n return classes.join(' ');\n }\n\n get theadClassNames(): string {\n const classes = ['hds-advanced-table__thead'];\n\n if (this.hasStickyHeader) {\n classes.push('hds-advanced-table__thead--sticky');\n }\n\n if (this.isStickyHeaderPinned) {\n classes.push('hds-advanced-table__thead--is-pinned');\n }\n\n if (this._tableModel.hasResizableColumns) {\n classes.push('hds-advanced-table__thead--has-resizable-columns');\n }\n\n return classes.join(' ');\n }\n\n private _registerGridElement = modifier((element: HTMLDivElement) => {\n this._tableModel.gridElement = element;\n });\n\n private _registerThElement = modifier(\n (element: HTMLDivElement, [column]: [HdsAdvancedTableColumnType]) => {\n if (column === undefined) {\n return;\n }\n\n column.thElement = element;\n }\n );\n\n private _setUpScrollWrapper = modifier((element: HTMLDivElement) => {\n this._scrollWrapperElement = element;\n\n const updateHorizontalScrollIndicators = () => {\n this.showScrollIndicatorRight = element.clientWidth < element.scrollWidth;\n };\n\n this._scrollHandler = () => {\n this._updateScrollIndicators(element);\n };\n\n element.addEventListener('scroll', this._scrollHandler);\n\n const updateMeasurements = () => {\n this._tableHeight = element.offsetHeight;\n\n const hasFirstColumnPxWidth =\n this._tableModel.columns[0]?.pxWidth !== undefined;\n\n this.scrollIndicatorDimensions = getScrollIndicatorDimensions(\n element,\n this._theadElement,\n this.hasStickyFirstColumn ? true : false,\n hasFirstColumnPxWidth,\n this.isStickyColumnPinned\n );\n\n if (this.hasStickyFirstColumn) {\n this.stickyColumnOffset = getStickyColumnLeftOffset(\n this._theadElement,\n isSelectable,\n this.isStickyColumnPinned\n );\n }\n };\n\n const { isSelectable = false } = this.args;\n\n this._resizeObserver = new ResizeObserver((entries) => {\n entries.forEach(() => {\n updateMeasurements();\n updateHorizontalScrollIndicators();\n });\n });\n\n this._resizeObserver.observe(element);\n\n updateMeasurements();\n\n // on render check if should show right scroll indicator\n updateHorizontalScrollIndicators();\n\n // on render check if should show bottom scroll indicator\n if (element.clientHeight < element.scrollHeight) {\n this.showScrollIndicatorBottom = true;\n }\n\n return () => {\n element.removeEventListener('scroll', this._scrollHandler);\n this._resizeObserver.disconnect();\n };\n });\n\n private _runAssertions() {\n const {\n columns,\n hasReorderableColumns,\n hasResizableColumns,\n hasStickyFirstColumn,\n } = this.args;\n\n if (this._tableModel.hasRowsWithChildren) {\n const sortableColumns = columns.filter((column) => column.isSortable);\n const sortableColumnLabels = sortableColumns.map(\n (column) => column.label\n );\n\n assert(\n 'Cannot have reorderable columns if there are nested rows.',\n !hasReorderableColumns\n );\n\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumnLabels.toString()}`,\n sortableColumns.length === 0\n );\n\n assert(\n 'Cannot have a sticky first column if there are nested rows.',\n hasStickyFirstColumn === undefined\n );\n\n assert(\n `Cannot have resizable columns if there are nested rows.`,\n !hasResizableColumns\n );\n }\n\n if (hasReorderableColumns) {\n assert(\n 'Cannot have both reorderable columns and a sticky first column.',\n hasStickyFirstColumn === undefined\n );\n }\n }\n\n private _setUpThead = modifier((element: HTMLDivElement) => {\n this._theadElement = element;\n });\n\n private _onColumnReorder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n const { reorderedMessageText } = this.args;\n\n if (reorderedMessageText !== undefined) {\n this.reorderedMessageText = reorderedMessageText;\n } else {\n const newPosition = insertedAt + 1;\n const translatedReorderedMessageText = this.hdsIntl.t(\n 'hds.advanced-table.reordered-message',\n {\n default: `Moved ${column.label} column to position ${newPosition}`,\n columnLabel: column.label,\n newPosition,\n }\n );\n\n this.reorderedMessageText = translatedReorderedMessageText;\n }\n\n this.args.onColumnReorder?.({\n column,\n newOrder,\n insertedAt,\n });\n };\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n setupTableModelData(): void {\n const { columns, model, sortBy, sortOrder } = this.args;\n\n this._tableModel.setupData({\n columns,\n model,\n sortBy,\n sortOrder,\n });\n }\n\n @action\n updateTableModelColumnOrder(): void {\n if (this.args.columnOrder === undefined) {\n return;\n }\n\n this._tableModel.columnOrder = this.args.columnOrder;\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this._selectableRows = this._selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n }\n }\n\n private _updateScrollIndicators(element: HTMLElement): void {\n // 6px as a buffer so the shadow doesn't appear over the border radius on the edge of the table\n const SCROLL_BUFFER = 6;\n\n // left scroll indicator and sticky column styles\n if (element.scrollLeft > SCROLL_BUFFER) {\n if (this.hasStickyFirstColumn) {\n this.isStickyColumnPinned = true;\n }\n if (!this.showScrollIndicatorLeft) {\n this.showScrollIndicatorLeft = true;\n }\n } else if (element.scrollLeft === 0 && this.showScrollIndicatorLeft) {\n this.isStickyColumnPinned = false;\n this.showScrollIndicatorLeft = false;\n }\n\n // the right edge is how far the user can scroll, which is the full width of the table - the visible section of the table (also subtract the buffer)\n const rightEdge = element.scrollWidth - element.clientWidth - SCROLL_BUFFER;\n\n // right scroll indicator\n if (element.scrollLeft < rightEdge) {\n this.showScrollIndicatorRight = true;\n } else {\n this.showScrollIndicatorRight = false;\n }\n\n // sticky header\n if (element.scrollTop > 0) {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = true;\n }\n this.showScrollIndicatorTop = true;\n } else {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = false;\n }\n this.showScrollIndicatorTop = false;\n }\n\n // the bottom edge is how far the user can scroll, which is the full height of the table - the visible section of the table (also subtract the buffer)\n const bottomEdge =\n element.scrollHeight - element.clientHeight - SCROLL_BUFFER;\n\n // bottom scroll indicator\n if (element.scrollTop < bottomEdge) {\n this.showScrollIndicatorBottom = true;\n } else {\n this.showScrollIndicatorBottom = false;\n }\n }\n\n private _onPinFirstColumn = (): void => {\n this.hasPinnedFirstColumn = this.hasPinnedFirstColumn ? false : true;\n // we need to retrigger the scroll indicator updates if the pinned state is changed when the table is already scrolled\n this._updateScrollIndicators(this._scrollWrapperElement);\n };\n\n private _isStickyColumn = (\n column: HdsAdvancedTableColumnType\n ): boolean | undefined => {\n if (column.isFirst && this.hasStickyFirstColumn !== undefined) {\n return this.hasStickyFirstColumn;\n }\n return undefined;\n };\n}\n"],"names":["DENSITIES","Object","values","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","BORDER_WIDTH","DEFAULT_SCROLL_DIMENSIONS","bottom","height","left","right","width","getScrollIndicatorDimensions","scrollWrapper","theadElement","hasStickyFirstColumn","hasFirstColumnPxWidth","isStickyColumnPinned","horizontalScrollBarHeight","offsetHeight","clientHeight","verticalScrollBarWidth","offsetWidth","clientWidth","leftOffset","stickyColumnHeaders","querySelectorAll","forEach","el","elAsHTMLElement","length","getStickyColumnLeftOffset","hasRowSelection","selectableCell","querySelector","HdsAdvancedTable","Component","g","prototype","service","i","void 0","tracked","undefined","_selectableRows","_captionId","guidFor","_tableModel","_scrollHandler","_resizeObserver","_theadElement","_scrollWrapperElement","constructor","owner","args","model","columns","columnOrder","childrenKey","hasReorderableColumns","hasResizableColumns","sortBy","sortOrder","onSort","HdsAdvancedTableTableModel","onColumnReorder","_onColumnReorder","bind","_runAssertions","hasPinnedFirstColumn","identityKey","hasScrollIndicator","sortedMessageText","isSelectable","hasRowsWithChildren","assert","isStriped","density","join","includes","hasStickyHeader","maxHeight","valign","gridTemplateColumns","orderedColumns","style","appliedWidth","classNames","classes","push","theadClassNames","isStickyHeaderPinned","_registerGridElement","modifier","element","gridElement","_registerThElement","column","thElement","_setUpScrollWrapper","updateHorizontalScrollIndicators","showScrollIndicatorRight","scrollWidth","_updateScrollIndicators","addEventListener","updateMeasurements","_tableHeight","pxWidth","scrollIndicatorDimensions","stickyColumnOffset","ResizeObserver","entries","observe","scrollHeight","showScrollIndicatorBottom","removeEventListener","disconnect","sortableColumns","filter","isSortable","sortableColumnLabels","map","label","toString","_setUpThead","newOrder","insertedAt","reorderedMessageText","newPosition","translatedReorderedMessageText","hdsIntl","t","default","columnLabel","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","reduce","acc","row","checked","selectableRowsStates","isSelected","setupTableModelData","setupData","n","action","updateTableModelColumnOrder","onSelectionAllChange","_selectAllCheckbox","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","selectableRowsCount","selectedRowsCount","indeterminate","SCROLL_BUFFER","scrollLeft","showScrollIndicatorLeft","rightEdge","scrollTop","showScrollIndicatorTop","bottomEdge","_onPinFirstColumn","_isStickyColumn","isFirst","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAoCO,MAAMA,SAAsC,GAAGC,MAAM,CAACC,MAAM,CACjEC,6BACF;AACO,MAAMC,eAAe,GAAGD,6BAA6B,CAACE;AAEtD,MAAMC,WAAgD,GAAGL,MAAM,CAACC,MAAM,CAC3EK,uCACF;AACO,MAAMC,cAAc,GAAGD,uCAAuC,CAACE;AAE/D,MAAMC,YAAY,GAAG;AAE5B,MAAMC,yBAAyB,GAAG;AAChCC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,IAAI,EAAE,KAAK;AACXC,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,4BAA4B,GAAGA,CACnCC,aAA6B,EAC7BC,YAA4B,EAC5BC,oBAA6B,EAC7BC,qBAA8B,EAC9BC,oBAA6B,KAC1B;EACH,MAAMC,yBAAyB,GAC7BL,aAAa,CAACM,YAAY,GAAGN,aAAa,CAACO,YAAY;EACzD,MAAMC,sBAAsB,GAC1BR,aAAa,CAACS,WAAW,GAAGT,aAAa,CAACU,WAAW;EAEvD,IAAIC,UAAU,GAAG,CAAC;AAElB,EAAA,IAAIT,oBAAoB,EAAE;AACxB,IAAA,MAAMU,mBAAmB,GAAGX,YAAY,CAACY,gBAAgB,CACvD,2CACF,CAAC;AAEDD,IAAAA,mBAAmB,EAAEE,OAAO,CAAEC,EAAE,IAAK;AACnC;AACA;MACA,MAAMC,eAAe,GAAGD,EAAiB;MACzCJ,UAAU,IAAIK,eAAe,CAACP,WAAW;AAC3C,IAAA,CAAC,CAAC;;AAEF;AACA,IAAA,IAAIG,mBAAmB,CAACK,MAAM,GAAG,CAAC,IAAId,qBAAqB,EAAE;AAC3DQ,MAAAA,UAAU,IAAI,CAAC;AACjB,IAAA;;AAEA;AACA,IAAA,IAAIP,oBAAoB,EAAE;AACxBO,MAAAA,UAAU,IAAI,CAAC;AACjB,IAAA;AACF,EAAA;EAEA,OAAO;IACLjB,MAAM,EAAE,CAAA,EAAGW,yBAAyB,CAAA,EAAA,CAAI;AACxCV,IAAAA,MAAM,EAAE,CAAA,EAAGK,aAAa,CAACM,YAAY,GAAGD,yBAAyB,CAAA,EAAA,CAAI;IACrET,IAAI,EAAE,CAAA,EAAGe,UAAU,CAAA,EAAA,CAAI;IACvBd,KAAK,EAAE,CAAA,EAAGW,sBAAsB,CAAA,EAAA,CAAI;AACpCV,IAAAA,KAAK,EAAE,CAAA,EAAGE,aAAa,CAACS,WAAW,GAAGD,sBAAsB,CAAA,EAAA;GAC7D;AACH,CAAC;AAED,MAAMU,yBAAyB,GAAGA,CAChCjB,YAA4B,EAC5BkB,eAAwB,EACxBf,oBAA6B,KAC1B;AACH;AACA,EAAA,IAAI,CAACe,eAAe,EAAE,OAAO,KAAK;AAElC,EAAA,MAAMC,cAAc,GAAGnB,YAAY,CAACoB,aAAa,CAC/C,wCACF,CAAgB;AAEhB,EAAA,IAAIV,UAAU,GAAGS,cAAc,EAAEX,WAAW,IAAI,CAAC;;AAEjD;AACA,EAAA,IAAIL,oBAAoB,IAAIO,UAAU,GAAG,CAAC,EAAE;AAC1CA,IAAAA,UAAU,IAAI,CAAC;AACjB,EAAA;EAEA,OAAO,CAAA,EAAGA,UAAU,CAAA,EAAA,CAAI;AAC1B,CAAC;AAyEc,MAAMW,gBAAgB,SAASC,SAAS,CAA4B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAChFC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAENC,SAAS;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,8BAAA,EAAA,CACVI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkDC,SAAS;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,6BAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,8BAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CAClEI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,CAAC;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AACzBG,EAAAA,eAAe,GAAoC,EAAE;AACrDC,EAAAA,UAAU,GAAG,UAAU,GAAGC,OAAO,CAAC,IAAI,CAAC;EACvCC,WAAW;EACXC,cAAc;EACdC,eAAe;EACfC,aAAa;EACbC,qBAAqB;AAAkB,EAAA;IAAAd,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,2BAAA,EAAA,CAE9CI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6BpC,yBAAyB;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,0BAAA,IAAAkC,CAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,sBAAA,EAAA,CAC7DI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,sBAAA,EAAA,CACpCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,sBAAA,EAAA,CACpCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6CC,SAAS;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,sBAAA,EAAA,CAC7DI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,EAAE;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,yBAAA,EAAA,CACjCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA2B,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,wBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,yBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,0BAAA,EAAA,CACvCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,yBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,wBAAA,EAAA,CACxCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA0B,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,uBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,wBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,2BAAA,EAAA,CACtCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6B,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,0BAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CACzCI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAsB,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAC,MAAA;AAEnCW,EAAAA,WAAWA,CAACC,KAAY,EAAEC,IAAuC,EAAE;AACjE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElB,MAAM;MACJC,KAAK;MACLC,OAAO;MACPC,WAAW;MACXC,WAAW;MACXC,qBAAqB;MACrBC,mBAAmB;MACnBC,MAAM;MACNC,SAAS;MACT/C,oBAAoB;AACpBgD,MAAAA;AACF,KAAC,GAAGT,IAAI;AAER,IAAA,IAAI,CAACP,WAAW,GAAG,IAAIiB,0BAA0B,CAAC;MAChDT,KAAK;MACLC,OAAO;MACPC,WAAW;MACXC,WAAW;MACXC,qBAAqB;MACrBC,mBAAmB;MACnBC,MAAM;MACNC,SAAS;MACTG,eAAe,EAAE,IAAI,CAACC,gBAAgB,CAACC,IAAI,CAAC,IAAI,CAAC;AACjDJ,MAAAA;AACF,KAAC,CAAC;IAEF,IAAI,CAACK,cAAc,EAAE;AAErB,IAAA,IAAIrD,oBAAoB,EAAE;MACxB,IAAI,CAACsD,oBAAoB,GAAG,IAAI;AAClC,IAAA;AACF,EAAA;EAEA,IAAIC,WAAWA,GAAuB;AACpC;AACA,IAAA,IAAI,IAAI,CAAChB,IAAI,CAACgB,WAAW,KAAK,MAAM,EAAE;AACpC,MAAA,OAAO3B,SAAS;AAClB,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,IAAI,CAACW,IAAI,CAACgB,WAAW,IAAI,WAAW;AAC7C,IAAA;AACF,EAAA;EAEA,IAAIZ,WAAWA,GAAW;IACxB,MAAM;AAAEA,MAAAA,WAAW,GAAG;KAAY,GAAG,IAAI,CAACJ,IAAI;AAE9C,IAAA,OAAOI,WAAW;AACpB,EAAA;EAEA,IAAI3C,oBAAoBA,GAAwB;AAC9C;AACA,IAAA,IAAI,IAAI,CAACsD,oBAAoB,KAAK1B,SAAS,EAAE;MAC3C,OAAO,IAAI,CAAC0B,oBAAoB;IAClC,CAAC,MAAM,IAAI,IAAI,CAACf,IAAI,CAACvC,oBAAoB,KAAK,KAAK,EAAE;AACnD,MAAA,OAAO,IAAI,CAACuC,IAAI,CAACvC,oBAAoB;AACvC,IAAA;AAEA,IAAA,OAAO4B,SAAS;AAClB,EAAA;EAEA,IAAI4B,kBAAkBA,GAAY;IAChC,IAAI,IAAI,CAACxD,oBAAoB,EAAE;AAC7B,MAAA,OAAO,IAAI;AACb,IAAA;AAEA,IAAA,OAAO,KAAK;AACd,EAAA;EAEA,IAAIyD,iBAAiBA,GAAW;IAC9B,MAAM;AAAEA,MAAAA;KAAmB,GAAG,IAAI,CAAClB,IAAI;IACvC,MAAM;MAAEO,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACf,WAAW;IAE9C,IAAIyB,iBAAiB,KAAK7B,SAAS,EAAE;AACnC,MAAA,OAAO6B,iBAAiB;IAC1B,CAAC,MAAM,IAAIX,MAAM,KAAKlB,SAAS,IAAImB,SAAS,KAAKnB,SAAS,EAAE;AAC1D;AACA,MAAA,OAAO,CAAA,UAAA,EAAakB,MAAM,CAAA,CAAA,EAAIC,SAAS,CAAA,MAAA,CAAQ;AACjD,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,EAAE;AACX,IAAA;AACF,EAAA;EAEA,IAAIW,YAAYA,GAAY;IAC1B,MAAM;AAAEA,MAAAA,YAAY,GAAG;KAAO,GAAG,IAAI,CAACnB,IAAI;AAE1C,IAAA,IAAI,IAAI,CAACP,WAAW,CAAC2B,mBAAmB,EAAE;AACxCC,MAAAA,MAAM,CACJ,0DAA0D,EAC1D,CAACF,YACH,CAAC;AACD,MAAA,OAAOA,YAAY;AACrB,IAAA;AAEA,IAAA,OAAOA,YAAY;AACrB,EAAA;EAEA,IAAIG,SAASA,GAAY;IACvB,MAAM;AAAEA,MAAAA,SAAS,GAAG;KAAO,GAAG,IAAI,CAACtB,IAAI;AAEvC,IAAA,IAAI,IAAI,CAACP,WAAW,CAAC2B,mBAAmB,EAAE;AACxCC,MAAAA,MAAM,CACJ,uDAAuD,EACvD,CAACC,SACH,CAAC;AACD,MAAA,OAAOA,SAAS;AAClB,IAAA;AAEA,IAAA,OAAOA,SAAS;AAClB,EAAA;EAEA,IAAIC,OAAOA,GAA8B;IACvC,MAAM;AAAEA,MAAAA,OAAO,GAAG9E;KAAiB,GAAG,IAAI,CAACuD,IAAI;AAE/CqB,IAAAA,MAAM,CACJ,CAAA,wDAAA,EAA2DhF,SAAS,CAACmF,IAAI,CACvE,IACF,CAAC,CAAA,YAAA,EAAeD,OAAO,CAAA,CAAE,EACzBlF,SAAS,CAACoF,QAAQ,CAACF,OAAO,CAC5B,CAAC;AAED,IAAA,OAAOA,OAAO;AAChB,EAAA;EAEA,IAAIG,eAAeA,GAAY;AAC7B,IAAA,IAAI,IAAI,CAAC1B,IAAI,CAAC2B,SAAS,IAAI,IAAI,CAAC3B,IAAI,CAAC0B,eAAe,KAAK,KAAK,EAAE;AAC9D,MAAA,OAAO,IAAI;AACb,IAAA,CAAC,MAAM,IAAI,IAAI,CAAC1B,IAAI,CAAC0B,eAAe,IAAI,CAAC,IAAI,CAAC1B,IAAI,CAAC2B,SAAS,EAAE;AAC5DN,MAAAA,MAAM,CAAC,8CAA8C,EAAE,KAAK,CAAC;AAC/D,IAAA;AAEA,IAAA,OAAO,KAAK;AACd,EAAA;EAEA,IAAIO,MAAMA,GAAsC;IAC9C,MAAM;AAAEA,MAAAA,MAAM,GAAG/E;KAAgB,GAAG,IAAI,CAACmD,IAAI;AAE7CqB,IAAAA,MAAM,CACJ,CAAA,uDAAA,EAA0D1E,WAAW,CAAC6E,IAAI,CACxE,IACF,CAAC,CAAA,YAAA,EAAeI,MAAM,CAAA,CAAE,EACxBjF,WAAW,CAAC8E,QAAQ,CAACG,MAAM,CAC7B,CAAC;AAED,IAAA,OAAOA,MAAM;AACf,EAAA;;AAEA;EACA,IAAIC,mBAAmBA,GAAW;IAChC,MAAM;AAAEV,MAAAA;KAAc,GAAG,IAAI,CAACnB,IAAI;IAClC,MAAM;AAAE8B,MAAAA;KAAgB,GAAG,IAAI,CAACrC,WAAW;;AAE3C;AACA,IAAA,IAAIsC,KAAK,GAAGZ,YAAY,GAAG,cAAc,GAAG,EAAE;AAE9C,IAAA,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4C,cAAc,CAACtD,MAAM,EAAEU,CAAC,EAAE,EAAE;MAC9C6C,KAAK,IAAI,IAAID,cAAc,CAAC5C,CAAC,CAAC,CAAE8C,YAAY,CAAA,CAAE;AAChD,IAAA;AAEA,IAAA,OAAOD,KAAK;AACd,EAAA;EAEA,IAAIE,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,oBAAoB,CAAC;IAEtC,IAAI,IAAI,CAACZ,SAAS,EAAE;AAClBY,MAAAA,OAAO,CAACC,IAAI,CAAC,6BAA6B,CAAC;AAC7C,IAAA;IAEA,IAAI,IAAI,CAACZ,OAAO,EAAE;MAChBW,OAAO,CAACC,IAAI,CAAC,CAAA,4BAAA,EAA+B,IAAI,CAACZ,OAAO,EAAE,CAAC;AAC7D,IAAA;IAEA,IAAI,IAAI,CAACK,MAAM,EAAE;MACfM,OAAO,CAACC,IAAI,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAACP,MAAM,EAAE,CAAC;AAC3D,IAAA;AAEA,IAAA,IAAI,IAAI,CAACnC,WAAW,CAAC2B,mBAAmB,EAAE;AACxCc,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0BAAA,CAA4B,CAAC;AAC5C,IAAA;AAEA,IAAA,OAAOD,OAAO,CAACV,IAAI,CAAC,GAAG,CAAC;AAC1B,EAAA;EAEA,IAAIY,eAAeA,GAAW;AAC5B,IAAA,MAAMF,OAAO,GAAG,CAAC,2BAA2B,CAAC;IAE7C,IAAI,IAAI,CAACR,eAAe,EAAE;AACxBQ,MAAAA,OAAO,CAACC,IAAI,CAAC,mCAAmC,CAAC;AACnD,IAAA;IAEA,IAAI,IAAI,CAACE,oBAAoB,EAAE;AAC7BH,MAAAA,OAAO,CAACC,IAAI,CAAC,sCAAsC,CAAC;AACtD,IAAA;AAEA,IAAA,IAAI,IAAI,CAAC1C,WAAW,CAACa,mBAAmB,EAAE;AACxC4B,MAAAA,OAAO,CAACC,IAAI,CAAC,kDAAkD,CAAC;AAClE,IAAA;AAEA,IAAA,OAAOD,OAAO,CAACV,IAAI,CAAC,GAAG,CAAC;AAC1B,EAAA;AAEQc,EAAAA,oBAAoB,GAAGC,QAAQ,CAAEC,OAAuB,IAAK;AACnE,IAAA,IAAI,CAAC/C,WAAW,CAACgD,WAAW,GAAGD,OAAO;AACxC,EAAA,CAAC,CAAC;EAEME,kBAAkB,GAAGH,QAAQ,CACnC,CAACC,OAAuB,EAAE,CAACG,MAAM,CAA+B,KAAK;IACnE,IAAIA,MAAM,KAAKtD,SAAS,EAAE;AACxB,MAAA;AACF,IAAA;IAEAsD,MAAM,CAACC,SAAS,GAAGJ,OAAO;AAC5B,EAAA,CACF,CAAC;AAEOK,EAAAA,mBAAmB,GAAGN,QAAQ,CAAEC,OAAuB,IAAK;IAClE,IAAI,CAAC3C,qBAAqB,GAAG2C,OAAO;IAEpC,MAAMM,gCAAgC,GAAGA,MAAM;MAC7C,IAAI,CAACC,wBAAwB,GAAGP,OAAO,CAACvE,WAAW,GAAGuE,OAAO,CAACQ,WAAW;IAC3E,CAAC;IAED,IAAI,CAACtD,cAAc,GAAG,MAAM;AAC1B,MAAA,IAAI,CAACuD,uBAAuB,CAACT,OAAO,CAAC;IACvC,CAAC;IAEDA,OAAO,CAACU,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACxD,cAAc,CAAC;IAEvD,MAAMyD,kBAAkB,GAAGA,MAAM;AAC/B,MAAA,IAAI,CAACC,YAAY,GAAGZ,OAAO,CAAC3E,YAAY;AAExC,MAAA,MAAMH,qBAAqB,GACzB,IAAI,CAAC+B,WAAW,CAACS,OAAO,CAAC,CAAC,CAAC,EAAEmD,OAAO,KAAKhE,SAAS;MAEpD,IAAI,CAACiE,yBAAyB,GAAGhG,4BAA4B,CAC3DkF,OAAO,EACP,IAAI,CAAC5C,aAAa,EAClB,IAAI,CAACnC,oBAAoB,GAAG,IAAI,GAAG,KAAK,EACxCC,qBAAqB,EACrB,IAAI,CAACC,oBACP,CAAC;MAED,IAAI,IAAI,CAACF,oBAAoB,EAAE;AAC7B,QAAA,IAAI,CAAC8F,kBAAkB,GAAG9E,yBAAyB,CACjD,IAAI,CAACmB,aAAa,EAClBuB,YAAY,EACZ,IAAI,CAACxD,oBACP,CAAC;AACH,MAAA;IACF,CAAC;IAED,MAAM;AAAEwD,MAAAA,YAAY,GAAG;KAAO,GAAG,IAAI,CAACnB,IAAI;AAE1C,IAAA,IAAI,CAACL,eAAe,GAAG,IAAI6D,cAAc,CAAEC,OAAO,IAAK;MACrDA,OAAO,CAACpF,OAAO,CAAC,MAAM;AACpB8E,QAAAA,kBAAkB,EAAE;AACpBL,QAAAA,gCAAgC,EAAE;AACpC,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,IAAI,CAACnD,eAAe,CAAC+D,OAAO,CAAClB,OAAO,CAAC;AAErCW,IAAAA,kBAAkB,EAAE;;AAEpB;AACAL,IAAAA,gCAAgC,EAAE;;AAElC;AACA,IAAA,IAAIN,OAAO,CAAC1E,YAAY,GAAG0E,OAAO,CAACmB,YAAY,EAAE;MAC/C,IAAI,CAACC,yBAAyB,GAAG,IAAI;AACvC,IAAA;AAEA,IAAA,OAAO,MAAM;MACXpB,OAAO,CAACqB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACnE,cAAc,CAAC;AAC1D,MAAA,IAAI,CAACC,eAAe,CAACmE,UAAU,EAAE;IACnC,CAAC;AACH,EAAA,CAAC,CAAC;AAEMhD,EAAAA,cAAcA,GAAG;IACvB,MAAM;MACJZ,OAAO;MACPG,qBAAqB;MACrBC,mBAAmB;AACnB7C,MAAAA;KACD,GAAG,IAAI,CAACuC,IAAI;AAEb,IAAA,IAAI,IAAI,CAACP,WAAW,CAAC2B,mBAAmB,EAAE;MACxC,MAAM2C,eAAe,GAAG7D,OAAO,CAAC8D,MAAM,CAAErB,MAAM,IAAKA,MAAM,CAACsB,UAAU,CAAC;MACrE,MAAMC,oBAAoB,GAAGH,eAAe,CAACI,GAAG,CAC7CxB,MAAM,IAAKA,MAAM,CAACyB,KACrB,CAAC;AAED/C,MAAAA,MAAM,CACJ,2DAA2D,EAC3D,CAAChB,qBACH,CAAC;AAEDgB,MAAAA,MAAM,CACJ,CAAA,4EAAA,EAA+E6C,oBAAoB,CAACG,QAAQ,EAAE,CAAA,CAAE,EAChHN,eAAe,CAACvF,MAAM,KAAK,CAC7B,CAAC;AAED6C,MAAAA,MAAM,CACJ,6DAA6D,EAC7D5D,oBAAoB,KAAK4B,SAC3B,CAAC;AAEDgC,MAAAA,MAAM,CACJ,CAAA,uDAAA,CAAyD,EACzD,CAACf,mBACH,CAAC;AACH,IAAA;AAEA,IAAA,IAAID,qBAAqB,EAAE;AACzBgB,MAAAA,MAAM,CACJ,iEAAiE,EACjE5D,oBAAoB,KAAK4B,SAC3B,CAAC;AACH,IAAA;AACF,EAAA;AAEQiF,EAAAA,WAAW,GAAG/B,QAAQ,CAAEC,OAAuB,IAAK;IAC1D,IAAI,CAAC5C,aAAa,GAAG4C,OAAO;AAC9B,EAAA,CAAC,CAAC;AAEM5B,EAAAA,gBAAgB,GAA0CA,CAAC;IACjE+B,MAAM;IACN4B,QAAQ;AACRC,IAAAA;AACF,GAAC,KAAK;IACJ,MAAM;AAAEC,MAAAA;KAAsB,GAAG,IAAI,CAACzE,IAAI;IAE1C,IAAIyE,oBAAoB,KAAKpF,SAAS,EAAE;MACtC,IAAI,CAACoF,oBAAoB,GAAGA,oBAAoB;AAClD,IAAA,CAAC,MAAM;AACL,MAAA,MAAMC,WAAW,GAAGF,UAAU,GAAG,CAAC;MAClC,MAAMG,8BAA8B,GAAG,IAAI,CAACC,OAAO,CAACC,CAAC,CACnD,sCAAsC,EACtC;AACEC,QAAAA,OAAO,EAAE,CAAA,MAAA,EAASnC,MAAM,CAACyB,KAAK,CAAA,oBAAA,EAAuBM,WAAW,CAAA,CAAE;QAClEK,WAAW,EAAEpC,MAAM,CAACyB,KAAK;AACzBM,QAAAA;AACF,OACF,CAAC;MAED,IAAI,CAACD,oBAAoB,GAAGE,8BAA8B;AAC5D,IAAA;AAEA,IAAA,IAAI,CAAC3E,IAAI,CAACW,eAAe,GAAG;MAC1BgC,MAAM;MACN4B,QAAQ;AACRC,MAAAA;AACF,KAAC,CAAC;EACJ,CAAC;AAEDQ,EAAAA,yBAAyBA,CACvBC,QAAkD,EAClDC,YAAqB,EACf;IACN,MAAM;AAAEC,MAAAA;KAAmB,GAAG,IAAI,CAACnF,IAAI;AAEvC,IAAA,IAAI,OAAOmF,iBAAiB,KAAK,UAAU,EAAE;AAE7CA,IAAAA,iBAAiB,CAAC;AAChBD,MAAAA,YAAY,EAAEA,YAAY;AAC1BE,MAAAA,wBAAwB,EAAEH,QAAQ;MAClCI,gBAAgB,EAAE,IAAI,CAAC/F,eAAe,CAACgG,MAAM,CAAW,CAACC,GAAG,EAAEC,GAAG,KAAK;AACpE,QAAA,IAAIA,GAAG,CAACP,QAAQ,CAACQ,OAAO,EAAE;AACxBF,UAAAA,GAAG,CAACpD,IAAI,CAACqD,GAAG,CAACN,YAAY,CAAC;AAC5B,QAAA;AACA,QAAA,OAAOK,GAAG;MACZ,CAAC,EAAE,EAAE,CAAC;MACNG,oBAAoB,EAAE,IAAI,CAACpG,eAAe,CAACgG,MAAM,CAC/C,CACEC,GAAgE,EAChEC,GAAG,KACA;QACHD,GAAG,CAACpD,IAAI,CAAC;UACP+C,YAAY,EAAEM,GAAG,CAACN,YAAY;AAC9BS,UAAAA,UAAU,EAAEH,GAAG,CAACP,QAAQ,CAACQ;AAC3B,SAAC,CAAC;AACF,QAAA,OAAOF,GAAG;AACZ,MAAA,CAAC,EACD,EACF;AACF,KAAC,CAAC;AACJ,EAAA;AAGAK,EAAAA,mBAAmBA,GAAS;IAC1B,MAAM;MAAE1F,OAAO;MAAED,KAAK;MAAEM,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACR,IAAI;AAEvD,IAAA,IAAI,CAACP,WAAW,CAACoG,SAAS,CAAC;MACzB3F,OAAO;MACPD,KAAK;MACLM,MAAM;AACNC,MAAAA;AACF,KAAC,CAAC;AACJ,EAAA;AAAC,EAAA;IAAAsF,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,qBAAA,EAAA,CAVA+G,MAAM,CAAA,CAAA;AAAA;AAaPC,EAAAA,2BAA2BA,GAAS;AAClC,IAAA,IAAI,IAAI,CAAChG,IAAI,CAACG,WAAW,KAAKd,SAAS,EAAE;AACvC,MAAA;AACF,IAAA;IAEA,IAAI,CAACI,WAAW,CAACU,WAAW,GAAG,IAAI,CAACH,IAAI,CAACG,WAAW;AACtD,EAAA;AAAC,EAAA;IAAA2F,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,6BAAA,EAAA,CAPA+G,MAAM,CAAA,CAAA;AAAA;AAUPE,EAAAA,oBAAoBA,GAAS;AAC3B,IAAA,IAAI,CAAC3G,eAAe,CAACjB,OAAO,CAAEmH,GAAG,IAAK;MACpCA,GAAG,CAACP,QAAQ,CAACQ,OAAO,GAAG,IAAI,CAACS,kBAAkB,EAAET,OAAO,IAAI,KAAK;AAClE,IAAA,CAAC,CAAC;IACF,IAAI,CAACU,4BAA4B,GAC/B,IAAI,CAACD,kBAAkB,EAAET,OAAO,IAAI,KAAK;IAC3C,IAAI,CAACT,yBAAyB,CAAC,IAAI,CAACkB,kBAAkB,EAAE,KAAK,CAAC;AAChE,EAAA;AAAC,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,sBAAA,EAAA,CARA+G,MAAM,CAAA,CAAA;AAAA;AAWPK,EAAAA,oBAAoBA,CAClBnB,QAAkD,EAClDC,YAAqB,EACf;IACN,IAAI,CAACmB,iBAAiB,EAAE;AACxB,IAAA,IAAI,CAACrB,yBAAyB,CAACC,QAAQ,EAAEC,YAAY,CAAC;AACxD,EAAA;AAAC,EAAA;IAAAY,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,sBAAA,EAAA,CAPA+G,MAAM,CAAA,CAAA;AAAA;EAUPO,0BAA0BA,CACxBrB,QAAiD,EAC3C;IACN,IAAI,CAACiB,kBAAkB,GAAGjB,QAAQ;AACpC,EAAA;AAAC,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,4BAAA,EAAA,CALA+G,MAAM,CAAA,CAAA;AAAA;AAQPQ,EAAAA,4BAA4BA,GAAS;IACnC,IAAI,CAACL,kBAAkB,GAAG7G,SAAS;AACrC,EAAA;AAAC,EAAA;IAAAyG,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,8BAAA,EAAA,CAHA+G,MAAM,CAAA,CAAA;AAAA;AAMPS,EAAAA,oBAAoBA,CAClBvB,QAAiD,EACjDC,YAAqB,EACf;AACN,IAAA,IAAIA,YAAY,EAAE;AAChB,MAAA,IAAI,CAAC5F,eAAe,CAAC6C,IAAI,CAAC;QAAE+C,YAAY;AAAED,QAAAA;AAAS,OAAC,CAAC;AACvD,IAAA;IACA,IAAI,CAACoB,iBAAiB,EAAE;AAC1B,EAAA;AAAC,EAAA;IAAAP,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,sBAAA,EAAA,CATA+G,MAAM,CAAA,CAAA;AAAA;EAYPU,sBAAsBA,CAACvB,YAAqB,EAAQ;AAClD,IAAA,IAAI,CAAC5F,eAAe,GAAG,IAAI,CAACA,eAAe,CAAC0E,MAAM,CAC/CwB,GAAG,IAAKA,GAAG,CAACN,YAAY,KAAKA,YAChC,CAAC;IACD,IAAI,CAACmB,iBAAiB,EAAE;AAC1B,EAAA;AAAC,EAAA;IAAAP,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,wBAAA,EAAA,CANA+G,MAAM,CAAA,CAAA;AAAA;AASPM,EAAAA,iBAAiBA,GAAS;IACxB,IAAI,IAAI,CAACH,kBAAkB,EAAE;AAC3B,MAAA,MAAMQ,mBAAmB,GAAG,IAAI,CAACpH,eAAe,CAACd,MAAM;AACvD,MAAA,MAAMmI,iBAAiB,GAAG,IAAI,CAACrH,eAAe,CAAC0E,MAAM,CAClDwB,GAAG,IAAKA,GAAG,CAACP,QAAQ,CAACQ,OACxB,CAAC,CAACjH,MAAM;AAER,MAAA,IAAI,CAAC0H,kBAAkB,CAACT,OAAO,GAC7BkB,iBAAiB,KAAKD,mBAAmB;MAC3C,IAAI,CAACR,kBAAkB,CAACU,aAAa,GACnCD,iBAAiB,GAAG,CAAC,IAAIA,iBAAiB,GAAGD,mBAAmB;AAClE,MAAA,IAAI,CAACP,4BAA4B,GAAG,IAAI,CAACD,kBAAkB,CAACT,OAAO;AACrE,IAAA;AACF,EAAA;AAAC,EAAA;IAAAK,CAAA,CAAA,IAAA,CAAA9G,SAAA,EAAA,mBAAA,EAAA,CAdA+G,MAAM,CAAA,CAAA;AAAA;EAgBC9C,uBAAuBA,CAACT,OAAoB,EAAQ;AAC1D;IACA,MAAMqE,aAAa,GAAG,CAAC;;AAEvB;AACA,IAAA,IAAIrE,OAAO,CAACsE,UAAU,GAAGD,aAAa,EAAE;MACtC,IAAI,IAAI,CAACpJ,oBAAoB,EAAE;QAC7B,IAAI,CAACE,oBAAoB,GAAG,IAAI;AAClC,MAAA;AACA,MAAA,IAAI,CAAC,IAAI,CAACoJ,uBAAuB,EAAE;QACjC,IAAI,CAACA,uBAAuB,GAAG,IAAI;AACrC,MAAA;IACF,CAAC,MAAM,IAAIvE,OAAO,CAACsE,UAAU,KAAK,CAAC,IAAI,IAAI,CAACC,uBAAuB,EAAE;MACnE,IAAI,CAACpJ,oBAAoB,GAAG,KAAK;MACjC,IAAI,CAACoJ,uBAAuB,GAAG,KAAK;AACtC,IAAA;;AAEA;IACA,MAAMC,SAAS,GAAGxE,OAAO,CAACQ,WAAW,GAAGR,OAAO,CAACvE,WAAW,GAAG4I,aAAa;;AAE3E;AACA,IAAA,IAAIrE,OAAO,CAACsE,UAAU,GAAGE,SAAS,EAAE;MAClC,IAAI,CAACjE,wBAAwB,GAAG,IAAI;AACtC,IAAA,CAAC,MAAM;MACL,IAAI,CAACA,wBAAwB,GAAG,KAAK;AACvC,IAAA;;AAEA;AACA,IAAA,IAAIP,OAAO,CAACyE,SAAS,GAAG,CAAC,EAAE;MACzB,IAAI,IAAI,CAACvF,eAAe,EAAE;QACxB,IAAI,CAACW,oBAAoB,GAAG,IAAI;AAClC,MAAA;MACA,IAAI,CAAC6E,sBAAsB,GAAG,IAAI;AACpC,IAAA,CAAC,MAAM;MACL,IAAI,IAAI,CAACxF,eAAe,EAAE;QACxB,IAAI,CAACW,oBAAoB,GAAG,KAAK;AACnC,MAAA;MACA,IAAI,CAAC6E,sBAAsB,GAAG,KAAK;AACrC,IAAA;;AAEA;IACA,MAAMC,UAAU,GACd3E,OAAO,CAACmB,YAAY,GAAGnB,OAAO,CAAC1E,YAAY,GAAG+I,aAAa;;AAE7D;AACA,IAAA,IAAIrE,OAAO,CAACyE,SAAS,GAAGE,UAAU,EAAE;MAClC,IAAI,CAACvD,yBAAyB,GAAG,IAAI;AACvC,IAAA,CAAC,MAAM;MACL,IAAI,CAACA,yBAAyB,GAAG,KAAK;AACxC,IAAA;AACF,EAAA;EAEQwD,iBAAiB,GAAGA,MAAY;IACtC,IAAI,CAACrG,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,GAAG,KAAK,GAAG,IAAI;AACpE;AACA,IAAA,IAAI,CAACkC,uBAAuB,CAAC,IAAI,CAACpD,qBAAqB,CAAC;EAC1D,CAAC;EAEOwH,eAAe,GACrB1E,MAAkC,IACV;IACxB,IAAIA,MAAM,CAAC2E,OAAO,IAAI,IAAI,CAAC7J,oBAAoB,KAAK4B,SAAS,EAAE;MAC7D,OAAO,IAAI,CAAC5B,oBAAoB;AAClC,IAAA;AACA,IAAA,OAAO4B,SAAS;EAClB,CAAC;AACH;AAACkI,oBAAA,CAAAC,QAAA,EA1jBoB3I,gBAAgB,CAAA;;;;"}
|
|
@@ -24,14 +24,9 @@ class HdsAdvancedTableRow {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
#cells = (i(this, "cells"), void 0);
|
|
27
|
-
static {
|
|
28
|
-
g(this.prototype, "columnOrder", [tracked], function () {
|
|
29
|
-
return [];
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
#columnOrder = (i(this, "columnOrder"), void 0);
|
|
33
27
|
children = [];
|
|
34
28
|
childrenKey;
|
|
29
|
+
table;
|
|
35
30
|
get hasChildren() {
|
|
36
31
|
return this.children.length > 0;
|
|
37
32
|
}
|
|
@@ -39,18 +34,28 @@ class HdsAdvancedTableRow {
|
|
|
39
34
|
return this.isOpen && this.hasChildren;
|
|
40
35
|
}
|
|
41
36
|
get orderedCells() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
|
|
37
|
+
const {
|
|
38
|
+
columnOrder,
|
|
39
|
+
hasReorderableColumns
|
|
40
|
+
} = this.table;
|
|
41
|
+
if (hasReorderableColumns) {
|
|
42
|
+
return columnOrder.reduce((acc, key) => {
|
|
43
|
+
const cell = this.cells.find(cell => cell.columnKey === key);
|
|
44
|
+
if (cell !== undefined) {
|
|
45
|
+
acc.push(cell);
|
|
46
|
+
}
|
|
47
|
+
return acc;
|
|
48
|
+
}, []);
|
|
49
|
+
} else {
|
|
50
|
+
return this.cells;
|
|
51
|
+
}
|
|
49
52
|
}
|
|
50
53
|
constructor(args) {
|
|
51
54
|
const {
|
|
52
|
-
columns
|
|
55
|
+
columns,
|
|
56
|
+
table
|
|
53
57
|
} = args;
|
|
58
|
+
this.table = table;
|
|
54
59
|
this.cells = columns.map(column => {
|
|
55
60
|
const cell = args[column.key ?? ''];
|
|
56
61
|
return {
|
|
@@ -58,7 +63,6 @@ class HdsAdvancedTableRow {
|
|
|
58
63
|
content: cell
|
|
59
64
|
};
|
|
60
65
|
});
|
|
61
|
-
this.columnOrder = args.columnOrder ?? this.cells.map(cell => cell.columnKey);
|
|
62
66
|
|
|
63
67
|
// set row data
|
|
64
68
|
Object.assign(this, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sources":["../../../../../src/components/hds/advanced-table/models/row.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\n\nimport type { HdsAdvancedTableColumn, HdsAdvancedTableCell } from '../types';\n\ninterface HdsAdvancedTableRowArgs {\n [key: string]: unknown;\n columns: HdsAdvancedTableColumn[];\n
|
|
1
|
+
{"version":3,"file":"row.js","sources":["../../../../../src/components/hds/advanced-table/models/row.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\n\nimport type { HdsAdvancedTableColumn, HdsAdvancedTableCell } from '../types';\nimport type HdsAdvancedTableTableModel from './table';\n\ninterface HdsAdvancedTableRowArgs {\n [key: string]: unknown;\n columns: HdsAdvancedTableColumn[];\n table: HdsAdvancedTableTableModel;\n id?: string;\n childrenKey?: string;\n}\n\nexport default class HdsAdvancedTableRow {\n id = guidFor(this);\n\n // row data\n [key: string]: unknown;\n\n @tracked isOpen: boolean = false;\n @tracked cells: HdsAdvancedTableCell[] = [];\n\n children: HdsAdvancedTableRow[] = [];\n childrenKey: string;\n table: HdsAdvancedTableTableModel;\n\n get hasChildren(): boolean {\n return this.children.length > 0;\n }\n\n get showChildren(): boolean {\n return this.isOpen && this.hasChildren;\n }\n\n get orderedCells(): HdsAdvancedTableCell[] {\n const { columnOrder, hasReorderableColumns } = this.table;\n\n if (hasReorderableColumns) {\n return columnOrder.reduce<HdsAdvancedTableCell[]>((acc, key) => {\n const cell = this.cells.find((cell) => cell.columnKey === key);\n\n if (cell !== undefined) {\n acc.push(cell);\n }\n\n return acc;\n }, []);\n } else {\n return this.cells;\n }\n }\n\n constructor(args: HdsAdvancedTableRowArgs) {\n const { columns, table } = args;\n\n this.table = table;\n\n this.cells = columns.map((column) => {\n const cell = args[column.key ?? ''];\n\n return {\n columnKey: column.key ?? '',\n content: cell,\n };\n });\n\n // set row data\n Object.assign(this, args);\n\n this.childrenKey = args.childrenKey ?? 'children';\n\n const childModels = args[this.childrenKey];\n\n if (Array.isArray(childModels)) {\n this.children = childModels.map(\n (child) =>\n new HdsAdvancedTableRow({\n ...(child as HdsAdvancedTableRowArgs),\n columns: args.columns,\n childrenKey: this.childrenKey,\n })\n );\n }\n }\n\n @action\n openAll() {\n this.isOpen = true;\n this.children.forEach((child) => child.openAll());\n }\n\n @action\n collapseAll() {\n this.isOpen = false;\n this.children.forEach((child) => child.collapseAll());\n }\n\n @action\n onClickToggle() {\n this.isOpen = !this.isOpen;\n }\n}\n"],"names":["HdsAdvancedTableRow","id","guidFor","g","prototype","tracked","i","void 0","children","childrenKey","table","hasChildren","length","showChildren","isOpen","orderedCells","columnOrder","hasReorderableColumns","reduce","acc","key","cell","cells","find","columnKey","undefined","push","constructor","args","columns","map","column","content","Object","assign","childModels","Array","isArray","child","openAll","forEach","n","action","collapseAll","onClickToggle"],"mappings":"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"}
|
|
@@ -73,6 +73,7 @@ class HdsAdvancedTableTableModel {
|
|
|
73
73
|
}
|
|
74
74
|
#gridElement = (i(this, "gridElement"), void 0);
|
|
75
75
|
childrenKey;
|
|
76
|
+
hasReorderableColumns;
|
|
76
77
|
hasResizableColumns;
|
|
77
78
|
onColumnReorder;
|
|
78
79
|
onSort;
|
|
@@ -82,6 +83,7 @@ class HdsAdvancedTableTableModel {
|
|
|
82
83
|
columns,
|
|
83
84
|
columnOrder,
|
|
84
85
|
childrenKey,
|
|
86
|
+
hasReorderableColumns,
|
|
85
87
|
hasResizableColumns,
|
|
86
88
|
sortBy,
|
|
87
89
|
sortOrder,
|
|
@@ -89,6 +91,7 @@ class HdsAdvancedTableTableModel {
|
|
|
89
91
|
onSort
|
|
90
92
|
} = args;
|
|
91
93
|
this.childrenKey = childrenKey;
|
|
94
|
+
this.hasReorderableColumns = hasReorderableColumns;
|
|
92
95
|
this.hasResizableColumns = hasResizableColumns;
|
|
93
96
|
this.onSort = onSort;
|
|
94
97
|
this.setupData({
|
|
@@ -99,9 +102,11 @@ class HdsAdvancedTableTableModel {
|
|
|
99
102
|
});
|
|
100
103
|
|
|
101
104
|
// set initial column order
|
|
102
|
-
|
|
105
|
+
if (this.hasReorderableColumns) {
|
|
106
|
+
this.columnOrder = isEmpty(columnOrder) ? this.columns.map(column => column.key) : columnOrder; // ensured non-empty
|
|
103
107
|
|
|
104
|
-
|
|
108
|
+
this.onColumnReorder = onColumnReorder;
|
|
109
|
+
}
|
|
105
110
|
}
|
|
106
111
|
get hasColumnBeingDragged() {
|
|
107
112
|
return this.reorderDraggedColumn !== null;
|
|
@@ -119,13 +124,17 @@ class HdsAdvancedTableTableModel {
|
|
|
119
124
|
});
|
|
120
125
|
}
|
|
121
126
|
get orderedColumns() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
if (this.hasReorderableColumns) {
|
|
128
|
+
return this.columnOrder.reduce((acc, key) => {
|
|
129
|
+
const column = this.columns.find(column => column.key === key);
|
|
130
|
+
if (column !== undefined) {
|
|
131
|
+
acc.push(column);
|
|
132
|
+
}
|
|
133
|
+
return acc;
|
|
134
|
+
}, []);
|
|
135
|
+
} else {
|
|
136
|
+
return this.columns;
|
|
137
|
+
}
|
|
129
138
|
}
|
|
130
139
|
get sortCriteria() {
|
|
131
140
|
// get the current column
|
|
@@ -220,7 +229,8 @@ class HdsAdvancedTableTableModel {
|
|
|
220
229
|
return new HdsAdvancedTableRow({
|
|
221
230
|
...row,
|
|
222
231
|
childrenKey: this.childrenKey,
|
|
223
|
-
columns
|
|
232
|
+
columns,
|
|
233
|
+
table: this
|
|
224
234
|
});
|
|
225
235
|
});
|
|
226
236
|
}
|
|
@@ -319,8 +329,10 @@ class HdsAdvancedTableTableModel {
|
|
|
319
329
|
n(this.prototype, "moveColumnToTerminalPosition", [action]);
|
|
320
330
|
}
|
|
321
331
|
moveColumnToTarget(sourceColumn, targetColumn, side) {
|
|
322
|
-
const
|
|
323
|
-
const
|
|
332
|
+
const sourceKey = sourceColumn.key;
|
|
333
|
+
const targetKey = targetColumn.key;
|
|
334
|
+
const oldIndex = this.columnOrder.indexOf(sourceKey);
|
|
335
|
+
const newIndex = this.columnOrder.indexOf(targetKey);
|
|
324
336
|
if (oldIndex !== -1 && newIndex !== -1) {
|
|
325
337
|
const updated = [...this.columnOrder];
|
|
326
338
|
updated.splice(oldIndex, 1); // Remove from old position
|
|
@@ -333,9 +345,6 @@ class HdsAdvancedTableTableModel {
|
|
|
333
345
|
updated.splice(adjustedIndex, 0, sourceColumn.key); // Insert at new position
|
|
334
346
|
|
|
335
347
|
this.columnOrder = updated;
|
|
336
|
-
for (const row of this.rows) {
|
|
337
|
-
row.columnOrder = updated;
|
|
338
|
-
}
|
|
339
348
|
|
|
340
349
|
// we need to wait until the reposition has finished
|
|
341
350
|
requestAnimationFrame(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../../src/components/hds/advanced-table/models/table.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport HdsAdvancedTableRow from './row.ts';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { isEmpty } from '@ember/utils';\nimport HdsAdvancedTableColumn from './column.ts';\nimport {\n HdsAdvancedTableColumnReorderSideValues,\n HdsAdvancedTableThSortOrderValues,\n} from '../types.ts';\n\nimport type { HdsAdvancedTableSignature } from '../index.ts';\nimport type {\n HdsAdvancedTableExpandState,\n HdsAdvancedTableCell,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableSortingFunction,\n} from '../types';\n\ntype HdsAdvancedTableTableArgs = Pick<\n HdsAdvancedTableSignature['Args'],\n | 'model'\n | 'columns'\n | 'columnOrder'\n | 'childrenKey'\n | 'hasResizableColumns'\n | 'sortBy'\n | 'sortOrder'\n | 'onSort'\n | 'onColumnReorder'\n | 'onColumnResize'\n>;\n\nfunction getVisibleRows(rows: HdsAdvancedTableRow[]): HdsAdvancedTableRow[] {\n return rows.reduce((acc, row) => {\n acc.push(row);\n\n if (row.isOpen && row.children) {\n acc.push(...getVisibleRows(row.children));\n }\n\n return acc;\n }, [] as HdsAdvancedTableRow[]);\n}\n\nfunction getChildrenCount(rows: HdsAdvancedTableRow[]): number {\n return rows.reduce(\n (acc, row) => acc + 1 + getChildrenCount(row.children ?? []),\n 0\n );\n}\n\nexport default class HdsAdvancedTableTableModel {\n @tracked columns: HdsAdvancedTableColumn[] = [];\n @tracked columnOrder: string[] = [];\n @tracked reorderDraggedColumn: HdsAdvancedTableColumn | null = null;\n @tracked reorderHoveredColumn: HdsAdvancedTableColumn | null = null;\n @tracked rows: HdsAdvancedTableRow[] = [];\n @tracked sortBy: HdsAdvancedTableTableArgs['sortBy'] = undefined;\n @tracked sortOrder: HdsAdvancedTableTableArgs['sortOrder'] =\n HdsAdvancedTableThSortOrderValues.Asc;\n @tracked gridElement?: HTMLDivElement = undefined;\n\n childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];\n hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onSort?: HdsAdvancedTableSignature['Args']['onSort'];\n\n constructor(args: HdsAdvancedTableTableArgs) {\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder,\n onSort,\n } = args;\n\n this.childrenKey = childrenKey;\n this.hasResizableColumns = hasResizableColumns;\n this.onSort = onSort;\n\n this.setupData({ model, columns, sortBy, sortOrder });\n\n // set initial column order\n this.columnOrder = isEmpty(columnOrder)\n ? this.columns.map((column) => column.key)\n : columnOrder!; // ensured non-empty\n\n this.onColumnReorder = onColumnReorder;\n }\n\n get hasColumnBeingDragged(): boolean {\n return this.reorderDraggedColumn !== null;\n }\n\n get reorderDraggedColumnCells(): HdsAdvancedTableCell[] {\n if (this.reorderDraggedColumn === null) {\n return [];\n }\n\n const { key } = this.reorderDraggedColumn;\n\n return this.flattenedVisibleRows.map((row) => {\n const cell = row.cells.find((cell) => cell.columnKey === key);\n\n return cell!;\n });\n }\n\n get orderedColumns(): HdsAdvancedTableColumn[] {\n return this.columnOrder.reduce<HdsAdvancedTableColumn[]>((acc, key) => {\n const column = this.columns.find((column) => column.key === key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n }, []);\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.columns.find(\n (column) => column.key === this.sortBy\n );\n\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get sortedRows(): HdsAdvancedTableRow[] {\n const criteria = this.sortCriteria;\n const rows = this.rows;\n\n if (rows.length <= 1 || criteria === undefined) {\n return rows;\n }\n\n if (typeof criteria === 'function') {\n // Use custom sort function\n return [...rows].sort(criteria);\n } else {\n // Parse the criteria string format \"sortBy:sortOrder\"\n const [sortBy, sortOrder] = criteria.split(':');\n\n if (!sortBy) {\n return rows;\n }\n\n return [...rows].sort((a, b) => {\n const valueA = a[sortBy] as string | number | boolean;\n const valueB = b[sortBy] as string | number | boolean;\n\n if (valueA < valueB) {\n return sortOrder === 'asc' ? -1 : 1;\n }\n if (valueA > valueB) {\n return sortOrder === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n }\n\n get totalRowCount(): number {\n return getChildrenCount(this.sortedRows);\n }\n\n get flattenedVisibleRows(): HdsAdvancedTableRow[] {\n return getVisibleRows(this.sortedRows);\n }\n\n get lastVisibleRow(): HdsAdvancedTableRow | undefined {\n return this.flattenedVisibleRows[this.flattenedVisibleRows.length - 1];\n }\n\n get hasRowsWithChildren(): boolean {\n return this.rows.some((row) => row.hasChildren);\n }\n\n get allRowsAreOpen(): boolean {\n return this.flattenedVisibleRows.length === this.totalRowCount;\n }\n\n get expandState(): HdsAdvancedTableExpandState {\n if (this.allRowsAreOpen) {\n return true;\n } else {\n return false;\n }\n }\n\n setTransientColumnWidths(options: { roundValues?: boolean } = {}): void {\n const roundValues = options.roundValues ?? false;\n\n this.columns.forEach((column) => {\n column.pxTransientWidth = roundValues\n ? Math.round(column.pxWidth)\n : column.pxWidth;\n });\n }\n\n resetTransientColumnWidths(): void {\n this.columns.forEach((column) => {\n column.pxTransientWidth = undefined;\n });\n }\n\n getColumnByKey(key: string): HdsAdvancedTableColumn | undefined {\n return this.columns.find((column) => column.key === key);\n }\n\n @action\n setupData(\n args: Pick<\n HdsAdvancedTableTableArgs,\n 'model' | 'columns' | 'sortBy' | 'sortOrder'\n >\n ) {\n const { model, columns, sortBy, sortOrder } = args;\n\n this.sortBy = sortBy;\n this.sortOrder = sortOrder ?? HdsAdvancedTableThSortOrderValues.Asc;\n\n this.columns = columns.map(\n (column) =>\n new HdsAdvancedTableColumn({\n column,\n table: this,\n })\n );\n\n this.rows = model.map((row) => {\n return new HdsAdvancedTableRow({\n ...row,\n childrenKey: this.childrenKey,\n columns,\n });\n });\n }\n\n @action\n restoreColumnWidths(): void {\n this.columns.forEach((column) => {\n column.width = column.originalWidth;\n });\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n if (typeof this.onSort === 'function') {\n this.onSort(this.sortBy, this.sortOrder);\n }\n }\n\n @action\n openAll() {\n this.rows.forEach((row) => row.openAll());\n }\n\n @action\n collapseAll() {\n this.rows.forEach((row) => row.collapseAll());\n }\n\n @action\n toggleAll() {\n if (this.allRowsAreOpen) {\n this.collapseAll();\n } else {\n this.openAll();\n }\n }\n\n @action\n stepColumn(column: HdsAdvancedTableColumn, step: number): void {\n const { table } = column;\n const oldIndex = table.orderedColumns.indexOf(column);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (newIndex < 0 || newIndex >= table.orderedColumns.length) {\n return;\n }\n\n const targetColumn = table.orderedColumns[newIndex];\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Determine the side based on the step direction.\n const side: HdsAdvancedTableColumnReorderSide =\n step > 0\n ? HdsAdvancedTableColumnReorderSideValues.Right\n : HdsAdvancedTableColumnReorderSideValues.Left;\n\n table.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTerminalPosition(\n column: HdsAdvancedTableColumn,\n position: 'start' | 'end'\n ): void {\n const firstColumn = this.orderedColumns.find((column) => column.isFirst);\n\n const {\n targetColumn,\n side,\n }: {\n targetColumn?: HdsAdvancedTableColumn;\n side: HdsAdvancedTableColumnReorderSide;\n } =\n position === 'start'\n ? {\n targetColumn: firstColumn,\n side: HdsAdvancedTableColumnReorderSideValues.Left,\n }\n : {\n targetColumn: this.orderedColumns[this.orderedColumns.length - 1],\n side: HdsAdvancedTableColumnReorderSideValues.Right,\n };\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTarget(\n sourceColumn: HdsAdvancedTableColumn,\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ): void {\n const oldIndex = this.orderedColumns.indexOf(sourceColumn);\n const newIndex = this.orderedColumns.indexOf(targetColumn);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const updated = [...this.columnOrder];\n\n updated.splice(oldIndex, 1); // Remove from old position\n\n // Calculate the insertion index based on the side\n // If dropping to the right of the target, insert after the target\n // If dropping to the left of the target, insert before the target\n // Adjust for the shift in indices caused by removing the source column\n const adjustedIndex =\n side === HdsAdvancedTableColumnReorderSideValues.Right\n ? newIndex > oldIndex\n ? newIndex\n : newIndex + 1\n : newIndex > oldIndex\n ? newIndex - 1\n : newIndex;\n\n updated.splice(adjustedIndex, 0, sourceColumn.key); // Insert at new position\n\n this.columnOrder = updated;\n\n for (const row of this.rows) {\n row.columnOrder = updated;\n }\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n sourceColumn.thElement?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n sourceColumn.isBeingDragged = false;\n\n this.onColumnReorder?.({\n column: sourceColumn,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumn.key),\n });\n });\n }\n }\n\n @action\n moveColumnToDropTarget(\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) {\n const sourceColumn = this.reorderDraggedColumn;\n\n if (sourceColumn == null || sourceColumn === targetColumn) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumn, targetColumn, side);\n }\n}\n"],"names":["getVisibleRows","rows","reduce","acc","row","push","isOpen","children","getChildrenCount","HdsAdvancedTableTableModel","g","prototype","tracked","i","void 0","undefined","HdsAdvancedTableThSortOrderValues","Asc","childrenKey","hasResizableColumns","onColumnReorder","onSort","constructor","args","model","columns","columnOrder","sortBy","sortOrder","setupData","isEmpty","map","column","key","hasColumnBeingDragged","reorderDraggedColumn","reorderDraggedColumnCells","flattenedVisibleRows","cell","cells","find","columnKey","orderedColumns","sortCriteria","currentColumn","sortingFunction","sortedRows","criteria","length","sort","split","a","b","valueA","valueB","totalRowCount","lastVisibleRow","hasRowsWithChildren","some","hasChildren","allRowsAreOpen","expandState","setTransientColumnWidths","options","roundValues","forEach","pxTransientWidth","Math","round","pxWidth","resetTransientColumnWidths","getColumnByKey","HdsAdvancedTableColumn","table","HdsAdvancedTableRow","n","action","restoreColumnWidths","width","originalWidth","setSortBy","Desc","openAll","collapseAll","toggleAll","stepColumn","step","oldIndex","indexOf","newIndex","targetColumn","side","HdsAdvancedTableColumnReorderSideValues","Right","Left","moveColumnToTarget","moveColumnToTerminalPosition","position","firstColumn","isFirst","sourceColumn","updated","splice","adjustedIndex","requestAnimationFrame","thElement","scrollIntoView","behavior","block","inline","isBeingDragged","newOrder","insertedAt","moveColumnToDropTarget"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../../src/components/hds/advanced-table/models/table.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport HdsAdvancedTableRow from './row.ts';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { isEmpty } from '@ember/utils';\nimport HdsAdvancedTableColumn from './column.ts';\nimport {\n HdsAdvancedTableColumnReorderSideValues,\n HdsAdvancedTableThSortOrderValues,\n} from '../types.ts';\n\nimport type { HdsAdvancedTableSignature } from '../index.ts';\nimport type {\n HdsAdvancedTableExpandState,\n HdsAdvancedTableCell,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableSortingFunction,\n} from '../types';\n\ntype HdsAdvancedTableTableArgs = Pick<\n HdsAdvancedTableSignature['Args'],\n | 'model'\n | 'columns'\n | 'columnOrder'\n | 'childrenKey'\n | 'hasReorderableColumns'\n | 'hasResizableColumns'\n | 'sortBy'\n | 'sortOrder'\n | 'onSort'\n | 'onColumnReorder'\n | 'onColumnResize'\n>;\n\nfunction getVisibleRows(rows: HdsAdvancedTableRow[]): HdsAdvancedTableRow[] {\n return rows.reduce((acc, row) => {\n acc.push(row);\n\n if (row.isOpen && row.children) {\n acc.push(...getVisibleRows(row.children));\n }\n\n return acc;\n }, [] as HdsAdvancedTableRow[]);\n}\n\nfunction getChildrenCount(rows: HdsAdvancedTableRow[]): number {\n return rows.reduce(\n (acc, row) => acc + 1 + getChildrenCount(row.children ?? []),\n 0\n );\n}\n\nexport default class HdsAdvancedTableTableModel {\n @tracked columns: HdsAdvancedTableColumn[] = [];\n @tracked columnOrder: string[] = [];\n @tracked reorderDraggedColumn: HdsAdvancedTableColumn | null = null;\n @tracked reorderHoveredColumn: HdsAdvancedTableColumn | null = null;\n @tracked rows: HdsAdvancedTableRow[] = [];\n @tracked sortBy: HdsAdvancedTableTableArgs['sortBy'] = undefined;\n @tracked sortOrder: HdsAdvancedTableTableArgs['sortOrder'] =\n HdsAdvancedTableThSortOrderValues.Asc;\n @tracked gridElement?: HTMLDivElement = undefined;\n\n childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];\n hasReorderableColumns?: HdsAdvancedTableTableArgs['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onSort?: HdsAdvancedTableSignature['Args']['onSort'];\n\n constructor(args: HdsAdvancedTableTableArgs) {\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasReorderableColumns,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder,\n onSort,\n } = args;\n\n this.childrenKey = childrenKey;\n this.hasReorderableColumns = hasReorderableColumns;\n this.hasResizableColumns = hasResizableColumns;\n this.onSort = onSort;\n\n this.setupData({ model, columns, sortBy, sortOrder });\n\n // set initial column order\n if (this.hasReorderableColumns) {\n this.columnOrder = isEmpty(columnOrder)\n ? this.columns.map((column) => column.key)\n : columnOrder!; // ensured non-empty\n\n this.onColumnReorder = onColumnReorder;\n }\n }\n\n get hasColumnBeingDragged(): boolean {\n return this.reorderDraggedColumn !== null;\n }\n\n get reorderDraggedColumnCells(): HdsAdvancedTableCell[] {\n if (this.reorderDraggedColumn === null) {\n return [];\n }\n\n const { key } = this.reorderDraggedColumn;\n\n return this.flattenedVisibleRows.map((row) => {\n const cell = row.cells.find((cell) => cell.columnKey === key);\n\n return cell!;\n });\n }\n\n get orderedColumns(): HdsAdvancedTableColumn[] {\n if (this.hasReorderableColumns) {\n return this.columnOrder.reduce<HdsAdvancedTableColumn[]>((acc, key) => {\n const column = this.columns.find((column) => column.key === key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n }, []);\n } else {\n return this.columns;\n }\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.columns.find(\n (column) => column.key === this.sortBy\n );\n\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get sortedRows(): HdsAdvancedTableRow[] {\n const criteria = this.sortCriteria;\n const rows = this.rows;\n\n if (rows.length <= 1 || criteria === undefined) {\n return rows;\n }\n\n if (typeof criteria === 'function') {\n // Use custom sort function\n return [...rows].sort(criteria);\n } else {\n // Parse the criteria string format \"sortBy:sortOrder\"\n const [sortBy, sortOrder] = criteria.split(':');\n\n if (!sortBy) {\n return rows;\n }\n\n return [...rows].sort((a, b) => {\n const valueA = a[sortBy] as string | number | boolean;\n const valueB = b[sortBy] as string | number | boolean;\n\n if (valueA < valueB) {\n return sortOrder === 'asc' ? -1 : 1;\n }\n if (valueA > valueB) {\n return sortOrder === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n }\n\n get totalRowCount(): number {\n return getChildrenCount(this.sortedRows);\n }\n\n get flattenedVisibleRows(): HdsAdvancedTableRow[] {\n return getVisibleRows(this.sortedRows);\n }\n\n get lastVisibleRow(): HdsAdvancedTableRow | undefined {\n return this.flattenedVisibleRows[this.flattenedVisibleRows.length - 1];\n }\n\n get hasRowsWithChildren(): boolean {\n return this.rows.some((row) => row.hasChildren);\n }\n\n get allRowsAreOpen(): boolean {\n return this.flattenedVisibleRows.length === this.totalRowCount;\n }\n\n get expandState(): HdsAdvancedTableExpandState {\n if (this.allRowsAreOpen) {\n return true;\n } else {\n return false;\n }\n }\n\n setTransientColumnWidths(options: { roundValues?: boolean } = {}): void {\n const roundValues = options.roundValues ?? false;\n\n this.columns.forEach((column) => {\n column.pxTransientWidth = roundValues\n ? Math.round(column.pxWidth)\n : column.pxWidth;\n });\n }\n\n resetTransientColumnWidths(): void {\n this.columns.forEach((column) => {\n column.pxTransientWidth = undefined;\n });\n }\n\n getColumnByKey(key: string): HdsAdvancedTableColumn | undefined {\n return this.columns.find((column) => column.key === key);\n }\n\n @action\n setupData(\n args: Pick<\n HdsAdvancedTableTableArgs,\n 'model' | 'columns' | 'sortBy' | 'sortOrder'\n >\n ) {\n const { model, columns, sortBy, sortOrder } = args;\n\n this.sortBy = sortBy;\n this.sortOrder = sortOrder ?? HdsAdvancedTableThSortOrderValues.Asc;\n\n this.columns = columns.map(\n (column) =>\n new HdsAdvancedTableColumn({\n column,\n table: this,\n })\n );\n\n this.rows = model.map((row) => {\n return new HdsAdvancedTableRow({\n ...row,\n childrenKey: this.childrenKey,\n columns,\n table: this,\n });\n });\n }\n\n @action\n restoreColumnWidths(): void {\n this.columns.forEach((column) => {\n column.width = column.originalWidth;\n });\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n if (typeof this.onSort === 'function') {\n this.onSort(this.sortBy, this.sortOrder);\n }\n }\n\n @action\n openAll() {\n this.rows.forEach((row) => row.openAll());\n }\n\n @action\n collapseAll() {\n this.rows.forEach((row) => row.collapseAll());\n }\n\n @action\n toggleAll() {\n if (this.allRowsAreOpen) {\n this.collapseAll();\n } else {\n this.openAll();\n }\n }\n\n @action\n stepColumn(column: HdsAdvancedTableColumn, step: number): void {\n const { table } = column;\n const oldIndex = table.orderedColumns.indexOf(column);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (newIndex < 0 || newIndex >= table.orderedColumns.length) {\n return;\n }\n\n const targetColumn = table.orderedColumns[newIndex];\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Determine the side based on the step direction.\n const side: HdsAdvancedTableColumnReorderSide =\n step > 0\n ? HdsAdvancedTableColumnReorderSideValues.Right\n : HdsAdvancedTableColumnReorderSideValues.Left;\n\n table.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTerminalPosition(\n column: HdsAdvancedTableColumn,\n position: 'start' | 'end'\n ): void {\n const firstColumn = this.orderedColumns.find((column) => column.isFirst);\n\n const {\n targetColumn,\n side,\n }: {\n targetColumn?: HdsAdvancedTableColumn;\n side: HdsAdvancedTableColumnReorderSide;\n } =\n position === 'start'\n ? {\n targetColumn: firstColumn,\n side: HdsAdvancedTableColumnReorderSideValues.Left,\n }\n : {\n targetColumn: this.orderedColumns[this.orderedColumns.length - 1],\n side: HdsAdvancedTableColumnReorderSideValues.Right,\n };\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTarget(\n sourceColumn: HdsAdvancedTableColumn,\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ): void {\n const sourceKey = sourceColumn.key;\n const targetKey = targetColumn.key;\n\n const oldIndex = this.columnOrder.indexOf(sourceKey);\n const newIndex = this.columnOrder.indexOf(targetKey);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const updated = [...this.columnOrder];\n\n updated.splice(oldIndex, 1); // Remove from old position\n\n // Calculate the insertion index based on the side\n // If dropping to the right of the target, insert after the target\n // If dropping to the left of the target, insert before the target\n // Adjust for the shift in indices caused by removing the source column\n const adjustedIndex =\n side === HdsAdvancedTableColumnReorderSideValues.Right\n ? newIndex > oldIndex\n ? newIndex\n : newIndex + 1\n : newIndex > oldIndex\n ? newIndex - 1\n : newIndex;\n\n updated.splice(adjustedIndex, 0, sourceColumn.key); // Insert at new position\n\n this.columnOrder = updated;\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n sourceColumn.thElement?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n sourceColumn.isBeingDragged = false;\n\n this.onColumnReorder?.({\n column: sourceColumn,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumn.key),\n });\n });\n }\n }\n\n @action\n moveColumnToDropTarget(\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) {\n const sourceColumn = this.reorderDraggedColumn;\n\n if (sourceColumn == null || sourceColumn === targetColumn) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumn, targetColumn, side);\n }\n}\n"],"names":["getVisibleRows","rows","reduce","acc","row","push","isOpen","children","getChildrenCount","HdsAdvancedTableTableModel","g","prototype","tracked","i","void 0","undefined","HdsAdvancedTableThSortOrderValues","Asc","childrenKey","hasReorderableColumns","hasResizableColumns","onColumnReorder","onSort","constructor","args","model","columns","columnOrder","sortBy","sortOrder","setupData","isEmpty","map","column","key","hasColumnBeingDragged","reorderDraggedColumn","reorderDraggedColumnCells","flattenedVisibleRows","cell","cells","find","columnKey","orderedColumns","sortCriteria","currentColumn","sortingFunction","sortedRows","criteria","length","sort","split","a","b","valueA","valueB","totalRowCount","lastVisibleRow","hasRowsWithChildren","some","hasChildren","allRowsAreOpen","expandState","setTransientColumnWidths","options","roundValues","forEach","pxTransientWidth","Math","round","pxWidth","resetTransientColumnWidths","getColumnByKey","HdsAdvancedTableColumn","table","HdsAdvancedTableRow","n","action","restoreColumnWidths","width","originalWidth","setSortBy","Desc","openAll","collapseAll","toggleAll","stepColumn","step","oldIndex","indexOf","newIndex","targetColumn","side","HdsAdvancedTableColumnReorderSideValues","Right","Left","moveColumnToTarget","moveColumnToTerminalPosition","position","firstColumn","isFirst","sourceColumn","sourceKey","targetKey","updated","splice","adjustedIndex","requestAnimationFrame","thElement","scrollIntoView","behavior","block","inline","isBeingDragged","newOrder","insertedAt","moveColumnToDropTarget"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hashicorp/design-system-components",
|
|
3
|
-
"version": "4.24.0
|
|
3
|
+
"version": "4.24.0",
|
|
4
4
|
"description": "Helios Design System Components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hashicorp",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@embroider/macros": "^1.18.1",
|
|
36
36
|
"@embroider/util": "^1.13.4",
|
|
37
37
|
"@floating-ui/dom": "^1.6.12",
|
|
38
|
-
"@hashicorp/design-system-tokens": "3.0.0
|
|
38
|
+
"@hashicorp/design-system-tokens": "^3.0.0",
|
|
39
39
|
"@hashicorp/flight-icons": "^3.13.0",
|
|
40
40
|
"@lezer/highlight": "^1.2.1",
|
|
41
41
|
"@nullvoxpopuli/ember-composable-helpers": "^5.2.11",
|