@hashicorp/design-system-components 5.2.0-rc-20260107211222 → 5.2.0-rc-20260108162959

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 (96) hide show
  1. package/declarations/components/hds/theme-context/index.d.ts +24 -0
  2. package/declarations/components/hds/theme-context/types.d.ts +19 -0
  3. package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
  4. package/declarations/components.d.ts +2 -0
  5. package/declarations/services/hds-intl.d.ts +4 -3
  6. package/declarations/services/hds-theming.d.ts +57 -0
  7. package/declarations/services.d.ts +1 -0
  8. package/declarations/template-registry.d.ts +6 -0
  9. package/dist/_app_/components/hds/theme-context.js +1 -0
  10. package/dist/_app_/components/hds/theme-switcher.js +1 -0
  11. package/dist/_app_/services/hds-theming.js +1 -0
  12. package/dist/components/hds/advanced-table/index.js.map +1 -1
  13. package/dist/components/hds/advanced-table/models/column.js.map +1 -1
  14. package/dist/components/hds/advanced-table/models/row.js.map +1 -1
  15. package/dist/components/hds/advanced-table/models/table.js.map +1 -1
  16. package/dist/components/hds/advanced-table/td.js.map +1 -1
  17. package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
  18. package/dist/components/hds/advanced-table/th-reorder-drop-target.js.map +1 -1
  19. package/dist/components/hds/advanced-table/th-resize-handle.js.map +1 -1
  20. package/dist/components/hds/advanced-table/th-selectable.js.map +1 -1
  21. package/dist/components/hds/advanced-table/th-sort.js.map +1 -1
  22. package/dist/components/hds/advanced-table/th.js.map +1 -1
  23. package/dist/components/hds/alert/index.js.map +1 -1
  24. package/dist/components/hds/app-header/index.js.map +1 -1
  25. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  26. package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
  27. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
  28. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  29. package/dist/components/hds/code-block/index.js.map +1 -1
  30. package/dist/components/hds/code-editor/index.js.map +1 -1
  31. package/dist/components/hds/copy/button/index.js.map +1 -1
  32. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  33. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  34. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  35. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  36. package/dist/components/hds/flyout/index.js.map +1 -1
  37. package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
  38. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  39. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  40. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  41. package/dist/components/hds/form/text-input/field.js.map +1 -1
  42. package/dist/components/hds/interactive/index.js.map +1 -1
  43. package/dist/components/hds/modal/index.js.map +1 -1
  44. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  45. package/dist/components/hds/pagination/info/index.js.map +1 -1
  46. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  47. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  48. package/dist/components/hds/side-nav/index.js.map +1 -1
  49. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  50. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  51. package/dist/components/hds/stepper/list/index.js.map +1 -1
  52. package/dist/components/hds/stepper/nav/index.js.map +1 -1
  53. package/dist/components/hds/table/index.js.map +1 -1
  54. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  55. package/dist/components/hds/table/th-selectable.js.map +1 -1
  56. package/dist/components/hds/tabs/index.js.map +1 -1
  57. package/dist/components/hds/tag/index.js.map +1 -1
  58. package/dist/components/hds/theme-context/index.js +45 -0
  59. package/dist/components/hds/theme-context/index.js.map +1 -0
  60. package/dist/components/hds/theme-context/types.js +27 -0
  61. package/dist/components/hds/theme-context/types.js.map +1 -0
  62. package/dist/components/hds/theme-switcher/index.js +100 -0
  63. package/dist/components/hds/theme-switcher/index.js.map +1 -0
  64. package/dist/components/hds/time/index.js.map +1 -1
  65. package/dist/components/hds/time/range.js.map +1 -1
  66. package/dist/components.js +2 -0
  67. package/dist/components.js.map +1 -1
  68. package/dist/helpers/hds-t.js.map +1 -1
  69. package/dist/modifiers/hds-code-editor.js.map +1 -1
  70. package/dist/services/hds-intl.js.map +1 -1
  71. package/dist/services/hds-theming.js +214 -0
  72. package/dist/services/hds-theming.js.map +1 -0
  73. package/dist/services/hds-time.js.map +1 -1
  74. package/dist/services.js +1 -1
  75. package/dist/styles/@hashicorp/design-system-components-common.css +9588 -0
  76. package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
  77. package/dist/styles/@hashicorp/design-system-components-common.scss +24 -0
  78. package/dist/styles/@hashicorp/design-system-components.css +501 -320
  79. package/dist/styles/@hashicorp/design-system-components.css.map +1 -0
  80. package/dist/styles/@hashicorp/design-system-components.scss +4 -62
  81. package/dist/styles/@hashicorp/design-system-power-select-overrides.css +229 -0
  82. package/dist/styles/@hashicorp/design-system-power-select-overrides.css.map +1 -0
  83. package/dist/styles/components/badge-count.scss +26 -76
  84. package/dist/styles/components/badge.scss +26 -131
  85. package/dist/styles/components/button.scss +5 -0
  86. package/dist/styles/components/dropdown.scss +3 -5
  87. package/dist/styles/components/form/file-input.scss +2 -2
  88. package/dist/styles/components/form/key-value-inputs.scss +2 -4
  89. package/dist/styles/components/index.scss +52 -0
  90. package/dist/styles/components/theme-context.scss +12 -0
  91. package/dist/styles/mixins/_button.scss +82 -129
  92. package/dist/styles/mixins/_carbonization.scss +31 -0
  93. package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
  94. package/dist/utils/hds-aria-described-by.js.map +1 -1
  95. package/package.json +10 -6
  96. package/dist/styles/@hashicorp/design-system-components.scss.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"row.js","sources":["../../../../../src/components/hds/advanced-table/models/row.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\n\nimport type { HdsAdvancedTableColumn, HdsAdvancedTableCell } from '../types';\nimport type HdsAdvancedTableTableModel from './table';\n\ninterface HdsAdvancedTableRowArgs {\n [key: string]: unknown;\n columns: HdsAdvancedTableColumn[];\n table: HdsAdvancedTableTableModel;\n id?: string;\n childrenKey?: string;\n}\n\nexport default class HdsAdvancedTableRow {\n id = guidFor(this);\n\n // row data\n [key: string]: unknown;\n\n @tracked isOpen: boolean = false;\n @tracked cells: HdsAdvancedTableCell[] = [];\n\n children: HdsAdvancedTableRow[] = [];\n childrenKey: string;\n table: HdsAdvancedTableTableModel;\n\n get hasChildren(): boolean {\n return this.children.length > 0;\n }\n\n get showChildren(): boolean {\n return this.isOpen && this.hasChildren;\n }\n\n get orderedCells(): HdsAdvancedTableCell[] {\n const { columnOrder, hasReorderableColumns } = this.table;\n\n if (hasReorderableColumns) {\n return columnOrder.reduce<HdsAdvancedTableCell[]>((acc, key) => {\n const cell = this.cells.find((cell) => cell.columnKey === key);\n\n if (cell !== undefined) {\n acc.push(cell);\n }\n\n return acc;\n }, []);\n } else {\n return this.cells;\n }\n }\n\n constructor(args: HdsAdvancedTableRowArgs) {\n const { columns, table } = args;\n\n this.table = table;\n\n this.cells = columns.map((column) => {\n const cell = args[column.key ?? ''];\n\n return {\n columnKey: column.key ?? '',\n content: cell,\n };\n });\n\n // set row data\n Object.assign(this, args);\n\n this.childrenKey = args.childrenKey ?? 'children';\n\n const childModels = args[this.childrenKey];\n\n if (Array.isArray(childModels)) {\n this.children = childModels.map(\n (child) =>\n new HdsAdvancedTableRow({\n ...(child as HdsAdvancedTableRowArgs),\n columns: args.columns,\n childrenKey: this.childrenKey,\n })\n );\n }\n }\n\n @action\n openAll() {\n this.isOpen = true;\n this.children.forEach((child) => child.openAll());\n }\n\n @action\n collapseAll() {\n this.isOpen = false;\n this.children.forEach((child) => child.collapseAll());\n }\n\n @action\n onClickToggle() {\n this.isOpen = !this.isOpen;\n }\n}\n"],"names":["HdsAdvancedTableRow","id","guidFor","g","prototype","tracked","i","children","childrenKey","table","hasChildren","length","showChildren","isOpen","orderedCells","columnOrder","hasReorderableColumns","reduce","acc","key","cell","cells","find","columnKey","undefined","push","constructor","args","columns","map","column","content","Object","assign","childModels","Array","isArray","child","openAll","forEach","n","action","collapseAll","onClickToggle"],"mappings":"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"}
