@hashicorp/design-system-components 6.2.0-rc-20260501023914 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -0
  2. package/declarations/components/hds/advanced-table/column-manager/order.d.ts +3 -0
  3. package/declarations/components/hds/advanced-table/index.d.ts +2 -1
  4. package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -0
  5. package/declarations/components/hds/advanced-table/th.d.ts +2 -0
  6. package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
  7. package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
  8. package/dist/components/hds/advanced-table/column-manager/order.js +11 -5
  9. package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
  10. package/dist/components/hds/advanced-table/index.js +1 -1
  11. package/dist/components/hds/advanced-table/td.js +1 -1
  12. package/dist/components/hds/advanced-table/td.js.map +1 -1
  13. package/dist/components/hds/advanced-table/th-context-menu.js +4 -5
  14. package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
  15. package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
  16. package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
  17. package/dist/components/hds/advanced-table/th-selectable.js +1 -1
  18. package/dist/components/hds/advanced-table/th.js +2 -2
  19. package/dist/components/hds/advanced-table/tr.js +1 -1
  20. package/dist/components/hds/app-header/index.js +1 -1
  21. package/dist/components/hds/app-header/index.js.map +1 -1
  22. package/dist/components/hds/app-side-nav/index.js +1 -1
  23. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  24. package/dist/components/hds/code-editor/index.js +1 -1
  25. package/dist/components/hds/code-editor/index.js.map +1 -1
  26. package/dist/components/hds/flyout/index.js +1 -1
  27. package/dist/components/hds/flyout/index.js.map +1 -1
  28. package/dist/components/hds/modal/index.js +1 -1
  29. package/dist/components/hds/modal/index.js.map +1 -1
  30. package/dist/components.js +1 -1
  31. package/dist/{index-BI5s7rxr.js → index-B9OqWZ9U.js} +52 -7
  32. package/dist/index-B9OqWZ9U.js.map +1 -0
  33. package/dist/styles/@hashicorp/design-system-components.css +16 -7
  34. package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
  35. package/dist/styles/components/advanced-table.scss +33 -20
  36. package/package.json +2 -2
  37. package/dist/index-BI5s7rxr.js.map +0 -1