1
+ {"version":3,"file":"row.js","sources":["../../../../../src/components/hds/advanced-table/models/row.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\n\nimport type { HdsAdvancedTableColumn, HdsAdvancedTableCell } from '../types';\nimport type HdsAdvancedTableTableModel from './table';\n\ninterface HdsAdvancedTableRowArgs {\n [key: string]: unknown;\n columns: HdsAdvancedTableColumn[];\n table: HdsAdvancedTableTableModel;\n id?: string;\n childrenKey?: string;\n}\n\nexport default class HdsAdvancedTableRow {\n id = guidFor(this);\n\n // row data\n [key: string]: unknown;\n\n @tracked isOpen: boolean = false;\n @tracked cells: HdsAdvancedTableCell[] = [];\n\n children: HdsAdvancedTableRow[] = [];\n childrenKey: string;\n table: HdsAdvancedTableTableModel;\n\n get hasChildren(): boolean {\n return this.children.length > 0;\n }\n\n get showChildren(): boolean {\n return this.isOpen && this.hasChildren;\n }\n\n get orderedCells(): HdsAdvancedTableCell[] {\n const { columnOrder, hasReorderableColumns } = this.table;\n\n if (hasReorderableColumns) {\n return columnOrder.reduce<HdsAdvancedTableCell[]>((acc, key) => {\n const cell = this.cells.find((cell) => cell.columnKey === key);\n\n if (cell !== undefined) {\n acc.push(cell);\n }\n\n return acc;\n }, []);\n } else {\n return this.cells;\n }\n }\n\n constructor(args: HdsAdvancedTableRowArgs) {\n const { columns, table } = args;\n\n this.table = table;\n\n this.cells = columns.map((column) => {\n const cell = args[column.key ?? ''];\n\n return {\n columnKey: column.key ?? '',\n content: cell,\n };\n });\n\n // set row data\n Object.assign(this, args);\n\n this.childrenKey = args.childrenKey ?? 'children';\n\n const childModels = args[this.childrenKey];\n\n if (Array.isArray(childModels)) {\n this.children = childModels.map(\n (child) =>\n new HdsAdvancedTableRow({\n ...(child as HdsAdvancedTableRowArgs),\n columns: args.columns,\n childrenKey: this.childrenKey,\n })\n );\n }\n }\n\n @action\n openAll() {\n this.isOpen = true;\n this.children.forEach((child) => child.openAll());\n }\n\n @action\n collapseAll() {\n this.isOpen = false;\n this.children.forEach((child) => child.collapseAll());\n }\n\n @action\n onClickToggle() {\n this.isOpen = !this.isOpen;\n }\n}\n"],"names":["HdsAdvancedTableRow","id","guidFor","g","prototype","tracked","i","void 0","children","childrenKey","table","hasChildren","length","showChildren","isOpen","orderedCells","columnOrder","hasReorderableColumns","reduce","acc","key","cell","cells","find","columnKey","undefined","push","constructor","args","columns","map","column","content","Object","assign","childModels","Array","isArray","child","openAll","forEach","n","action","collapseAll","onClickToggle"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../../src/components/hds/advanced-table/models/table.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport HdsAdvancedTableRow from './row.ts';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { isEmpty } from '@ember/utils';\nimport HdsAdvancedTableColumn from './column.ts';\nimport {\n HdsAdvancedTableColumnReorderSideValues,\n HdsAdvancedTableThSortOrderValues,\n} from '../types.ts';\n\nimport type { HdsAdvancedTableSignature } from '../index.ts';\nimport type {\n HdsAdvancedTableExpandState,\n HdsAdvancedTableCell,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableSortingFunction,\n} from '../types';\n\ntype HdsAdvancedTableTableArgs = Pick<\n HdsAdvancedTableSignature['Args'],\n | 'model'\n | 'columns'\n | 'columnOrder'\n | 'childrenKey'\n | 'hasReorderableColumns'\n | 'hasResizableColumns'\n | 'sortBy'\n | 'sortOrder'\n | 'onSort'\n | 'onColumnReorder'\n | 'onColumnResize'\n>;\n\nfunction getVisibleRows(rows: HdsAdvancedTableRow[]): HdsAdvancedTableRow[] {\n return rows.reduce((acc, row) => {\n acc.push(row);\n\n if (row.isOpen && row.children) {\n acc.push(...getVisibleRows(row.children));\n }\n\n return acc;\n }, [] as HdsAdvancedTableRow[]);\n}\n\nfunction getChildrenCount(rows: HdsAdvancedTableRow[]): number {\n return rows.reduce(\n (acc, row) => acc + 1 + getChildrenCount(row.children ?? []),\n 0\n );\n}\n\nexport default class HdsAdvancedTableTableModel {\n @tracked columns: HdsAdvancedTableColumn[] = [];\n @tracked columnOrder: string[] = [];\n @tracked reorderDraggedColumn: HdsAdvancedTableColumn | null = null;\n @tracked reorderHoveredColumn: HdsAdvancedTableColumn | null = null;\n @tracked rows: HdsAdvancedTableRow[] = [];\n @tracked sortBy: HdsAdvancedTableTableArgs['sortBy'] = undefined;\n @tracked sortOrder: HdsAdvancedTableTableArgs['sortOrder'] =\n HdsAdvancedTableThSortOrderValues.Asc;\n @tracked gridElement?: HTMLDivElement = undefined;\n\n childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];\n hasReorderableColumns?: HdsAdvancedTableTableArgs['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onSort?: HdsAdvancedTableSignature['Args']['onSort'];\n\n constructor(args: HdsAdvancedTableTableArgs) {\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasReorderableColumns,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder,\n onSort,\n } = args;\n\n this.childrenKey = childrenKey;\n this.hasReorderableColumns = hasReorderableColumns;\n this.hasResizableColumns = hasResizableColumns;\n this.onSort = onSort;\n\n this.setupData({ model, columns, sortBy, sortOrder });\n\n // set initial column order\n if (this.hasReorderableColumns) {\n this.columnOrder = isEmpty(columnOrder)\n ? this.columns.map((column) => column.key)\n : columnOrder!; // ensured non-empty\n\n this.onColumnReorder = onColumnReorder;\n }\n }\n\n get hasColumnBeingDragged(): boolean {\n return this.reorderDraggedColumn !== null;\n }\n\n get reorderDraggedColumnCells(): HdsAdvancedTableCell[] {\n if (this.reorderDraggedColumn === null) {\n return [];\n }\n\n const { key } = this.reorderDraggedColumn;\n\n return this.flattenedVisibleRows.map((row) => {\n const cell = row.cells.find((cell) => cell.columnKey === key);\n\n return cell!;\n });\n }\n\n get orderedColumns(): HdsAdvancedTableColumn[] {\n if (this.hasReorderableColumns) {\n return this.columnOrder.reduce<HdsAdvancedTableColumn[]>((acc, key) => {\n const column = this.columns.find((column) => column.key === key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n }, []);\n } else {\n return this.columns;\n }\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.columns.find(\n (column) => column.key === this.sortBy\n );\n\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get sortedRows(): HdsAdvancedTableRow[] {\n const criteria = this.sortCriteria;\n const rows = this.rows;\n\n if (rows.length <= 1 || criteria === undefined) {\n return rows;\n }\n\n if (typeof criteria === 'function') {\n // Use custom sort function\n return [...rows].sort(criteria);\n } else {\n // Parse the criteria string format \"sortBy:sortOrder\"\n const [sortBy, sortOrder] = criteria.split(':');\n\n if (!sortBy) {\n return rows;\n }\n\n return [...rows].sort((a, b) => {\n const valueA = a[sortBy] as string | number | boolean;\n const valueB = b[sortBy] as string | number | boolean;\n\n if (valueA < valueB) {\n return sortOrder === 'asc' ? -1 : 1;\n }\n if (valueA > valueB) {\n return sortOrder === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n }\n\n get totalRowCount(): number {\n return getChildrenCount(this.sortedRows);\n }\n\n get flattenedVisibleRows(): HdsAdvancedTableRow[] {\n return getVisibleRows(this.sortedRows);\n }\n\n get lastVisibleRow(): HdsAdvancedTableRow | undefined {\n return this.flattenedVisibleRows[this.flattenedVisibleRows.length - 1];\n }\n\n get hasRowsWithChildren(): boolean {\n return this.rows.some((row) => row.hasChildren);\n }\n\n get allRowsAreOpen(): boolean {\n return this.flattenedVisibleRows.length === this.totalRowCount;\n }\n\n get expandState(): HdsAdvancedTableExpandState {\n if (this.allRowsAreOpen) {\n return true;\n } else {\n return false;\n }\n }\n\n setTransientColumnWidths(options: { roundValues?: boolean } = {}): void {\n const roundValues = options.roundValues ?? false;\n\n this.columns.forEach((column) => {\n column.pxTransientWidth = roundValues\n ? Math.round(column.pxWidth)\n : column.pxWidth;\n });\n }\n\n resetTransientColumnWidths(): void {\n this.columns.forEach((column) => {\n column.pxTransientWidth = undefined;\n });\n }\n\n getColumnByKey(key: string): HdsAdvancedTableColumn | undefined {\n return this.columns.find((column) => column.key === key);\n }\n\n @action\n setupData(\n args: Pick<\n HdsAdvancedTableTableArgs,\n 'model' | 'columns' | 'sortBy' | 'sortOrder'\n >\n ) {\n const { model, columns, sortBy, sortOrder } = args;\n\n this.sortBy = sortBy;\n this.sortOrder = sortOrder ?? HdsAdvancedTableThSortOrderValues.Asc;\n\n this.columns = columns.map(\n (column) =>\n new HdsAdvancedTableColumn({\n column,\n table: this,\n })\n );\n\n this.rows = model.map((row) => {\n return new HdsAdvancedTableRow({\n ...row,\n childrenKey: this.childrenKey,\n columns,\n table: this,\n });\n });\n }\n\n @action\n restoreColumnWidths(): void {\n this.columns.forEach((column) => {\n column.width = column.originalWidth;\n });\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n if (typeof this.onSort === 'function') {\n this.onSort(this.sortBy, this.sortOrder);\n }\n }\n\n @action\n openAll() {\n this.rows.forEach((row) => row.openAll());\n }\n\n @action\n collapseAll() {\n this.rows.forEach((row) => row.collapseAll());\n }\n\n @action\n toggleAll() {\n if (this.allRowsAreOpen) {\n this.collapseAll();\n } else {\n this.openAll();\n }\n }\n\n @action\n stepColumn(column: HdsAdvancedTableColumn, step: number): void {\n const { table } = column;\n const oldIndex = table.orderedColumns.indexOf(column);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (newIndex < 0 || newIndex >= table.orderedColumns.length) {\n return;\n }\n\n const targetColumn = table.orderedColumns[newIndex];\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Determine the side based on the step direction.\n const side: HdsAdvancedTableColumnReorderSide =\n step > 0\n ? HdsAdvancedTableColumnReorderSideValues.Right\n : HdsAdvancedTableColumnReorderSideValues.Left;\n\n table.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTerminalPosition(\n column: HdsAdvancedTableColumn,\n position: 'start' | 'end'\n ): void {\n const firstColumn = this.orderedColumns.find((column) => column.isFirst);\n\n const {\n targetColumn,\n side,\n }: {\n targetColumn?: HdsAdvancedTableColumn;\n side: HdsAdvancedTableColumnReorderSide;\n } =\n position === 'start'\n ? {\n targetColumn: firstColumn,\n side: HdsAdvancedTableColumnReorderSideValues.Left,\n }\n : {\n targetColumn: this.orderedColumns[this.orderedColumns.length - 1],\n side: HdsAdvancedTableColumnReorderSideValues.Right,\n };\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTarget(\n sourceColumn: HdsAdvancedTableColumn,\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ): void {\n const sourceKey = sourceColumn.key;\n const targetKey = targetColumn.key;\n\n const oldIndex = this.columnOrder.indexOf(sourceKey);\n const newIndex = this.columnOrder.indexOf(targetKey);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const updated = [...this.columnOrder];\n\n updated.splice(oldIndex, 1); // Remove from old position\n\n // Calculate the insertion index based on the side\n // If dropping to the right of the target, insert after the target\n // If dropping to the left of the target, insert before the target\n // Adjust for the shift in indices caused by removing the source column\n const adjustedIndex =\n side === HdsAdvancedTableColumnReorderSideValues.Right\n ? newIndex > oldIndex\n ? newIndex\n : newIndex + 1\n : newIndex > oldIndex\n ? newIndex - 1\n : newIndex;\n\n updated.splice(adjustedIndex, 0, sourceColumn.key); // Insert at new position\n\n this.columnOrder = updated;\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n sourceColumn.thElement?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n sourceColumn.isBeingDragged = false;\n\n this.onColumnReorder?.({\n column: sourceColumn,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumn.key),\n });\n });\n }\n }\n\n @action\n moveColumnToDropTarget(\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) {\n const sourceColumn = this.reorderDraggedColumn;\n\n if (sourceColumn == null || sourceColumn === targetColumn) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumn, targetColumn, side);\n }\n}\n"],"names":["getVisibleRows","rows","reduce","acc","row","push","isOpen","children","getChildrenCount","HdsAdvancedTableTableModel","g","prototype","tracked","i","undefined","HdsAdvancedTableThSortOrderValues","Asc","childrenKey","hasReorderableColumns","hasResizableColumns","onColumnReorder","onSort","constructor","args","model","columns","columnOrder","sortBy","sortOrder","setupData","isEmpty","map","column","key","hasColumnBeingDragged","reorderDraggedColumn","reorderDraggedColumnCells","flattenedVisibleRows","cell","cells","find","columnKey","orderedColumns","sortCriteria","currentColumn","sortingFunction","sortedRows","criteria","length","sort","split","a","b","valueA","valueB","totalRowCount","lastVisibleRow","hasRowsWithChildren","some","hasChildren","allRowsAreOpen","expandState","setTransientColumnWidths","options","roundValues","forEach","pxTransientWidth","Math","round","pxWidth","resetTransientColumnWidths","getColumnByKey","HdsAdvancedTableColumn","table","HdsAdvancedTableRow","n","action","restoreColumnWidths","width","originalWidth","setSortBy","Desc","openAll","collapseAll","toggleAll","stepColumn","step","oldIndex","indexOf","newIndex","targetColumn","side","HdsAdvancedTableColumnReorderSideValues","Right","Left","moveColumnToTarget","moveColumnToTerminalPosition","position","firstColumn","isFirst","sourceColumn","sourceKey","targetKey","updated","splice","adjustedIndex","requestAnimationFrame","thElement","scrollIntoView","behavior","block","inline","isBeingDragged","newOrder","insertedAt","moveColumnToDropTarget"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../../src/components/hds/advanced-table/models/table.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport HdsAdvancedTableRow from './row.ts';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { isEmpty } from '@ember/utils';\nimport HdsAdvancedTableColumn from './column.ts';\nimport {\n HdsAdvancedTableColumnReorderSideValues,\n HdsAdvancedTableThSortOrderValues,\n} from '../types.ts';\n\nimport type { HdsAdvancedTableSignature } from '../index.ts';\nimport type {\n HdsAdvancedTableExpandState,\n HdsAdvancedTableCell,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableSortingFunction,\n} from '../types';\n\ntype HdsAdvancedTableTableArgs = Pick<\n HdsAdvancedTableSignature['Args'],\n | 'model'\n | 'columns'\n | 'columnOrder'\n | 'childrenKey'\n | 'hasReorderableColumns'\n | 'hasResizableColumns'\n | 'sortBy'\n | 'sortOrder'\n | 'onSort'\n | 'onColumnReorder'\n | 'onColumnResize'\n>;\n\nfunction getVisibleRows(rows: HdsAdvancedTableRow[]): HdsAdvancedTableRow[] {\n return rows.reduce((acc, row) => {\n acc.push(row);\n\n if (row.isOpen && row.children) {\n acc.push(...getVisibleRows(row.children));\n }\n\n return acc;\n }, [] as HdsAdvancedTableRow[]);\n}\n\nfunction getChildrenCount(rows: HdsAdvancedTableRow[]): number {\n return rows.reduce(\n (acc, row) => acc + 1 + getChildrenCount(row.children ?? []),\n 0\n );\n}\n\nexport default class HdsAdvancedTableTableModel {\n @tracked columns: HdsAdvancedTableColumn[] = [];\n @tracked columnOrder: string[] = [];\n @tracked reorderDraggedColumn: HdsAdvancedTableColumn | null = null;\n @tracked reorderHoveredColumn: HdsAdvancedTableColumn | null = null;\n @tracked rows: HdsAdvancedTableRow[] = [];\n @tracked sortBy: HdsAdvancedTableTableArgs['sortBy'] = undefined;\n @tracked sortOrder: HdsAdvancedTableTableArgs['sortOrder'] =\n HdsAdvancedTableThSortOrderValues.Asc;\n @tracked gridElement?: HTMLDivElement = undefined;\n\n childrenKey?: HdsAdvancedTableTableArgs['childrenKey'];\n hasReorderableColumns?: HdsAdvancedTableTableArgs['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableTableArgs['hasResizableColumns'];\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onSort?: HdsAdvancedTableSignature['Args']['onSort'];\n\n constructor(args: HdsAdvancedTableTableArgs) {\n const {\n model,\n columns,\n columnOrder,\n childrenKey,\n hasReorderableColumns,\n hasResizableColumns,\n sortBy,\n sortOrder,\n onColumnReorder,\n onSort,\n } = args;\n\n this.childrenKey = childrenKey;\n this.hasReorderableColumns = hasReorderableColumns;\n this.hasResizableColumns = hasResizableColumns;\n this.onSort = onSort;\n\n this.setupData({ model, columns, sortBy, sortOrder });\n\n // set initial column order\n if (this.hasReorderableColumns) {\n this.columnOrder = isEmpty(columnOrder)\n ? this.columns.map((column) => column.key)\n : columnOrder!; // ensured non-empty\n\n this.onColumnReorder = onColumnReorder;\n }\n }\n\n get hasColumnBeingDragged(): boolean {\n return this.reorderDraggedColumn !== null;\n }\n\n get reorderDraggedColumnCells(): HdsAdvancedTableCell[] {\n if (this.reorderDraggedColumn === null) {\n return [];\n }\n\n const { key } = this.reorderDraggedColumn;\n\n return this.flattenedVisibleRows.map((row) => {\n const cell = row.cells.find((cell) => cell.columnKey === key);\n\n return cell!;\n });\n }\n\n get orderedColumns(): HdsAdvancedTableColumn[] {\n if (this.hasReorderableColumns) {\n return this.columnOrder.reduce<HdsAdvancedTableColumn[]>((acc, key) => {\n const column = this.columns.find((column) => column.key === key);\n\n if (column !== undefined) {\n acc.push(column);\n }\n\n return acc;\n }, []);\n } else {\n return this.columns;\n }\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.columns.find(\n (column) => column.key === this.sortBy\n );\n\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get sortedRows(): HdsAdvancedTableRow[] {\n const criteria = this.sortCriteria;\n const rows = this.rows;\n\n if (rows.length <= 1 || criteria === undefined) {\n return rows;\n }\n\n if (typeof criteria === 'function') {\n // Use custom sort function\n return [...rows].sort(criteria);\n } else {\n // Parse the criteria string format \"sortBy:sortOrder\"\n const [sortBy, sortOrder] = criteria.split(':');\n\n if (!sortBy) {\n return rows;\n }\n\n return [...rows].sort((a, b) => {\n const valueA = a[sortBy] as string | number | boolean;\n const valueB = b[sortBy] as string | number | boolean;\n\n if (valueA < valueB) {\n return sortOrder === 'asc' ? -1 : 1;\n }\n if (valueA > valueB) {\n return sortOrder === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n }\n\n get totalRowCount(): number {\n return getChildrenCount(this.sortedRows);\n }\n\n get flattenedVisibleRows(): HdsAdvancedTableRow[] {\n return getVisibleRows(this.sortedRows);\n }\n\n get lastVisibleRow(): HdsAdvancedTableRow | undefined {\n return this.flattenedVisibleRows[this.flattenedVisibleRows.length - 1];\n }\n\n get hasRowsWithChildren(): boolean {\n return this.rows.some((row) => row.hasChildren);\n }\n\n get allRowsAreOpen(): boolean {\n return this.flattenedVisibleRows.length === this.totalRowCount;\n }\n\n get expandState(): HdsAdvancedTableExpandState {\n if (this.allRowsAreOpen) {\n return true;\n } else {\n return false;\n }\n }\n\n setTransientColumnWidths(options: { roundValues?: boolean } = {}): void {\n const roundValues = options.roundValues ?? false;\n\n this.columns.forEach((column) => {\n column.pxTransientWidth = roundValues\n ? Math.round(column.pxWidth)\n : column.pxWidth;\n });\n }\n\n resetTransientColumnWidths(): void {\n this.columns.forEach((column) => {\n column.pxTransientWidth = undefined;\n });\n }\n\n getColumnByKey(key: string): HdsAdvancedTableColumn | undefined {\n return this.columns.find((column) => column.key === key);\n }\n\n @action\n setupData(\n args: Pick<\n HdsAdvancedTableTableArgs,\n 'model' | 'columns' | 'sortBy' | 'sortOrder'\n >\n ) {\n const { model, columns, sortBy, sortOrder } = args;\n\n this.sortBy = sortBy;\n this.sortOrder = sortOrder ?? HdsAdvancedTableThSortOrderValues.Asc;\n\n this.columns = columns.map(\n (column) =>\n new HdsAdvancedTableColumn({\n column,\n table: this,\n })\n );\n\n this.rows = model.map((row) => {\n return new HdsAdvancedTableRow({\n ...row,\n childrenKey: this.childrenKey,\n columns,\n table: this,\n });\n });\n }\n\n @action\n restoreColumnWidths(): void {\n this.columns.forEach((column) => {\n column.width = column.originalWidth;\n });\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n if (typeof this.onSort === 'function') {\n this.onSort(this.sortBy, this.sortOrder);\n }\n }\n\n @action\n openAll() {\n this.rows.forEach((row) => row.openAll());\n }\n\n @action\n collapseAll() {\n this.rows.forEach((row) => row.collapseAll());\n }\n\n @action\n toggleAll() {\n if (this.allRowsAreOpen) {\n this.collapseAll();\n } else {\n this.openAll();\n }\n }\n\n @action\n stepColumn(column: HdsAdvancedTableColumn, step: number): void {\n const { table } = column;\n const oldIndex = table.orderedColumns.indexOf(column);\n const newIndex = oldIndex + step;\n\n // Check if the new position is within the array bounds.\n if (newIndex < 0 || newIndex >= table.orderedColumns.length) {\n return;\n }\n\n const targetColumn = table.orderedColumns[newIndex];\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Determine the side based on the step direction.\n const side: HdsAdvancedTableColumnReorderSide =\n step > 0\n ? HdsAdvancedTableColumnReorderSideValues.Right\n : HdsAdvancedTableColumnReorderSideValues.Left;\n\n table.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTerminalPosition(\n column: HdsAdvancedTableColumn,\n position: 'start' | 'end'\n ): void {\n const firstColumn = this.orderedColumns.find((column) => column.isFirst);\n\n const {\n targetColumn,\n side,\n }: {\n targetColumn?: HdsAdvancedTableColumn;\n side: HdsAdvancedTableColumnReorderSide;\n } =\n position === 'start'\n ? {\n targetColumn: firstColumn,\n side: HdsAdvancedTableColumnReorderSideValues.Left,\n }\n : {\n targetColumn: this.orderedColumns[this.orderedColumns.length - 1],\n side: HdsAdvancedTableColumnReorderSideValues.Right,\n };\n\n if (targetColumn === undefined) {\n return;\n }\n\n // Move the column to the target position\n this.moveColumnToTarget(column, targetColumn, side);\n }\n\n @action\n moveColumnToTarget(\n sourceColumn: HdsAdvancedTableColumn,\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ): void {\n const sourceKey = sourceColumn.key;\n const targetKey = targetColumn.key;\n\n const oldIndex = this.columnOrder.indexOf(sourceKey);\n const newIndex = this.columnOrder.indexOf(targetKey);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const updated = [...this.columnOrder];\n\n updated.splice(oldIndex, 1); // Remove from old position\n\n // Calculate the insertion index based on the side\n // If dropping to the right of the target, insert after the target\n // If dropping to the left of the target, insert before the target\n // Adjust for the shift in indices caused by removing the source column\n const adjustedIndex =\n side === HdsAdvancedTableColumnReorderSideValues.Right\n ? newIndex > oldIndex\n ? newIndex\n : newIndex + 1\n : newIndex > oldIndex\n ? newIndex - 1\n : newIndex;\n\n updated.splice(adjustedIndex, 0, sourceColumn.key); // Insert at new position\n\n this.columnOrder = updated;\n\n // we need to wait until the reposition has finished\n requestAnimationFrame(() => {\n sourceColumn.thElement?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n sourceColumn.isBeingDragged = false;\n\n this.onColumnReorder?.({\n column: sourceColumn,\n newOrder: updated,\n insertedAt: updated.indexOf(sourceColumn.key),\n });\n });\n }\n }\n\n @action\n moveColumnToDropTarget(\n targetColumn: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) {\n const sourceColumn = this.reorderDraggedColumn;\n\n if (sourceColumn == null || sourceColumn === targetColumn) {\n return;\n }\n\n this.moveColumnToTarget(sourceColumn, targetColumn, side);\n }\n}\n"],"names":["getVisibleRows","rows","reduce","acc","row","push","isOpen","children","getChildrenCount","HdsAdvancedTableTableModel","g","prototype","tracked","i","void 0","undefined","HdsAdvancedTableThSortOrderValues","Asc","childrenKey","hasReorderableColumns","hasResizableColumns","onColumnReorder","onSort","constructor","args","model","columns","columnOrder","sortBy","sortOrder","setupData","isEmpty","map","column","key","hasColumnBeingDragged","reorderDraggedColumn","reorderDraggedColumnCells","flattenedVisibleRows","cell","cells","find","columnKey","orderedColumns","sortCriteria","currentColumn","sortingFunction","sortedRows","criteria","length","sort","split","a","b","valueA","valueB","totalRowCount","lastVisibleRow","hasRowsWithChildren","some","hasChildren","allRowsAreOpen","expandState","setTransientColumnWidths","options","roundValues","forEach","pxTransientWidth","Math","round","pxWidth","resetTransientColumnWidths","getColumnByKey","HdsAdvancedTableColumn","table","HdsAdvancedTableRow","n","action","restoreColumnWidths","width","originalWidth","setSortBy","Desc","openAll","collapseAll","toggleAll","stepColumn","step","oldIndex","indexOf","newIndex","targetColumn","side","HdsAdvancedTableColumnReorderSideValues","Right","Left","moveColumnToTarget","moveColumnToTerminalPosition","position","firstColumn","isFirst","sourceColumn","sourceKey","targetKey","updated","splice","adjustedIndex","requestAnimationFrame","thElement","scrollIntoView","behavior","block","inline","isBeingDragged","newOrder","insertedAt","moveColumnToDropTarget"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.ts"],"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';\n\nimport type { HdsAdvancedTableHorizontalAlignment } from './types.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\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 };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\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"],"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","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.ts"],"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';\n\nimport type { HdsAdvancedTableHorizontalAlignment } from './types.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\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 };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\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"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTd","Component","g","prototype","tracked","i","void 0","_element","rowspan","args","colspan","align","assert","join","includes","classNames","classes","push","onFocusTrapDeactivate","_shouldTrapFocus","n","action","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"th-context-menu.js","sources":["../../../../src/components/hds/advanced-table/th-context-menu.ts"],"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';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsDropdownSignature } from '../dropdown/index.ts';\nimport type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.ts';\nimport type HdsIntlService from '../../../services/hds-intl.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: HdsAdvancedTableColumn;\n hasResizableColumns?: boolean;\n hasReorderableColumns?: boolean;\n isStickyColumn?: boolean;\n reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _element!: HdsDropdownSignature['Element'];\n\n get _resizeOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { column } = 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 (!column.isLast) {\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 { column } = 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 (!column.isFirst) {\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 (!column.isLast) {\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 column,\n hasReorderableColumns,\n hasResizableColumns,\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 column.isFirst &&\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.args.column.thContextMenuToggleElement = element;\n }\n );\n\n private _resizeColumn() {\n this.args.resizeHandleElement?.focus();\n }\n\n private _resetColumnWidth(dropdownCloseCallback: () => void): void {\n const { column, onColumnResize } = this.args;\n\n column.restoreWidth();\n\n if (typeof onColumnResize === 'function' && column.key !== undefined) {\n onColumnResize(column.key, column.width);\n }\n\n dropdownCloseCallback();\n }\n\n private _moveColumn() {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce(\n 'afterRender',\n this,\n this.args.column.focusReorderHandle.bind(this)\n );\n }\n\n private _moveColumnToPosition(\n position: 'start' | 'end',\n dropdownCloseCallback?: () => void\n ): void {\n const { column } = this.args;\n\n column.table.moveColumnToTerminalPosition(column, position);\n\n requestAnimationFrame(() => {\n dropdownCloseCallback?.();\n\n column.thContextMenuToggleElement?.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"],"names":["HdsAdvancedTableThContextMenu","Component","g","prototype","service","i","tracked","_resizeOptions","column","args","translatedResetWidthLabel","hdsIntl","t","default","resizeOptions","key","label","icon","action","_resetColumnWidth","bind","isLast","translatedResizeLabel","_resizeColumn","_reorderOptions","translatedMoveColumnLabel","reorderOptions","_moveColumn","isFirst","translatedMoveColumnToStartLabel","close","_moveColumnToPosition","translatedMoveColumnToEndLabel","_stickyColumnOptions","isStickyColumn","translatedPinLabel","translatedUnpinLabel","_pinFirstColumn","_options","hasReorderableColumns","hasResizableColumns","allGroups","undefined","reduce","options","group","index","_registerDropdownToggleElement","modifier","element","thContextMenuToggleElement","resizeHandleElement","focus","dropdownCloseCallback","onColumnResize","restoreWidth","width","scheduleOnce","focusReorderHandle","position","table","moveColumnToTerminalPosition","requestAnimationFrame","onPinFirstColumn","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th-context-menu.js","sources":["../../../../src/components/hds/advanced-table/th-context-menu.ts"],"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';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsDropdownSignature } from '../dropdown/index.ts';\nimport type { HdsDropdownToggleIconSignature } from '../dropdown/toggle/icon.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.ts';\nimport type HdsIntlService from '../../../services/hds-intl.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: HdsAdvancedTableColumn;\n hasResizableColumns?: boolean;\n hasReorderableColumns?: boolean;\n isStickyColumn?: boolean;\n reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThContextMenu extends Component<HdsAdvancedTableThContextMenuSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _element!: HdsDropdownSignature['Element'];\n\n get _resizeOptions(): HdsAdvancedTableThContextMenuOption[] {\n const { column } = 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 (!column.isLast) {\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 { column } = 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 (!column.isFirst) {\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 (!column.isLast) {\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 column,\n hasReorderableColumns,\n hasResizableColumns,\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 column.isFirst &&\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.args.column.thContextMenuToggleElement = element;\n }\n );\n\n private _resizeColumn() {\n this.args.resizeHandleElement?.focus();\n }\n\n private _resetColumnWidth(dropdownCloseCallback: () => void): void {\n const { column, onColumnResize } = this.args;\n\n column.restoreWidth();\n\n if (typeof onColumnResize === 'function' && column.key !== undefined) {\n onColumnResize(column.key, column.width);\n }\n\n dropdownCloseCallback();\n }\n\n private _moveColumn() {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce(\n 'afterRender',\n this,\n this.args.column.focusReorderHandle.bind(this)\n );\n }\n\n private _moveColumnToPosition(\n position: 'start' | 'end',\n dropdownCloseCallback?: () => void\n ): void {\n const { column } = this.args;\n\n column.table.moveColumnToTerminalPosition(column, position);\n\n requestAnimationFrame(() => {\n dropdownCloseCallback?.();\n\n column.thContextMenuToggleElement?.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"],"names":["HdsAdvancedTableThContextMenu","Component","g","prototype","service","i","void 0","tracked","_resizeOptions","column","args","translatedResetWidthLabel","hdsIntl","t","default","resizeOptions","key","label","icon","action","_resetColumnWidth","bind","isLast","translatedResizeLabel","_resizeColumn","_reorderOptions","translatedMoveColumnLabel","reorderOptions","_moveColumn","isFirst","translatedMoveColumnToStartLabel","close","_moveColumnToPosition","translatedMoveColumnToEndLabel","_stickyColumnOptions","isStickyColumn","translatedPinLabel","translatedUnpinLabel","_pinFirstColumn","_options","hasReorderableColumns","hasResizableColumns","allGroups","undefined","reduce","options","group","index","_registerDropdownToggleElement","modifier","element","thContextMenuToggleElement","resizeHandleElement","focus","dropdownCloseCallback","onColumnResize","restoreWidth","width","scheduleOnce","focusReorderHandle","position","table","moveColumnToTerminalPosition","requestAnimationFrame","onPinFirstColumn","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"th-reorder-drop-target.js","sources":["../../../../src/components/hds/advanced-table/th-reorder-drop-target.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { modifier } from 'ember-modifier';\nimport { BORDER_WIDTH } from './index.ts';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { HdsAdvancedTableColumnReorderSideValues } from './types.ts';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsAdvancedTableColumnReorderSide } from './types.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nexport interface HdsAdvancedTableThReorderDropTargetSignature {\n Args: {\n column: HdsAdvancedTableColumn;\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n tableHeight?: number;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThReorderDropTarget extends Component<HdsAdvancedTableThReorderDropTargetSignature> {\n @tracked private _dragSide: HdsAdvancedTableColumnReorderSide | null = null;\n @tracked private _isUpdateQueued: boolean = false;\n\n private _element!: HdsAdvancedTableThReorderDropTargetSignature['Element'];\n\n private _registerElement = modifier(\n (element: HdsAdvancedTableThReorderDropTargetSignature['Element']) => {\n this._element = element;\n }\n );\n\n // determines whether the drag event is occurring on the left or right side of the element\n private _getDragSide(event: DragEvent): HdsAdvancedTableColumnReorderSide {\n const rect = this._element.getBoundingClientRect();\n const mouseX = event.clientX;\n const elementMiddleX = rect.left + rect.width / 2;\n\n return mouseX < elementMiddleX\n ? HdsAdvancedTableColumnReorderSideValues.Left\n : HdsAdvancedTableColumnReorderSideValues.Right;\n }\n\n get isDraggingOver(): boolean {\n const { table } = this.args.column;\n\n return table.reorderHoveredColumn?.key === this.args.column.key;\n }\n\n get classNames(): string {\n const { column } = this.args;\n\n const classes = ['hds-advanced-table__th-reorder-drop-target'];\n\n if (column.isFirst && !this.args.hasSelectableRows) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-first');\n } else if (column.isLast) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-last');\n }\n\n if (column.isBeingDragged) {\n classes.push(\n 'hds-advanced-table__th-reorder-drop-target--is-being-dragged'\n );\n } else if (this.isDraggingOver && this._dragSide !== null) {\n classes.push(\n ...[\n 'hds-advanced-table__th-reorder-drop-target--is-dragging-over',\n `hds-advanced-table__th-reorder-drop-target--is-dragging-over--${this._dragSide}`,\n ]\n );\n }\n\n return classes.join(' ');\n }\n\n get height(): string | undefined {\n const { tableHeight } = this.args;\n\n if (tableHeight === undefined) {\n return;\n }\n\n return `${tableHeight - BORDER_WIDTH * 2}px`;\n }\n\n @action\n handleDragOver(event: DragEvent): void {\n event.preventDefault();\n\n if (this._isUpdateQueued) {\n return;\n }\n\n this._isUpdateQueued = true;\n\n requestAnimationFrameWaiter(() => {\n const { column } = this.args;\n const { table } = column;\n\n if (table.reorderDraggedColumn !== null) {\n if (table.reorderDraggedColumn.key === column.key) {\n table.reorderHoveredColumn = null;\n } else {\n table.reorderHoveredColumn = column;\n\n const { next, previous } = table.reorderDraggedColumn.siblings;\n const dragSide = this._getDragSide(event);\n\n if (\n (column === previous &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Left) ||\n (column === next &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Right) ||\n (column !== previous && column !== next)\n ) {\n this._dragSide = dragSide;\n }\n }\n }\n\n this._isUpdateQueued = false;\n });\n }\n\n @action\n handleDrop(event: DragEvent): void {\n event.preventDefault();\n\n const { column, onReorderDrop } = this.args;\n const { _dragSide } = this;\n\n if (\n column === undefined ||\n _dragSide === null ||\n typeof onReorderDrop !== 'function'\n ) {\n return;\n }\n\n onReorderDrop(column, _dragSide);\n\n this._dragSide = null;\n column.table.reorderHoveredColumn = null;\n }\n}\n"],"names":["HdsAdvancedTableThReorderDropTarget","Component","g","prototype","tracked","i","_element","_registerElement","modifier","element","_getDragSide","event","rect","getBoundingClientRect","mouseX","clientX","elementMiddleX","left","width","HdsAdvancedTableColumnReorderSideValues","Left","Right","isDraggingOver","table","args","column","reorderHoveredColumn","key","classNames","classes","isFirst","hasSelectableRows","push","isLast","isBeingDragged","_dragSide","join","height","tableHeight","undefined","BORDER_WIDTH","handleDragOver","preventDefault","_isUpdateQueued","requestAnimationFrameWaiter","reorderDraggedColumn","next","previous","siblings","dragSide","n","action","handleDrop","onReorderDrop","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th-reorder-drop-target.js","sources":["../../../../src/components/hds/advanced-table/th-reorder-drop-target.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { modifier } from 'ember-modifier';\nimport { BORDER_WIDTH } from './index.ts';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { HdsAdvancedTableColumnReorderSideValues } from './types.ts';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsAdvancedTableColumnReorderSide } from './types.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nexport interface HdsAdvancedTableThReorderDropTargetSignature {\n Args: {\n column: HdsAdvancedTableColumn;\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n tableHeight?: number;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThReorderDropTarget extends Component<HdsAdvancedTableThReorderDropTargetSignature> {\n @tracked private _dragSide: HdsAdvancedTableColumnReorderSide | null = null;\n @tracked private _isUpdateQueued: boolean = false;\n\n private _element!: HdsAdvancedTableThReorderDropTargetSignature['Element'];\n\n private _registerElement = modifier(\n (element: HdsAdvancedTableThReorderDropTargetSignature['Element']) => {\n this._element = element;\n }\n );\n\n // determines whether the drag event is occurring on the left or right side of the element\n private _getDragSide(event: DragEvent): HdsAdvancedTableColumnReorderSide {\n const rect = this._element.getBoundingClientRect();\n const mouseX = event.clientX;\n const elementMiddleX = rect.left + rect.width / 2;\n\n return mouseX < elementMiddleX\n ? HdsAdvancedTableColumnReorderSideValues.Left\n : HdsAdvancedTableColumnReorderSideValues.Right;\n }\n\n get isDraggingOver(): boolean {\n const { table } = this.args.column;\n\n return table.reorderHoveredColumn?.key === this.args.column.key;\n }\n\n get classNames(): string {\n const { column } = this.args;\n\n const classes = ['hds-advanced-table__th-reorder-drop-target'];\n\n if (column.isFirst && !this.args.hasSelectableRows) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-first');\n } else if (column.isLast) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-last');\n }\n\n if (column.isBeingDragged) {\n classes.push(\n 'hds-advanced-table__th-reorder-drop-target--is-being-dragged'\n );\n } else if (this.isDraggingOver && this._dragSide !== null) {\n classes.push(\n ...[\n 'hds-advanced-table__th-reorder-drop-target--is-dragging-over',\n `hds-advanced-table__th-reorder-drop-target--is-dragging-over--${this._dragSide}`,\n ]\n );\n }\n\n return classes.join(' ');\n }\n\n get height(): string | undefined {\n const { tableHeight } = this.args;\n\n if (tableHeight === undefined) {\n return;\n }\n\n return `${tableHeight - BORDER_WIDTH * 2}px`;\n }\n\n @action\n handleDragOver(event: DragEvent): void {\n event.preventDefault();\n\n if (this._isUpdateQueued) {\n return;\n }\n\n this._isUpdateQueued = true;\n\n requestAnimationFrameWaiter(() => {\n const { column } = this.args;\n const { table } = column;\n\n if (table.reorderDraggedColumn !== null) {\n if (table.reorderDraggedColumn.key === column.key) {\n table.reorderHoveredColumn = null;\n } else {\n table.reorderHoveredColumn = column;\n\n const { next, previous } = table.reorderDraggedColumn.siblings;\n const dragSide = this._getDragSide(event);\n\n if (\n (column === previous &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Left) ||\n (column === next &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Right) ||\n (column !== previous && column !== next)\n ) {\n this._dragSide = dragSide;\n }\n }\n }\n\n this._isUpdateQueued = false;\n });\n }\n\n @action\n handleDrop(event: DragEvent): void {\n event.preventDefault();\n\n const { column, onReorderDrop } = this.args;\n const { _dragSide } = this;\n\n if (\n column === undefined ||\n _dragSide === null ||\n typeof onReorderDrop !== 'function'\n ) {\n return;\n }\n\n onReorderDrop(column, _dragSide);\n\n this._dragSide = null;\n column.table.reorderHoveredColumn = null;\n }\n}\n"],"names":["HdsAdvancedTableThReorderDropTarget","Component","g","prototype","tracked","i","void 0","_element","_registerElement","modifier","element","_getDragSide","event","rect","getBoundingClientRect","mouseX","clientX","elementMiddleX","left","width","HdsAdvancedTableColumnReorderSideValues","Left","Right","isDraggingOver","table","args","column","reorderHoveredColumn","key","classNames","classes","isFirst","hasSelectableRows","push","isLast","isBeingDragged","_dragSide","join","height","tableHeight","undefined","BORDER_WIDTH","handleDragOver","preventDefault","_isUpdateQueued","requestAnimationFrameWaiter","reorderDraggedColumn","next","previous","siblings","dragSide","n","action","handleDrop","onReorderDrop","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"th-resize-handle.js","sources":["../../../../src/components/hds/advanced-table/th-resize-handle.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { modifier } from 'ember-modifier';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { BORDER_WIDTH } from './index.ts';\nimport type Owner from '@ember/owner';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nfunction calculateEffectiveDelta(\n deltaX: number,\n col: HdsAdvancedTableColumn,\n startColW: number,\n nextCol: HdsAdvancedTableColumn,\n startNextColW: number\n): number {\n const colMin = col.pxMinWidth ?? 0;\n const colMax = col.pxMaxWidth ?? Infinity;\n const nextMin = nextCol.pxMinWidth ?? 0;\n const nextMax = nextCol.pxMaxWidth ?? Infinity;\n\n let effectiveDelta = 0;\n\n // expanding col, shrinking nextCol\n if (deltaX > 0) {\n const maxCanExpandCol = colMax - startColW;\n const maxCanShrinkNext = startNextColW - nextMin;\n\n effectiveDelta = Math.min(deltaX, maxCanExpandCol, maxCanShrinkNext);\n effectiveDelta = Math.max(0, effectiveDelta);\n }\n // shrinking col, expanding nextCol\n else if (deltaX < 0) {\n const absDeltaX = -deltaX;\n const maxCanShrinkCol = startColW - colMin;\n\n let maxCanExpandNext: number;\n if (startNextColW > nextMax) {\n maxCanExpandNext = Infinity;\n } else {\n maxCanExpandNext = nextMax - startNextColW;\n }\n\n effectiveDelta = -Math.min(absDeltaX, maxCanShrinkCol, maxCanExpandNext);\n effectiveDelta = Math.min(0, effectiveDelta);\n }\n\n return effectiveDelta;\n}\n\nexport interface HdsAdvancedTableThResizeHandleSignature {\n Args: {\n column: HdsAdvancedTableColumn;\n tableHeight?: number;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThResizeHandle extends Component<HdsAdvancedTableThResizeHandleSignature> {\n @tracked resizing: {\n startX: number;\n startColumnPxWidth: number;\n startNextColumnPxWidth?: number;\n } | null = null;\n // track the width change as it is changing, applied when resizing stops\n @tracked private _transientDelta: number = 0;\n @tracked private _isUpdateQueued: boolean = false;\n @tracked private _lastPointerEvent: PointerEvent | null = null;\n\n private _handleElement!: HdsAdvancedTableThResizeHandleSignature['Element'];\n private _boundResize: (event: PointerEvent) => void;\n private _boundStopResize: () => void;\n\n private _registerHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._handleElement = element;\n }\n );\n\n constructor(\n owner: Owner,\n args: HdsAdvancedTableThResizeHandleSignature['Args']\n ) {\n super(owner, args);\n\n this._boundResize = this._resize.bind(this);\n this._boundStopResize = this._stopResize.bind(this);\n }\n\n get height(): string | undefined {\n const { tableHeight } = this.args;\n\n if (tableHeight === undefined) {\n return;\n }\n\n return `${tableHeight - BORDER_WIDTH * 2}px`;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__th-resize-handle'];\n\n if (this.resizing !== null) {\n classes.push('hds-advanced-table__th-resize-handle--resizing');\n }\n\n return classes.join(' ');\n }\n\n private _applyTransientWidths() {\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n column.width = column.appliedWidth;\n\n if (nextColumn !== undefined) {\n nextColumn.width = nextColumn.appliedWidth;\n }\n }\n\n @action\n onColumnResize(key?: string, width?: string): void {\n const { onColumnResize } = this.args;\n\n if (typeof onColumnResize === 'function' && key !== undefined) {\n onColumnResize(key, width);\n }\n }\n\n @action\n handleKeydown(event: KeyboardEvent): void {\n const validKeys = ['ArrowLeft', 'ArrowRight'];\n\n if (!validKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n if (nextColumn === undefined) {\n return;\n }\n\n column.table.setTransientColumnWidths({ roundValues: true });\n\n const startColumnPxWidth = Math.round(column.pxAppliedWidth ?? 0);\n const startNextColumnPxWidth = Math.round(nextColumn.pxAppliedWidth ?? 0);\n const deltaX =\n event.key === 'ArrowRight' ? KEYBOARD_RESIZE_STEP : -KEYBOARD_RESIZE_STEP;\n\n this._applyResizeDelta(\n deltaX,\n column,\n startColumnPxWidth,\n nextColumn,\n startNextColumnPxWidth\n );\n\n // ensure the resize handle remains visible during keyboard navigation.\n this._handleElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n\n // use a microtask to commit the final state after the render pass.\n queueMicrotask(() => {\n // reset transient values\n this._setWidthDebts();\n this._applyTransientWidths();\n column.table.resetTransientColumnWidths();\n this._transientDelta = 0;\n\n this.onColumnResize(column.key, column.width);\n });\n }\n\n @action\n startResize(event: PointerEvent): void {\n if (event.button !== 0) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n column.table.setTransientColumnWidths();\n\n this.resizing = {\n startX: event.clientX,\n startColumnPxWidth: Math.round(column.pxAppliedWidth ?? 0),\n startNextColumnPxWidth: Math.round(nextColumn?.pxAppliedWidth ?? 0),\n };\n\n window.addEventListener('pointermove', this._boundResize);\n window.addEventListener('pointerup', this._boundStopResize);\n }\n\n private _setColumnWidth(column: HdsAdvancedTableColumn, width: number): void {\n if (width > column.pxMaxWidth || width < column.pxMinWidth) {\n column.pxTransientWidth = width;\n } else {\n column.setPxTransientWidth(width);\n }\n }\n\n private _applyResizeDelta(\n deltaX: number,\n column: HdsAdvancedTableColumn,\n startColumnPxWidth: number,\n nextColumn?: HdsAdvancedTableColumn,\n startNextColumnPxWidth?: number\n ): void {\n const canResizeNeighbor =\n nextColumn !== undefined && startNextColumnPxWidth !== undefined;\n\n if (canResizeNeighbor) {\n const effectiveDelta = calculateEffectiveDelta(\n deltaX,\n column,\n startColumnPxWidth,\n nextColumn,\n startNextColumnPxWidth\n );\n\n // set the width for the current column\n this._setColumnWidth(\n column,\n Math.round(startColumnPxWidth + effectiveDelta)\n );\n\n // the actual new column width may differ from the intended width due to min/max constraints.\n const actualNewColumnWidth = column.pxAppliedWidth ?? startColumnPxWidth;\n const actualAppliedDelta = actualNewColumnWidth - startColumnPxWidth;\n\n // set the width for the next sibling column\n this._setColumnWidth(\n nextColumn,\n Math.round(startNextColumnPxWidth - actualAppliedDelta)\n );\n\n this._transientDelta = actualAppliedDelta;\n } else {\n column.setPxTransientWidth(Math.round(startColumnPxWidth + deltaX));\n }\n }\n\n private _resize(event: PointerEvent): void {\n this._lastPointerEvent = event;\n\n if (this._isUpdateQueued) {\n return;\n }\n\n this._isUpdateQueued = true;\n\n requestAnimationFrameWaiter(() => {\n if (this.resizing === null || this._lastPointerEvent === null) {\n this._isUpdateQueued = false;\n\n return;\n }\n\n const event = this._lastPointerEvent;\n\n event.preventDefault();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n const { startX, startColumnPxWidth, startNextColumnPxWidth } =\n this.resizing;\n const deltaX = event.clientX - startX;\n\n this._applyResizeDelta(\n deltaX,\n column,\n startColumnPxWidth, // Width at the start of the drag\n nextColumn,\n startNextColumnPxWidth // Width of next col at the start of the drag\n );\n\n this._isUpdateQueued = false;\n });\n }\n\n private _stopResize(): void {\n const { column } = this.args;\n\n window.removeEventListener('pointermove', this._boundResize);\n window.removeEventListener('pointerup', this._boundStopResize);\n\n this._setWidthDebts();\n\n this._applyTransientWidths();\n\n // reset the transient width\n column.table.resetTransientColumnWidths();\n\n // reset the resizing state\n this.resizing = null;\n this._transientDelta = 0;\n\n this.onColumnResize(column.key, column.appliedWidth);\n }\n\n private _addDebt(\n borrower: HdsAdvancedTableColumn,\n lenderKey: string,\n amount: number\n ): void {\n borrower.widthDebts = {\n ...borrower.widthDebts,\n [lenderKey]: (borrower.widthDebts[lenderKey] ?? 0) + amount,\n };\n }\n\n private _setWidthDebts(): void {\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n const delta = this._transientDelta;\n\n if (\n delta === 0 ||\n nextColumn === undefined ||\n nextColumn.key === undefined ||\n column.key === undefined\n ) {\n return;\n }\n\n // Determine the borrower, lender, and the amount of width transferred\n const borrower = delta > 0 ? column : nextColumn;\n const lender = delta > 0 ? nextColumn : column;\n let amount = Math.abs(delta);\n\n if (borrower.key === undefined || lender.key === undefined) {\n return;\n }\n\n // Check if the lender already has a debt to the borrower.\n // If so, this transaction is a \"payment\" against that existing debt.\n const existingDebt = lender.widthDebts[borrower.key] ?? 0;\n\n if (existingDebt > 0) {\n const paymentAmount = Math.min(amount, existingDebt);\n\n // Reduce the lender's debt by the payment amount\n lender.widthDebts[borrower.key] = existingDebt - paymentAmount;\n\n if (lender.widthDebts[borrower.key]! <= 0) {\n delete lender.widthDebts[borrower.key];\n }\n\n // The amount of the new debt is reduced by the amount paid\n amount = amount - paymentAmount;\n }\n\n // If there is still a remaining amount, create a new debt for the borrower.\n if (amount > 0) {\n this._addDebt(borrower, lender.key, amount);\n }\n }\n}\n"],"names":["KEYBOARD_RESIZE_STEP","calculateEffectiveDelta","deltaX","col","startColW","nextCol","startNextColW","colMin","pxMinWidth","colMax","pxMaxWidth","Infinity","nextMin","nextMax","effectiveDelta","maxCanExpandCol","maxCanShrinkNext","Math","min","max","absDeltaX","maxCanShrinkCol","maxCanExpandNext","HdsAdvancedTableThResizeHandle","Component","g","prototype","tracked","i","_handleElement","_boundResize","_boundStopResize","_registerHandleElement","modifier","element","constructor","owner","args","_resize","bind","_stopResize","height","tableHeight","undefined","BORDER_WIDTH","classNames","classes","resizing","push","join","_applyTransientWidths","column","next","nextColumn","siblings","width","appliedWidth","onColumnResize","key","n","action","handleKeydown","event","validKeys","includes","preventDefault","stopPropagation","table","setTransientColumnWidths","roundValues","startColumnPxWidth","round","pxAppliedWidth","startNextColumnPxWidth","_applyResizeDelta","scrollIntoView","behavior","block","inline","queueMicrotask","_setWidthDebts","resetTransientColumnWidths","_transientDelta","startResize","button","startX","clientX","window","addEventListener","_setColumnWidth","pxTransientWidth","setPxTransientWidth","canResizeNeighbor","actualNewColumnWidth","actualAppliedDelta","_lastPointerEvent","_isUpdateQueued","requestAnimationFrameWaiter","removeEventListener","_addDebt","borrower","lenderKey","amount","widthDebts","delta","lender","abs","existingDebt","paymentAmount","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th-resize-handle.js","sources":["../../../../src/components/hds/advanced-table/th-resize-handle.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { modifier } from 'ember-modifier';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { BORDER_WIDTH } from './index.ts';\nimport type Owner from '@ember/owner';\n\nimport type HdsAdvancedTableColumn from './models/column.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nfunction calculateEffectiveDelta(\n deltaX: number,\n col: HdsAdvancedTableColumn,\n startColW: number,\n nextCol: HdsAdvancedTableColumn,\n startNextColW: number\n): number {\n const colMin = col.pxMinWidth ?? 0;\n const colMax = col.pxMaxWidth ?? Infinity;\n const nextMin = nextCol.pxMinWidth ?? 0;\n const nextMax = nextCol.pxMaxWidth ?? Infinity;\n\n let effectiveDelta = 0;\n\n // expanding col, shrinking nextCol\n if (deltaX > 0) {\n const maxCanExpandCol = colMax - startColW;\n const maxCanShrinkNext = startNextColW - nextMin;\n\n effectiveDelta = Math.min(deltaX, maxCanExpandCol, maxCanShrinkNext);\n effectiveDelta = Math.max(0, effectiveDelta);\n }\n // shrinking col, expanding nextCol\n else if (deltaX < 0) {\n const absDeltaX = -deltaX;\n const maxCanShrinkCol = startColW - colMin;\n\n let maxCanExpandNext: number;\n if (startNextColW > nextMax) {\n maxCanExpandNext = Infinity;\n } else {\n maxCanExpandNext = nextMax - startNextColW;\n }\n\n effectiveDelta = -Math.min(absDeltaX, maxCanShrinkCol, maxCanExpandNext);\n effectiveDelta = Math.min(0, effectiveDelta);\n }\n\n return effectiveDelta;\n}\n\nexport interface HdsAdvancedTableThResizeHandleSignature {\n Args: {\n column: HdsAdvancedTableColumn;\n tableHeight?: number;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThResizeHandle extends Component<HdsAdvancedTableThResizeHandleSignature> {\n @tracked resizing: {\n startX: number;\n startColumnPxWidth: number;\n startNextColumnPxWidth?: number;\n } | null = null;\n // track the width change as it is changing, applied when resizing stops\n @tracked private _transientDelta: number = 0;\n @tracked private _isUpdateQueued: boolean = false;\n @tracked private _lastPointerEvent: PointerEvent | null = null;\n\n private _handleElement!: HdsAdvancedTableThResizeHandleSignature['Element'];\n private _boundResize: (event: PointerEvent) => void;\n private _boundStopResize: () => void;\n\n private _registerHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._handleElement = element;\n }\n );\n\n constructor(\n owner: Owner,\n args: HdsAdvancedTableThResizeHandleSignature['Args']\n ) {\n super(owner, args);\n\n this._boundResize = this._resize.bind(this);\n this._boundStopResize = this._stopResize.bind(this);\n }\n\n get height(): string | undefined {\n const { tableHeight } = this.args;\n\n if (tableHeight === undefined) {\n return;\n }\n\n return `${tableHeight - BORDER_WIDTH * 2}px`;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__th-resize-handle'];\n\n if (this.resizing !== null) {\n classes.push('hds-advanced-table__th-resize-handle--resizing');\n }\n\n return classes.join(' ');\n }\n\n private _applyTransientWidths() {\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n column.width = column.appliedWidth;\n\n if (nextColumn !== undefined) {\n nextColumn.width = nextColumn.appliedWidth;\n }\n }\n\n @action\n onColumnResize(key?: string, width?: string): void {\n const { onColumnResize } = this.args;\n\n if (typeof onColumnResize === 'function' && key !== undefined) {\n onColumnResize(key, width);\n }\n }\n\n @action\n handleKeydown(event: KeyboardEvent): void {\n const validKeys = ['ArrowLeft', 'ArrowRight'];\n\n if (!validKeys.includes(event.key)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n if (nextColumn === undefined) {\n return;\n }\n\n column.table.setTransientColumnWidths({ roundValues: true });\n\n const startColumnPxWidth = Math.round(column.pxAppliedWidth ?? 0);\n const startNextColumnPxWidth = Math.round(nextColumn.pxAppliedWidth ?? 0);\n const deltaX =\n event.key === 'ArrowRight' ? KEYBOARD_RESIZE_STEP : -KEYBOARD_RESIZE_STEP;\n\n this._applyResizeDelta(\n deltaX,\n column,\n startColumnPxWidth,\n nextColumn,\n startNextColumnPxWidth\n );\n\n // ensure the resize handle remains visible during keyboard navigation.\n this._handleElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n\n // use a microtask to commit the final state after the render pass.\n queueMicrotask(() => {\n // reset transient values\n this._setWidthDebts();\n this._applyTransientWidths();\n column.table.resetTransientColumnWidths();\n this._transientDelta = 0;\n\n this.onColumnResize(column.key, column.width);\n });\n }\n\n @action\n startResize(event: PointerEvent): void {\n if (event.button !== 0) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n\n column.table.setTransientColumnWidths();\n\n this.resizing = {\n startX: event.clientX,\n startColumnPxWidth: Math.round(column.pxAppliedWidth ?? 0),\n startNextColumnPxWidth: Math.round(nextColumn?.pxAppliedWidth ?? 0),\n };\n\n window.addEventListener('pointermove', this._boundResize);\n window.addEventListener('pointerup', this._boundStopResize);\n }\n\n private _setColumnWidth(column: HdsAdvancedTableColumn, width: number): void {\n if (width > column.pxMaxWidth || width < column.pxMinWidth) {\n column.pxTransientWidth = width;\n } else {\n column.setPxTransientWidth(width);\n }\n }\n\n private _applyResizeDelta(\n deltaX: number,\n column: HdsAdvancedTableColumn,\n startColumnPxWidth: number,\n nextColumn?: HdsAdvancedTableColumn,\n startNextColumnPxWidth?: number\n ): void {\n const canResizeNeighbor =\n nextColumn !== undefined && startNextColumnPxWidth !== undefined;\n\n if (canResizeNeighbor) {\n const effectiveDelta = calculateEffectiveDelta(\n deltaX,\n column,\n startColumnPxWidth,\n nextColumn,\n startNextColumnPxWidth\n );\n\n // set the width for the current column\n this._setColumnWidth(\n column,\n Math.round(startColumnPxWidth + effectiveDelta)\n );\n\n // the actual new column width may differ from the intended width due to min/max constraints.\n const actualNewColumnWidth = column.pxAppliedWidth ?? startColumnPxWidth;\n const actualAppliedDelta = actualNewColumnWidth - startColumnPxWidth;\n\n // set the width for the next sibling column\n this._setColumnWidth(\n nextColumn,\n Math.round(startNextColumnPxWidth - actualAppliedDelta)\n );\n\n this._transientDelta = actualAppliedDelta;\n } else {\n column.setPxTransientWidth(Math.round(startColumnPxWidth + deltaX));\n }\n }\n\n private _resize(event: PointerEvent): void {\n this._lastPointerEvent = event;\n\n if (this._isUpdateQueued) {\n return;\n }\n\n this._isUpdateQueued = true;\n\n requestAnimationFrameWaiter(() => {\n if (this.resizing === null || this._lastPointerEvent === null) {\n this._isUpdateQueued = false;\n\n return;\n }\n\n const event = this._lastPointerEvent;\n\n event.preventDefault();\n\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n const { startX, startColumnPxWidth, startNextColumnPxWidth } =\n this.resizing;\n const deltaX = event.clientX - startX;\n\n this._applyResizeDelta(\n deltaX,\n column,\n startColumnPxWidth, // Width at the start of the drag\n nextColumn,\n startNextColumnPxWidth // Width of next col at the start of the drag\n );\n\n this._isUpdateQueued = false;\n });\n }\n\n private _stopResize(): void {\n const { column } = this.args;\n\n window.removeEventListener('pointermove', this._boundResize);\n window.removeEventListener('pointerup', this._boundStopResize);\n\n this._setWidthDebts();\n\n this._applyTransientWidths();\n\n // reset the transient width\n column.table.resetTransientColumnWidths();\n\n // reset the resizing state\n this.resizing = null;\n this._transientDelta = 0;\n\n this.onColumnResize(column.key, column.appliedWidth);\n }\n\n private _addDebt(\n borrower: HdsAdvancedTableColumn,\n lenderKey: string,\n amount: number\n ): void {\n borrower.widthDebts = {\n ...borrower.widthDebts,\n [lenderKey]: (borrower.widthDebts[lenderKey] ?? 0) + amount,\n };\n }\n\n private _setWidthDebts(): void {\n const { column } = this.args;\n const { next: nextColumn } = column.siblings;\n const delta = this._transientDelta;\n\n if (\n delta === 0 ||\n nextColumn === undefined ||\n nextColumn.key === undefined ||\n column.key === undefined\n ) {\n return;\n }\n\n // Determine the borrower, lender, and the amount of width transferred\n const borrower = delta > 0 ? column : nextColumn;\n const lender = delta > 0 ? nextColumn : column;\n let amount = Math.abs(delta);\n\n if (borrower.key === undefined || lender.key === undefined) {\n return;\n }\n\n // Check if the lender already has a debt to the borrower.\n // If so, this transaction is a \"payment\" against that existing debt.\n const existingDebt = lender.widthDebts[borrower.key] ?? 0;\n\n if (existingDebt > 0) {\n const paymentAmount = Math.min(amount, existingDebt);\n\n // Reduce the lender's debt by the payment amount\n lender.widthDebts[borrower.key] = existingDebt - paymentAmount;\n\n if (lender.widthDebts[borrower.key]! <= 0) {\n delete lender.widthDebts[borrower.key];\n }\n\n // The amount of the new debt is reduced by the amount paid\n amount = amount - paymentAmount;\n }\n\n // If there is still a remaining amount, create a new debt for the borrower.\n if (amount > 0) {\n this._addDebt(borrower, lender.key, amount);\n }\n }\n}\n"],"names":["KEYBOARD_RESIZE_STEP","calculateEffectiveDelta","deltaX","col","startColW","nextCol","startNextColW","colMin","pxMinWidth","colMax","pxMaxWidth","Infinity","nextMin","nextMax","effectiveDelta","maxCanExpandCol","maxCanShrinkNext","Math","min","max","absDeltaX","maxCanShrinkCol","maxCanExpandNext","HdsAdvancedTableThResizeHandle","Component","g","prototype","tracked","i","void 0","_handleElement","_boundResize","_boundStopResize","_registerHandleElement","modifier","element","constructor","owner","args","_resize","bind","_stopResize","height","tableHeight","undefined","BORDER_WIDTH","classNames","classes","resizing","push","join","_applyTransientWidths","column","next","nextColumn","siblings","width","appliedWidth","onColumnResize","key","n","action","handleKeydown","event","validKeys","includes","preventDefault","stopPropagation","table","setTransientColumnWidths","roundValues","startColumnPxWidth","round","pxAppliedWidth","startNextColumnPxWidth","_applyResizeDelta","scrollIntoView","behavior","block","inline","queueMicrotask","_setWidthDebts","resetTransientColumnWidths","_transientDelta","startResize","button","startX","clientX","window","addEventListener","_setColumnWidth","pxTransientWidth","setPxTransientWidth","canResizeNeighbor","actualNewColumnWidth","actualAppliedDelta","_lastPointerEvent","_isUpdateQueued","requestAnimationFrameWaiter","removeEventListener","_addDebt","borrower","lenderKey","amount","widthDebts","delta","lender","abs","existingDebt","paymentAmount","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/advanced-table/th-selectable.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\n\nimport {\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\n\nexport interface HdsAdvancedTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsAdvancedTableScope;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n };\n Element: HdsAdvancedTableThSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThSelectable extends Component<HdsAdvancedTableThSelectableSignature> {\n @tracked private _isSelected = this.args.isSelected ?? false;\n\n private _guid = guidFor(this);\n private _checkboxId = `checkbox-${this._guid}`;\n private _labelId = `label-${this._guid}`;\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix = 'row' } = this.args;\n return `Select ${selectionAriaLabelSuffix}`;\n }\n\n get ariaSort(): HdsAdvancedTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsAdvancedTableThSortOrderValues.Asc:\n return HdsAdvancedTableThSortOrderLabelValues.Asc;\n case HdsAdvancedTableThSortOrderValues.Desc:\n return HdsAdvancedTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsAdvancedTableThSortOrderLabelValues.None;\n }\n }\n\n private _manageCheckbox = modifier(\n (checkbox: HdsFormCheckboxBaseSignature['Element']) => {\n const { didInsert, willDestroy } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n }\n\n return () => {\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n }\n };\n }\n );\n\n @action\n onSelectionChange(event: Event): void {\n // Assert event.target as HdsFormCheckboxBaseSignature['Element'] to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this._isSelected = target.checked;\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(target, this.args.selectionKey);\n }\n }\n}\n"],"names":["HdsAdvancedTableThSelectable","Component","g","prototype","tracked","args","isSelected","i","_guid","guidFor","_checkboxId","_labelId","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","ariaSort","sortBySelectedOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","_manageCheckbox","modifier","checkbox","didInsert","willDestroy","selectionKey","onSelectionChange","event","target","_isSelected","checked","n","action","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AA2Ce,MAAMA,4BAA4B,SAASC,SAAS,CAAwC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CACxGC,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuB,IAAI,CAACC,IAAI,CAACC,UAAU,IAAI,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,MAAA;AAEpDC,EAAAA,KAAK,GAAGC,OAAO,CAAC,IAAI,CAAC;AACrBC,EAAAA,WAAW,GAAG,CAAA,SAAA,EAAY,IAAI,CAACF,KAAK,CAAA,CAAE;AACtCG,EAAAA,QAAQ,GAAG,CAAA,MAAA,EAAS,IAAI,CAACH,KAAK,CAAA,CAAE;EAExC,IAAII,UAAUA,GAAY;AACxB,IAAA,OAAO,IAAI,CAACP,IAAI,CAACQ,qBAAqB,KAAKC,SAAS;AACtD,EAAA;EAEA,IAAIC,SAASA,GAAW;IACtB,MAAM;AAAEC,MAAAA,wBAAwB,GAAG;KAAO,GAAG,IAAI,CAACX,IAAI;IACtD,OAAO,CAAA,OAAA,EAAUW,wBAAwB,CAAA,CAAE;AAC7C,EAAA;EAEA,IAAIC,QAAQA,GAAkD;AAC5D,IAAA,QAAQ,IAAI,CAACZ,IAAI,CAACa,mBAAmB;MACnC,KAAKC,iCAAiC,CAACC,GAAG;QACxC,OAAOC,sCAAsC,CAACD,GAAG;MACnD,KAAKD,iCAAiC,CAACG,IAAI;QACzC,OAAOD,sCAAsC,CAACC,IAAI;AACpD,MAAA;AACE;QACA,OAAOD,sCAAsC,CAACE,IAAI;AACtD;AACF,EAAA;AAEQC,EAAAA,eAAe,GAAGC,QAAQ,CAC/BC,QAAiD,IAAK;IACrD,MAAM;MAAEC,SAAS;AAAEC,MAAAA;KAAa,GAAG,IAAI,CAACvB,IAAI;AAC5C,IAAA,IAAI,OAAOsB,SAAS,KAAK,UAAU,EAAE;MACnCA,SAAS,CAACD,QAAQ,EAAE,IAAI,CAACrB,IAAI,CAACwB,YAAY,CAAC;AAC7C,IAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,OAAOD,WAAW,KAAK,UAAU,EAAE;AACrCA,QAAAA,WAAW,CAAC,IAAI,CAACvB,IAAI,CAACwB,YAAY,CAAC;AACrC,MAAA;IACF,CAAC;AACH,EAAA,CACF,CAAC;EAGDC,iBAAiBA,CAACC,KAAY,EAAQ;AACpC;AACA,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAiD;AACtE,IAAA,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACE,OAAO;IACjC,MAAM;AAAEJ,MAAAA;KAAmB,GAAG,IAAI,CAACzB,IAAI;AACvC,IAAA,IAAI,OAAOyB,iBAAiB,KAAK,UAAU,EAAE;MAC3CA,iBAAiB,CAACE,MAAM,EAAE,IAAI,CAAC3B,IAAI,CAACwB,YAAY,CAAC;AACnD,IAAA;AACF,EAAA;AAAC,EAAA;IAAAM,CAAA,CAAA,IAAA,CAAAhC,SAAA,EAAA,mBAAA,EAAA,CATAiC,MAAM,CAAA,CAAA;AAAA;AAUT;AAACC,oBAAA,CAAAC,QAAA,EArDoBtC,4BAA4B,CAAA;;;;"}
1
+ {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/advanced-table/th-selectable.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\n\nimport {\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\n\nexport interface HdsAdvancedTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsAdvancedTableScope;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n };\n Element: HdsAdvancedTableThSignature['Element'];\n}\n\nexport default class HdsAdvancedTableThSelectable extends Component<HdsAdvancedTableThSelectableSignature> {\n @tracked private _isSelected = this.args.isSelected ?? false;\n\n private _guid = guidFor(this);\n private _checkboxId = `checkbox-${this._guid}`;\n private _labelId = `label-${this._guid}`;\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix = 'row' } = this.args;\n return `Select ${selectionAriaLabelSuffix}`;\n }\n\n get ariaSort(): HdsAdvancedTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsAdvancedTableThSortOrderValues.Asc:\n return HdsAdvancedTableThSortOrderLabelValues.Asc;\n case HdsAdvancedTableThSortOrderValues.Desc:\n return HdsAdvancedTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsAdvancedTableThSortOrderLabelValues.None;\n }\n }\n\n private _manageCheckbox = modifier(\n (checkbox: HdsFormCheckboxBaseSignature['Element']) => {\n const { didInsert, willDestroy } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n }\n\n return () => {\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n }\n };\n }\n );\n\n @action\n onSelectionChange(event: Event): void {\n // Assert event.target as HdsFormCheckboxBaseSignature['Element'] to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this._isSelected = target.checked;\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(target, this.args.selectionKey);\n }\n }\n}\n"],"names":["HdsAdvancedTableThSelectable","Component","g","prototype","tracked","args","isSelected","i","void 0","_guid","guidFor","_checkboxId","_labelId","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","ariaSort","sortBySelectedOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","_manageCheckbox","modifier","checkbox","didInsert","willDestroy","selectionKey","onSelectionChange","event","target","_isSelected","checked","n","action","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AA2Ce,MAAMA,4BAA4B,SAASC,SAAS,CAAwC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CACxGC,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuB,IAAI,CAACC,IAAI,CAACC,UAAU,IAAI,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAC,MAAA;AAEpDC,EAAAA,KAAK,GAAGC,OAAO,CAAC,IAAI,CAAC;AACrBC,EAAAA,WAAW,GAAG,CAAA,SAAA,EAAY,IAAI,CAACF,KAAK,CAAA,CAAE;AACtCG,EAAAA,QAAQ,GAAG,CAAA,MAAA,EAAS,IAAI,CAACH,KAAK,CAAA,CAAE;EAExC,IAAII,UAAUA,GAAY;AACxB,IAAA,OAAO,IAAI,CAACR,IAAI,CAACS,qBAAqB,KAAKC,SAAS;AACtD,EAAA;EAEA,IAAIC,SAASA,GAAW;IACtB,MAAM;AAAEC,MAAAA,wBAAwB,GAAG;KAAO,GAAG,IAAI,CAACZ,IAAI;IACtD,OAAO,CAAA,OAAA,EAAUY,wBAAwB,CAAA,CAAE;AAC7C,EAAA;EAEA,IAAIC,QAAQA,GAAkD;AAC5D,IAAA,QAAQ,IAAI,CAACb,IAAI,CAACc,mBAAmB;MACnC,KAAKC,iCAAiC,CAACC,GAAG;QACxC,OAAOC,sCAAsC,CAACD,GAAG;MACnD,KAAKD,iCAAiC,CAACG,IAAI;QACzC,OAAOD,sCAAsC,CAACC,IAAI;AACpD,MAAA;AACE;QACA,OAAOD,sCAAsC,CAACE,IAAI;AACtD;AACF,EAAA;AAEQC,EAAAA,eAAe,GAAGC,QAAQ,CAC/BC,QAAiD,IAAK;IACrD,MAAM;MAAEC,SAAS;AAAEC,MAAAA;KAAa,GAAG,IAAI,CAACxB,IAAI;AAC5C,IAAA,IAAI,OAAOuB,SAAS,KAAK,UAAU,EAAE;MACnCA,SAAS,CAACD,QAAQ,EAAE,IAAI,CAACtB,IAAI,CAACyB,YAAY,CAAC;AAC7C,IAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,OAAOD,WAAW,KAAK,UAAU,EAAE;AACrCA,QAAAA,WAAW,CAAC,IAAI,CAACxB,IAAI,CAACyB,YAAY,CAAC;AACrC,MAAA;IACF,CAAC;AACH,EAAA,CACF,CAAC;EAGDC,iBAAiBA,CAACC,KAAY,EAAQ;AACpC;AACA,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAiD;AACtE,IAAA,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACE,OAAO;IACjC,MAAM;AAAEJ,MAAAA;KAAmB,GAAG,IAAI,CAAC1B,IAAI;AACvC,IAAA,IAAI,OAAO0B,iBAAiB,KAAK,UAAU,EAAE;MAC3CA,iBAAiB,CAACE,MAAM,EAAE,IAAI,CAAC5B,IAAI,CAACyB,YAAY,CAAC;AACnD,IAAA;AACF,EAAA;AAAC,EAAA;IAAAM,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,mBAAA,EAAA,CATAkC,MAAM,CAAA,CAAA;AAAA;AAUT;AAACC,oBAAA,CAAAC,QAAA,EArDoBvC,4BAA4B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/advanced-table/th-sort.ts"],"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 { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport type Owner from '@ember/owner';\nimport { modifier } from 'ember-modifier';\n\nimport {\n HdsAdvancedTableHorizontalAlignmentValues,\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type HdsAdvancedTableColumn from './models/column.ts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableThSortSignature {\n Args: {\n column?: HdsAdvancedTableThSignature['Args']['column'];\n align?: HdsAdvancedTableHorizontalAlignment;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick'];\n sortOrder?: HdsAdvancedTableThSortOrder;\n tooltip?: string;\n rowspan?: number;\n colspan?: number;\n tableHeight?: number;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n onReorderDragEnd?: () => void;\n onReorderDragStart?: (column: HdsAdvancedTableColumn) => void;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThSort extends Component<HdsAdvancedTableThSortSignature> {\n private _labelId = guidFor(this);\n private _element!: HTMLDivElement;\n\n @tracked private _shouldTrapFocus = false;\n @tracked\n private _reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n @tracked\n private _resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n\n constructor(owner: Owner, args: HdsAdvancedTableThSortSignature['Args']) {\n super(owner, args);\n\n const { rowspan, colspan, isStickyColumn } = args;\n\n if (isStickyColumn) {\n assert(\n 'Cannot have custom rowspan or colspan if there are nested rows.',\n rowspan === undefined || colspan === undefined\n );\n }\n }\n\n get ariaSort(): HdsAdvancedTableThSortOrderLabels {\n switch (this.args.sortOrder) {\n case HdsAdvancedTableThSortOrderValues.Asc:\n return HdsAdvancedTableThSortOrderLabelValues.Asc;\n case HdsAdvancedTableThSortOrderValues.Desc:\n return HdsAdvancedTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsAdvancedTableThSortOrderLabelValues.None;\n }\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table\" 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__th', 'hds-advanced-table__th--sort'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (this.args.isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (this.args.isStickyColumn && this.args.isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.args.column?.isBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n @action\n handleDragStart(column: HdsAdvancedTableColumn): void {\n this.args.onReorderDragStart?.(column);\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 if (this.args.column !== undefined) {\n this.args.column.thElement = element;\n }\n }\n\n private _registerReorderHandleElement = modifier(\n (element: HdsAdvancedTableThReorderHandleSignature['Element']) => {\n this._reorderHandleElement = element;\n }\n );\n\n private _registerResizeHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._resizeHandleElement = element;\n }\n );\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableThSort","Component","_labelId","guidFor","_element","g","prototype","tracked","i","constructor","owner","args","rowspan","colspan","isStickyColumn","assert","undefined","ariaSort","sortOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","align","join","includes","classNames","classes","push","isStickyColumnPinned","column","isBeingDragged","handleDragStart","onReorderDragStart","n","action","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","thElement","_registerReorderHandleElement","modifier","_reorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/advanced-table/th-sort.ts"],"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 { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport type Owner from '@ember/owner';\nimport { modifier } from 'ember-modifier';\n\nimport {\n HdsAdvancedTableHorizontalAlignmentValues,\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type HdsAdvancedTableColumn from './models/column.ts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableThSortSignature {\n Args: {\n column?: HdsAdvancedTableThSignature['Args']['column'];\n align?: HdsAdvancedTableHorizontalAlignment;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick'];\n sortOrder?: HdsAdvancedTableThSortOrder;\n tooltip?: string;\n rowspan?: number;\n colspan?: number;\n tableHeight?: number;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n onReorderDragEnd?: () => void;\n onReorderDragStart?: (column: HdsAdvancedTableColumn) => void;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableThSort extends Component<HdsAdvancedTableThSortSignature> {\n private _labelId = guidFor(this);\n private _element!: HTMLDivElement;\n\n @tracked private _shouldTrapFocus = false;\n @tracked\n private _reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n @tracked\n private _resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n\n constructor(owner: Owner, args: HdsAdvancedTableThSortSignature['Args']) {\n super(owner, args);\n\n const { rowspan, colspan, isStickyColumn } = args;\n\n if (isStickyColumn) {\n assert(\n 'Cannot have custom rowspan or colspan if there are nested rows.',\n rowspan === undefined || colspan === undefined\n );\n }\n }\n\n get ariaSort(): HdsAdvancedTableThSortOrderLabels {\n switch (this.args.sortOrder) {\n case HdsAdvancedTableThSortOrderValues.Asc:\n return HdsAdvancedTableThSortOrderLabelValues.Asc;\n case HdsAdvancedTableThSortOrderValues.Desc:\n return HdsAdvancedTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsAdvancedTableThSortOrderLabelValues.None;\n }\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table\" 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__th', 'hds-advanced-table__th--sort'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (this.args.isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (this.args.isStickyColumn && this.args.isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.args.column?.isBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n @action\n handleDragStart(column: HdsAdvancedTableColumn): void {\n this.args.onReorderDragStart?.(column);\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 if (this.args.column !== undefined) {\n this.args.column.thElement = element;\n }\n }\n\n private _registerReorderHandleElement = modifier(\n (element: HdsAdvancedTableThReorderHandleSignature['Element']) => {\n this._reorderHandleElement = element;\n }\n );\n\n private _registerResizeHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._resizeHandleElement = element;\n }\n );\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableThSort","Component","_labelId","guidFor","_element","g","prototype","tracked","i","void 0","constructor","owner","args","rowspan","colspan","isStickyColumn","assert","undefined","ariaSort","sortOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","align","join","includes","classNames","classes","push","isStickyColumnPinned","column","isBeingDragged","handleDragStart","onReorderDragStart","n","action","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","thElement","_registerReorderHandleElement","modifier","_reorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AA8BO,MAAMA,UAAiD,GAAGC,MAAM,CAACC,MAAM,CAC5EC,yCACF;AACO,MAAMC,aAAa,GAAGD,yCAAyC,CAACE;AAgCxD,MAAMC,sBAAsB,SAASC,SAAS,CAAkC;AACrFC,EAAAA,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC;EACxBC,QAAQ;AAAkB,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAEjCC,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,KAAK;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,uBAAA,EAAA,CACxCC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,sBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,uBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,sBAAA,EAAA,CAEPC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAC,MAAA;AAGRC,EAAAA,WAAWA,CAACC,KAAY,EAAEC,IAA6C,EAAE;AACvE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElB,MAAM;MAAEC,OAAO;MAAEC,OAAO;AAAEC,MAAAA;AAAe,KAAC,GAAGH,IAAI;AAEjD,IAAA,IAAIG,cAAc,EAAE;MAClBC,MAAM,CACJ,iEAAiE,EACjEH,OAAO,KAAKI,SAAS,IAAIH,OAAO,KAAKG,SACvC,CAAC;AACH,IAAA;AACF,EAAA;EAEA,IAAIC,QAAQA,GAAsC;AAChD,IAAA,QAAQ,IAAI,CAACN,IAAI,CAACO,SAAS;MACzB,KAAKC,iCAAiC,CAACC,GAAG;QACxC,OAAOC,sCAAsC,CAACD,GAAG;MACnD,KAAKD,iCAAiC,CAACG,IAAI;QACzC,OAAOD,sCAAsC,CAACC,IAAI;AACpD,MAAA;AACE;QACA,OAAOD,sCAAsC,CAACE,IAAI;AACtD;AACF,EAAA;EAEA,IAAIC,KAAKA,GAAwC;IAC/C,MAAM;AAAEA,MAAAA,KAAK,GAAG3B;KAAe,GAAG,IAAI,CAACc,IAAI;AAE3CI,IAAAA,MAAM,CACJ,CAAA,sDAAA,EAAyDtB,UAAU,CAACgC,IAAI,CACtE,IACF,CAAC,CAAA,YAAA,EAAeD,KAAK,CAAA,CAAE,EACvB/B,UAAU,CAACiC,QAAQ,CAACF,KAAK,CAC3B,CAAC;AACD,IAAA,OAAOA,KAAK;AACd,EAAA;EAEA,IAAIG,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;;AAE1E;IACA,IAAI,IAAI,CAACJ,KAAK,EAAE;MACdI,OAAO,CAACC,IAAI,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAACL,KAAK,EAAE,CAAC;AAC7D,IAAA;AAEA,IAAA,IAAI,IAAI,CAACb,IAAI,CAACG,cAAc,EAAE;AAC5Bc,MAAAA,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;AAC1D,IAAA;IAEA,IAAI,IAAI,CAAClB,IAAI,CAACG,cAAc,IAAI,IAAI,CAACH,IAAI,CAACmB,oBAAoB,EAAE;AAC9DF,MAAAA,OAAO,CAACC,IAAI,CAAC,iDAAiD,CAAC;AACjE,IAAA;AAEA,IAAA,IAAI,IAAI,CAAClB,IAAI,CAACoB,MAAM,EAAEC,cAAc,EAAE;AACpCJ,MAAAA,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;AAC1D,IAAA;AAEA,IAAA,OAAOD,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B,EAAA;EAGAQ,eAAeA,CAACF,MAA8B,EAAQ;AACpD,IAAA,IAAI,CAACpB,IAAI,CAACuB,kBAAkB,GAAGH,MAAM,CAAC;AACxC,EAAA;AAAC,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAA9B,SAAA,EAAA,iBAAA,EAAA,CAHA+B,MAAM,CAAA,CAAA;AAAA;AAKCC,EAAAA,qBAAqBA,GAAS;IACpC,IAAI,CAACC,gBAAgB,GAAG,KAAK;AAC7BD,IAAAA,qBAAqB,CAAC,IAAI,CAAClC,QAAQ,CAAC;AACtC,EAAA;AAAC,EAAA;IAAAgC,CAAA,CAAA,IAAA,CAAA9B,SAAA,EAAA,uBAAA,EAAA,CAHA+B,MAAM,CAAA,CAAA;AAAA;AAKCG,EAAAA,eAAeA,GAAS;IAC9B,IAAI,CAACD,gBAAgB,GAAG,IAAI;AAC9B,EAAA;AAAC,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAA9B,SAAA,EAAA,iBAAA,EAAA,CAFA+B,MAAM,CAAA,CAAA;AAAA;AAICI,EAAAA,eAAeA,GAAiC;AACtD,IAAA,MAAMC,qBAAqB,GAAGC,SAAS,CAAC,IAAI,CAACvC,QAAQ,CAAC;IACtD,OAAOsC,qBAAqB,CAAC,CAAC,CAAC;AACjC,EAAA;AAAC,EAAA;IAAAN,CAAA,CAAA,IAAA,CAAA9B,SAAA,EAAA,iBAAA,EAAA,CAHA+B,MAAM,CAAA,CAAA;AAAA;EAKCO,UAAUA,CAACC,OAAuB,EAAQ;IAChD,IAAI,CAACzC,QAAQ,GAAGyC,OAAO;AAEvB,IAAA,IAAI,IAAI,CAACjC,IAAI,CAACoB,MAAM,KAAKf,SAAS,EAAE;AAClC,MAAA,IAAI,CAACL,IAAI,CAACoB,MAAM,CAACc,SAAS,GAAGD,OAAO;AACtC,IAAA;AACF,EAAA;AAAC,EAAA;IAAAT,CAAA,CAAA,IAAA,CAAA9B,SAAA,EAAA,YAAA,EAAA,CANA+B,MAAM,CAAA,CAAA;AAAA;AAQCU,EAAAA,6BAA6B,GAAGC,QAAQ,CAC7CH,OAA4D,IAAK;IAChE,IAAI,CAACI,qBAAqB,GAAGJ,OAAO;AACtC,EAAA,CACF,CAAC;AAEOK,EAAAA,4BAA4B,GAAGF,QAAQ,CAC5CH,OAA2D,IAAK;IAC/D,IAAI,CAACM,oBAAoB,GAAGN,OAAO;AACrC,EAAA,CACF,CAAC;AACH;AAACO,oBAAA,CAAAC,QAAA,EA5GoBrD,sBAAsB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"th.js","sources":["../../../../src/components/hds/advanced-table/th.ts"],"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 { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport { modifier } from 'ember-modifier';\nimport HdsAdvancedTableColumn from './models/column.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\n\nimport type Owner from '@ember/owner';\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableScope,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableThSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n column?: HdsAdvancedTableColumn;\n colspan?: number;\n depth?: number;\n hasExpandAllButton?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n isExpanded?: HdsAdvancedTableExpandState;\n isExpandable?: boolean;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n newLabel?: string;\n parentId?: string;\n rowspan?: number;\n scope?: HdsAdvancedTableScope;\n tooltip?: string;\n tableHeight?: number;\n didInsertExpandButton?: (button: HTMLButtonElement) => void;\n onClickToggle?: () => void;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n onReorderDragEnd?: () => void;\n onReorderDragStart?: (column: HdsAdvancedTableColumn) => void;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n willDestroyExpandButton?: (button: HTMLButtonElement) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableTh extends Component<HdsAdvancedTableThSignature> {\n private _labelId = this.args.newLabel ? this.args.newLabel : guidFor(this);\n private _element!: HTMLDivElement;\n\n @tracked private _shouldTrapFocus = false;\n @tracked\n private _reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n @tracked\n private _resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n\n constructor(owner: Owner, args: HdsAdvancedTableThSignature['Args']) {\n super(owner, args);\n\n const { rowspan, colspan, isStickyColumn } = args;\n\n if (isStickyColumn) {\n assert(\n 'Cannot have custom rowspan or colspan if there are nested rows.',\n rowspan === undefined || colspan === undefined\n );\n }\n }\n\n get scope(): HdsAdvancedTableScope {\n const { scope = 'col' } = this.args;\n return scope;\n }\n\n get role(): string {\n if (this.scope === 'col') return 'columnheader';\n else return 'rowheader';\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n\n return align;\n }\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 paddingLeft(): string | undefined {\n if (this.args.depth) {\n return `calc(${this.args.depth} * 32px + 16px)`;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (this.args.isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (this.args.isStickyColumn && this.args.isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.args.column?.isBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n @action\n handleDragStart(column: HdsAdvancedTableColumn): void {\n this.args.onReorderDragStart?.(column);\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 if (this.args.column !== undefined) {\n this.args.column.thElement = element;\n }\n }\n\n private _registerReorderHandleElement = modifier(\n (element: HdsAdvancedTableThReorderHandleSignature['Element']) => {\n this._reorderHandleElement = element;\n }\n );\n\n private _registerResizeHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._resizeHandleElement = element;\n }\n );\n\n private _manageExpandButton = modifier((button: HTMLButtonElement) => {\n const { didInsertExpandButton, willDestroyExpandButton } = this.args;\n if (typeof didInsertExpandButton === 'function') {\n didInsertExpandButton(button);\n }\n\n return () => {\n if (typeof willDestroyExpandButton === 'function') {\n willDestroyExpandButton(button);\n }\n };\n });\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTh","Component","_labelId","args","newLabel","guidFor","_element","g","prototype","tracked","i","constructor","owner","rowspan","colspan","isStickyColumn","assert","undefined","scope","role","align","join","includes","paddingLeft","depth","classNames","classes","push","isStickyColumnPinned","column","isBeingDragged","handleDragStart","onReorderDragStart","n","action","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","thElement","_registerReorderHandleElement","modifier","_reorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","_manageExpandButton","button","didInsertExpandButton","willDestroyExpandButton","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th.js","sources":["../../../../src/components/hds/advanced-table/th.ts"],"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 { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport { modifier } from 'ember-modifier';\nimport HdsAdvancedTableColumn from './models/column.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\n\nimport type Owner from '@ember/owner';\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableScope,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.ts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.ts';\nimport type { HdsAdvancedTableSignature } from './index.ts';\n\nexport const ALIGNMENTS: HdsAdvancedTableHorizontalAlignment[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableThSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n column?: HdsAdvancedTableColumn;\n colspan?: number;\n depth?: number;\n hasExpandAllButton?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n isExpanded?: HdsAdvancedTableExpandState;\n isExpandable?: boolean;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n newLabel?: string;\n parentId?: string;\n rowspan?: number;\n scope?: HdsAdvancedTableScope;\n tooltip?: string;\n tableHeight?: number;\n didInsertExpandButton?: (button: HTMLButtonElement) => void;\n onClickToggle?: () => void;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onPinFirstColumn?: () => void;\n onReorderDragEnd?: () => void;\n onReorderDragStart?: (column: HdsAdvancedTableColumn) => void;\n onReorderDrop?: (\n column: HdsAdvancedTableColumn,\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n willDestroyExpandButton?: (button: HTMLButtonElement) => void;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableTh extends Component<HdsAdvancedTableThSignature> {\n private _labelId = this.args.newLabel ? this.args.newLabel : guidFor(this);\n private _element!: HTMLDivElement;\n\n @tracked private _shouldTrapFocus = false;\n @tracked\n private _reorderHandleElement?: HdsAdvancedTableThReorderHandleSignature['Element'];\n @tracked\n private _resizeHandleElement?: HdsAdvancedTableThResizeHandleSignature['Element'];\n\n constructor(owner: Owner, args: HdsAdvancedTableThSignature['Args']) {\n super(owner, args);\n\n const { rowspan, colspan, isStickyColumn } = args;\n\n if (isStickyColumn) {\n assert(\n 'Cannot have custom rowspan or colspan if there are nested rows.',\n rowspan === undefined || colspan === undefined\n );\n }\n }\n\n get scope(): HdsAdvancedTableScope {\n const { scope = 'col' } = this.args;\n return scope;\n }\n\n get role(): string {\n if (this.scope === 'col') return 'columnheader';\n else return 'rowheader';\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n\n return align;\n }\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 paddingLeft(): string | undefined {\n if (this.args.depth) {\n return `calc(${this.args.depth} * 32px + 16px)`;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (this.args.isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (this.args.isStickyColumn && this.args.isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.args.column?.isBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n @action\n handleDragStart(column: HdsAdvancedTableColumn): void {\n this.args.onReorderDragStart?.(column);\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 if (this.args.column !== undefined) {\n this.args.column.thElement = element;\n }\n }\n\n private _registerReorderHandleElement = modifier(\n (element: HdsAdvancedTableThReorderHandleSignature['Element']) => {\n this._reorderHandleElement = element;\n }\n );\n\n private _registerResizeHandleElement = modifier(\n (element: HdsAdvancedTableThResizeHandleSignature['Element']) => {\n this._resizeHandleElement = element;\n }\n );\n\n private _manageExpandButton = modifier((button: HTMLButtonElement) => {\n const { didInsertExpandButton, willDestroyExpandButton } = this.args;\n if (typeof didInsertExpandButton === 'function') {\n didInsertExpandButton(button);\n }\n\n return () => {\n if (typeof willDestroyExpandButton === 'function') {\n willDestroyExpandButton(button);\n }\n };\n });\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTh","Component","_labelId","args","newLabel","guidFor","_element","g","prototype","tracked","i","void 0","constructor","owner","rowspan","colspan","isStickyColumn","assert","undefined","scope","role","align","join","includes","paddingLeft","depth","classNames","classes","push","isStickyColumnPinned","column","isBeingDragged","handleDragStart","onReorderDragStart","n","action","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","thElement","_registerReorderHandleElement","modifier","_reorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","_manageExpandButton","button","didInsertExpandButton","willDestroyExpandButton","setComponentTemplate","TEMPLATE"],"mappings":"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"}