@@ -31,6 +31,7 @@ export interface HdsAdvancedTableColumnManagerSignature {
31
31
  columnOrder: HdsAdvancedTableSignature['Args']['columnOrder'];
32
32
  draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;
33
33
  firstColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;
34
+ firstNonStickyColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;
34
35
  gridTemplateColumns: string;
35
36
  lastColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;
36
37
  orderedColumns: HdsAdvancedTableNormalizedColumn[];
@@ -26,6 +26,7 @@ interface HdsAdvancedTableColumnManagerOrderSignature {
26
26
  draggedColumnKey: string | null;
27
27
  reorderHoveredColumnKey: string | null;
28
28
  firstColumnKey: string | undefined;
29
+ firstNonStickyColumnKey: string | undefined;
29
30
  lastColumnKey: string | undefined;
30
31
  syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;
31
32
  moveColumnToDropTarget: (columnKey: HdsAdvancedTableNormalizedColumn['key'], side: HdsAdvancedTableColumnReorderSide) => void;
@@ -54,6 +55,8 @@ export default class HdsAdvancedTableColumnManagerOrder extends Component<HdsAdv
54
55
  get visibleColumnOrder(): string[];
55
56
  get orderedColumns(): HdsAdvancedTableNormalizedColumn[];
56
57
  get firstColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
58
+ get firstNonStickyColumnIndex(): number;
59
+ get firstNonStickyColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
57
60
  get lastColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined;
58
61
  moveColumnToTerminalPosition: (columnKey: HdsAdvancedTableNormalizedColumn["key"], position: "start" | "end") => void;
59
62
  stepColumn: (columnKey: HdsAdvancedTableNormalizedColumn["key"], step: number) => void;
@@ -71,7 +71,7 @@ export interface HdsAdvancedTableSignature<T = HdsAdvancedTableModel> {
71
71
  {
72
72
  Td?: WithBoundArgs<typeof HdsAdvancedTableTd, 'align' | 'compositeItem' | 'isCompositeItemDisabled'>;
73
73
  Tr?: ComponentLike<YieldedHdsAdvancedTableTr<T>>;
74
- Th?: WithBoundArgs<typeof HdsAdvancedTableTh, 'compositeItem' | 'isCompositeItemDisabled' | 'depth' | 'isExpandable' | 'isExpanded' | 'isStickyColumn' | 'isStickyColumnPinned' | 'newLabel' | 'onClickToggle' | 'parentId' | 'scope'>;
74
+ Th?: WithBoundArgs<typeof HdsAdvancedTableTh, 'compositeItem' | 'isCompositeItemDisabled' | 'depth' | 'isExpandable' | 'isExpanded' | 'isStickyColumnPinned' | 'newLabel' | 'onClickToggle' | 'parentId' | 'scope'>;
75
75
  data: T;
76
76
  rowIndex?: number | string;
77
77
  isOpen?: HdsAdvancedTableExpandState;
@@ -89,6 +89,7 @@ export default class HdsAdvancedTable<T = HdsAdvancedTableModel> extends Compone
89
89
  private _selectableRows;
90
90
  private _captionId;
91
91
  private _scrollHandler;
92
+ private _dragOverHandler;
92
93
  private _resizeObserver;
93
94
  private _theadElement;
94
95
  private _scrollWrapperElement;
@@ -20,6 +20,7 @@ export interface HdsAdvancedTableThContextMenuSignature {
20
20
  Args: {
21
21
  column: HdsAdvancedTableNormalizedColumn;
22
22
  isFirstColumn: boolean;
23
+ isFirstNonStickyColumn: boolean;
23
24
  isLastColumn: boolean;
24
25
  hasResizableColumns?: boolean;
25
26
  hasReorderableColumns?: boolean;
@@ -22,6 +22,7 @@ export interface HdsAdvancedTableThSignature {
22
22
  depth?: number;
23
23
  draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;
24
24
  firstColumnKey?: HdsAdvancedTableNormalizedColumn['key'];
25
+ firstNonStickyColumnKey?: HdsAdvancedTableNormalizedColumn['key'];
25
26
  hasExpandAllButton?: boolean;
26
27
  hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];
27
28
  hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];
@@ -84,6 +85,7 @@ export default class HdsAdvancedTableTh extends Component<HdsAdvancedTableThSign
84
85
  constructor(owner: Owner, args: HdsAdvancedTableThSignature['Args']);
85
86
  get isSortable(): boolean;
86
87
  get isFirstColumn(): boolean;
88
+ get isFirstNonStickyColumn(): boolean;
87
89
  get isLastColumn(): boolean;
88
90
  get tableHasColumnBeingDragged(): boolean;
89
91
  get isColumnBeingDragged(): boolean;
@@ -39,7 +39,7 @@ class HdsAdvancedTableColumnManager extends Component {
39
39
  return this.normalizedColumns.find(column => column.key === key);
40
40
  };
41
41
  static {
42
- setComponentTemplate(precompileTemplate("<HdsAdvancedTableColumnManagerOrder @columns={{this.normalizedColumns}} @columnOrder={{@columnOrder}} @hasReorderableColumns={{@hasReorderableColumns}} @hasStickyFirstColumn={{@hasStickyFirstColumn}} @onColumnReorder={{@onColumnReorder}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Order|>\n <HdsAdvancedTableColumnManagerWidth @columns={{this.normalizedColumns}} @orderedColumns={{Order.orderedColumns}} @columnOrder={{Order.columnOrder}} @isSelectable={{@isSelectable}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Width|>\n {{yield (hash columns=this.normalizedColumns columnOrder=Order.columnOrder draggedColumnKey=Order.draggedColumnKey firstColumnKey=Order.firstColumnKey gridTemplateColumns=Width.gridTemplateColumns lastColumnKey=Order.lastColumnKey orderedColumns=Order.orderedColumns syncColumnOrder=Order.syncColumnOrder syncThElements=this.syncThElements syncWidthValues=Width.syncWidthValues applyTransientWidth=Width.applyTransientWidth getAppliedWidth=Width.getAppliedWidth getColumnByKey=this.getColumnByKey getSiblingColumnKeys=Width.getSiblingColumnKeys reorderHoveredColumnKey=Order.reorderHoveredColumnKey restoreColumnWidth=Width.restoreColumnWidth moveColumnToDropTarget=Order.moveColumnToDropTarget moveColumnToTarget=Order.moveColumnToTarget moveColumnToTerminalPosition=Order.moveColumnToTerminalPosition setTransientColumnWidths=Width.setTransientColumnWidths setTransientColumnWidth=Width.setTransientColumnWidth resetTransientColumnWidths=Width.resetTransientColumnWidths stepColumn=Order.stepColumn setDraggedColumnKey=Order.setDraggedColumnKey setReorderHoveredColumnKey=Order.setReorderHoveredColumnKey updateResizeDebt=Width.updateResizeDebt)}}\n </HdsAdvancedTableColumnManagerWidth>\n</HdsAdvancedTableColumnManagerOrder>", {
42
+ setComponentTemplate(precompileTemplate("<HdsAdvancedTableColumnManagerOrder @columns={{this.normalizedColumns}} @columnOrder={{@columnOrder}} @hasReorderableColumns={{@hasReorderableColumns}} @hasStickyFirstColumn={{@hasStickyFirstColumn}} @onColumnReorder={{@onColumnReorder}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Order|>\n <HdsAdvancedTableColumnManagerWidth @columns={{this.normalizedColumns}} @orderedColumns={{Order.orderedColumns}} @columnOrder={{Order.columnOrder}} @isSelectable={{@isSelectable}} @getColumnByKey={{this.getColumnByKey}} @thElements={{this.thElements}} as |Width|>\n {{yield (hash columns=this.normalizedColumns columnOrder=Order.columnOrder draggedColumnKey=Order.draggedColumnKey firstColumnKey=Order.firstColumnKey firstNonStickyColumnKey=Order.firstNonStickyColumnKey gridTemplateColumns=Width.gridTemplateColumns lastColumnKey=Order.lastColumnKey orderedColumns=Order.orderedColumns syncColumnOrder=Order.syncColumnOrder syncThElements=this.syncThElements syncWidthValues=Width.syncWidthValues applyTransientWidth=Width.applyTransientWidth getAppliedWidth=Width.getAppliedWidth getColumnByKey=this.getColumnByKey getSiblingColumnKeys=Width.getSiblingColumnKeys reorderHoveredColumnKey=Order.reorderHoveredColumnKey restoreColumnWidth=Width.restoreColumnWidth moveColumnToDropTarget=Order.moveColumnToDropTarget moveColumnToTarget=Order.moveColumnToTarget moveColumnToTerminalPosition=Order.moveColumnToTerminalPosition setTransientColumnWidths=Width.setTransientColumnWidths setTransientColumnWidth=Width.setTransientColumnWidth resetTransientColumnWidths=Width.resetTransientColumnWidths stepColumn=Order.stepColumn setDraggedColumnKey=Order.setDraggedColumnKey setReorderHoveredColumnKey=Order.setReorderHoveredColumnKey updateResizeDebt=Width.updateResizeDebt)}}\n </HdsAdvancedTableColumnManagerWidth>\n</HdsAdvancedTableColumnManagerOrder>", {
43
43
  strictMode: true,
44
44
  scope: () => ({
45
45
  HdsAdvancedTableColumnManagerOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/advanced-table/column-manager/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { cached } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { TrackedMap } from 'tracked-built-ins';\nimport { hash } from '@ember/helper';\n\nimport HdsAdvancedTableColumnManagerWidth from './width.gts';\nimport HdsAdvancedTableColumnManagerOrder from './order.gts';\n\nimport type { ModifierLike } from '@glint/template';\nimport type { HdsAdvancedTableSyncWidthValuesSignature } from './width.gts';\nimport type { HdsAdvancedTableSyncColumnOrderSignature } from './order.gts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n} from '../types.ts';\nimport type { HdsAdvancedTableSignature } from '../index.gts';\n\nexport interface HdsAdvancedTableSyncThElementsSignature {\n Element: HTMLDivElement;\n Args: {\n Positional: [HdsAdvancedTableColumn['key']];\n };\n}\n\nexport interface HdsAdvancedTableColumnManagerSignature {\n Args: {\n columns: HdsAdvancedTableColumn[];\n columnOrder: HdsAdvancedTableSignature['Args']['columnOrder'];\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn'];\n isSelectable?: HdsAdvancedTableSignature['Args']['isSelectable'];\n onColumnReorder: HdsAdvancedTableSignature['Args']['onColumnReorder'];\n };\n Blocks: {\n default: [\n {\n columns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: HdsAdvancedTableSignature['Args']['columnOrder'];\n draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;\n firstColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;\n gridTemplateColumns: string;\n lastColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;\n orderedColumns: HdsAdvancedTableNormalizedColumn[];\n reorderHoveredColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;\n syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;\n syncThElements: ModifierLike<HdsAdvancedTableSyncThElementsSignature>;\n syncWidthValues: ModifierLike<HdsAdvancedTableSyncWidthValuesSignature>;\n applyTransientWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n getAppliedWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n getColumnByKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n getSiblingColumnKeys: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n moveColumnToDropTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTerminalPosition: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n restoreColumnWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n setDraggedColumnKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setReorderHoveredColumnKey: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setTransientColumnWidths: (options: { roundValues?: boolean }) => void;\n setTransientColumnWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`,\n clamped?: boolean\n ) => void;\n resetTransientColumnWidths: () => void;\n stepColumn: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n updateResizeDebt: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n delta: number\n ) => void;\n },\n ];\n };\n}\n\nexport default class HdsAdvancedTableColumnManager extends Component<HdsAdvancedTableColumnManagerSignature> {\n thElements = new TrackedMap<string, HTMLDivElement>();\n\n syncThElements = modifier<HdsAdvancedTableSyncThElementsSignature>(\n (element, [key]) => {\n if (key !== undefined) {\n this.thElements.set(key, element);\n }\n }\n );\n\n @cached\n get normalizedColumns(): HdsAdvancedTableNormalizedColumn[] {\n return this.args.columns.map((column) => {\n return column.key !== undefined\n ? (column as HdsAdvancedTableNormalizedColumn)\n : { ...column, key: guidFor(column) };\n });\n }\n\n getColumnByKey = (\n key: HdsAdvancedTableColumn['key']\n ): HdsAdvancedTableNormalizedColumn | undefined => {\n if (key === undefined) {\n return;\n }\n\n return this.normalizedColumns.find((column) => column.key === key);\n };\n\n <template>\n <HdsAdvancedTableColumnManagerOrder\n @columns={{this.normalizedColumns}}\n @columnOrder={{@columnOrder}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasStickyFirstColumn={{@hasStickyFirstColumn}}\n @onColumnReorder={{@onColumnReorder}}\n @getColumnByKey={{this.getColumnByKey}}\n @thElements={{this.thElements}}\n as |Order|\n >\n <HdsAdvancedTableColumnManagerWidth\n @columns={{this.normalizedColumns}}\n @orderedColumns={{Order.orderedColumns}}\n @columnOrder={{Order.columnOrder}}\n @isSelectable={{@isSelectable}}\n @getColumnByKey={{this.getColumnByKey}}\n @thElements={{this.thElements}}\n as |Width|\n >\n {{yield\n (hash\n columns=this.normalizedColumns\n columnOrder=Order.columnOrder\n draggedColumnKey=Order.draggedColumnKey\n firstColumnKey=Order.firstColumnKey\n gridTemplateColumns=Width.gridTemplateColumns\n lastColumnKey=Order.lastColumnKey\n orderedColumns=Order.orderedColumns\n syncColumnOrder=Order.syncColumnOrder\n syncThElements=this.syncThElements\n syncWidthValues=Width.syncWidthValues\n applyTransientWidth=Width.applyTransientWidth\n getAppliedWidth=Width.getAppliedWidth\n getColumnByKey=this.getColumnByKey\n getSiblingColumnKeys=Width.getSiblingColumnKeys\n reorderHoveredColumnKey=Order.reorderHoveredColumnKey\n restoreColumnWidth=Width.restoreColumnWidth\n moveColumnToDropTarget=Order.moveColumnToDropTarget\n moveColumnToTarget=Order.moveColumnToTarget\n moveColumnToTerminalPosition=Order.moveColumnToTerminalPosition\n setTransientColumnWidths=Width.setTransientColumnWidths\n setTransientColumnWidth=Width.setTransientColumnWidth\n resetTransientColumnWidths=Width.resetTransientColumnWidths\n stepColumn=Order.stepColumn\n setDraggedColumnKey=Order.setDraggedColumnKey\n setReorderHoveredColumnKey=Order.setReorderHoveredColumnKey\n updateResizeDebt=Width.updateResizeDebt\n )\n }}\n </HdsAdvancedTableColumnManagerWidth>\n </HdsAdvancedTableColumnManagerOrder>\n </template>\n}\n"],"names":["HdsAdvancedTableColumnManager","Component","thElements","TrackedMap","syncThElements","modifier","element","key","undefined","set","normalizedColumns","args","columns","map","column","guidFor","n","prototype","cached","getColumnByKey","find","setComponentTemplate","precompileTemplate","strictMode","scope","HdsAdvancedTableColumnManagerOrder","HdsAdvancedTableColumnManagerWidth","hash"],"mappings":";;;;;;;;;;;;AAAA;;;AAGC;AA6Gc,MAAMA,sCAAsCC,SAAA,CAAU;AACnEC,EAAAA,UAAA,GAAa,IAAIC,UAAA,EAAmB;EAEpCC,cAAA,GAAiBC,QAAA,CACf,CAACC,OAAA,EAAS,CAACC,GAAA,CAAI,KAAA;IACb,IAAIA,QAAQC,SAAA,EAAW;MACrB,IAAI,CAACN,UAAU,CAACO,GAAG,CAACF,GAAA,EAAKD,OAAA,CAAA;AAC3B,IAAA;AACF,EAAA,CAAA,CAAA;EAGF,IACII,oBAAwD;IAC1D,OAAO,IAAI,CAACC,IAAI,CAACC,OAAO,CAACC,GAAG,CAAEC,MAAA,IAAA;AAC5B,MAAA,OAAOA,OAAOP,GAAG,KAAKC,YACjBM,MAAA,GACD;AAAE,QAAA,GAAGA,MAAM;QAAEP,GAAA,EAAKQ,OAAA,CAAQD,MAAA;OAAQ;AACxC,IAAA,CAAA,CAAA;AACF,EAAA;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CAPCC,MAAA,CAAA,CAAA;AAAA;EASDC,cAAA,GACEZ,GAA4B,IACiB;IAC7C,IAAIA,QAAQC,SAAA,EAAW;AACrB,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,IAAI,CAACE,iBAAiB,CAACU,IAAI,CAAEN,MAAA,IAAWA,MAAA,CAAOP,GAAG,KAAKA,GAAA,CAAA;EAChE,CAAA;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAAA,iyDAAA,EAoDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,kCAAA;QAAAC,kCAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/advanced-table/column-manager/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { cached } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { TrackedMap } from 'tracked-built-ins';\nimport { hash } from '@ember/helper';\n\nimport HdsAdvancedTableColumnManagerWidth from './width.gts';\nimport HdsAdvancedTableColumnManagerOrder from './order.gts';\n\nimport type { ModifierLike } from '@glint/template';\nimport type { HdsAdvancedTableSyncWidthValuesSignature } from './width.gts';\nimport type { HdsAdvancedTableSyncColumnOrderSignature } from './order.gts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n} from '../types.ts';\nimport type { HdsAdvancedTableSignature } from '../index.gts';\n\nexport interface HdsAdvancedTableSyncThElementsSignature {\n Element: HTMLDivElement;\n Args: {\n Positional: [HdsAdvancedTableColumn['key']];\n };\n}\n\nexport interface HdsAdvancedTableColumnManagerSignature {\n Args: {\n columns: HdsAdvancedTableColumn[];\n columnOrder: HdsAdvancedTableSignature['Args']['columnOrder'];\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn'];\n isSelectable?: HdsAdvancedTableSignature['Args']['isSelectable'];\n onColumnReorder: HdsAdvancedTableSignature['Args']['onColumnReorder'];\n };\n Blocks: {\n default: [\n {\n columns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: HdsAdvancedTableSignature['Args']['columnOrder'];\n draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;\n firstColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;\n firstNonStickyColumnKey:\n | HdsAdvancedTableNormalizedColumn['key']\n | undefined;\n gridTemplateColumns: string;\n lastColumnKey: HdsAdvancedTableNormalizedColumn['key'] | undefined;\n orderedColumns: HdsAdvancedTableNormalizedColumn[];\n reorderHoveredColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null;\n syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;\n syncThElements: ModifierLike<HdsAdvancedTableSyncThElementsSignature>;\n syncWidthValues: ModifierLike<HdsAdvancedTableSyncWidthValuesSignature>;\n applyTransientWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n getAppliedWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n getColumnByKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n getSiblingColumnKeys: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n moveColumnToDropTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTerminalPosition: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n restoreColumnWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n setDraggedColumnKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setReorderHoveredColumnKey: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setTransientColumnWidths: (options: { roundValues?: boolean }) => void;\n setTransientColumnWidth: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`,\n clamped?: boolean\n ) => void;\n resetTransientColumnWidths: () => void;\n stepColumn: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n updateResizeDebt: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n delta: number\n ) => void;\n },\n ];\n };\n}\n\nexport default class HdsAdvancedTableColumnManager extends Component<HdsAdvancedTableColumnManagerSignature> {\n thElements = new TrackedMap<string, HTMLDivElement>();\n\n syncThElements = modifier<HdsAdvancedTableSyncThElementsSignature>(\n (element, [key]) => {\n if (key !== undefined) {\n this.thElements.set(key, element);\n }\n }\n );\n\n @cached\n get normalizedColumns(): HdsAdvancedTableNormalizedColumn[] {\n return this.args.columns.map((column) => {\n return column.key !== undefined\n ? (column as HdsAdvancedTableNormalizedColumn)\n : { ...column, key: guidFor(column) };\n });\n }\n\n getColumnByKey = (\n key: HdsAdvancedTableColumn['key']\n ): HdsAdvancedTableNormalizedColumn | undefined => {\n if (key === undefined) {\n return;\n }\n\n return this.normalizedColumns.find((column) => column.key === key);\n };\n\n <template>\n <HdsAdvancedTableColumnManagerOrder\n @columns={{this.normalizedColumns}}\n @columnOrder={{@columnOrder}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasStickyFirstColumn={{@hasStickyFirstColumn}}\n @onColumnReorder={{@onColumnReorder}}\n @getColumnByKey={{this.getColumnByKey}}\n @thElements={{this.thElements}}\n as |Order|\n >\n <HdsAdvancedTableColumnManagerWidth\n @columns={{this.normalizedColumns}}\n @orderedColumns={{Order.orderedColumns}}\n @columnOrder={{Order.columnOrder}}\n @isSelectable={{@isSelectable}}\n @getColumnByKey={{this.getColumnByKey}}\n @thElements={{this.thElements}}\n as |Width|\n >\n {{yield\n (hash\n columns=this.normalizedColumns\n columnOrder=Order.columnOrder\n draggedColumnKey=Order.draggedColumnKey\n firstColumnKey=Order.firstColumnKey\n firstNonStickyColumnKey=Order.firstNonStickyColumnKey\n gridTemplateColumns=Width.gridTemplateColumns\n lastColumnKey=Order.lastColumnKey\n orderedColumns=Order.orderedColumns\n syncColumnOrder=Order.syncColumnOrder\n syncThElements=this.syncThElements\n syncWidthValues=Width.syncWidthValues\n applyTransientWidth=Width.applyTransientWidth\n getAppliedWidth=Width.getAppliedWidth\n getColumnByKey=this.getColumnByKey\n getSiblingColumnKeys=Width.getSiblingColumnKeys\n reorderHoveredColumnKey=Order.reorderHoveredColumnKey\n restoreColumnWidth=Width.restoreColumnWidth\n moveColumnToDropTarget=Order.moveColumnToDropTarget\n moveColumnToTarget=Order.moveColumnToTarget\n moveColumnToTerminalPosition=Order.moveColumnToTerminalPosition\n setTransientColumnWidths=Width.setTransientColumnWidths\n setTransientColumnWidth=Width.setTransientColumnWidth\n resetTransientColumnWidths=Width.resetTransientColumnWidths\n stepColumn=Order.stepColumn\n setDraggedColumnKey=Order.setDraggedColumnKey\n setReorderHoveredColumnKey=Order.setReorderHoveredColumnKey\n updateResizeDebt=Width.updateResizeDebt\n )\n }}\n </HdsAdvancedTableColumnManagerWidth>\n </HdsAdvancedTableColumnManagerOrder>\n </template>\n}\n"],"names":["HdsAdvancedTableColumnManager","Component","thElements","TrackedMap","syncThElements","modifier","element","key","undefined","set","normalizedColumns","args","columns","map","column","guidFor","n","prototype","cached","getColumnByKey","find","setComponentTemplate","precompileTemplate","strictMode","scope","HdsAdvancedTableColumnManagerOrder","HdsAdvancedTableColumnManagerWidth","hash"],"mappings":";;;;;;;;;;;;AAAA;;;AAGC;AAgHc,MAAMA,sCAAsCC,SAAA,CAAU;AACnEC,EAAAA,UAAA,GAAa,IAAIC,UAAA,EAAmB;EAEpCC,cAAA,GAAiBC,QAAA,CACf,CAACC,OAAA,EAAS,CAACC,GAAA,CAAI,KAAA;IACb,IAAIA,QAAQC,SAAA,EAAW;MACrB,IAAI,CAACN,UAAU,CAACO,GAAG,CAACF,GAAA,EAAKD,OAAA,CAAA;AAC3B,IAAA;AACF,EAAA,CAAA,CAAA;EAGF,IACII,oBAAwD;IAC1D,OAAO,IAAI,CAACC,IAAI,CAACC,OAAO,CAACC,GAAG,CAAEC,MAAA,IAAA;AAC5B,MAAA,OAAOA,OAAOP,GAAG,KAAKC,YACjBM,MAAA,GACD;AAAE,QAAA,GAAGA,MAAM;QAAEP,GAAA,EAAKQ,OAAA,CAAQD,MAAA;OAAQ;AACxC,IAAA,CAAA,CAAA;AACF,EAAA;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CAPCC,MAAA,CAAA,CAAA;AAAA;EASDC,cAAA,GACEZ,GAA4B,IACiB;IAC7C,IAAIA,QAAQC,SAAA,EAAW;AACrB,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,IAAI,CAACE,iBAAiB,CAACU,IAAI,CAAEN,MAAA,IAAWA,MAAA,CAAOP,GAAG,KAAKA,GAAA,CAAA;EAChE,CAAA;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAAA,u1DAAA,EAqDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,kCAAA;QAAAC,kCAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -91,6 +91,13 @@ class HdsAdvancedTableColumnManagerOrder extends Component {
91
91
  const firstColumn = this.orderedColumns[0];
92
92
  return firstColumn?.key;
93
93
  }
94
+ get firstNonStickyColumnIndex() {
95
+ return this.args.hasStickyFirstColumn ? 1 : 0;
96
+ }
97
+ get firstNonStickyColumnKey() {
98
+ const firstNonStickyColumn = this.orderedColumns[this.firstNonStickyColumnIndex];
99
+ return firstNonStickyColumn?.key;
100
+ }
94
101
  get lastColumnKey() {
95
102
  const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];
96
103
  return lastColumn?.key;
@@ -98,13 +105,12 @@ class HdsAdvancedTableColumnManagerOrder extends Component {
98
105
  moveColumnToTerminalPosition = (columnKey, position) => {
99
106
  let targetColumnKey;
100
107
  let side;
101
- const firstColumn = this.orderedColumns[0];
102
108
  const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];
103
- if (firstColumn === undefined || lastColumn === undefined) {
109
+ if (this.firstNonStickyColumnKey === undefined || lastColumn === undefined) {
104
110
  return;
105
111
  }
106
112
  if (position === 'start') {
107
- targetColumnKey = firstColumn.key;
113
+ targetColumnKey = this.firstNonStickyColumnKey;
108
114
  side = HdsAdvancedTableColumnReorderSideValues.Left;
109
115
  } else {
110
116
  targetColumnKey = lastColumn.key;
@@ -117,7 +123,7 @@ class HdsAdvancedTableColumnManagerOrder extends Component {
117
123
  const oldIndex = this.columnOrder.indexOf(columnKey);
118
124
  const newIndex = oldIndex + step;
119
125
  // Check if the new position is within the array bounds.
120
- if (newIndex < 0 || newIndex >= this.columnOrder.length) {
126
+ if (newIndex < this.firstNonStickyColumnIndex || newIndex >= this.columnOrder.length) {
121
127
  return;
122
128
  }
123
129
  const targetColumnKey = this.columnOrder[newIndex];
@@ -189,7 +195,7 @@ class HdsAdvancedTableColumnManagerOrder extends Component {
189
195
  return column.key ?? guidFor(column);
190
196
  }
191
197
  static {
192
- setComponentTemplate(precompileTemplate("{{yield (hash orderedColumns=this.orderedColumns columnOrder=this.visibleColumnOrder draggedColumnKey=this.draggedColumnKey reorderHoveredColumnKey=this.reorderHoveredColumnKey firstColumnKey=this.firstColumnKey lastColumnKey=this.lastColumnKey syncColumnOrder=this.syncColumnOrder moveColumnToDropTarget=this.moveColumnToDropTarget moveColumnToTarget=this.moveColumnToTarget moveColumnToTerminalPosition=this.moveColumnToTerminalPosition stepColumn=this.stepColumn setDraggedColumnKey=(fn (mut this.draggedColumnKey)) setReorderHoveredColumnKey=(fn (mut this.reorderHoveredColumnKey)))}}", {
198
+ setComponentTemplate(precompileTemplate("{{yield (hash orderedColumns=this.orderedColumns columnOrder=this.visibleColumnOrder draggedColumnKey=this.draggedColumnKey reorderHoveredColumnKey=this.reorderHoveredColumnKey firstColumnKey=this.firstColumnKey firstNonStickyColumnKey=this.firstNonStickyColumnKey lastColumnKey=this.lastColumnKey syncColumnOrder=this.syncColumnOrder moveColumnToDropTarget=this.moveColumnToDropTarget moveColumnToTarget=this.moveColumnToTarget moveColumnToTerminalPosition=this.moveColumnToTerminalPosition stepColumn=this.stepColumn setDraggedColumnKey=(fn (mut this.draggedColumnKey)) setReorderHoveredColumnKey=(fn (mut this.reorderHoveredColumnKey)))}}", {
193
199
  strictMode: true,
194
200
  scope: () => ({
195
201
  hash,
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sources":["../../../../../src/components/hds/advanced-table/column-manager/order.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { fn, hash } from '@ember/helper';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { scheduleOnce } from '@ember/runloop';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { TrackedMap } from 'tracked-built-ins';\nimport { HdsAdvancedTableColumnReorderSideValues } from '../types.ts';\n\nimport type {\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n} from '../types.ts';\nimport type { ModifierLike } from '@glint/template';\n\nexport interface HdsAdvancedTableSyncColumnOrderSignature {\n Element: HTMLDivElement;\n Args: {\n Positional: [HdsAdvancedTableNormalizedColumn[], string[] | undefined];\n };\n}\n\ninterface HdsAdvancedTableColumnManagerOrderSignature {\n Args: {\n columns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: string[] | undefined;\n hasReorderableColumns?: boolean;\n hasStickyFirstColumn?: boolean;\n onColumnReorder: HdsAdvancedTableColumnReorderCallback | undefined;\n getColumnByKey: (\n key: string\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n thElements: TrackedMap<string, HTMLDivElement>;\n };\n Blocks: {\n default: [\n {\n orderedColumns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: string[];\n draggedColumnKey: string | null;\n reorderHoveredColumnKey: string | null;\n firstColumnKey: string | undefined;\n lastColumnKey: string | undefined;\n syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;\n moveColumnToDropTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTerminalPosition: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n stepColumn: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n setDraggedColumnKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setReorderHoveredColumnKey: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n },\n ];\n };\n}\n\nexport default class HdsAdvancedTableColumnManagerOrder extends Component<HdsAdvancedTableColumnManagerOrderSignature> {\n @tracked draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null =\n null;\n @tracked reorderHoveredColumnKey:\n | HdsAdvancedTableNormalizedColumn['key']\n | null = null;\n @tracked private _columnOrder: string[] = [];\n\n syncColumnOrder = modifier<HdsAdvancedTableSyncColumnOrderSignature>(\n (_element, [columns, columnOrder]) => {\n const columnKeys = columns.map((column) => this._getColumnKey(column));\n\n let nextOrder = this._columnOrder;\n\n if (columnOrder !== undefined) {\n const visibleSet = new Set(columnOrder);\n const hiddenKeys = nextOrder.filter((key) => !visibleSet.has(key));\n\n const reordered: string[] = [];\n\n let visibleIdx = 0;\n let hiddenIdx = 0;\n\n for (let i = 0; i < nextOrder.length; i++) {\n if (hiddenKeys.includes(nextOrder[i]!)) {\n reordered.push(hiddenKeys[hiddenIdx++]!);\n } else {\n reordered.push(columnOrder[visibleIdx++]!);\n }\n }\n\n nextOrder = reordered;\n }\n\n const missingKeys = columnKeys.filter((key) => !nextOrder.includes(key));\n\n if (missingKeys.length > 0) {\n nextOrder = [...nextOrder, ...missingKeys];\n }\n\n const isSame =\n nextOrder.length === this._columnOrder.length &&\n nextOrder.every((value, index) => value === this._columnOrder[index]);\n\n const setColumnOrder = () => (this.columnOrder = nextOrder);\n\n if (!isSame) {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('afterRender', this, setColumnOrder);\n }\n }\n );\n\n get columnOrder(): string[] {\n return this._columnOrder.length > 0\n ? this._columnOrder\n : this.args.columns.map((column) => this._getColumnKey(column));\n }\n set columnOrder(value: string[]) {\n this._columnOrder = value;\n }\n\n get visibleColumnOrder(): string[] {\n const visibleKeys = new Set(\n this.args.columns.map((column) => this._getColumnKey(column))\n );\n\n return this._columnOrder.filter((key) => visibleKeys.has(key));\n }\n\n get orderedColumns(): HdsAdvancedTableNormalizedColumn[] {\n const { hasReorderableColumns, columns } = this.args;\n\n if (hasReorderableColumns && this.columnOrder !== undefined) {\n const columnMap = new Map(columns.map((column) => [column.key, column]));\n\n return this.columnOrder.reduce<HdsAdvancedTableNormalizedColumn[]>(\n (acc, key) => {\n const column = columnMap.get(key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n },\n []\n );\n } else {\n return columns;\n }\n }\n\n get firstColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined {\n const firstColumn = this.orderedColumns[0];\n\n return firstColumn?.key;\n }\n\n get lastColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined {\n const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];\n\n return lastColumn?.key;\n }\n\n moveColumnToTerminalPosition = (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ): void => {\n let targetColumnKey: HdsAdvancedTableNormalizedColumn['key'];\n let side: HdsAdvancedTableColumnReorderSide;\n\n const firstColumn = this.orderedColumns[0];\n const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];\n\n if (firstColumn === undefined || lastColumn === undefined) {\n return;\n }\n\n if (position === 'start') {\n targetColumnKey = firstColumn.key!;\n side = HdsAdvancedTableColumnReorderSideValues.Left;\n } else {\n targetColumnKey = lastColumn.key!;\n side = HdsAdvancedTableColumnReorderSideValues.Right;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(columnKey, targetColumnKey, side);\n };\n\n stepColumn = (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ): void => {\n const oldIndex = this.columnOrder.indexOf(columnKey);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (newIndex < 0 || newIndex >= this.columnOrder.length) {\n return;\n }\n\n const targetColumnKey = this.columnOrder[newIndex];\n\n if (targetColumnKey === 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 this.moveColumnToTarget(columnKey, targetColumnKey, side);\n };\n\n moveColumnToDropTarget = (\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ): void => {\n const sourceColumnKey = this.draggedColumnKey;\n\n if (sourceColumnKey === null || sourceColumnKey === targetColumnKey) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumnKey, targetColumnKey, side);\n };\n\n moveColumnToTarget = (\n sourceColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ): void => {\n const oldIndex = this.columnOrder.indexOf(sourceColumnKey);\n const newIndex = this.columnOrder.indexOf(targetColumnKey);\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, sourceColumnKey); // Insert at new position\n\n this.columnOrder = updated;\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n const thElement = this.args.thElements.get(sourceColumnKey);\n\n if (thElement === undefined) {\n return;\n }\n\n thElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n this.draggedColumnKey = null;\n\n const column = this.args.getColumnByKey(sourceColumnKey);\n\n assert('No column found with that key', column !== undefined);\n\n this.setColumnOrder({\n column,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumnKey),\n });\n });\n }\n };\n\n setColumnOrder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n const { onColumnReorder } = this.args;\n\n this.columnOrder = newOrder;\n\n onColumnReorder?.({ column, newOrder, insertedAt });\n };\n\n private _getColumnKey(column: HdsAdvancedTableNormalizedColumn): string {\n return column.key ?? guidFor(column);\n }\n\n <template>\n {{yield\n (hash\n orderedColumns=this.orderedColumns\n columnOrder=this.visibleColumnOrder\n draggedColumnKey=this.draggedColumnKey\n reorderHoveredColumnKey=this.reorderHoveredColumnKey\n firstColumnKey=this.firstColumnKey\n lastColumnKey=this.lastColumnKey\n syncColumnOrder=this.syncColumnOrder\n moveColumnToDropTarget=this.moveColumnToDropTarget\n moveColumnToTarget=this.moveColumnToTarget\n moveColumnToTerminalPosition=this.moveColumnToTerminalPosition\n stepColumn=this.stepColumn\n setDraggedColumnKey=(fn (mut this.draggedColumnKey))\n setReorderHoveredColumnKey=(fn (mut this.reorderHoveredColumnKey))\n )\n }}\n </template>\n}\n"],"names":["HdsAdvancedTableColumnManagerOrder","Component","g","prototype","tracked","i","syncColumnOrder","modifier","_element","columns","columnOrder","columnKeys","map","column","_getColumnKey","nextOrder","_columnOrder","undefined","visibleSet","Set","hiddenKeys","filter","key","has","reordered","visibleIdx","hiddenIdx","length","includes","push","missingKeys","isSame","every","value","index","setColumnOrder","scheduleOnce","args","visibleColumnOrder","visibleKeys","orderedColumns","hasReorderableColumns","columnMap","Map","reduce","acc","get","firstColumnKey","firstColumn","lastColumnKey","lastColumn","moveColumnToTerminalPosition","columnKey","position","targetColumnKey","side","HdsAdvancedTableColumnReorderSideValues","Left","Right","moveColumnToTarget","stepColumn","step","oldIndex","indexOf","newIndex","moveColumnToDropTarget","sourceColumnKey","draggedColumnKey","updated","splice","adjustedIndex","requestAnimationFrame","thElement","thElements","scrollIntoView","behavior","block","inline","getColumnByKey","assert","newOrder","insertedAt","onColumnReorder","guidFor","setComponentTemplate","precompileTemplate","strictMode","scope","hash","fn"],"mappings":"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"}
1
+ {"version":3,"file":"order.js","sources":["../../../../../src/components/hds/advanced-table/column-manager/order.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { fn, hash } from '@ember/helper';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { scheduleOnce } from '@ember/runloop';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { TrackedMap } from 'tracked-built-ins';\nimport { HdsAdvancedTableColumnReorderSideValues } from '../types.ts';\n\nimport type {\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n} from '../types.ts';\nimport type { ModifierLike } from '@glint/template';\n\nexport interface HdsAdvancedTableSyncColumnOrderSignature {\n Element: HTMLDivElement;\n Args: {\n Positional: [HdsAdvancedTableNormalizedColumn[], string[] | undefined];\n };\n}\n\ninterface HdsAdvancedTableColumnManagerOrderSignature {\n Args: {\n columns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: string[] | undefined;\n hasReorderableColumns?: boolean;\n hasStickyFirstColumn?: boolean;\n onColumnReorder: HdsAdvancedTableColumnReorderCallback | undefined;\n getColumnByKey: (\n key: string\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n thElements: TrackedMap<string, HTMLDivElement>;\n };\n Blocks: {\n default: [\n {\n orderedColumns: HdsAdvancedTableNormalizedColumn[];\n columnOrder: string[];\n draggedColumnKey: string | null;\n reorderHoveredColumnKey: string | null;\n firstColumnKey: string | undefined;\n firstNonStickyColumnKey: string | undefined;\n lastColumnKey: string | undefined;\n syncColumnOrder: ModifierLike<HdsAdvancedTableSyncColumnOrderSignature>;\n moveColumnToDropTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTarget: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n moveColumnToTerminalPosition: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n stepColumn: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n setDraggedColumnKey: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n setReorderHoveredColumnKey: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n },\n ];\n };\n}\n\nexport default class HdsAdvancedTableColumnManagerOrder extends Component<HdsAdvancedTableColumnManagerOrderSignature> {\n @tracked draggedColumnKey: HdsAdvancedTableNormalizedColumn['key'] | null =\n null;\n @tracked reorderHoveredColumnKey:\n | HdsAdvancedTableNormalizedColumn['key']\n | null = null;\n @tracked private _columnOrder: string[] = [];\n\n syncColumnOrder = modifier<HdsAdvancedTableSyncColumnOrderSignature>(\n (_element, [columns, columnOrder]) => {\n const columnKeys = columns.map((column) => this._getColumnKey(column));\n\n let nextOrder = this._columnOrder;\n\n if (columnOrder !== undefined) {\n const visibleSet = new Set(columnOrder);\n const hiddenKeys = nextOrder.filter((key) => !visibleSet.has(key));\n\n const reordered: string[] = [];\n\n let visibleIdx = 0;\n let hiddenIdx = 0;\n\n for (let i = 0; i < nextOrder.length; i++) {\n if (hiddenKeys.includes(nextOrder[i]!)) {\n reordered.push(hiddenKeys[hiddenIdx++]!);\n } else {\n reordered.push(columnOrder[visibleIdx++]!);\n }\n }\n\n nextOrder = reordered;\n }\n\n const missingKeys = columnKeys.filter((key) => !nextOrder.includes(key));\n\n if (missingKeys.length > 0) {\n nextOrder = [...nextOrder, ...missingKeys];\n }\n\n const isSame =\n nextOrder.length === this._columnOrder.length &&\n nextOrder.every((value, index) => value === this._columnOrder[index]);\n\n const setColumnOrder = () => (this.columnOrder = nextOrder);\n\n if (!isSame) {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('afterRender', this, setColumnOrder);\n }\n }\n );\n\n get columnOrder(): string[] {\n return this._columnOrder.length > 0\n ? this._columnOrder\n : this.args.columns.map((column) => this._getColumnKey(column));\n }\n set columnOrder(value: string[]) {\n this._columnOrder = value;\n }\n\n get visibleColumnOrder(): string[] {\n const visibleKeys = new Set(\n this.args.columns.map((column) => this._getColumnKey(column))\n );\n\n return this._columnOrder.filter((key) => visibleKeys.has(key));\n }\n\n get orderedColumns(): HdsAdvancedTableNormalizedColumn[] {\n const { hasReorderableColumns, columns } = this.args;\n\n if (hasReorderableColumns && this.columnOrder !== undefined) {\n const columnMap = new Map(columns.map((column) => [column.key, column]));\n\n return this.columnOrder.reduce<HdsAdvancedTableNormalizedColumn[]>(\n (acc, key) => {\n const column = columnMap.get(key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n },\n []\n );\n } else {\n return columns;\n }\n }\n\n get firstColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined {\n const firstColumn = this.orderedColumns[0];\n\n return firstColumn?.key;\n }\n\n get firstNonStickyColumnIndex(): number {\n return this.args.hasStickyFirstColumn ? 1 : 0;\n }\n\n get firstNonStickyColumnKey():\n | HdsAdvancedTableNormalizedColumn['key']\n | undefined {\n const firstNonStickyColumn =\n this.orderedColumns[this.firstNonStickyColumnIndex];\n\n return firstNonStickyColumn?.key;\n }\n\n get lastColumnKey(): HdsAdvancedTableNormalizedColumn['key'] | undefined {\n const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];\n\n return lastColumn?.key;\n }\n\n moveColumnToTerminalPosition = (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ): void => {\n let targetColumnKey: HdsAdvancedTableNormalizedColumn['key'];\n let side: HdsAdvancedTableColumnReorderSide;\n\n const lastColumn = this.orderedColumns[this.orderedColumns.length - 1];\n\n if (\n this.firstNonStickyColumnKey === undefined ||\n lastColumn === undefined\n ) {\n return;\n }\n\n if (position === 'start') {\n targetColumnKey = this.firstNonStickyColumnKey;\n side = HdsAdvancedTableColumnReorderSideValues.Left;\n } else {\n targetColumnKey = lastColumn.key!;\n side = HdsAdvancedTableColumnReorderSideValues.Right;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(columnKey, targetColumnKey, side);\n };\n\n stepColumn = (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ): void => {\n const oldIndex = this.columnOrder.indexOf(columnKey);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (\n newIndex < this.firstNonStickyColumnIndex ||\n newIndex >= this.columnOrder.length\n ) {\n return;\n }\n\n const targetColumnKey = this.columnOrder[newIndex];\n\n if (targetColumnKey === 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 this.moveColumnToTarget(columnKey, targetColumnKey, side);\n };\n\n moveColumnToDropTarget = (\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ): void => {\n const sourceColumnKey = this.draggedColumnKey;\n\n if (sourceColumnKey === null || sourceColumnKey === targetColumnKey) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumnKey, targetColumnKey, side);\n };\n\n moveColumnToTarget = (\n sourceColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n targetColumnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ): void => {\n const oldIndex = this.columnOrder.indexOf(sourceColumnKey);\n const newIndex = this.columnOrder.indexOf(targetColumnKey);\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, sourceColumnKey); // Insert at new position\n\n this.columnOrder = updated;\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n const thElement = this.args.thElements.get(sourceColumnKey);\n\n if (thElement === undefined) {\n return;\n }\n\n thElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n this.draggedColumnKey = null;\n\n const column = this.args.getColumnByKey(sourceColumnKey);\n\n assert('No column found with that key', column !== undefined);\n\n this.setColumnOrder({\n column,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumnKey),\n });\n });\n }\n };\n\n setColumnOrder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n const { onColumnReorder } = this.args;\n\n this.columnOrder = newOrder;\n\n onColumnReorder?.({ column, newOrder, insertedAt });\n };\n\n private _getColumnKey(column: HdsAdvancedTableNormalizedColumn): string {\n return column.key ?? guidFor(column);\n }\n\n <template>\n {{yield\n (hash\n orderedColumns=this.orderedColumns\n columnOrder=this.visibleColumnOrder\n draggedColumnKey=this.draggedColumnKey\n reorderHoveredColumnKey=this.reorderHoveredColumnKey\n firstColumnKey=this.firstColumnKey\n firstNonStickyColumnKey=this.firstNonStickyColumnKey\n lastColumnKey=this.lastColumnKey\n syncColumnOrder=this.syncColumnOrder\n moveColumnToDropTarget=this.moveColumnToDropTarget\n moveColumnToTarget=this.moveColumnToTarget\n moveColumnToTerminalPosition=this.moveColumnToTerminalPosition\n stepColumn=this.stepColumn\n setDraggedColumnKey=(fn (mut this.draggedColumnKey))\n setReorderHoveredColumnKey=(fn (mut this.reorderHoveredColumnKey))\n )\n }}\n </template>\n}\n"],"names":["HdsAdvancedTableColumnManagerOrder","Component","g","prototype","tracked","i","syncColumnOrder","modifier","_element","columns","columnOrder","columnKeys","map","column","_getColumnKey","nextOrder","_columnOrder","undefined","visibleSet","Set","hiddenKeys","filter","key","has","reordered","visibleIdx","hiddenIdx","length","includes","push","missingKeys","isSame","every","value","index","setColumnOrder","scheduleOnce","args","visibleColumnOrder","visibleKeys","orderedColumns","hasReorderableColumns","columnMap","Map","reduce","acc","get","firstColumnKey","firstColumn","firstNonStickyColumnIndex","hasStickyFirstColumn","firstNonStickyColumnKey","firstNonStickyColumn","lastColumnKey","lastColumn","moveColumnToTerminalPosition","columnKey","position","targetColumnKey","side","HdsAdvancedTableColumnReorderSideValues","Left","Right","moveColumnToTarget","stepColumn","step","oldIndex","indexOf","newIndex","moveColumnToDropTarget","sourceColumnKey","draggedColumnKey","updated","splice","adjustedIndex","requestAnimationFrame","thElement","thElements","scrollIntoView","behavior","block","inline","getColumnByKey","assert","newOrder","insertedAt","onColumnReorder","guidFor","setComponentTemplate","precompileTemplate","strictMode","scope","hash","fn"],"mappings":"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"}
@@ -16,7 +16,7 @@ import '../filter-bar/index.js';
16
16
  import '../application-state/index.js';
17
17
  import '../composite/index.js';
18
18
  import './column-manager/index.js';
19
- export { B as BORDER_WIDTH, f as DEFAULT_DENSITY, g as DEFAULT_VALIGN, h as DENSITIES, V as VALIGNMENTS, H as default } from '../../../index-BI5s7rxr.js';
19
+ export { B as BORDER_WIDTH, f as DEFAULT_DENSITY, g as DEFAULT_VALIGN, h as DENSITIES, V as VALIGNMENTS, H as default } from '../../../index-B9OqWZ9U.js';
20
20
  import './body.js';
21
21
  import './td.js';
22
22
  import '../../../helpers/hds-t.js';
@@ -5,7 +5,7 @@ import { tracked } from '@glimmer/tracking';
5
5
  import { focusable } from 'tabbable';
6
6
  import style from 'ember-style-modifier';
7
7
  import HdsAdvancedTableCellModifier from '../../../modifiers/hds-advanced-table-cell.js';
8
- import { focusTrap } from 'ember-focus-trap';
8
+ import focusTrap from 'ember-focus-trap/modifiers/focus-trap';
9
9
  import { hash } from '@ember/helper';
10
10
  import { HdsAdvancedTableHorizontalAlignmentValues } from './types.js';
11
11
  import hdsScrollIntoViewOnFocus from '../../../modifiers/hds-scroll-into-view-on-focus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport style from 'ember-style-modifier';\nimport hdsAdvancedTableCell from '../../../modifiers/hds-advanced-table-cell.ts';\nimport { focusTrap } from 'ember-focus-trap';\nimport { hash } from '@ember/helper';\n\nimport type { HdsAdvancedTableHorizontalAlignment } from './types.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\nimport hdsScrollIntoViewOnFocus from '../../../modifiers/hds-scroll-into-view-on-focus.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\n\nimport type { HdsCompositeSignature } from '../composite/index.gts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableTdSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n rowspan?: number;\n colspan?: number;\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableTd extends Component<HdsAdvancedTableTdSignature> {\n @tracked private _shouldTrapFocus = false;\n private _element!: HTMLDivElement;\n\n // rowspan and colspan have to return 'auto' if not defined because otherwise the style modifier sets grid-area: undefined on the cell, which breaks the grid styles\n get rowspan(): string {\n if (this.args.rowspan) {\n return `span ${this.args.rowspan}`;\n }\n return 'auto';\n }\n\n get colspan(): string | undefined {\n if (this.args.colspan) {\n return `span ${this.args.colspan}`;\n }\n return 'auto';\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::AdvancedTable::Td\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__td'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__td--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n @action onFocusTrapDeactivate(): void {\n this._shouldTrapFocus = false;\n onFocusTrapDeactivate(this._element);\n }\n\n @action enableFocusTrap(): void {\n this._shouldTrapFocus = true;\n }\n\n @action getInitialFocus(): FocusableElement | undefined {\n const cellFocusableElements = focusable(this._element);\n return cellFocusableElements[0];\n }\n\n @action setElement(element: HTMLDivElement): void {\n this._element = element;\n }\n\n <template>\n <div\n class={{this.classNames}}\n role=\"gridcell\"\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n {{style grid-row=this.rowspan grid-column=this.colspan}}\n {{hdsAdvancedTableCell\n handleEnableFocusTrap=this.enableFocusTrap\n shouldTrapFocus=this._shouldTrapFocus\n setCellElement=this.setElement\n }}\n {{focusTrap\n isActive=this._shouldTrapFocus\n focusTrapOptions=(hash\n onDeactivate=this.onFocusTrapDeactivate\n initialFocus=this.getInitialFocus\n clickOutsideDeactivates=true\n )\n }}\n {{@compositeItem disabled=@isCompositeItemDisabled}}\n {{hdsScrollIntoViewOnFocus options=(hash block=\"center\" inline=\"center\")}}\n ...attributes\n >\n {{yield}}\n </div>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTd","Component","g","prototype","tracked","i","_element","rowspan","args","colspan","align","assert","join","includes","classNames","classes","push","onFocusTrapDeactivate","_shouldTrapFocus","n","action","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","setComponentTemplate","precompileTemplate","strictMode","scope","style","hdsAdvancedTableCell","focusTrap","hash","hdsScrollIntoViewOnFocus"],"mappings":"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"}
1
+ {"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport style from 'ember-style-modifier';\nimport hdsAdvancedTableCell from '../../../modifiers/hds-advanced-table-cell.ts';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\nimport { hash } from '@ember/helper';\n\nimport type { HdsAdvancedTableHorizontalAlignment } from './types.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\nimport hdsScrollIntoViewOnFocus from '../../../modifiers/hds-scroll-into-view-on-focus.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\n\nimport type { HdsCompositeSignature } from '../composite/index.gts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableTdSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n rowspan?: number;\n colspan?: number;\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableTd extends Component<HdsAdvancedTableTdSignature> {\n @tracked private _shouldTrapFocus = false;\n private _element!: HTMLDivElement;\n\n // rowspan and colspan have to return 'auto' if not defined because otherwise the style modifier sets grid-area: undefined on the cell, which breaks the grid styles\n get rowspan(): string {\n if (this.args.rowspan) {\n return `span ${this.args.rowspan}`;\n }\n return 'auto';\n }\n\n get colspan(): string | undefined {\n if (this.args.colspan) {\n return `span ${this.args.colspan}`;\n }\n return 'auto';\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::AdvancedTable::Td\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__td'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__td--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n @action onFocusTrapDeactivate(): void {\n this._shouldTrapFocus = false;\n onFocusTrapDeactivate(this._element);\n }\n\n @action enableFocusTrap(): void {\n this._shouldTrapFocus = true;\n }\n\n @action getInitialFocus(): FocusableElement | undefined {\n const cellFocusableElements = focusable(this._element);\n return cellFocusableElements[0];\n }\n\n @action setElement(element: HTMLDivElement): void {\n this._element = element;\n }\n\n <template>\n <div\n class={{this.classNames}}\n role=\"gridcell\"\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n {{style grid-row=this.rowspan grid-column=this.colspan}}\n {{hdsAdvancedTableCell\n handleEnableFocusTrap=this.enableFocusTrap\n shouldTrapFocus=this._shouldTrapFocus\n setCellElement=this.setElement\n }}\n {{focusTrap\n isActive=this._shouldTrapFocus\n focusTrapOptions=(hash\n onDeactivate=this.onFocusTrapDeactivate\n initialFocus=this.getInitialFocus\n clickOutsideDeactivates=true\n )\n }}\n {{@compositeItem disabled=@isCompositeItemDisabled}}\n {{hdsScrollIntoViewOnFocus options=(hash block=\"center\" inline=\"center\")}}\n ...attributes\n >\n {{yield}}\n </div>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTd","Component","g","prototype","tracked","i","_element","rowspan","args","colspan","align","assert","join","includes","classNames","classes","push","onFocusTrapDeactivate","_shouldTrapFocus","n","action","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","setComponentTemplate","precompileTemplate","strictMode","scope","style","hdsAdvancedTableCell","focusTrap","hash","hdsScrollIntoViewOnFocus"],"mappings":"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"}
@@ -55,7 +55,7 @@ class HdsAdvancedTableThContextMenu extends Component {
55
55
  }
56
56
  get _reorderOptions() {
57
57
  const {
58
- isFirstColumn,
58
+ isFirstNonStickyColumn,
59
59
  isLastColumn
60
60
  } = this.args;
61
61
  const translatedMoveColumnLabel = this.hdsIntl.t('hds.advanced-table.th-context-menu.move-column', {
@@ -67,7 +67,7 @@ class HdsAdvancedTableThContextMenu extends Component {
67
67
  icon: 'move-horizontal',
68
68
  action: () => this._moveColumn()
69
69
  }];
70
- if (!isFirstColumn) {
70
+ if (!isFirstNonStickyColumn) {
71
71
  const translatedMoveColumnToStartLabel = this.hdsIntl.t('hds.advanced-table.th-context-menu.move-column-to-start', {
72
72
  default: 'Move column to start'
73
73
  });
@@ -119,11 +119,10 @@ class HdsAdvancedTableThContextMenu extends Component {
119
119
  if (hasResizableColumns) {
120
120
  allGroups = [...allGroups, this._resizeOptions];
121
121
  }
122
- if (hasReorderableColumns && isStickyColumn === undefined) {
122
+ if (hasReorderableColumns && isStickyColumn !== true) {
123
123
  allGroups = [...allGroups, this._reorderOptions];
124
124
  }
125
- // we don't allow pinning/unpinning of the sticky column if columns are reorderable
126
- if (isStickyColumn !== undefined && isFirstColumn && !hasReorderableColumns) {
125
+ if (isFirstColumn && isStickyColumn !== undefined) {
127
126
  allGroups = [...allGroups, this._stickyColumnOptions];
128
127
  }
129
128
  return allGroups.reduce((options, group, index) => {
@@ -1 +1 @@
1
- {"version":3,"file":"th-context-menu.js","sources":["../../../../src/components/hds/advanced-table/th-context-menu.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { scheduleOnce } from '@ember/runloop';\nimport { modifier } from 'ember-modifier';\nimport { concat, fn } from '@ember/helper';\nimport { gt, eq } from 'ember-truth-helpers';\nimport { on } from '@ember/modifier';\n\nimport HdsDropdown from '../dropdown/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type { HdsDropdownSignature } from '../dropdown/index.gts';\nimport type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.gts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.gts';\nimport type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.gts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type { HdsAdvancedTableNormalizedColumn } from './types.ts';\n\ninterface HdsAdvancedTableThContextMenuOption {\n key: string;\n icon?: HdsDropdownToggleIconSignature['Args']['icon'];\n label?: string;\n action?: (dropdownCloseCallback: () => void) => void;\n}\n\nexport interface HdsAdvancedTableThContextMenuSignature {\n Args: {\n column: HdsAdvancedTableNormalizedColumn;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n hasResizableColumns?: boolean;\n hasReorderableColumns?: boolean;\n isStickyColumn?: boolean;\n reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onFocusReorderHandle?: () => void;\n onMoveColumnToTerminalPosition?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n onPinFirstColumn?: () => void;\n onRestoreColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n @tracked private _toggleElement:\n | HdsDropdownToggleButtonSignature['Element']\n | null = null;\n\n get _resizeOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isLastColumn } = this.args;\n\n const translatedResetWidthLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.reset-width',\n { default: 'Reset column width' }\n );\n\n let resizeOptions: HdsAdvancedTableThContextMenuOption[] = [\n {\n key: 'reset-column-width',\n label: translatedResetWidthLabel,\n icon: 'rotate-ccw',\n action: this._resetColumnWidth.bind(this),\n },\n ];\n\n if (!isLastColumn) {\n const translatedResizeLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.resize',\n { default: 'Resize column' }\n );\n\n resizeOptions = [\n {\n key: 'resize-column',\n label: translatedResizeLabel,\n icon: 'resize-column',\n action: this._resizeColumn.bind(this),\n },\n ...resizeOptions,\n ];\n }\n\n return resizeOptions;\n }\n\n get _reorderOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isFirstColumn, isLastColumn } = this.args;\n\n const translatedMoveColumnLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column',\n { default: 'Move column' }\n );\n\n let reorderOptions: HdsAdvancedTableThContextMenuOption[] = [\n {\n key: 'reorder-column',\n label: translatedMoveColumnLabel,\n icon: 'move-horizontal',\n action: () => this._moveColumn(),\n },\n ];\n\n if (!isFirstColumn) {\n const translatedMoveColumnToStartLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column-to-start',\n { default: 'Move column to start' }\n );\n reorderOptions = [\n ...reorderOptions,\n {\n key: 'move-column-to-start',\n label: translatedMoveColumnToStartLabel,\n icon: 'start',\n action: (close) => this._moveColumnToPosition('start', close),\n },\n ];\n }\n\n if (!isLastColumn) {\n const translatedMoveColumnToEndLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column-to-end',\n { default: 'Move column to end' }\n );\n reorderOptions = [\n ...reorderOptions,\n {\n key: 'move-column-to-end',\n label: translatedMoveColumnToEndLabel,\n icon: 'end',\n action: (close) => this._moveColumnToPosition('end', close),\n },\n ];\n }\n\n return reorderOptions;\n }\n\n get _stickyColumnOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isStickyColumn } = this.args;\n\n const translatedPinLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.pin',\n { default: 'Pin column' }\n );\n const translatedUnpinLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.unpin',\n { default: 'Unpin column' }\n );\n\n return [\n {\n key: 'pin-first-column',\n label: isStickyColumn ? translatedUnpinLabel : translatedPinLabel,\n icon: isStickyColumn ? 'pin-off' : 'pin',\n action: this._pinFirstColumn.bind(this),\n },\n ];\n }\n\n get _options(): HdsAdvancedTableThContextMenuOption[] {\n const {\n hasReorderableColumns,\n hasResizableColumns,\n isFirstColumn,\n isStickyColumn,\n } = this.args;\n\n let allGroups: HdsAdvancedTableThContextMenuOption[][] = [];\n\n if (hasResizableColumns) {\n allGroups = [...allGroups, this._resizeOptions];\n }\n\n if (hasReorderableColumns && isStickyColumn === undefined) {\n allGroups = [...allGroups, this._reorderOptions];\n }\n\n // we don't allow pinning/unpinning of the sticky column if columns are reorderable\n if (\n isStickyColumn !== undefined &&\n isFirstColumn &&\n !hasReorderableColumns\n ) {\n allGroups = [...allGroups, this._stickyColumnOptions];\n }\n\n return allGroups.reduce<HdsAdvancedTableThContextMenuOption[]>(\n (options, group, index) => {\n // Add a separator before each group except the first\n if (index > 0) {\n return [...options, { key: 'separator' }, ...group];\n }\n return [...options, ...group];\n },\n []\n );\n }\n\n private _registerDropdownToggleElement = modifier(\n (element: HdsDropdownToggleButtonSignature['Element']) => {\n this._toggleElement = element;\n }\n );\n\n private _resizeColumn() {\n this.args.resizeHandleElement?.focus();\n }\n\n private _resetColumnWidth(dropdownCloseCallback: () => void): void {\n const { column, onColumnResize, onRestoreColumnWidth } = this.args;\n\n if (\n typeof onRestoreColumnWidth === 'function' &&\n column.key !== undefined\n ) {\n onRestoreColumnWidth(column.key);\n\n if (typeof onColumnResize === 'function') {\n onColumnResize(column.key, column.width);\n }\n\n dropdownCloseCallback();\n }\n }\n\n private _moveColumn() {\n const { onFocusReorderHandle } = this.args;\n\n if (typeof onFocusReorderHandle === 'function') {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('afterRender', this, onFocusReorderHandle);\n }\n }\n\n private _moveColumnToPosition(\n position: 'start' | 'end',\n dropdownCloseCallback?: () => void\n ): void {\n const { column, onMoveColumnToTerminalPosition } = this.args;\n\n onMoveColumnToTerminalPosition?.(column.key, position);\n\n requestAnimationFrame(() => {\n dropdownCloseCallback?.();\n\n this._toggleElement?.focus();\n });\n }\n\n private _pinFirstColumn(dropdownCloseCallback: () => void): void {\n const { onPinFirstColumn } = this.args;\n\n if (typeof onPinFirstColumn === 'function') {\n onPinFirstColumn();\n }\n\n dropdownCloseCallback();\n }\n\n <template>\n {{#if (gt this._options.length 0)}}\n <HdsDropdown\n class=\"hds-advanced-table__th-context-menu\"\n @enableCollisionDetection={{true}}\n ...attributes\n as |D|\n >\n <D.ToggleIcon\n @icon=\"more-vertical\"\n @text={{hdsT\n \"hds.components.advanced-table.th-context-menu.actions\"\n columnLabel=@column.label\n default=(concat \"Additional actions for \" @column.label)\n }}\n @hasChevron={{false}}\n @size=\"small\"\n {{this._registerDropdownToggleElement}}\n />\n\n {{#each this._options as |option|}}\n {{#if (eq option.key \"separator\")}}\n <D.Separator />\n {{else if option.action}}\n <D.Interactive\n @icon={{option.icon}}\n data-test-context-option-key={{option.key}}\n {{on \"click\" (fn option.action D.close)}}\n >\n {{option.label}}\n </D.Interactive>\n {{/if}}\n {{/each}}\n </HdsDropdown>\n {{/if}}\n </template>\n}\n"],"names":["HdsAdvancedTableThContextMenu","Component","g","prototype","service","i","tracked","_resizeOptions","isLastColumn","args","translatedResetWidthLabel","hdsIntl","t","default","resizeOptions","key","label","icon","action","_resetColumnWidth","bind","translatedResizeLabel","_resizeColumn","_reorderOptions","isFirstColumn","translatedMoveColumnLabel","reorderOptions","_moveColumn","translatedMoveColumnToStartLabel","close","_moveColumnToPosition","translatedMoveColumnToEndLabel","_stickyColumnOptions","isStickyColumn","translatedPinLabel","translatedUnpinLabel","_pinFirstColumn","_options","hasReorderableColumns","hasResizableColumns","allGroups","undefined","reduce","options","group","index","_registerDropdownToggleElement","modifier","element","_toggleElement","resizeHandleElement","focus","dropdownCloseCallback","column","onColumnResize","onRestoreColumnWidth","width","onFocusReorderHandle","scheduleOnce","position","onMoveColumnToTerminalPosition","requestAnimationFrame","onPinFirstColumn","setComponentTemplate","precompileTemplate","strictMode","scope","gt","HdsDropdown","hdsT","concat","eq","on","fn"],"mappings":";;;;;;;;;;;;;;AAAA;;;AAGC;AAsDc,MAAMA,sCAAsCC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAClEC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,gBAAA,EAAA,CAEAG,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAEU,IAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,eAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,EAAA,MAAA;EAEX,IAAIE,iBAAwD;IAC1D,MAAM;AAAEC,MAAAA;KAAc,GAAG,IAAI,CAACC,IAAI;IAElC,MAAMC,4BAA4B,IAAI,CAACC,OAAO,CAACC,CAAC,CAC9C,gDAAA,EACA;AAAEC,MAAAA,OAAA,EAAS;AAAqB,KAAA,CAAA;IAGlC,IAAIC,aAAe,GAAwC,CACzD;AACEC,MAAAA,GAAA,EAAK,oBAAA;AACLC,MAAAA,KAAA,EAAON,yBAAA;AACPO,MAAAA,IAAA,EAAM,YAAA;AACNC,MAAAA,MAAA,EAAQ,IAAI,CAACC,iBAAiB,CAACC,IAAI,CAAC,IAAI;AAC1C,KAAA,CACD;IAED,IAAI,CAACZ,YAAA,EAAc;MACjB,MAAMa,wBAAwB,IAAI,CAACV,OAAO,CAACC,CAAC,CAC1C,2CAAA,EACA;AAAEC,QAAAA,OAAA,EAAS;AAAgB,OAAA,CAAA;AAG7BC,MAAAA,aAAA,GAAgB,CACd;AACEC,QAAAA,GAAA,EAAK,eAAA;AACLC,QAAAA,KAAA,EAAOK,qBAAA;AACPJ,QAAAA,IAAA,EAAM,eAAA;AACNC,QAAAA,MAAA,EAAQ,IAAI,CAACI,aAAa,CAACF,IAAI,CAAC,IAAI;OACtC,EACG,GAAAN,aAAA,CACJ;AACH,IAAA;AAEA,IAAA,OAAOA,aAAA;AACT,EAAA;EAEA,IAAIS,kBAAyD;IAC3D,MAAM;MAAEC,aAAa;AAAEhB,MAAAA;KAAc,GAAG,IAAI,CAACC,IAAI;IAEjD,MAAMgB,4BAA4B,IAAI,CAACd,OAAO,CAACC,CAAC,CAC9C,gDAAA,EACA;AAAEC,MAAAA,OAAA,EAAS;AAAc,KAAA,CAAA;IAG3B,IAAIa,cAAgB,GAAwC,CAC1D;AACEX,MAAAA,GAAA,EAAK,gBAAA;AACLC,MAAAA,KAAA,EAAOS,yBAAA;AACPR,MAAAA,IAAA,EAAM,iBAAA;AACNC,MAAAA,MAAA,EAAQA,MAAM,IAAI,CAACS,WAAW;AAChC,KAAA,CACD;IAED,IAAI,CAACH,aAAA,EAAe;MAClB,MAAMI,mCAAmC,IAAI,CAACjB,OAAO,CAACC,CAAC,CACrD,yDAAA,EACA;AAAEC,QAAAA,OAAA,EAAS;AAAuB,OAAA,CAAA;AAEpCa,MAAAA,cAAA,GAAiB,CACZ,GAAAA,cAAA,EACH;AACEX,QAAAA,GAAA,EAAK,sBAAA;AACLC,QAAAA,KAAA,EAAOY,gCAAA;AACPX,QAAAA,IAAA,EAAM,OAAA;QACNC,MAAA,EAASW,KAAA,IAAU,IAAI,CAACC,qBAAqB,CAAC,OAAA,EAASD,KAAA;AACzD,OAAA,CACD;AACH,IAAA;IAEA,IAAI,CAACrB,YAAA,EAAc;MACjB,MAAMuB,iCAAiC,IAAI,CAACpB,OAAO,CAACC,CAAC,CACnD,uDAAA,EACA;AAAEC,QAAAA,OAAA,EAAS;AAAqB,OAAA,CAAA;AAElCa,MAAAA,cAAA,GAAiB,CACZ,GAAAA,cAAA,EACH;AACEX,QAAAA,GAAA,EAAK,oBAAA;AACLC,QAAAA,KAAA,EAAOe,8BAAA;AACPd,QAAAA,IAAA,EAAM,KAAA;QACNC,MAAA,EAASW,KAAA,IAAU,IAAI,CAACC,qBAAqB,CAAC,KAAA,EAAOD,KAAA;AACvD,OAAA,CACD;AACH,IAAA;AAEA,IAAA,OAAOH,cAAA;AACT,EAAA;EAEA,IAAIM,uBAA8D;IAChE,MAAM;AAAEC,MAAAA;KAAgB,GAAG,IAAI,CAACxB,IAAI;IAEpC,MAAMyB,qBAAqB,IAAI,CAACvB,OAAO,CAACC,CAAC,CACvC,wCAAA,EACA;AAAEC,MAAAA,OAAA,EAAS;AAAa,KAAA,CAAA;IAE1B,MAAMsB,uBAAuB,IAAI,CAACxB,OAAO,CAACC,CAAC,CACzC,0CAAA,EACA;AAAEC,MAAAA,OAAA,EAAS;AAAe,KAAA,CAAA;AAG5B,IAAA,OAAO,CACL;AACEE,MAAAA,GAAA,EAAK,kBAAA;AACLC,MAAAA,KAAA,EAAOiB,iBAAiBE,oBAAA,GAAuBD,kBAAA;AAC/CjB,MAAAA,IAAA,EAAMgB,iBAAiB,SAAA,GAAY,KAAA;AACnCf,MAAAA,MAAA,EAAQ,IAAI,CAACkB,eAAe,CAAChB,IAAI,CAAC,IAAI;AACxC,KAAA,CACD;AACH,EAAA;EAEA,IAAIiB,WAAkD;IACpD,MAAM;MACJC,qBAAqB;MACrBC,mBAAmB;MACnBf,aAAa;AACbS,MAAAA;KACD,GAAG,IAAI,CAACxB,IAAI;IAEb,IAAI+B,YAAqD,EAAE;AAE3D,IAAA,IAAID,mBAAA,EAAqB;MACvBC,SAAA,GAAY,CAAI,GAAAA,SAAA,EAAW,IAAI,CAACjC,cAAc,CAAC;AACjD,IAAA;AAEA,IAAA,IAAI+B,qBAAA,IAAyBL,mBAAmBQ,SAAA,EAAW;MACzDD,SAAA,GAAY,CAAI,GAAAA,SAAA,EAAW,IAAI,CAACjB,eAAe,CAAC;AAClD,IAAA;AAEA;IACA,IACEU,cAAA,KAAmBQ,SAAA,IACnBjB,aAAA,IACA,CAACc,qBAAA,EACD;MACAE,SAAA,GAAY,CAAI,GAAAA,SAAA,EAAW,IAAI,CAACR,oBAAoB,CAAC;AACvD,IAAA;IAEA,OAAOQ,UAAUE,MAAM,CACrB,CAACC,SAASC,KAAA,EAAOC,KAAA,KAAA;AACf;MACA,IAAIA,QAAQ,CAAA,EAAG;QACb,OAAO,CAAI,GAAAF,OAAA,EAAS;AAAE5B,UAAAA,GAAA,EAAK;SAAY,EAAM,GAAA6B,KAAA,CAAM;AACrD,MAAA;AACA,MAAA,OAAO,CAAI,GAAAD,OAAA,EAAY,GAAAC,KAAA,CAAM;IAC/B,CAAA,EACA,EAAE,CAAA;AAEN,EAAA;AAEQE,EAAAA,8BAAA,GAAiCC,QAAA,CACtCC,OAA0C,IAAA;IACzC,IAAI,CAACC,cAAc,GAAGD,OAAA;AACxB,EAAA,CAAA,CAAA;AAGM1B,EAAAA,aAAAA,GAAgB;AACtB,IAAA,IAAI,CAACb,IAAI,CAACyC,mBAAmB,EAAEC,KAAA,EAAA;AACjC,EAAA;EAEQhC,iBAAAA,CAAkBiC,qBAAiC,EAAQ;IACjE,MAAM;MAAEC,MAAM;MAAEC,cAAc;AAAEC,MAAAA;KAAsB,GAAG,IAAI,CAAC9C,IAAI;IAElE,IACE,OAAO8C,oBAAA,KAAyB,UAAA,IAChCF,MAAA,CAAOtC,GAAG,KAAK0B,SAAA,EACf;AACAc,MAAAA,oBAAA,CAAqBF,OAAOtC,GAAG,CAAA;AAE/B,MAAA,IAAI,OAAOuC,mBAAmB,UAAA,EAAY;QACxCA,cAAA,CAAeD,MAAA,CAAOtC,GAAG,EAAEsC,MAAA,CAAOG,KAAK,CAAA;AACzC,MAAA;AAEAJ,MAAAA,qBAAA,EAAA;AACF,IAAA;AACF,EAAA;AAEQzB,EAAAA,WAAAA,GAAc;IACpB,MAAM;AAAE8B,MAAAA;KAAsB,GAAG,IAAI,CAAChD,IAAI;AAE1C,IAAA,IAAI,OAAOgD,yBAAyB,UAAA,EAAY;AAC9C;AACAC,MAAAA,YAAA,CAAa,aAAA,EAAe,IAAI,EAAED,oBAAA,CAAA;AACpC,IAAA;AACF,EAAA;AAEQ3B,EAAAA,qBAAAA,CACN6B,QAAyB,EACzBP,qBAAkC,EAC5B;IACN,MAAM;MAAEC,MAAM;AAAEO,MAAAA;KAAgC,GAAG,IAAI,CAACnD,IAAI;AAE5DmD,IAAAA,8BAAA,GAAiCP,MAAA,CAAOtC,GAAG,EAAE4C,QAAA,CAAA;AAE7CE,IAAAA,qBAAA,CAAsB,MAAA;AACpBT,MAAAA,qBAAA,IAAA;AAEA,MAAA,IAAI,CAACH,cAAc,EAAEE,KAAA,EAAA;AACvB,IAAA,CAAA,CAAA;AACF,EAAA;EAEQf,eAAAA,CAAgBgB,qBAAiC,EAAQ;IAC/D,MAAM;AAAEU,MAAAA;KAAkB,GAAG,IAAI,CAACrD,IAAI;AAEtC,IAAA,IAAI,OAAOqD,qBAAqB,UAAA,EAAY;AAC1CA,MAAAA,gBAAA,EAAA;AACF,IAAA;AAEAV,IAAAA,qBAAA,EAAA;AACF,EAAA;AAEA,EAAA;IAAAW,oBAAA,CAAAC,kBAAA,CAAA,8zBAAA,EAmCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,WAAA;cAAAC,UAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th-context-menu.js","sources":["../../../../src/components/hds/advanced-table/th-context-menu.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { scheduleOnce } from '@ember/runloop';\nimport { modifier } from 'ember-modifier';\nimport { concat, fn } from '@ember/helper';\nimport { gt, eq } from 'ember-truth-helpers';\nimport { on } from '@ember/modifier';\n\nimport HdsDropdown from '../dropdown/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type { HdsDropdownSignature } from '../dropdown/index.gts';\nimport type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.gts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.gts';\nimport type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.gts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type { HdsAdvancedTableNormalizedColumn } from './types.ts';\n\ninterface HdsAdvancedTableThContextMenuOption {\n key: string;\n icon?: HdsDropdownToggleIconSignature['Args']['icon'];\n label?: string;\n action?: (dropdownCloseCallback: () => void) => void;\n}\n\nexport interface HdsAdvancedTableThContextMenuSignature {\n Args: {\n column: HdsAdvancedTableNormalizedColumn;\n isFirstColumn: boolean;\n isFirstNonStickyColumn: boolean;\n isLastColumn: boolean;\n hasResizableColumns?: boolean;\n hasReorderableColumns?: boolean;\n isStickyColumn?: boolean;\n reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onFocusReorderHandle?: () => void;\n onMoveColumnToTerminalPosition?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n onPinFirstColumn?: () => void;\n onRestoreColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n @tracked private _toggleElement:\n | HdsDropdownToggleButtonSignature['Element']\n | null = null;\n\n get _resizeOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isLastColumn } = this.args;\n\n const translatedResetWidthLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.reset-width',\n { default: 'Reset column width' }\n );\n\n let resizeOptions: HdsAdvancedTableThContextMenuOption[] = [\n {\n key: 'reset-column-width',\n label: translatedResetWidthLabel,\n icon: 'rotate-ccw',\n action: this._resetColumnWidth.bind(this),\n },\n ];\n\n if (!isLastColumn) {\n const translatedResizeLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.resize',\n { default: 'Resize column' }\n );\n\n resizeOptions = [\n {\n key: 'resize-column',\n label: translatedResizeLabel,\n icon: 'resize-column',\n action: this._resizeColumn.bind(this),\n },\n ...resizeOptions,\n ];\n }\n\n return resizeOptions;\n }\n\n get _reorderOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isFirstNonStickyColumn, isLastColumn } = this.args;\n\n const translatedMoveColumnLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column',\n { default: 'Move column' }\n );\n\n let reorderOptions: HdsAdvancedTableThContextMenuOption[] = [\n {\n key: 'reorder-column',\n label: translatedMoveColumnLabel,\n icon: 'move-horizontal',\n action: () => this._moveColumn(),\n },\n ];\n\n if (!isFirstNonStickyColumn) {\n const translatedMoveColumnToStartLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column-to-start',\n { default: 'Move column to start' }\n );\n reorderOptions = [\n ...reorderOptions,\n {\n key: 'move-column-to-start',\n label: translatedMoveColumnToStartLabel,\n icon: 'start',\n action: (close) => this._moveColumnToPosition('start', close),\n },\n ];\n }\n\n if (!isLastColumn) {\n const translatedMoveColumnToEndLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.move-column-to-end',\n { default: 'Move column to end' }\n );\n reorderOptions = [\n ...reorderOptions,\n {\n key: 'move-column-to-end',\n label: translatedMoveColumnToEndLabel,\n icon: 'end',\n action: (close) => this._moveColumnToPosition('end', close),\n },\n ];\n }\n\n return reorderOptions;\n }\n\n get _stickyColumnOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { isStickyColumn } = this.args;\n\n const translatedPinLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.pin',\n { default: 'Pin column' }\n );\n const translatedUnpinLabel = this.hdsIntl.t(\n 'hds.advanced-table.th-context-menu.unpin',\n { default: 'Unpin column' }\n );\n\n return [\n {\n key: 'pin-first-column',\n label: isStickyColumn ? translatedUnpinLabel : translatedPinLabel,\n icon: isStickyColumn ? 'pin-off' : 'pin',\n action: this._pinFirstColumn.bind(this),\n },\n ];\n }\n\n get _options(): HdsAdvancedTableThContextMenuOption[] {\n const {\n hasReorderableColumns,\n hasResizableColumns,\n isFirstColumn,\n isStickyColumn,\n } = this.args;\n\n let allGroups: HdsAdvancedTableThContextMenuOption[][] = [];\n\n if (hasResizableColumns) {\n allGroups = [...allGroups, this._resizeOptions];\n }\n\n if (hasReorderableColumns && isStickyColumn !== true) {\n allGroups = [...allGroups, this._reorderOptions];\n }\n\n if (isFirstColumn && isStickyColumn !== undefined) {\n allGroups = [...allGroups, this._stickyColumnOptions];\n }\n\n return allGroups.reduce<HdsAdvancedTableThContextMenuOption[]>(\n (options, group, index) => {\n // Add a separator before each group except the first\n if (index > 0) {\n return [...options, { key: 'separator' }, ...group];\n }\n return [...options, ...group];\n },\n []\n );\n }\n\n private _registerDropdownToggleElement = modifier(\n (element: HdsDropdownToggleButtonSignature['Element']) => {\n this._toggleElement = element;\n }\n );\n\n private _resizeColumn() {\n this.args.resizeHandleElement?.focus();\n }\n\n private _resetColumnWidth(dropdownCloseCallback: () => void): void {\n const { column, onColumnResize, onRestoreColumnWidth } = this.args;\n\n if (\n typeof onRestoreColumnWidth === 'function' &&\n column.key !== undefined\n ) {\n onRestoreColumnWidth(column.key);\n\n if (typeof onColumnResize === 'function') {\n onColumnResize(column.key, column.width);\n }\n\n dropdownCloseCallback();\n }\n }\n\n private _moveColumn() {\n const { onFocusReorderHandle } = this.args;\n\n if (typeof onFocusReorderHandle === 'function') {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('afterRender', this, onFocusReorderHandle);\n }\n }\n\n private _moveColumnToPosition(\n position: 'start' | 'end',\n dropdownCloseCallback?: () => void\n ): void {\n const { column, onMoveColumnToTerminalPosition } = this.args;\n\n onMoveColumnToTerminalPosition?.(column.key, position);\n\n requestAnimationFrame(() => {\n dropdownCloseCallback?.();\n\n this._toggleElement?.focus();\n });\n }\n\n private _pinFirstColumn(dropdownCloseCallback: () => void): void {\n const { onPinFirstColumn } = this.args;\n\n if (typeof onPinFirstColumn === 'function') {\n onPinFirstColumn();\n }\n\n dropdownCloseCallback();\n }\n\n <template>\n {{#if (gt this._options.length 0)}}\n <HdsDropdown\n class=\"hds-advanced-table__th-context-menu\"\n @enableCollisionDetection={{true}}\n ...attributes\n as |D|\n >\n <D.ToggleIcon\n @icon=\"more-vertical\"\n @text={{hdsT\n \"hds.components.advanced-table.th-context-menu.actions\"\n columnLabel=@column.label\n default=(concat \"Additional actions for \" @column.label)\n }}\n @hasChevron={{false}}\n @size=\"small\"\n {{this._registerDropdownToggleElement}}\n />\n\n {{#each this._options as |option|}}\n {{#if (eq option.key \"separator\")}}\n <D.Separator />\n {{else if option.action}}\n <D.Interactive\n @icon={{option.icon}}\n data-test-context-option-key={{option.key}}\n {{on \"click\" (fn option.action D.close)}}\n >\n {{option.label}}\n </D.Interactive>\n {{/if}}\n {{/each}}\n </HdsDropdown>\n {{/if}}\n </template>\n}\n"],"names":["HdsAdvancedTableThContextMenu","Component","g","prototype","service","i","tracked","_resizeOptions","isLastColumn","args","translatedResetWidthLabel","hdsIntl","t","default","resizeOptions","key","label","icon","action","_resetColumnWidth","bind","translatedResizeLabel","_resizeColumn","_reorderOptions","isFirstNonStickyColumn","translatedMoveColumnLabel","reorderOptions","_moveColumn","translatedMoveColumnToStartLabel","close","_moveColumnToPosition","translatedMoveColumnToEndLabel","_stickyColumnOptions","isStickyColumn","translatedPinLabel","translatedUnpinLabel","_pinFirstColumn","_options","hasReorderableColumns","hasResizableColumns","isFirstColumn","allGroups","undefined","reduce","options","group","index","_registerDropdownToggleElement","modifier","element","_toggleElement","resizeHandleElement","focus","dropdownCloseCallback","column","onColumnResize","onRestoreColumnWidth","width","onFocusReorderHandle","scheduleOnce","position","onMoveColumnToTerminalPosition","requestAnimationFrame","onPinFirstColumn","setComponentTemplate","precompileTemplate","strictMode","scope","gt","HdsDropdown","hdsT","concat","eq","on","fn"],"mappings":"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"}
@@ -4,7 +4,7 @@ import '@ember/object';
4
4
  import 'ember-modifier';
5
5
  import '@ember/modifier';
6
6
  import 'ember-style-modifier';
7
- export { e as default } from '../../../index-BI5s7rxr.js';
7
+ export { e as default } from '../../../index-B9OqWZ9U.js';
8
8
  import './utils.js';
9
9
  import './types.js';
10
10
  import '@ember/template-compilation';
@@ -6,7 +6,7 @@ import '@ember/modifier';
6
6
  import 'ember-style-modifier';
7
7
  import '@ember/helper';
8
8
  import './utils.js';
9
- export { d as default } from '../../../index-BI5s7rxr.js';
9
+ export { d as default } from '../../../index-B9OqWZ9U.js';
10
10
  import './column-manager/width.js';
11
11
  import '../../../helpers/hds-t.js';
12
12
  import '@ember/template-compilation';
@@ -6,7 +6,7 @@ import 'ember-modifier';
6
6
  import '@ember/service';
7
7
  import '@ember/modifier';
8
8
  import './types.js';
9
- export { b as default } from '../../../index-BI5s7rxr.js';
9
+ export { b as default } from '../../../index-B9OqWZ9U.js';
10
10
  import '../form/checkbox/base.js';
11
11
  import './th-button-sort.js';
12
12
  import '@ember/template-compilation';
@@ -10,7 +10,7 @@ import 'ember-style-modifier';
10
10
  import 'ember-truth-helpers';
11
11
  import '../../../modifiers/hds-scroll-into-view-on-focus.js';
12
12
  import '../../../modifiers/hds-advanced-table-cell.js';
13
- import 'ember-focus-trap';
13
+ import 'ember-focus-trap/modifiers/focus-trap';
14
14
  import '@ember/helper';
15
15
  import '../layout/flex/index.js';
16
16
  import './th-button-expand.js';
@@ -18,7 +18,7 @@ import './th-button-sort.js';
18
18
  import './th-button-tooltip.js';
19
19
  import './th-context-menu.js';
20
20
  import './th-reorder-handle.js';
21
- export { A as ALIGNMENTS, D as DEFAULT_ALIGN, a as default } from '../../../index-BI5s7rxr.js';
21
+ export { A as ALIGNMENTS, D as DEFAULT_ALIGN, a as default } from '../../../index-B9OqWZ9U.js';
22
22
  import '../../../modifiers/hds-advanced-table-cell/dom-management.js';
23
23
  import './types.js';
24
24
  import '@ember/template-compilation';
@@ -2,7 +2,7 @@ import '@glimmer/component';
2
2
  import '@ember/debug';
3
3
  import '@ember/helper';
4
4
  import 'ember-truth-helpers';
5
- export { c as default } from '../../../index-BI5s7rxr.js';
5
+ export { c as default } from '../../../index-B9OqWZ9U.js';
6
6
  import '@ember/template-compilation';
7
7
  import '@ember/component';
8
8
  //# sourceMappingURL=tr.js.map
@@ -5,7 +5,7 @@ import { registerDestructor } from '@ember/destroyable';
5
5
  import { hash } from '@ember/helper';
6
6
  import { not, and } from 'ember-truth-helpers';
7
7
  import { NavigationNarrator } from 'ember-a11y-refocus';
8
- import { focusTrap } from 'ember-focus-trap';
8
+ import focusTrap from 'ember-focus-trap/modifiers/focus-trap';
9
9
  import { hdsBreakpoints } from '../../../utils/hds-breakpoints.js';
10
10
  import HdsAppHeaderMenuButton from './menu-button.js';
11
11
  import { precompileTemplate } from '@ember/template-compilation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/app-header/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { and, not } from 'ember-truth-helpers';\nimport { NavigationNarrator } from 'ember-a11y-refocus';\nimport { focusTrap } from 'ember-focus-trap';\n\nimport type Owner from '@ember/owner';\nimport type { NavigationNarratorSignature } from 'ember-a11y-refocus/components/navigation-narrator';\n\nimport { hdsBreakpoints } from '../../../utils/hds-breakpoints.ts';\nimport HdsAppHeaderMenuButton from './menu-button.gts';\n\nexport interface HdsAppHeaderSignature {\n Args: {\n breakpoint?: string;\n hasA11yRefocus?: boolean;\n a11yRefocusSkipTo?: string;\n a11yRefocusSkipText?: string;\n a11yRefocusNavigationText?: string;\n a11yRefocusRouteChangeValidator?: NavigationNarratorSignature['Args']['routeChangeValidator'];\n a11yRefocusExcludeAllQueryParams?: boolean;\n };\n Blocks: {\n logo?: [\n {\n close: () => void;\n },\n ];\n globalActions?: [\n {\n close: () => void;\n },\n ];\n utilityActions?: [\n {\n close: () => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAppHeader extends Component<HdsAppHeaderSignature> {\n @tracked private _isOpen = false;\n @tracked private _isDesktop = true;\n @tracked private _hasOverflowContent = false;\n private _desktopMQ: MediaQueryList;\n hasA11yRefocus = this.args.hasA11yRefocus ?? true;\n a11yRefocusSkipTo = '#' + (this.args.a11yRefocusSkipTo ?? 'hds-main');\n\n // Generates a unique ID for the Menu Content\n private _menuContentId = 'hds-menu-content-' + guidFor(this);\n\n // we use the `md` breakpoint for `desktop` viewports, but consumers can override its value\n private _desktopMQVal = this.args.breakpoint ?? hdsBreakpoints['md'].px;\n\n constructor(owner: Owner, args: Record<string, never>) {\n super(owner, args);\n this._desktopMQ = window.matchMedia(`(min-width: ${this._desktopMQVal})`);\n this.addEventListeners();\n registerDestructor(this, (): void => {\n this.removeEventListeners();\n });\n }\n\n addEventListeners(): void {\n document.addEventListener('keydown', this.escapePress, true);\n this._desktopMQ.addEventListener(\n 'change',\n\n this.updateDesktopVariable,\n true\n );\n\n // set initial state based on viewport using a \"synthetic\" event\n const syntheticEvent = new MediaQueryListEvent('change', {\n matches: this._desktopMQ.matches,\n media: this._desktopMQ.media,\n });\n this.updateDesktopVariable(syntheticEvent);\n }\n\n removeEventListeners(): void {\n document.removeEventListener('keydown', this.escapePress, true);\n this._desktopMQ.removeEventListener(\n 'change',\n\n this.updateDesktopVariable,\n true\n );\n }\n\n // In mobile view when the menu is open, trap focus within the AppHeader\n get shouldTrapFocus(): boolean {\n return !this._isDesktop && this._isOpen;\n }\n\n get classNames(): string {\n const classes = ['hds-app-header'];\n\n if (this._isDesktop) {\n classes.push('hds-app-header--is-desktop');\n } else {\n classes.push('hds-app-header--is-mobile');\n\n // open and closed menu states are only relevant on mobile\n if (this._isOpen) {\n classes.push('hds-app-header--menu-is-open');\n } else {\n classes.push('hds-app-header--menu-is-closed');\n }\n }\n\n return classes.join(' ');\n }\n\n escapePress = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this._isOpen && !this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n onClickToggle = (): void => {\n this._isOpen = !this._isOpen;\n };\n\n close = (): void => {\n if (this._isOpen && !this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n updateDesktopVariable = (event: MediaQueryListEvent): void => {\n this._isDesktop = event.matches;\n\n // Close the menu when switching to desktop view\n // (prevents menu from being open when resizing which causes Skip button to not render)\n if (this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n <template>\n <div\n class={{this.classNames}}\n {{focusTrap isActive=this.shouldTrapFocus}}\n ...attributes\n >\n {{#if (and this.hasA11yRefocus (not this._isOpen))}}\n <NavigationNarrator\n @routeChangeValidator={{@a11yRefocusRouteChangeValidator}}\n @skipTo={{this.a11yRefocusSkipTo}}\n @skipText={{@a11yRefocusSkipText}}\n @navigationText={{@a11yRefocusNavigationText}}\n @excludeAllQueryParams={{@a11yRefocusExcludeAllQueryParams}}\n />\n {{/if}}\n\n {{yield (hash close=this.close) to=\"logo\"}}\n\n {{#if (not this._isDesktop)}}\n <HdsAppHeaderMenuButton\n @onClickToggle={{this.onClickToggle}}\n @isOpen={{this._isOpen}}\n @menuContentId={{this._menuContentId}}\n />\n {{/if}}\n\n <div class=\"hds-app-header__actions\" id={{this._menuContentId}}>\n <div class=\"hds-app-header__global-actions\">\n {{yield (hash close=this.close) to=\"globalActions\"}}\n </div>\n\n <div class=\"hds-app-header__utility-actions\">\n {{yield (hash close=this.close) to=\"utilityActions\"}}\n </div>\n </div>\n </div>\n </template>\n}\n"],"names":["HdsAppHeader","Component","g","prototype","tracked","i","_desktopMQ","hasA11yRefocus","args","a11yRefocusSkipTo","_menuContentId","guidFor","_desktopMQVal","breakpoint","hdsBreakpoints","px","constructor","owner","window","matchMedia","addEventListeners","registerDestructor","removeEventListeners","document","addEventListener","escapePress","updateDesktopVariable","syntheticEvent","MediaQueryListEvent","matches","media","removeEventListener","shouldTrapFocus","_isDesktop","_isOpen","classNames","classes","push","join","event","key","onClickToggle","close","setComponentTemplate","precompileTemplate","strictMode","scope","focusTrap","and","not","NavigationNarrator","hash","HdsAppHeaderMenuButton"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/app-header/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { and, not } from 'ember-truth-helpers';\nimport { NavigationNarrator } from 'ember-a11y-refocus';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\n\nimport type Owner from '@ember/owner';\nimport type { NavigationNarratorSignature } from 'ember-a11y-refocus/components/navigation-narrator';\n\nimport { hdsBreakpoints } from '../../../utils/hds-breakpoints.ts';\nimport HdsAppHeaderMenuButton from './menu-button.gts';\n\nexport interface HdsAppHeaderSignature {\n Args: {\n breakpoint?: string;\n hasA11yRefocus?: boolean;\n a11yRefocusSkipTo?: string;\n a11yRefocusSkipText?: string;\n a11yRefocusNavigationText?: string;\n a11yRefocusRouteChangeValidator?: NavigationNarratorSignature['Args']['routeChangeValidator'];\n a11yRefocusExcludeAllQueryParams?: boolean;\n };\n Blocks: {\n logo?: [\n {\n close: () => void;\n },\n ];\n globalActions?: [\n {\n close: () => void;\n },\n ];\n utilityActions?: [\n {\n close: () => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAppHeader extends Component<HdsAppHeaderSignature> {\n @tracked private _isOpen = false;\n @tracked private _isDesktop = true;\n @tracked private _hasOverflowContent = false;\n private _desktopMQ: MediaQueryList;\n hasA11yRefocus = this.args.hasA11yRefocus ?? true;\n a11yRefocusSkipTo = '#' + (this.args.a11yRefocusSkipTo ?? 'hds-main');\n\n // Generates a unique ID for the Menu Content\n private _menuContentId = 'hds-menu-content-' + guidFor(this);\n\n // we use the `md` breakpoint for `desktop` viewports, but consumers can override its value\n private _desktopMQVal = this.args.breakpoint ?? hdsBreakpoints['md'].px;\n\n constructor(owner: Owner, args: Record<string, never>) {\n super(owner, args);\n this._desktopMQ = window.matchMedia(`(min-width: ${this._desktopMQVal})`);\n this.addEventListeners();\n registerDestructor(this, (): void => {\n this.removeEventListeners();\n });\n }\n\n addEventListeners(): void {\n document.addEventListener('keydown', this.escapePress, true);\n this._desktopMQ.addEventListener(\n 'change',\n\n this.updateDesktopVariable,\n true\n );\n\n // set initial state based on viewport using a \"synthetic\" event\n const syntheticEvent = new MediaQueryListEvent('change', {\n matches: this._desktopMQ.matches,\n media: this._desktopMQ.media,\n });\n this.updateDesktopVariable(syntheticEvent);\n }\n\n removeEventListeners(): void {\n document.removeEventListener('keydown', this.escapePress, true);\n this._desktopMQ.removeEventListener(\n 'change',\n\n this.updateDesktopVariable,\n true\n );\n }\n\n // In mobile view when the menu is open, trap focus within the AppHeader\n get shouldTrapFocus(): boolean {\n return !this._isDesktop && this._isOpen;\n }\n\n get classNames(): string {\n const classes = ['hds-app-header'];\n\n if (this._isDesktop) {\n classes.push('hds-app-header--is-desktop');\n } else {\n classes.push('hds-app-header--is-mobile');\n\n // open and closed menu states are only relevant on mobile\n if (this._isOpen) {\n classes.push('hds-app-header--menu-is-open');\n } else {\n classes.push('hds-app-header--menu-is-closed');\n }\n }\n\n return classes.join(' ');\n }\n\n escapePress = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this._isOpen && !this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n onClickToggle = (): void => {\n this._isOpen = !this._isOpen;\n };\n\n close = (): void => {\n if (this._isOpen && !this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n updateDesktopVariable = (event: MediaQueryListEvent): void => {\n this._isDesktop = event.matches;\n\n // Close the menu when switching to desktop view\n // (prevents menu from being open when resizing which causes Skip button to not render)\n if (this._isDesktop) {\n this._isOpen = false;\n }\n };\n\n <template>\n <div\n class={{this.classNames}}\n {{focusTrap isActive=this.shouldTrapFocus}}\n ...attributes\n >\n {{#if (and this.hasA11yRefocus (not this._isOpen))}}\n <NavigationNarrator\n @routeChangeValidator={{@a11yRefocusRouteChangeValidator}}\n @skipTo={{this.a11yRefocusSkipTo}}\n @skipText={{@a11yRefocusSkipText}}\n @navigationText={{@a11yRefocusNavigationText}}\n @excludeAllQueryParams={{@a11yRefocusExcludeAllQueryParams}}\n />\n {{/if}}\n\n {{yield (hash close=this.close) to=\"logo\"}}\n\n {{#if (not this._isDesktop)}}\n <HdsAppHeaderMenuButton\n @onClickToggle={{this.onClickToggle}}\n @isOpen={{this._isOpen}}\n @menuContentId={{this._menuContentId}}\n />\n {{/if}}\n\n <div class=\"hds-app-header__actions\" id={{this._menuContentId}}>\n <div class=\"hds-app-header__global-actions\">\n {{yield (hash close=this.close) to=\"globalActions\"}}\n </div>\n\n <div class=\"hds-app-header__utility-actions\">\n {{yield (hash close=this.close) to=\"utilityActions\"}}\n </div>\n </div>\n </div>\n </template>\n}\n"],"names":["HdsAppHeader","Component","g","prototype","tracked","i","_desktopMQ","hasA11yRefocus","args","a11yRefocusSkipTo","_menuContentId","guidFor","_desktopMQVal","breakpoint","hdsBreakpoints","px","constructor","owner","window","matchMedia","addEventListeners","registerDestructor","removeEventListeners","document","addEventListener","escapePress","updateDesktopVariable","syntheticEvent","MediaQueryListEvent","matches","media","removeEventListener","shouldTrapFocus","_isDesktop","_isOpen","classNames","classes","push","join","event","key","onClickToggle","close","setComponentTemplate","precompileTemplate","strictMode","scope","focusTrap","and","not","NavigationNarrator","hash","HdsAppHeaderMenuButton"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { registerDestructor } from '@ember/destroyable';
4
4
  import { modifier } from 'ember-modifier';
5
5
  import { on } from '@ember/modifier';
6
6
  import { fn } from '@ember/helper';
7
- import { focusTrap } from 'ember-focus-trap';
7
+ import focusTrap from 'ember-focus-trap/modifiers/focus-trap';
8
8
  import { hdsBreakpoints } from '../../../utils/hds-breakpoints.js';
9
9
  import HdsTHelper from '../../../helpers/hds-t.js';
10
10
  import HdsAppSideNavToggleButton from './toggle-button.js';