@hashicorp/design-system-components 6.2.0 → 6.2.1

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 (748) hide show
  1. package/declarations/components/hds/accordion/index.d.ts +1 -1
  2. package/declarations/components/hds/accordion/item/button.d.ts +1 -1
  3. package/declarations/components/hds/accordion/item/index.d.ts +1 -1
  4. package/declarations/components/hds/advanced-table/body.d.ts +4 -0
  5. package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -1
  6. package/declarations/components/hds/advanced-table/column-manager/order.d.ts +4 -0
  7. package/declarations/components/hds/advanced-table/column-manager/width.d.ts +4 -0
  8. package/declarations/components/hds/advanced-table/index.d.ts +1 -1
  9. package/declarations/components/hds/advanced-table/td.d.ts +1 -1
  10. package/declarations/components/hds/advanced-table/th-button-expand.d.ts +1 -1
  11. package/declarations/components/hds/advanced-table/th-button-sort.d.ts +1 -1
  12. package/declarations/components/hds/advanced-table/th-button-tooltip.d.ts +1 -1
  13. package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -1
  14. package/declarations/components/hds/advanced-table/th-reorder-drop-target.d.ts +1 -1
  15. package/declarations/components/hds/advanced-table/th-reorder-handle.d.ts +1 -1
  16. package/declarations/components/hds/advanced-table/th-resize-handle.d.ts +1 -1
  17. package/declarations/components/hds/advanced-table/th-selectable.d.ts +1 -1
  18. package/declarations/components/hds/advanced-table/th.d.ts +1 -1
  19. package/declarations/components/hds/advanced-table/tr.d.ts +1 -1
  20. package/declarations/components/hds/advanced-table/types.d.ts +1 -1
  21. package/declarations/components/hds/advanced-table/utils.d.ts +1 -1
  22. package/declarations/components/hds/alert/description.d.ts +1 -1
  23. package/declarations/components/hds/alert/index.d.ts +1 -1
  24. package/declarations/components/hds/alert/title.d.ts +1 -1
  25. package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
  26. package/declarations/components/hds/app-footer/index.d.ts +1 -1
  27. package/declarations/components/hds/app-footer/item.d.ts +1 -1
  28. package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
  29. package/declarations/components/hds/app-footer/link.d.ts +1 -1
  30. package/declarations/components/hds/app-footer/status-link.d.ts +3 -3
  31. package/declarations/components/hds/app-footer/types.d.ts +1 -1
  32. package/declarations/components/hds/app-frame/index.d.ts +1 -1
  33. package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
  34. package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
  35. package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
  36. package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
  37. package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
  38. package/declarations/components/hds/app-header/home-link.d.ts +1 -1
  39. package/declarations/components/hds/app-header/index.d.ts +1 -1
  40. package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
  41. package/declarations/components/hds/app-side-nav/index.d.ts +1 -1
  42. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +1 -1
  43. package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
  44. package/declarations/components/hds/app-side-nav/list/item.d.ts +1 -1
  45. package/declarations/components/hds/app-side-nav/list/link.d.ts +1 -1
  46. package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
  47. package/declarations/components/hds/app-side-nav/portal/index.d.ts +1 -1
  48. package/declarations/components/hds/app-side-nav/portal/target.d.ts +1 -1
  49. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +1 -1
  50. package/declarations/components/hds/application-state/body.d.ts +1 -1
  51. package/declarations/components/hds/application-state/footer.d.ts +1 -1
  52. package/declarations/components/hds/application-state/header.d.ts +1 -1
  53. package/declarations/components/hds/application-state/index.d.ts +1 -1
  54. package/declarations/components/hds/application-state/media.d.ts +1 -1
  55. package/declarations/components/hds/badge/index.d.ts +1 -1
  56. package/declarations/components/hds/badge-count/index.d.ts +1 -1
  57. package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
  58. package/declarations/components/hds/breadcrumb/item.d.ts +2 -3
  59. package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
  60. package/declarations/components/hds/button/index.d.ts +1 -1
  61. package/declarations/components/hds/button-set/index.d.ts +1 -1
  62. package/declarations/components/hds/card/container.d.ts +1 -1
  63. package/declarations/components/hds/code-block/copy-button.d.ts +1 -1
  64. package/declarations/components/hds/code-block/description.d.ts +1 -1
  65. package/declarations/components/hds/code-block/index.d.ts +1 -1
  66. package/declarations/components/hds/code-block/title.d.ts +1 -1
  67. package/declarations/components/hds/code-editor/description.d.ts +1 -1
  68. package/declarations/components/hds/code-editor/full-screen-button.d.ts +1 -1
  69. package/declarations/components/hds/code-editor/generic.d.ts +1 -1
  70. package/declarations/components/hds/code-editor/index.d.ts +1 -1
  71. package/declarations/components/hds/code-editor/title.d.ts +1 -1
  72. package/declarations/components/hds/composite/index.d.ts +4 -0
  73. package/declarations/components/hds/composite/navigation.d.ts +4 -0
  74. package/declarations/components/hds/composite/types.d.ts +4 -0
  75. package/declarations/components/hds/copy/button/index.d.ts +1 -1
  76. package/declarations/components/hds/copy/snippet/index.d.ts +5 -1
  77. package/declarations/components/hds/dialog-primitive/body.d.ts +1 -1
  78. package/declarations/components/hds/dialog-primitive/description.d.ts +1 -1
  79. package/declarations/components/hds/dialog-primitive/footer.d.ts +1 -1
  80. package/declarations/components/hds/dialog-primitive/header.d.ts +1 -1
  81. package/declarations/components/hds/dialog-primitive/overlay.d.ts +1 -1
  82. package/declarations/components/hds/dialog-primitive/wrapper.d.ts +1 -1
  83. package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
  84. package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
  85. package/declarations/components/hds/dropdown/footer.d.ts +1 -1
  86. package/declarations/components/hds/dropdown/header.d.ts +1 -1
  87. package/declarations/components/hds/dropdown/index.d.ts +1 -1
  88. package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -1
  89. package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +1 -1
  90. package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
  91. package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
  92. package/declarations/components/hds/dropdown/list-item/generic.d.ts +1 -1
  93. package/declarations/components/hds/dropdown/list-item/interactive.d.ts +1 -1
  94. package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -1
  95. package/declarations/components/hds/dropdown/list-item/separator.d.ts +1 -1
  96. package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
  97. package/declarations/components/hds/dropdown/toggle/button.d.ts +1 -1
  98. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
  99. package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
  100. package/declarations/components/hds/filter-bar/actions-dropdown.d.ts +1 -1
  101. package/declarations/components/hds/filter-bar/applied-filters.d.ts +1 -1
  102. package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +1 -1
  103. package/declarations/components/hds/filter-bar/filter-group/clear-button.d.ts +1 -1
  104. package/declarations/components/hds/filter-bar/filter-group/date.d.ts +1 -1
  105. package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +1 -1
  106. package/declarations/components/hds/filter-bar/filter-group/index.d.ts +1 -1
  107. package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +1 -1
  108. package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +1 -1
  109. package/declarations/components/hds/filter-bar/filters-dropdown.d.ts +1 -1
  110. package/declarations/components/hds/filter-bar/index.d.ts +1 -1
  111. package/declarations/components/hds/filter-bar/tabs/index.d.ts +1 -1
  112. package/declarations/components/hds/filter-bar/tabs/panel.d.ts +1 -1
  113. package/declarations/components/hds/filter-bar/tabs/tab.d.ts +1 -1
  114. package/declarations/components/hds/filter-bar/types.d.ts +1 -1
  115. package/declarations/components/hds/flyout/index.d.ts +1 -1
  116. package/declarations/components/hds/form/character-count/index.d.ts +1 -1
  117. package/declarations/components/hds/form/checkbox/base.d.ts +1 -1
  118. package/declarations/components/hds/form/checkbox/field.d.ts +1 -1
  119. package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
  120. package/declarations/components/hds/form/error/index.d.ts +1 -1
  121. package/declarations/components/hds/form/error/message.d.ts +1 -1
  122. package/declarations/components/hds/form/field/index.d.ts +1 -1
  123. package/declarations/components/hds/form/fieldset/index.d.ts +1 -1
  124. package/declarations/components/hds/form/file-input/base.d.ts +1 -1
  125. package/declarations/components/hds/form/file-input/field.d.ts +1 -1
  126. package/declarations/components/hds/form/footer/index.d.ts +1 -1
  127. package/declarations/components/hds/form/header/description.d.ts +1 -1
  128. package/declarations/components/hds/form/header/index.d.ts +1 -1
  129. package/declarations/components/hds/form/header/title.d.ts +1 -1
  130. package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
  131. package/declarations/components/hds/form/index.d.ts +1 -1
  132. package/declarations/components/hds/form/indicator/index.d.ts +1 -1
  133. package/declarations/components/hds/form/key-value-inputs/add-row-button.d.ts +1 -1
  134. package/declarations/components/hds/form/key-value-inputs/delete-row-button.d.ts +1 -1
  135. package/declarations/components/hds/form/key-value-inputs/field.d.ts +1 -1
  136. package/declarations/components/hds/form/key-value-inputs/generic.d.ts +1 -1
  137. package/declarations/components/hds/form/key-value-inputs/index.d.ts +1 -1
  138. package/declarations/components/hds/form/label/index.d.ts +1 -1
  139. package/declarations/components/hds/form/legend/index.d.ts +1 -1
  140. package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
  141. package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
  142. package/declarations/components/hds/form/radio/base.d.ts +1 -1
  143. package/declarations/components/hds/form/radio/field.d.ts +1 -1
  144. package/declarations/components/hds/form/radio/group.d.ts +1 -1
  145. package/declarations/components/hds/form/radio-card/description.d.ts +1 -1
  146. package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
  147. package/declarations/components/hds/form/radio-card/index.d.ts +1 -1
  148. package/declarations/components/hds/form/radio-card/label.d.ts +1 -1
  149. package/declarations/components/hds/form/section/header.d.ts +1 -1
  150. package/declarations/components/hds/form/section/index.d.ts +1 -1
  151. package/declarations/components/hds/form/section/multi-field-group/index.d.ts +1 -1
  152. package/declarations/components/hds/form/section/multi-field-group/item.d.ts +1 -1
  153. package/declarations/components/hds/form/select/base.d.ts +1 -1
  154. package/declarations/components/hds/form/select/field.d.ts +1 -1
  155. package/declarations/components/hds/form/separator/index.d.ts +1 -1
  156. package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
  157. package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
  158. package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -1
  159. package/declarations/components/hds/form/super-select/option-group.d.ts +1 -1
  160. package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
  161. package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
  162. package/declarations/components/hds/form/super-select/single/field.d.ts +1 -1
  163. package/declarations/components/hds/form/text-input/base.d.ts +1 -1
  164. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  165. package/declarations/components/hds/form/textarea/base.d.ts +1 -1
  166. package/declarations/components/hds/form/textarea/field.d.ts +1 -1
  167. package/declarations/components/hds/form/toggle/base.d.ts +1 -1
  168. package/declarations/components/hds/form/toggle/field.d.ts +1 -1
  169. package/declarations/components/hds/form/toggle/group.d.ts +1 -1
  170. package/declarations/components/hds/form/visibility-toggle/index.d.ts +1 -1
  171. package/declarations/components/hds/icon/index.d.ts +1 -1
  172. package/declarations/components/hds/icon-tile/index.d.ts +1 -1
  173. package/declarations/components/hds/interactive/index.d.ts +1 -1
  174. package/declarations/components/hds/layout/flex/index.d.ts +1 -1
  175. package/declarations/components/hds/layout/flex/item.d.ts +1 -1
  176. package/declarations/components/hds/layout/grid/index.d.ts +1 -1
  177. package/declarations/components/hds/layout/grid/item.d.ts +1 -1
  178. package/declarations/components/hds/link/inline.d.ts +1 -1
  179. package/declarations/components/hds/link/standalone.d.ts +1 -1
  180. package/declarations/components/hds/modal/index.d.ts +1 -1
  181. package/declarations/components/hds/page-header/actions.d.ts +1 -1
  182. package/declarations/components/hds/page-header/badges.d.ts +1 -1
  183. package/declarations/components/hds/page-header/description.d.ts +1 -1
  184. package/declarations/components/hds/page-header/index.d.ts +1 -1
  185. package/declarations/components/hds/page-header/subtitle.d.ts +1 -1
  186. package/declarations/components/hds/page-header/title.d.ts +1 -1
  187. package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
  188. package/declarations/components/hds/pagination/info/index.d.ts +1 -1
  189. package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
  190. package/declarations/components/hds/pagination/nav/ellipsis.d.ts +1 -1
  191. package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
  192. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  193. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
  194. package/declarations/components/hds/pagination/types.d.ts +1 -1
  195. package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
  196. package/declarations/components/hds/reveal/index.d.ts +1 -1
  197. package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
  198. package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
  199. package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
  200. package/declarations/components/hds/rich-tooltip/toggle.d.ts +1 -1
  201. package/declarations/components/hds/segmented-group/index.d.ts +1 -1
  202. package/declarations/components/hds/separator/index.d.ts +1 -1
  203. package/declarations/components/hds/stepper/list/index.d.ts +1 -1
  204. package/declarations/components/hds/stepper/list/step.d.ts +1 -1
  205. package/declarations/components/hds/stepper/nav/index.d.ts +1 -1
  206. package/declarations/components/hds/stepper/nav/panel.d.ts +1 -1
  207. package/declarations/components/hds/stepper/nav/step.d.ts +1 -1
  208. package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
  209. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
  210. package/declarations/components/hds/stepper/types.d.ts +1 -1
  211. package/declarations/components/hds/table/index.d.ts +1 -1
  212. package/declarations/components/hds/table/td.d.ts +1 -1
  213. package/declarations/components/hds/table/th-button-sort.d.ts +1 -1
  214. package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
  215. package/declarations/components/hds/table/th-selectable.d.ts +1 -1
  216. package/declarations/components/hds/table/th-sort.d.ts +1 -1
  217. package/declarations/components/hds/table/th.d.ts +1 -1
  218. package/declarations/components/hds/table/tr.d.ts +1 -1
  219. package/declarations/components/hds/table/types.d.ts +1 -1
  220. package/declarations/components/hds/tabs/index.d.ts +1 -1
  221. package/declarations/components/hds/tabs/panel.d.ts +1 -1
  222. package/declarations/components/hds/tabs/tab.d.ts +1 -1
  223. package/declarations/components/hds/tag/index.d.ts +1 -1
  224. package/declarations/components/hds/text/body.d.ts +1 -1
  225. package/declarations/components/hds/text/code.d.ts +1 -1
  226. package/declarations/components/hds/text/display.d.ts +1 -1
  227. package/declarations/components/hds/text/index.d.ts +1 -1
  228. package/declarations/components/hds/time/index.d.ts +1 -1
  229. package/declarations/components/hds/time/range.d.ts +1 -1
  230. package/declarations/components/hds/time/single.d.ts +1 -1
  231. package/declarations/components/hds/toast/index.d.ts +1 -1
  232. package/declarations/components/hds/tooltip-button/index.d.ts +1 -1
  233. package/declarations/components/hds/yield/index.d.ts +1 -1
  234. package/declarations/components.d.ts +1 -1
  235. package/declarations/helpers/hds-t.d.ts +1 -1
  236. package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts +1 -1
  237. package/declarations/modifiers/hds-advanced-table-cell.d.ts +1 -1
  238. package/declarations/modifiers/hds-code-editor.d.ts +1 -1
  239. package/declarations/modifiers/hds-scroll-into-view-on-focus.d.ts +1 -1
  240. package/declarations/modifiers/hds-tooltip.d.ts +1 -1
  241. package/declarations/re-exports/codemirror.d.ts +4 -0
  242. package/declarations/services/hds-intl.d.ts +1 -1
  243. package/declarations/template-registry.d.ts +1 -1
  244. package/declarations/utils/hds-aria-described-by.d.ts +1 -1
  245. package/declarations/utils/hds-link-to-external.d.ts +4 -0
  246. package/dist/components/hds/accordion/index.js +1 -1
  247. package/dist/components/hds/accordion/index.js.map +1 -1
  248. package/dist/components/hds/accordion/item/button.js +1 -1
  249. package/dist/components/hds/accordion/item/button.js.map +1 -1
  250. package/dist/components/hds/accordion/item/index.js +1 -1
  251. package/dist/components/hds/accordion/item/index.js.map +1 -1
  252. package/dist/components/hds/advanced-table/body.js +4 -0
  253. package/dist/components/hds/advanced-table/body.js.map +1 -1
  254. package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
  255. package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
  256. package/dist/components/hds/advanced-table/column-manager/order.js +4 -0
  257. package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
  258. package/dist/components/hds/advanced-table/column-manager/width.js +4 -0
  259. package/dist/components/hds/advanced-table/column-manager/width.js.map +1 -1
  260. package/dist/components/hds/advanced-table/index.js +1 -1
  261. package/dist/components/hds/advanced-table/td.js +1 -1
  262. package/dist/components/hds/advanced-table/td.js.map +1 -1
  263. package/dist/components/hds/advanced-table/th-button-expand.js +1 -1
  264. package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
  265. package/dist/components/hds/advanced-table/th-button-sort.js +1 -1
  266. package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
  267. package/dist/components/hds/advanced-table/th-button-tooltip.js +1 -1
  268. package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
  269. package/dist/components/hds/advanced-table/th-context-menu.js +1 -1
  270. package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
  271. package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
  272. package/dist/components/hds/advanced-table/th-reorder-handle.js +1 -1
  273. package/dist/components/hds/advanced-table/th-reorder-handle.js.map +1 -1
  274. package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
  275. package/dist/components/hds/advanced-table/th-selectable.js +1 -1
  276. package/dist/components/hds/advanced-table/th.js +1 -1
  277. package/dist/components/hds/advanced-table/tr.js +1 -1
  278. package/dist/components/hds/advanced-table/types.js +1 -1
  279. package/dist/components/hds/advanced-table/types.js.map +1 -1
  280. package/dist/components/hds/advanced-table/utils.js +1 -1
  281. package/dist/components/hds/advanced-table/utils.js.map +1 -1
  282. package/dist/components/hds/alert/description.js +1 -1
  283. package/dist/components/hds/alert/description.js.map +1 -1
  284. package/dist/components/hds/alert/index.js +1 -1
  285. package/dist/components/hds/alert/index.js.map +1 -1
  286. package/dist/components/hds/alert/title.js +1 -1
  287. package/dist/components/hds/alert/title.js.map +1 -1
  288. package/dist/components/hds/app-footer/copyright.js +1 -1
  289. package/dist/components/hds/app-footer/copyright.js.map +1 -1
  290. package/dist/components/hds/app-footer/index.js +1 -1
  291. package/dist/components/hds/app-footer/index.js.map +1 -1
  292. package/dist/components/hds/app-footer/item.js +1 -1
  293. package/dist/components/hds/app-footer/item.js.map +1 -1
  294. package/dist/components/hds/app-footer/legal-links.js +1 -1
  295. package/dist/components/hds/app-footer/legal-links.js.map +1 -1
  296. package/dist/components/hds/app-footer/link.js +1 -1
  297. package/dist/components/hds/app-footer/link.js.map +1 -1
  298. package/dist/components/hds/app-footer/status-link.js +9 -6
  299. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  300. package/dist/components/hds/app-footer/types.js +1 -1
  301. package/dist/components/hds/app-footer/types.js.map +1 -1
  302. package/dist/components/hds/app-frame/index.js +1 -1
  303. package/dist/components/hds/app-frame/index.js.map +1 -1
  304. package/dist/components/hds/app-frame/parts/footer.js +1 -1
  305. package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
  306. package/dist/components/hds/app-frame/parts/header.js +1 -1
  307. package/dist/components/hds/app-frame/parts/header.js.map +1 -1
  308. package/dist/components/hds/app-frame/parts/main.js +1 -1
  309. package/dist/components/hds/app-frame/parts/main.js.map +1 -1
  310. package/dist/components/hds/app-frame/parts/modals.js +1 -1
  311. package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
  312. package/dist/components/hds/app-frame/parts/sidebar.js +1 -1
  313. package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
  314. package/dist/components/hds/app-header/home-link.js +1 -1
  315. package/dist/components/hds/app-header/home-link.js.map +1 -1
  316. package/dist/components/hds/app-header/index.js +1 -1
  317. package/dist/components/hds/app-header/index.js.map +1 -1
  318. package/dist/components/hds/app-header/menu-button.js +1 -1
  319. package/dist/components/hds/app-header/menu-button.js.map +1 -1
  320. package/dist/components/hds/app-side-nav/index.js +1 -1
  321. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  322. package/dist/components/hds/app-side-nav/list/back-link.js +1 -1
  323. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
  324. package/dist/components/hds/app-side-nav/list/index.js +1 -1
  325. package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
  326. package/dist/components/hds/app-side-nav/list/item.js +1 -1
  327. package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
  328. package/dist/components/hds/app-side-nav/list/link.js +1 -1
  329. package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
  330. package/dist/components/hds/app-side-nav/list/title.js +1 -1
  331. package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
  332. package/dist/components/hds/app-side-nav/portal/index.js +1 -1
  333. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
  334. package/dist/components/hds/app-side-nav/portal/target.js +1 -1
  335. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
  336. package/dist/components/hds/app-side-nav/toggle-button.js +1 -1
  337. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
  338. package/dist/components/hds/application-state/body.js +1 -1
  339. package/dist/components/hds/application-state/body.js.map +1 -1
  340. package/dist/components/hds/application-state/footer.js +1 -1
  341. package/dist/components/hds/application-state/footer.js.map +1 -1
  342. package/dist/components/hds/application-state/header.js +1 -1
  343. package/dist/components/hds/application-state/header.js.map +1 -1
  344. package/dist/components/hds/application-state/index.js +1 -1
  345. package/dist/components/hds/application-state/index.js.map +1 -1
  346. package/dist/components/hds/application-state/media.js +1 -1
  347. package/dist/components/hds/application-state/media.js.map +1 -1
  348. package/dist/components/hds/badge/index.js +1 -1
  349. package/dist/components/hds/badge/index.js.map +1 -1
  350. package/dist/components/hds/badge-count/index.js +1 -1
  351. package/dist/components/hds/badge-count/index.js.map +1 -1
  352. package/dist/components/hds/breadcrumb/index.js +1 -1
  353. package/dist/components/hds/breadcrumb/index.js.map +1 -1
  354. package/dist/components/hds/breadcrumb/item.js +8 -5
  355. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  356. package/dist/components/hds/breadcrumb/truncation.js +1 -1
  357. package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
  358. package/dist/components/hds/button/index.js +1 -1
  359. package/dist/components/hds/button/index.js.map +1 -1
  360. package/dist/components/hds/button-set/index.js +1 -1
  361. package/dist/components/hds/button-set/index.js.map +1 -1
  362. package/dist/components/hds/card/container.js +1 -1
  363. package/dist/components/hds/card/container.js.map +1 -1
  364. package/dist/components/hds/code-block/copy-button.js +1 -1
  365. package/dist/components/hds/code-block/copy-button.js.map +1 -1
  366. package/dist/components/hds/code-block/description.js +1 -1
  367. package/dist/components/hds/code-block/description.js.map +1 -1
  368. package/dist/components/hds/code-block/index.js +4 -2
  369. package/dist/components/hds/code-block/index.js.map +1 -1
  370. package/dist/components/hds/code-block/title.js +1 -1
  371. package/dist/components/hds/code-block/title.js.map +1 -1
  372. package/dist/components/hds/code-editor/description.js +1 -1
  373. package/dist/components/hds/code-editor/description.js.map +1 -1
  374. package/dist/components/hds/code-editor/full-screen-button.js +1 -1
  375. package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
  376. package/dist/components/hds/code-editor/generic.js +1 -1
  377. package/dist/components/hds/code-editor/generic.js.map +1 -1
  378. package/dist/components/hds/code-editor/index.js +1 -1
  379. package/dist/components/hds/code-editor/index.js.map +1 -1
  380. package/dist/components/hds/code-editor/title.js +1 -1
  381. package/dist/components/hds/code-editor/title.js.map +1 -1
  382. package/dist/components/hds/composite/index.js +4 -0
  383. package/dist/components/hds/composite/index.js.map +1 -1
  384. package/dist/components/hds/composite/navigation.js +5 -0
  385. package/dist/components/hds/composite/navigation.js.map +1 -1
  386. package/dist/components/hds/copy/button/index.js +6 -2
  387. package/dist/components/hds/copy/button/index.js.map +1 -1
  388. package/dist/components/hds/copy/snippet/index.js +20 -2
  389. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  390. package/dist/components/hds/dialog-primitive/body.js +1 -1
  391. package/dist/components/hds/dialog-primitive/body.js.map +1 -1
  392. package/dist/components/hds/dialog-primitive/description.js +1 -1
  393. package/dist/components/hds/dialog-primitive/description.js.map +1 -1
  394. package/dist/components/hds/dialog-primitive/footer.js +1 -1
  395. package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
  396. package/dist/components/hds/dialog-primitive/header.js +1 -1
  397. package/dist/components/hds/dialog-primitive/header.js.map +1 -1
  398. package/dist/components/hds/dialog-primitive/overlay.js +1 -1
  399. package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
  400. package/dist/components/hds/dialog-primitive/wrapper.js +1 -1
  401. package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
  402. package/dist/components/hds/disclosure-primitive/index.js +1 -1
  403. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  404. package/dist/components/hds/dismiss-button/index.js +1 -1
  405. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  406. package/dist/components/hds/dropdown/footer.js +1 -1
  407. package/dist/components/hds/dropdown/footer.js.map +1 -1
  408. package/dist/components/hds/dropdown/header.js +1 -1
  409. package/dist/components/hds/dropdown/header.js.map +1 -1
  410. package/dist/components/hds/dropdown/index.js +1 -1
  411. package/dist/components/hds/dropdown/index.js.map +1 -1
  412. package/dist/components/hds/dropdown/list-item/checkbox.js +1 -1
  413. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  414. package/dist/components/hds/dropdown/list-item/checkmark.js +1 -1
  415. package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
  416. package/dist/components/hds/dropdown/list-item/copy-item.js +1 -1
  417. package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
  418. package/dist/components/hds/dropdown/list-item/description.js +1 -1
  419. package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
  420. package/dist/components/hds/dropdown/list-item/generic.js +1 -1
  421. package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
  422. package/dist/components/hds/dropdown/list-item/interactive.js +1 -1
  423. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  424. package/dist/components/hds/dropdown/list-item/radio.js +1 -1
  425. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  426. package/dist/components/hds/dropdown/list-item/separator.js +1 -1
  427. package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
  428. package/dist/components/hds/dropdown/list-item/title.js +1 -1
  429. package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
  430. package/dist/components/hds/dropdown/toggle/button.js +1 -1
  431. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  432. package/dist/components/hds/dropdown/toggle/chevron.js +1 -1
  433. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  434. package/dist/components/hds/dropdown/toggle/icon.js +1 -1
  435. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  436. package/dist/components/hds/filter-bar/actions-dropdown.js +1 -1
  437. package/dist/components/hds/filter-bar/actions-dropdown.js.map +1 -1
  438. package/dist/components/hds/filter-bar/applied-filters.js +1 -1
  439. package/dist/components/hds/filter-bar/applied-filters.js.map +1 -1
  440. package/dist/components/hds/filter-bar/filter-group/checkbox.js +1 -1
  441. package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -1
  442. package/dist/components/hds/filter-bar/filter-group/clear-button.js +1 -1
  443. package/dist/components/hds/filter-bar/filter-group/clear-button.js.map +1 -1
  444. package/dist/components/hds/filter-bar/filter-group/date.js +1 -1
  445. package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -1
  446. package/dist/components/hds/filter-bar/filter-group/generic.js +1 -1
  447. package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -1
  448. package/dist/components/hds/filter-bar/filter-group/index.js +1 -1
  449. package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -1
  450. package/dist/components/hds/filter-bar/filter-group/numerical.js +1 -1
  451. package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -1
  452. package/dist/components/hds/filter-bar/filter-group/radio.js +1 -1
  453. package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -1
  454. package/dist/components/hds/filter-bar/filters-dropdown.js +1 -1
  455. package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -1
  456. package/dist/components/hds/filter-bar/index.js +1 -1
  457. package/dist/components/hds/filter-bar/index.js.map +1 -1
  458. package/dist/components/hds/filter-bar/tabs/index.js +1 -1
  459. package/dist/components/hds/filter-bar/tabs/index.js.map +1 -1
  460. package/dist/components/hds/filter-bar/tabs/panel.js +1 -1
  461. package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -1
  462. package/dist/components/hds/filter-bar/tabs/tab.js +1 -1
  463. package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -1
  464. package/dist/components/hds/filter-bar/types.js +1 -1
  465. package/dist/components/hds/filter-bar/types.js.map +1 -1
  466. package/dist/components/hds/flyout/index.js +1 -1
  467. package/dist/components/hds/flyout/index.js.map +1 -1
  468. package/dist/components/hds/form/character-count/index.js +1 -1
  469. package/dist/components/hds/form/character-count/index.js.map +1 -1
  470. package/dist/components/hds/form/checkbox/base.js +1 -1
  471. package/dist/components/hds/form/checkbox/base.js.map +1 -1
  472. package/dist/components/hds/form/checkbox/field.js +1 -1
  473. package/dist/components/hds/form/checkbox/field.js.map +1 -1
  474. package/dist/components/hds/form/checkbox/group.js +1 -1
  475. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  476. package/dist/components/hds/form/error/index.js +1 -1
  477. package/dist/components/hds/form/error/index.js.map +1 -1
  478. package/dist/components/hds/form/error/message.js +1 -1
  479. package/dist/components/hds/form/error/message.js.map +1 -1
  480. package/dist/components/hds/form/field/index.js +1 -1
  481. package/dist/components/hds/form/field/index.js.map +1 -1
  482. package/dist/components/hds/form/fieldset/index.js +1 -1
  483. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  484. package/dist/components/hds/form/file-input/base.js +1 -1
  485. package/dist/components/hds/form/file-input/base.js.map +1 -1
  486. package/dist/components/hds/form/file-input/field.js +1 -1
  487. package/dist/components/hds/form/file-input/field.js.map +1 -1
  488. package/dist/components/hds/form/footer/index.js +1 -1
  489. package/dist/components/hds/form/footer/index.js.map +1 -1
  490. package/dist/components/hds/form/header/description.js +1 -1
  491. package/dist/components/hds/form/header/description.js.map +1 -1
  492. package/dist/components/hds/form/header/index.js +1 -1
  493. package/dist/components/hds/form/header/index.js.map +1 -1
  494. package/dist/components/hds/form/header/title.js +1 -1
  495. package/dist/components/hds/form/header/title.js.map +1 -1
  496. package/dist/components/hds/form/helper-text/index.js +1 -1
  497. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  498. package/dist/components/hds/form/index.js +1 -1
  499. package/dist/components/hds/form/index.js.map +1 -1
  500. package/dist/components/hds/form/indicator/index.js +1 -1
  501. package/dist/components/hds/form/indicator/index.js.map +1 -1
  502. package/dist/components/hds/form/key-value-inputs/add-row-button.js +1 -1
  503. package/dist/components/hds/form/key-value-inputs/add-row-button.js.map +1 -1
  504. package/dist/components/hds/form/key-value-inputs/delete-row-button.js +1 -1
  505. package/dist/components/hds/form/key-value-inputs/delete-row-button.js.map +1 -1
  506. package/dist/components/hds/form/key-value-inputs/field.js +1 -1
  507. package/dist/components/hds/form/key-value-inputs/field.js.map +1 -1
  508. package/dist/components/hds/form/key-value-inputs/generic.js +1 -1
  509. package/dist/components/hds/form/key-value-inputs/generic.js.map +1 -1
  510. package/dist/components/hds/form/key-value-inputs/index.js +1 -1
  511. package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
  512. package/dist/components/hds/form/label/index.js +1 -1
  513. package/dist/components/hds/form/label/index.js.map +1 -1
  514. package/dist/components/hds/form/legend/index.js +1 -1
  515. package/dist/components/hds/form/legend/index.js.map +1 -1
  516. package/dist/components/hds/form/masked-input/base.js +1 -1
  517. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  518. package/dist/components/hds/form/masked-input/field.js +1 -1
  519. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  520. package/dist/components/hds/form/radio/base.js +1 -1
  521. package/dist/components/hds/form/radio/base.js.map +1 -1
  522. package/dist/components/hds/form/radio/field.js +1 -1
  523. package/dist/components/hds/form/radio/field.js.map +1 -1
  524. package/dist/components/hds/form/radio/group.js +1 -1
  525. package/dist/components/hds/form/radio/group.js.map +1 -1
  526. package/dist/components/hds/form/radio-card/description.js +1 -1
  527. package/dist/components/hds/form/radio-card/description.js.map +1 -1
  528. package/dist/components/hds/form/radio-card/group.js +1 -1
  529. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  530. package/dist/components/hds/form/radio-card/index.js +1 -1
  531. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  532. package/dist/components/hds/form/radio-card/label.js +1 -1
  533. package/dist/components/hds/form/radio-card/label.js.map +1 -1
  534. package/dist/components/hds/form/section/header.js +1 -1
  535. package/dist/components/hds/form/section/header.js.map +1 -1
  536. package/dist/components/hds/form/section/index.js +1 -1
  537. package/dist/components/hds/form/section/index.js.map +1 -1
  538. package/dist/components/hds/form/section/multi-field-group/index.js +1 -1
  539. package/dist/components/hds/form/section/multi-field-group/index.js.map +1 -1
  540. package/dist/components/hds/form/section/multi-field-group/item.js +1 -1
  541. package/dist/components/hds/form/section/multi-field-group/item.js.map +1 -1
  542. package/dist/components/hds/form/select/base.js +1 -1
  543. package/dist/components/hds/form/select/base.js.map +1 -1
  544. package/dist/components/hds/form/select/field.js +1 -1
  545. package/dist/components/hds/form/select/field.js.map +1 -1
  546. package/dist/components/hds/form/separator/index.js +1 -1
  547. package/dist/components/hds/form/separator/index.js.map +1 -1
  548. package/dist/components/hds/form/super-select/after-options.js +1 -1
  549. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  550. package/dist/components/hds/form/super-select/multiple/base.js +1 -1
  551. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  552. package/dist/components/hds/form/super-select/multiple/field.js +1 -1
  553. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  554. package/dist/components/hds/form/super-select/option-group.js +1 -1
  555. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  556. package/dist/components/hds/form/super-select/placeholder.js +1 -1
  557. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  558. package/dist/components/hds/form/super-select/single/base.js +1 -1
  559. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  560. package/dist/components/hds/form/super-select/single/field.js +1 -1
  561. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  562. package/dist/components/hds/form/text-input/base.js +1 -1
  563. package/dist/components/hds/form/text-input/base.js.map +1 -1
  564. package/dist/components/hds/form/text-input/field.js +1 -1
  565. package/dist/components/hds/form/text-input/field.js.map +1 -1
  566. package/dist/components/hds/form/textarea/base.js +1 -1
  567. package/dist/components/hds/form/textarea/base.js.map +1 -1
  568. package/dist/components/hds/form/textarea/field.js +1 -1
  569. package/dist/components/hds/form/textarea/field.js.map +1 -1
  570. package/dist/components/hds/form/toggle/base.js +1 -1
  571. package/dist/components/hds/form/toggle/base.js.map +1 -1
  572. package/dist/components/hds/form/toggle/field.js +1 -1
  573. package/dist/components/hds/form/toggle/field.js.map +1 -1
  574. package/dist/components/hds/form/toggle/group.js +1 -1
  575. package/dist/components/hds/form/toggle/group.js.map +1 -1
  576. package/dist/components/hds/form/visibility-toggle/index.js +1 -1
  577. package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
  578. package/dist/components/hds/icon/index.js +1 -1
  579. package/dist/components/hds/icon/index.js.map +1 -1
  580. package/dist/components/hds/icon-tile/index.js +1 -1
  581. package/dist/components/hds/icon-tile/index.js.map +1 -1
  582. package/dist/components/hds/interactive/index.js +1 -1
  583. package/dist/components/hds/interactive/index.js.map +1 -1
  584. package/dist/components/hds/layout/flex/index.js +1 -1
  585. package/dist/components/hds/layout/flex/index.js.map +1 -1
  586. package/dist/components/hds/layout/flex/item.js +1 -1
  587. package/dist/components/hds/layout/flex/item.js.map +1 -1
  588. package/dist/components/hds/layout/grid/index.js +1 -1
  589. package/dist/components/hds/layout/grid/index.js.map +1 -1
  590. package/dist/components/hds/layout/grid/item.js +1 -1
  591. package/dist/components/hds/layout/grid/item.js.map +1 -1
  592. package/dist/components/hds/link/inline.js +1 -1
  593. package/dist/components/hds/link/inline.js.map +1 -1
  594. package/dist/components/hds/link/standalone.js +1 -1
  595. package/dist/components/hds/link/standalone.js.map +1 -1
  596. package/dist/components/hds/modal/index.js +1 -1
  597. package/dist/components/hds/modal/index.js.map +1 -1
  598. package/dist/components/hds/page-header/actions.js +1 -1
  599. package/dist/components/hds/page-header/actions.js.map +1 -1
  600. package/dist/components/hds/page-header/badges.js +1 -1
  601. package/dist/components/hds/page-header/badges.js.map +1 -1
  602. package/dist/components/hds/page-header/description.js +1 -1
  603. package/dist/components/hds/page-header/description.js.map +1 -1
  604. package/dist/components/hds/page-header/index.js +1 -1
  605. package/dist/components/hds/page-header/index.js.map +1 -1
  606. package/dist/components/hds/page-header/subtitle.js +1 -1
  607. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  608. package/dist/components/hds/page-header/title.js +1 -1
  609. package/dist/components/hds/page-header/title.js.map +1 -1
  610. package/dist/components/hds/pagination/compact/index.js +1 -1
  611. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  612. package/dist/components/hds/pagination/info/index.js +1 -1
  613. package/dist/components/hds/pagination/info/index.js.map +1 -1
  614. package/dist/components/hds/pagination/nav/arrow.js +1 -1
  615. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  616. package/dist/components/hds/pagination/nav/ellipsis.js +1 -1
  617. package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
  618. package/dist/components/hds/pagination/nav/number.js +1 -1
  619. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  620. package/dist/components/hds/pagination/numbered/index.js +1 -1
  621. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  622. package/dist/components/hds/pagination/size-selector/index.js +1 -1
  623. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  624. package/dist/components/hds/pagination/types.js +1 -1
  625. package/dist/components/hds/pagination/types.js.map +1 -1
  626. package/dist/components/hds/popover-primitive/index.js +1 -1
  627. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  628. package/dist/components/hds/reveal/index.js +1 -1
  629. package/dist/components/hds/reveal/index.js.map +1 -1
  630. package/dist/components/hds/reveal/toggle/button.js +1 -1
  631. package/dist/components/hds/reveal/toggle/button.js.map +1 -1
  632. package/dist/components/hds/rich-tooltip/bubble.js +1 -1
  633. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  634. package/dist/components/hds/rich-tooltip/index.js +1 -1
  635. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  636. package/dist/components/hds/rich-tooltip/toggle.js +1 -1
  637. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  638. package/dist/components/hds/segmented-group/index.js +1 -1
  639. package/dist/components/hds/segmented-group/index.js.map +1 -1
  640. package/dist/components/hds/separator/index.js +1 -1
  641. package/dist/components/hds/separator/index.js.map +1 -1
  642. package/dist/components/hds/stepper/list/index.js +1 -1
  643. package/dist/components/hds/stepper/list/index.js.map +1 -1
  644. package/dist/components/hds/stepper/list/step.js +1 -1
  645. package/dist/components/hds/stepper/list/step.js.map +1 -1
  646. package/dist/components/hds/stepper/nav/index.js +1 -1
  647. package/dist/components/hds/stepper/nav/index.js.map +1 -1
  648. package/dist/components/hds/stepper/nav/panel.js +1 -1
  649. package/dist/components/hds/stepper/nav/panel.js.map +1 -1
  650. package/dist/components/hds/stepper/nav/step.js +1 -7
  651. package/dist/components/hds/stepper/nav/step.js.map +1 -1
  652. package/dist/components/hds/stepper/step/indicator.js +1 -1
  653. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  654. package/dist/components/hds/stepper/task/indicator.js +1 -1
  655. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  656. package/dist/components/hds/stepper/types.js +1 -1
  657. package/dist/components/hds/stepper/types.js.map +1 -1
  658. package/dist/components/hds/table/index.js +1 -1
  659. package/dist/components/hds/table/index.js.map +1 -1
  660. package/dist/components/hds/table/td.js +1 -1
  661. package/dist/components/hds/table/td.js.map +1 -1
  662. package/dist/components/hds/table/th-button-sort.js +1 -1
  663. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  664. package/dist/components/hds/table/th-button-tooltip.js +1 -1
  665. package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
  666. package/dist/components/hds/table/th-selectable.js +1 -1
  667. package/dist/components/hds/table/th-selectable.js.map +1 -1
  668. package/dist/components/hds/table/th-sort.js +1 -1
  669. package/dist/components/hds/table/th-sort.js.map +1 -1
  670. package/dist/components/hds/table/th.js +1 -1
  671. package/dist/components/hds/table/th.js.map +1 -1
  672. package/dist/components/hds/table/tr.js +1 -1
  673. package/dist/components/hds/table/tr.js.map +1 -1
  674. package/dist/components/hds/table/types.js +1 -1
  675. package/dist/components/hds/table/types.js.map +1 -1
  676. package/dist/components/hds/tabs/index.js +1 -1
  677. package/dist/components/hds/tabs/index.js.map +1 -1
  678. package/dist/components/hds/tabs/panel.js +1 -1
  679. package/dist/components/hds/tabs/panel.js.map +1 -1
  680. package/dist/components/hds/tabs/tab.js +1 -1
  681. package/dist/components/hds/tabs/tab.js.map +1 -1
  682. package/dist/components/hds/tag/index.js +1 -1
  683. package/dist/components/hds/tag/index.js.map +1 -1
  684. package/dist/components/hds/text/body.js +1 -1
  685. package/dist/components/hds/text/body.js.map +1 -1
  686. package/dist/components/hds/text/code.js +1 -1
  687. package/dist/components/hds/text/code.js.map +1 -1
  688. package/dist/components/hds/text/display.js +1 -1
  689. package/dist/components/hds/text/display.js.map +1 -1
  690. package/dist/components/hds/text/index.js +1 -1
  691. package/dist/components/hds/text/index.js.map +1 -1
  692. package/dist/components/hds/time/index.js +1 -1
  693. package/dist/components/hds/time/index.js.map +1 -1
  694. package/dist/components/hds/time/range.js +1 -1
  695. package/dist/components/hds/time/range.js.map +1 -1
  696. package/dist/components/hds/time/single.js +1 -1
  697. package/dist/components/hds/time/single.js.map +1 -1
  698. package/dist/components/hds/toast/index.js +1 -1
  699. package/dist/components/hds/toast/index.js.map +1 -1
  700. package/dist/components/hds/tooltip-button/index.js +1 -1
  701. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  702. package/dist/components/hds/yield/index.js +1 -1
  703. package/dist/components/hds/yield/index.js.map +1 -1
  704. package/dist/components.js +1 -1
  705. package/dist/helpers/hds-t.js +1 -1
  706. package/dist/helpers/hds-t.js.map +1 -1
  707. package/dist/{index-B9OqWZ9U.js → index-DtMB-P9m.js} +7 -7
  708. package/dist/{index-B9OqWZ9U.js.map → index-DtMB-P9m.js.map} +1 -1
  709. package/dist/modifiers/hds-advanced-table-cell/dom-management.js +1 -1
  710. package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -1
  711. package/dist/modifiers/hds-advanced-table-cell.js +1 -1
  712. package/dist/modifiers/hds-advanced-table-cell.js.map +1 -1
  713. package/dist/modifiers/hds-clipboard.js +6 -2
  714. package/dist/modifiers/hds-clipboard.js.map +1 -1
  715. package/dist/modifiers/hds-code-editor.js.map +1 -1
  716. package/dist/modifiers/hds-scroll-into-view-on-focus.js +1 -1
  717. package/dist/modifiers/hds-scroll-into-view-on-focus.js.map +1 -1
  718. package/dist/modifiers/hds-tooltip.js +1 -1
  719. package/dist/modifiers/hds-tooltip.js.map +1 -1
  720. package/dist/services/hds-intl.js +1 -1
  721. package/dist/services/hds-intl.js.map +1 -1
  722. package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
  723. package/dist/styles/@hashicorp/design-system-components.css +159 -153
  724. package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
  725. package/dist/styles/@hashicorp/design-system-components.scss +1 -1
  726. package/dist/styles/@hashicorp/design-system-ember-a11y-refocus.scss +5 -0
  727. package/dist/styles/components/advanced-table.scss +1 -1
  728. package/dist/styles/components/app-header.scss +1 -1
  729. package/dist/styles/components/app-side-nav/content.scss +1 -1
  730. package/dist/styles/components/app-side-nav/vars.scss +1 -1
  731. package/dist/styles/components/breadcrumb.scss +1 -1
  732. package/dist/styles/components/code-block/index.scss +1 -1
  733. package/dist/styles/components/code-editor/index.scss +1 -1
  734. package/dist/styles/components/dropdown.scss +4 -0
  735. package/dist/styles/components/filter-bar.scss +1 -1
  736. package/dist/styles/components/flyout.scss +1 -1
  737. package/dist/styles/components/index.scss +1 -1
  738. package/dist/styles/components/layout/grid.scss +1 -1
  739. package/dist/styles/components/stepper/nav.scss +66 -67
  740. package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
  741. package/dist/utils/hds-aria-described-by.js +1 -1
  742. package/dist/utils/hds-aria-described-by.js.map +1 -1
  743. package/dist/utils/hds-link-to-external.js +5 -0
  744. package/dist/utils/hds-link-to-external.js.map +1 -1
  745. package/package.json +2 -2
  746. package/translations/hds/components/code-block/en-us.yaml +3 -0
  747. package/translations/hds/components/copy-button/en-us.yaml +3 -1
  748. package/translations/hds/components/copy-snippet/en-us.yaml +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index-B9OqWZ9U.js","sources":["../src/components/hds/advanced-table/th-resize-handle.gts","../src/components/hds/advanced-table/th-reorder-drop-target.gts","../src/components/hds/advanced-table/th.gts","../src/components/hds/advanced-table/th-selectable.gts","../src/components/hds/advanced-table/tr.gts","../src/components/hds/advanced-table/index.gts"],"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 { on } from '@ember/modifier';\nimport style from 'ember-style-modifier';\nimport { concat } from '@ember/helper';\n\nimport { parsePixel, requestAnimationFrameWaiter } from './utils.ts';\nimport { BORDER_WIDTH } from './index.gts';\nimport {\n DEFAULT_MIN_WIDTH,\n DEFAULT_MAX_WIDTH,\n} from './column-manager/width.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type Owner from '@ember/owner';\nimport type { HdsAdvancedTableNormalizedColumn } from './types';\nimport type { HdsAdvancedTableSignature } from './index.gts';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nfunction calculateEffectiveDelta(\n deltaX: number,\n col: HdsAdvancedTableNormalizedColumn,\n startColW: number,\n nextCol: HdsAdvancedTableNormalizedColumn,\n startNextColW: number\n): number {\n const colMin = parsePixel(col.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n const colMax = parsePixel(col.maxWidth ?? DEFAULT_MAX_WIDTH) ?? Infinity;\n const nextMin = parsePixel(nextCol.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n const nextMax = parsePixel(nextCol.maxWidth ?? DEFAULT_MAX_WIDTH) ?? 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?: HdsAdvancedTableNormalizedColumn;\n siblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n tableHeight?: number;\n onApplyTransientWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onGetAppliedWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n onGetColumnByKey?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n onSetTransientColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ) => void;\n onSetTransientColumnWidths?: (options: { roundValues?: boolean }) => void;\n onResetTransientColumnWidths?: () => void;\n onUpdateResizeDebt?: (delta: number) => void;\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 currentWidthInPixels(): number {\n const { column, onGetAppliedWidth } = this.args;\n\n if (column === undefined || onGetAppliedWidth === undefined) {\n return 0;\n }\n\n const appliedWidth = onGetAppliedWidth(column.key);\n\n return parsePixel(appliedWidth) ?? 0;\n }\n\n get minWidthInPixels(): number {\n return parsePixel(this.args.column?.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n }\n\n get maxWidthInPixels(): number {\n return (\n parsePixel(this.args.column?.maxWidth ?? DEFAULT_MAX_WIDTH) ?? Infinity\n );\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, siblingColumnKeys, onApplyTransientWidth } = this.args;\n\n if (column === undefined || onApplyTransientWidth === undefined) {\n return;\n }\n\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n onApplyTransientWidth(column.key);\n\n if (nextColumnKey !== undefined) {\n onApplyTransientWidth(nextColumnKey);\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 {\n column,\n siblingColumnKeys,\n onApplyTransientWidth,\n onGetAppliedWidth,\n onSetTransientColumnWidths,\n onResetTransientColumnWidths,\n onUpdateResizeDebt,\n } = this.args;\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n if (\n column === undefined ||\n nextColumnKey === undefined ||\n onApplyTransientWidth === undefined ||\n onGetAppliedWidth === undefined ||\n onSetTransientColumnWidths === undefined ||\n onUpdateResizeDebt === undefined ||\n onResetTransientColumnWidths === undefined\n ) {\n return;\n }\n\n onSetTransientColumnWidths({ roundValues: true });\n\n const startColumnAppliedWidth = onGetAppliedWidth(column.key);\n const startNextColumnAppliedWidth = onGetAppliedWidth(nextColumnKey);\n\n const startColumnPxWidth = Math.round(\n parsePixel(startColumnAppliedWidth) ?? 0\n );\n const startNextColumnPxWidth = Math.round(\n parsePixel(startNextColumnAppliedWidth) ?? 0\n );\n const deltaX =\n event.key === 'ArrowRight' ? KEYBOARD_RESIZE_STEP : -KEYBOARD_RESIZE_STEP;\n\n this._applyResizeDelta(\n deltaX,\n startColumnPxWidth,\n column,\n nextColumnKey,\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 if (this._transientDelta !== 0) {\n onUpdateResizeDebt(this._transientDelta);\n }\n // reset transient values\n onApplyTransientWidth(column.key);\n onApplyTransientWidth(nextColumnKey);\n\n onResetTransientColumnWidths();\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 {\n column,\n siblingColumnKeys,\n onGetAppliedWidth,\n onSetTransientColumnWidths,\n } = this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onSetTransientColumnWidths === undefined\n ) {\n return;\n }\n\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n onSetTransientColumnWidths({});\n\n const startColumnAppliedWidth = onGetAppliedWidth(column.key);\n const startNextColumnAppliedWidth =\n nextColumnKey !== undefined\n ? onGetAppliedWidth(nextColumnKey)\n : undefined;\n\n const startColumnPxWidth = Math.round(\n parsePixel(startColumnAppliedWidth) ?? 0\n );\n const startNextColumnPxWidth = Math.round(\n parsePixel(startNextColumnAppliedWidth) ?? 0\n );\n\n this.resizing = {\n startX: event.clientX,\n startColumnPxWidth,\n startNextColumnPxWidth,\n };\n\n window.addEventListener('pointermove', this._boundResize);\n window.addEventListener('pointerup', this._boundStopResize);\n }\n\n private _setColumnWidth(\n column: HdsAdvancedTableNormalizedColumn,\n width: number\n ): void {\n const { onSetTransientColumnWidth } = this.args;\n\n if (column === undefined || onSetTransientColumnWidth === undefined) {\n return;\n }\n\n onSetTransientColumnWidth(column.key, `${width}px`);\n }\n\n private _applyResizeDelta(\n deltaX: number,\n startColumnPxWidth: number,\n column?: HdsAdvancedTableNormalizedColumn,\n nextColumnKey?: HdsAdvancedTableNormalizedColumn['key'],\n startNextColumnPxWidth?: number\n ): void {\n const { onGetAppliedWidth, onGetColumnByKey, onSetTransientColumnWidth } =\n this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onGetColumnByKey === undefined\n ) {\n return;\n }\n\n const canResizeNeighbor =\n nextColumnKey !== undefined && startNextColumnPxWidth !== undefined;\n\n if (canResizeNeighbor) {\n const nextColumn = onGetColumnByKey(nextColumnKey);\n\n if (nextColumn === undefined) {\n return;\n }\n\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 columnAppliedWidth = onGetAppliedWidth(column.key);\n const actualNewColumnWidth =\n parsePixel(columnAppliedWidth) ?? 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 if (onSetTransientColumnWidth !== undefined) {\n onSetTransientColumnWidth(\n column.key,\n `${Math.round(startColumnPxWidth + deltaX)}px`\n );\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, siblingColumnKeys } = this.args;\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n const { startX, startColumnPxWidth, startNextColumnPxWidth } =\n this.resizing;\n const deltaX = event.clientX - startX;\n\n this._applyResizeDelta(\n deltaX,\n startColumnPxWidth, // Width at the start of the drag\n column,\n nextColumnKey,\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 {\n column,\n onGetAppliedWidth,\n onResetTransientColumnWidths,\n onUpdateResizeDebt,\n } = this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onResetTransientColumnWidths === undefined ||\n onUpdateResizeDebt === undefined\n ) {\n return;\n }\n\n window.removeEventListener('pointermove', this._boundResize);\n window.removeEventListener('pointerup', this._boundStopResize);\n\n if (this._transientDelta !== 0) {\n onUpdateResizeDebt(this._transientDelta);\n }\n\n this._applyTransientWidths();\n\n // reset the transient width\n onResetTransientColumnWidths();\n\n // reset the resizing state\n this.resizing = null;\n this._transientDelta = 0;\n\n const appliedWidth = onGetAppliedWidth(column.key);\n\n this.onColumnResize(column.key, appliedWidth);\n }\n\n <template>\n {{! template-lint-disable no-pointer-down-event-binding }}\n <div\n class={{this.classNames}}\n draggable=\"false\"\n role=\"slider\"\n aria-orientation=\"horizontal\"\n aria-valuenow={{this.currentWidthInPixels}}\n aria-valuemin={{this.minWidthInPixels}}\n aria-valuemax={{this.maxWidthInPixels}}\n tabindex=\"0\"\n aria-label={{hdsT\n \"hds.components.advanced-table.th-resize-handle.aria-label\"\n columnLabel=@column.label\n default=(concat \"Resize \" @column.label \" column\")\n }}\n {{this._registerHandleElement}}\n {{on \"pointerdown\" this.startResize}}\n {{on \"keydown\" this.handleKeydown}}\n {{style height=this.height}}\n ...attributes\n />\n </template>\n}\n","/**\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 { on } from '@ember/modifier';\nimport style from 'ember-style-modifier';\n\nimport { BORDER_WIDTH } from './index.gts';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { HdsAdvancedTableColumnReorderSideValues } from './types.ts';\n\nimport type {\n HdsAdvancedTableNormalizedColumn,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\n\nexport interface HdsAdvancedTableThReorderDropTargetSignature {\n Args: {\n column?: HdsAdvancedTableNormalizedColumn;\n draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n reorderHoveredColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n draggedColumnSiblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n tableHeight?: number;\n onReorderDrop?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n onSetReorderHoveredColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\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 isBeingDragged(): boolean {\n const { column, draggedColumnKey } = this.args;\n\n return column !== undefined && column.key === draggedColumnKey;\n }\n\n get isDraggingOver(): boolean {\n const { column, reorderHoveredColumnKey } = this.args;\n\n return column !== undefined && column.key === reorderHoveredColumnKey;\n }\n\n get classNames(): string {\n const { isFirstColumn, isLastColumn } = this.args;\n\n const classes = ['hds-advanced-table__th-reorder-drop-target'];\n\n if (isFirstColumn && !this.args.hasSelectableRows) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-first');\n } else if (isLastColumn) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-last');\n }\n\n if (this.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 {\n column,\n draggedColumnKey,\n draggedColumnSiblingColumnKeys,\n onSetReorderHoveredColumnKey,\n } = this.args;\n\n if (column === undefined || onSetReorderHoveredColumnKey === undefined) {\n return;\n }\n\n if (draggedColumnKey !== null) {\n if (this.isBeingDragged) {\n onSetReorderHoveredColumnKey(null);\n } else {\n onSetReorderHoveredColumnKey(column.key);\n\n const { next, previous } = draggedColumnSiblingColumnKeys ?? {};\n const dragSide = this._getDragSide(event);\n\n if (\n (column.key === previous &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Left) ||\n (column.key === next &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Right) ||\n (column.key !== previous && column.key !== 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, onSetReorderHoveredColumnKey } = this.args;\n const { _dragSide } = this;\n\n if (\n column === undefined ||\n _dragSide === null ||\n typeof onReorderDrop !== 'function' ||\n typeof onSetReorderHoveredColumnKey !== 'function'\n ) {\n return;\n }\n\n onReorderDrop(column.key, _dragSide);\n\n this._dragSide = null;\n\n onSetReorderHoveredColumnKey(null);\n }\n\n <template>\n <div\n class={{this.classNames}}\n aria-hidden=\"true\"\n {{style height=this.height}}\n {{this._registerElement}}\n {{on \"dragover\" this.handleDragOver}}\n {{on \"drop\" this.handleDrop}}\n ...attributes\n />\n </template>\n}\n","/**\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 { scheduleOnce } from '@ember/runloop';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport { modifier } from 'ember-modifier';\nimport style from 'ember-style-modifier';\nimport { and, not } from 'ember-truth-helpers';\n\nimport hdsScrollIntoViewOnFocus from '../../../modifiers/hds-scroll-into-view-on-focus.ts';\nimport hdsAdvancedTableCell from '../../../modifiers/hds-advanced-table-cell.ts';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\nimport { hash } from '@ember/helper';\nimport HdsLayoutFlex from '../layout/flex/index.gts';\nimport HdsAdvancedTableThButtonExpand from './th-button-expand.gts';\nimport HdsAdvancedTableThButtonSort from './th-button-sort.gts';\nimport HdsAdvancedTableThButtonTooltip from './th-button-tooltip.gts';\nimport HdsAdvancedTableThContextMenu from './th-context-menu.gts';\nimport HdsAdvancedTableThReorderHandle from './th-reorder-handle.gts';\nimport HdsAdvancedTableThResizeHandle from './th-resize-handle.gts';\nimport HdsAdvancedTableThReorderDropTarget from './th-reorder-drop-target.gts';\n\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport {\n HdsAdvancedTableHorizontalAlignmentValues,\n HdsAdvancedTableThSortOrderLabelValues,\n HdsAdvancedTableThSortOrderValues,\n} from './types.ts';\n\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableScope,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n HdsAdvancedTableThSortOrderLabels,\n HdsAdvancedTableThSortOrder,\n} from './types.ts';\n\nimport type { HdsCompositeSignature } from '../composite/index.gts';\nimport type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort.gts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.gts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type Owner from '@ember/owner';\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?: HdsAdvancedTableNormalizedColumn;\n colspan?: number;\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\n depth?: number;\n draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n firstColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n firstNonStickyColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n hasExpandAllButton?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn'];\n isExpandable?: boolean;\n isExpanded?: HdsAdvancedTableExpandState;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n lastColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n newLabel?: string;\n parentId?: string;\n reorderHoveredColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n rowspan?: number;\n scope?: HdsAdvancedTableScope;\n siblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n draggedColumnSiblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n sortOrder?: HdsAdvancedTableThSortOrder;\n tableHeight?: number;\n tooltip?: string;\n didInsertExpandButton?: (button: HTMLButtonElement) => void;\n onApplyTransientWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick'];\n onClickToggle?: () => void;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onGetAppliedWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n onGetColumnByKey?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n onMoveColumnToTerminalPosition?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n onPinFirstColumn?: () => void;\n onReorderDrop?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n onResetTransientColumnWidths?: () => void;\n onRestoreColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onSetDraggedColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n onSetReorderHoveredColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n onSetTransientColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ) => void;\n onSetTransientColumnWidths?: (options: { roundValues?: boolean }) => void;\n onStepColumn?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n onUpdateResizeDebt?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n delta: number\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: string;\n\n @tracked private _element!: HTMLDivElement;\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 { newLabel, 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 this._labelId = newLabel ?? guidFor(this);\n }\n\n get isSortable(): boolean {\n return this.args.column?.isSortable ?? false;\n }\n\n get isFirstColumn(): boolean {\n const { column, firstColumnKey } = this.args;\n\n return (\n firstColumnKey !== undefined &&\n column !== undefined &&\n firstColumnKey === column.key\n );\n }\n\n get isFirstNonStickyColumn(): boolean {\n const { column, firstNonStickyColumnKey } = this.args;\n\n return (\n firstNonStickyColumnKey !== undefined &&\n column !== undefined &&\n firstNonStickyColumnKey === column.key\n );\n }\n\n get isLastColumn(): boolean {\n const { column, lastColumnKey } = this.args;\n\n return (\n lastColumnKey !== undefined &&\n column !== undefined &&\n lastColumnKey === column.key\n );\n }\n\n get tableHasColumnBeingDragged(): boolean {\n const { draggedColumnKey } = this.args;\n\n return draggedColumnKey != null;\n }\n\n get isColumnBeingDragged(): boolean {\n const { column, draggedColumnKey } = this.args;\n\n return (\n draggedColumnKey != null &&\n column !== undefined &&\n draggedColumnKey === column.key\n );\n }\n\n get scope(): HdsAdvancedTableScope {\n return this.args.scope ?? 'col';\n }\n\n get role(): string {\n return this.scope === 'col' ? 'columnheader' : 'rowheader';\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::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 return this.args.rowspan !== undefined\n ? `span ${this.args.rowspan}`\n : 'auto';\n }\n\n get colspan(): string | undefined {\n return this.args.colspan !== undefined\n ? `span ${this.args.colspan}`\n : 'auto';\n }\n\n get paddingLeft(): string | undefined {\n return this.args.depth !== undefined\n ? `calc(${this.args.depth} * 32px + 16px)`\n : undefined;\n }\n\n get classNames(): string {\n const { isStickyColumn, isStickyColumnPinned } = this.args;\n\n const classes = ['hds-advanced-table__th'];\n\n if (this.isSortable) {\n classes.push('hds-advanced-table__th--sort');\n }\n\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (isStickyColumn && isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.isColumnBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n get showDropTarget(): boolean {\n const { isStickyColumn } = this.args;\n\n return this.tableHasColumnBeingDragged === true && !isStickyColumn;\n }\n\n get showResizeHandle(): boolean {\n const { hasResizableColumns } = this.args;\n\n return (\n hasResizableColumns === true &&\n !this.isLastColumn &&\n !this.tableHasColumnBeingDragged\n );\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\n return cellFocusableElements[0];\n }\n\n @action focusReorderHandle(): void {\n if (this._element === undefined) {\n return;\n }\n\n // focus the th element first (parent) to ensure the handle is visible\n this._element.focus({ preventScroll: true });\n\n if (this._reorderHandleElement === undefined) {\n return;\n }\n\n // then focus the reorder handle element\n this._reorderHandleElement.focus();\n }\n\n @action applyTransientWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): void {\n this.args.onApplyTransientWidth?.(columnKey);\n }\n\n @action resetTransientColumnWidths(): void {\n this.args.onResetTransientColumnWidths?.();\n }\n\n @action getAppliedWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): HdsAdvancedTableNormalizedColumn['width'] | undefined {\n return this.args.onGetAppliedWidth?.(columnKey);\n }\n\n @action getColumnByKey(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): HdsAdvancedTableNormalizedColumn | undefined {\n return this.args.onGetColumnByKey?.(columnKey);\n }\n\n @action setDraggedColumnKey(\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ): void {\n this.args.onSetDraggedColumnKey?.(columnKey);\n }\n\n @action setTransientColumnWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ): void {\n const { column, onSetTransientColumnWidth } = this.args;\n\n if (column !== undefined && onSetTransientColumnWidth !== undefined) {\n onSetTransientColumnWidth(columnKey, width);\n }\n }\n\n @action setTransientColumnWidths(options: { roundValues?: boolean }): void {\n this.args.onSetTransientColumnWidths?.(options);\n }\n\n @action stepColumn(step: number): void {\n const { column, onStepColumn } = this.args;\n\n if (column !== undefined && onStepColumn !== undefined) {\n onStepColumn(column.key, step);\n }\n }\n\n @action updateResizeDebt(delta: number): void {\n const { column, onUpdateResizeDebt } = this.args;\n\n if (column !== undefined && onUpdateResizeDebt !== undefined) {\n onUpdateResizeDebt(column.key, delta);\n }\n }\n\n @action setElement(element: HTMLDivElement): void {\n // eslint-disable-next-line ember/no-runloop, ember/no-incorrect-calls-with-inline-anonymous-functions\n scheduleOnce('afterRender', () => {\n this._element = 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\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 <template>\n <div\n class={{this.classNames}}\n role={{this.role}}\n aria-sort={{this.ariaSort}}\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n aria-describedby={{@parentId}}\n {{style\n grid-row=this.rowspan\n grid-column=this.colspan\n padding-left=this.paddingLeft\n }}\n {{hdsAdvancedTableCell\n handleEnableFocusTrap=this.enableFocusTrap\n shouldTrapFocus=this._shouldTrapFocus\n setCellElement=this.setElement\n }}\n {{focusTrap\n isActive=this._shouldTrapFocus\n focusTrapOptions=(hash\n onDeactivate=this.onFocusTrapDeactivate\n initialFocus=this.getInitialFocus\n clickOutsideDeactivates=true\n )\n }}\n {{@compositeItem disabled=@isCompositeItemDisabled}}\n {{hdsScrollIntoViewOnFocus options=(hash block=\"center\" inline=\"center\")}}\n ...attributes\n >\n <HdsLayoutFlex @justify=\"space-between\" @align=\"center\" @gap=\"8\">\n {{#if @column.isVisuallyHidden}}\n <span class=\"sr-only\">{{yield}}</span>\n {{else}}\n {{#if (and @isExpandable (not this.isSortable))}}\n <HdsAdvancedTableThButtonExpand\n @labelId={{this._labelId}}\n @onToggle={{@onClickToggle}}\n @isExpanded={{@isExpanded}}\n @isExpandAll={{@hasExpandAllButton}}\n {{this._manageExpandButton}}\n />\n {{/if}}\n <div class=\"hds-advanced-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-advanced-table__th-content-text hds-typography-body-200 hds-font-weight-semibold\"\n >\n {{yield}}\n </span>\n {{#if @tooltip}}\n <HdsAdvancedTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n {{#if this.isSortable}}\n <HdsAdvancedTableThButtonSort\n @sortOrder={{@sortOrder}}\n @onClick={{@onClickSort}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n {{#if @column}}\n <HdsAdvancedTableThContextMenu\n @column={{@column}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasResizableColumns={{@hasResizableColumns}}\n @isFirstColumn={{this.isFirstColumn}}\n @isFirstNonStickyColumn={{this.isFirstNonStickyColumn}}\n @isLastColumn={{this.isLastColumn}}\n @isStickyColumn={{@isStickyColumn}}\n @reorderHandleElement={{this._reorderHandleElement}}\n @resizeHandleElement={{this._resizeHandleElement}}\n @onColumnResize={{@onColumnResize}}\n @onFocusReorderHandle={{this.focusReorderHandle}}\n @onMoveColumnToTerminalPosition={{@onMoveColumnToTerminalPosition}}\n @onPinFirstColumn={{@onPinFirstColumn}}\n @onRestoreColumnWidth={{@onRestoreColumnWidth}}\n />\n {{#if (and @hasReorderableColumns (not @isStickyColumn))}}\n <HdsAdvancedTableThReorderHandle\n @column={{@column}}\n @tableHeight={{@tableHeight}}\n @thElement={{this._element}}\n @onFocusReorderHandle={{this.focusReorderHandle}}\n @onSetDraggedColumnKey={{this.setDraggedColumnKey}}\n @onStepColumn={{this.stepColumn}}\n {{this._registerReorderHandleElement}}\n />\n {{/if}}\n {{#if this.showResizeHandle}}\n <HdsAdvancedTableThResizeHandle\n @column={{@column}}\n @siblingColumnKeys={{@siblingColumnKeys}}\n @tableHeight={{@tableHeight}}\n @onApplyTransientWidth={{this.applyTransientWidth}}\n @onColumnResize={{@onColumnResize}}\n @onGetAppliedWidth={{this.getAppliedWidth}}\n @onGetColumnByKey={{this.getColumnByKey}}\n @onSetTransientColumnWidth={{this.setTransientColumnWidth}}\n @onSetTransientColumnWidths={{this.setTransientColumnWidths}}\n @onResetTransientColumnWidths={{this.resetTransientColumnWidths}}\n @onUpdateResizeDebt={{this.updateResizeDebt}}\n {{this._registerResizeHandleElement}}\n />\n {{/if}}\n {{/if}}\n {{/if}}\n </HdsLayoutFlex>\n {{#if this.showDropTarget}}\n <HdsAdvancedTableThReorderDropTarget\n @column={{@column}}\n @draggedColumnKey={{@draggedColumnKey}}\n @hasSelectableRows={{@hasSelectableRows}}\n @isFirstColumn={{this.isFirstColumn}}\n @isLastColumn={{this.isLastColumn}}\n @reorderHoveredColumnKey={{@reorderHoveredColumnKey}}\n @draggedColumnSiblingColumnKeys={{@draggedColumnSiblingColumnKeys}}\n @tableHeight={{@tableHeight}}\n @onReorderDrop={{@onReorderDrop}}\n @onSetReorderHoveredColumnKey={{@onSetReorderHoveredColumnKey}}\n />\n {{/if}}\n </div>\n </template>\n}\n","/**\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';\nimport { service } from '@ember/service';\nimport { on } from '@ember/modifier';\n\nimport type HdsIntlService from '../../../services/hds-intl';\n\nimport {\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsAdvancedTableTh from './th.gts';\nimport HdsFormCheckboxBase from '../form/checkbox/base.gts';\nimport HdsAdvancedTableThButtonSort from './th-button-sort.gts';\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type {\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsAdvancedTableThSignature } from './th.gts';\nimport type { HdsCompositeSignature } from '../composite/index.gts';\n\nexport interface HdsAdvancedTableThSelectableSignature {\n Args: {\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\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 @service declare readonly hdsIntl: HdsIntlService;\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 const defaultString = `Select ${selectionAriaLabelSuffix}`;\n return this.hdsIntl.t(\n 'hds.components.advanced-table.th-selectable.aria-label',\n {\n default: defaultString,\n suffix: selectionAriaLabelSuffix,\n }\n );\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 <template>\n <HdsAdvancedTableTh\n class=\"hds-advanced-table__th--is-selectable\"\n aria-sort={{if this.isSortable this.ariaSort}}\n @scope={{@selectionScope}}\n @isStickyColumn={{@isStickyColumn}}\n @isStickyColumnPinned={{@isStickyColumnPinned}}\n @compositeItem={{@compositeItem}}\n @isCompositeItemDisabled={{@isCompositeItemDisabled}}\n ...attributes\n >\n <div class=\"hds-advanced-table__th-content\">\n <HdsFormCheckboxBase\n id={{this._checkboxId}}\n class=\"hds-advanced-table__checkbox\"\n checked={{@isSelected}}\n aria-label={{this.ariaLabel}}\n {{this._manageCheckbox}}\n {{on \"change\" this.onSelectionChange}}\n />\n {{#if this.isSortable}}\n <HdsAdvancedTableThButtonSort\n @sortOrder={{@sortBySelectedOrder}}\n @onClick={{@onClickSortBySelected}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n </HdsAdvancedTableTh>\n </template>\n}\n","/**\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 { hash } from '@ember/helper';\nimport { eq } from 'ember-truth-helpers';\n\nimport HdsAdvancedTableThSelectable from './th-selectable.gts';\n\nimport type {\n HdsAdvancedTableCell,\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type { HdsCompositeSignature } from '../composite/index.gts';\nimport type { HdsAdvancedTableThSelectableSignature } from './th-selectable.gts';\n\ntype HdsCompositeDefaultBlock = HdsCompositeSignature['Blocks']['default'][0];\n\nexport interface BaseHdsAdvancedTableTrSignature<T> {\n Args: {\n columnOrder?: HdsAdvancedTableSignature['Args']['columnOrder'];\n compositeGroup?: HdsCompositeDefaultBlock['group'];\n compositeItem?: HdsCompositeDefaultBlock['item'];\n displayRow?: boolean;\n selectableColumnKey?: HdsAdvancedTableSignature['Args']['selectableColumnKey'];\n isCompositeItemDisabled?: boolean;\n isLastRow?: boolean;\n isSelectable?: boolean;\n isSelected?: boolean;\n isParentRow?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n data?: T;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsAdvancedTableScope;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n depth?: number;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsAdvancedTableThSelectableSignature['Args']['onClickSortBySelected'];\n hasStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n };\n Blocks: {\n default?: [\n {\n orderedCells?: HdsAdvancedTableCell<T>[];\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\n/*\n * NOTE: There is currently an issue with `WithBoundArgs` or Glint that causes a typing error where @selectionKey is set as always required.\n *\n * Until this is fixed, we are holding off on doing a union with the SelectableHdsAdvancedTableTrArgs\n */\n\n// Extended interface for selectable rows\n// export interface SelectableHdsAdvancedTableTrArgs\n// extends BaseHdsAdvancedTableTrSignature {\n// Args: BaseHdsAdvancedTableTrSignature['Args'] & {\n// isSelectable: true;\n// selectionScope?: HdsAdvancedTableScopeValues.Row;\n// selectionKey: string; // Now required for selectable rows\n// };\n// }\n\n// Union type to combine both possible states\nexport type HdsAdvancedTableTrSignature<T> = BaseHdsAdvancedTableTrSignature<T>;\n// | SelectableHdsAdvancedTableTrArgs;\n\nexport default class HdsAdvancedTableTr<T> extends Component<\n HdsAdvancedTableTrSignature<T>\n> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n\n get classNames(): string {\n const { depth, isLastRow, isParentRow, displayRow } = this.args;\n const classes = ['hds-advanced-table__tr'];\n\n if (depth && depth > 0) {\n classes.push('hds-advanced-table__tr--nested');\n }\n\n if (isParentRow) {\n classes.push('hds-advanced-table__tr--parent-row');\n }\n\n if (displayRow === false) {\n classes.push('hds-advanced-table__tr--hidden');\n }\n\n if (isLastRow) {\n classes.push('hds-advanced-table__tr--last-row');\n }\n\n return classes.join(' ');\n }\n\n get cells(): HdsAdvancedTableCell<T>[] {\n const { columnOrder, data } = this.args;\n\n if (columnOrder === undefined || data == null) {\n return [];\n }\n\n return columnOrder.map((columnKey) => ({\n columnKey,\n content: data[columnKey as keyof T] as HdsAdvancedTableCell<T>['content'],\n }));\n }\n\n get orderedCells(): HdsAdvancedTableCell<T>[] | undefined {\n const { columnOrder, data, hasReorderableColumns } = this.args;\n\n if (columnOrder === undefined || data === undefined) {\n return this.cells;\n }\n\n if (hasReorderableColumns) {\n return columnOrder.reduce<HdsAdvancedTableCell<T>[]>((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 <template>\n <div class={{this.classNames}} role=\"row\" {{@compositeGroup}} ...attributes>\n {{#if @isSelectable}}\n <HdsAdvancedTableThSelectable\n role={{if (eq @selectionScope \"row\") \"gridcell\" \"columnheader\"}}\n @compositeItem={{@compositeItem}}\n @isCompositeItemDisabled={{@isCompositeItemDisabled}}\n @isSelected={{@isSelected}}\n @selectionScope={{@selectionScope}}\n @selectionKey={{this.selectionKey}}\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\n @sortBySelectedOrder={{@sortBySelectedOrder}}\n @didInsert={{@didInsert}}\n @willDestroy={{@willDestroy}}\n @onClickSortBySelected={{@onClickSortBySelected}}\n @onSelectionChange={{@onSelectionChange}}\n @isStickyColumn={{@hasStickyColumn}}\n @isStickyColumnPinned={{@isStickyColumnPinned}}\n />\n {{/if}}\n\n {{yield (hash orderedCells=this.orderedCells)}}\n </div>\n </template>\n}\n","/**\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 { assert } from '@ember/debug';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { modifier } from 'ember-modifier';\nimport { TrackedSet } from 'tracked-built-ins';\nimport { fn, hash } from '@ember/helper';\nimport { and, eq, not, notEq } from 'ember-truth-helpers';\nimport style from 'ember-style-modifier';\nimport { on } from '@ember/modifier';\nimport { sortBy } from '@nullvoxpopuli/ember-composable-helpers';\n\nimport { HdsAdvancedTableThSortOrderValues } from './types.ts';\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport HdsFilterBar from '../filter-bar/index.gts';\nimport HdsApplicationState from '../application-state/index.gts';\nimport HdsComposite from '../composite/index.gts';\nimport HdsAdvancedTableColumnManager from './column-manager/index.gts';\nimport HdsAdvancedTableTr from './tr.gts';\nimport HdsAdvancedTableTh from './th.gts';\nimport HdsAdvancedTableBody from './body.gts';\nimport HdsAdvancedTableTd from './td.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type Owner from '@ember/owner';\nimport type { ComponentLike, WithBoundArgs } from '@glint/template';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableSortingFunction,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableModel,\n} from './types.ts';\n\nimport type { HdsAdvancedTableThSelectableSignature } from './th-selectable.gts';\nimport type { HdsAdvancedTableTrSignature } from './tr.gts';\nimport type { HdsFilterBarSignature } from '../filter-bar/index.gts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\n// a flattened signature for the yielded `Tr` component\n// Replaces `WithBoundArgs` to prevent TS infinite recursion crashes\n// when processing deeply nested tree-grid data models.\nexport interface YieldedHdsAdvancedTableTr<T> {\n Args: {\n isSelected?: boolean;\n selectionKey?: string;\n selectionAriaLabelSuffix?: string;\n selectableColumnKey?: string;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n onClickSortBySelected?: HdsAdvancedTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: HdsAdvancedTableTrSignature<T>['Blocks'];\n Element: HdsAdvancedTableTrSignature<T>['Element'];\n}\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport const BORDER_WIDTH = 1;\n\nconst DEFAULT_SCROLL_DIMENSIONS = {\n bottom: '0px',\n height: '0px',\n left: '0px',\n right: '0px',\n width: '0px',\n};\n\nconst REORDER_EDGE_SCROLL_TRIGGER_PX = 48;\nconst REORDER_EDGE_SCROLL_STEP_PX = 16;\n\nconst getScrollIndicatorDimensions = (\n scrollWrapper: HTMLDivElement,\n theadElement: HTMLDivElement,\n hasStickyFirstColumn: boolean,\n isStickyColumnPinned: boolean\n) => {\n const horizontalScrollBarHeight =\n scrollWrapper.offsetHeight - scrollWrapper.clientHeight;\n const verticalScrollBarWidth =\n scrollWrapper.offsetWidth - scrollWrapper.clientWidth;\n\n let leftOffset = 0;\n\n if (hasStickyFirstColumn) {\n const stickyColumnHeaders = theadElement.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n\n stickyColumnHeaders?.forEach((el) => {\n // querySelectorAll returns Elements, which don't have offsetWidth\n // need to use offsetWidth to account for the cell borders\n const elAsHTMLElement = el as HTMLElement;\n leftOffset += elAsHTMLElement.offsetWidth;\n });\n\n // offsets the left: -1px position if there are multiple sticky columns or the first column has a fixed pixel width\n if (stickyColumnHeaders.length > 1) {\n leftOffset -= 1;\n }\n\n // offsets the left: -1px position if the sticky column is already pinned when the scroll indicator is calculated\n if (isStickyColumnPinned) {\n leftOffset -= 1;\n }\n }\n\n return {\n bottom: `${horizontalScrollBarHeight}px`,\n height: `${scrollWrapper.offsetHeight - horizontalScrollBarHeight}px`,\n left: `${leftOffset}px`,\n right: `${verticalScrollBarWidth}px`,\n width: `${scrollWrapper.offsetWidth - verticalScrollBarWidth}px`,\n };\n};\n\nconst getStickyColumnLeftOffset = (\n theadElement: HTMLDivElement,\n hasRowSelection: boolean,\n isStickyColumnPinned: boolean\n) => {\n // if there is no select checkbox column, the sticky column is all the way to the left\n if (!hasRowSelection) return '0px';\n\n const selectableCell = theadElement.querySelector(\n '.hds-advanced-table__th--is-selectable'\n ) as HTMLElement;\n\n let leftOffset = selectableCell?.offsetWidth ?? 0;\n\n // if the sticky column is pinned when the offset is calculated, we need to account for the increased width of the border\n if (isStickyColumnPinned && leftOffset > 0) {\n leftOffset -= 2;\n }\n\n return `${leftOffset}px`;\n};\n\nexport interface HdsAdvancedTableSignature<T = HdsAdvancedTableModel> {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n columnOrder?: string[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: T[];\n reorderedMessageText?: string;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasReorderableColumns?: boolean;\n hasResizableColumns?: boolean;\n hasStickyHeader?: boolean;\n hasStickyFirstColumn?: boolean;\n childrenKey?: string;\n maxHeight?: string;\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onColumnResize?: (columnKey: string, newWidth?: string) => void;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n };\n Blocks: {\n actions?: [\n {\n FilterBar?: ComponentLike<HdsFilterBarSignature>;\n },\n ];\n body?: [\n {\n Td?: WithBoundArgs<\n typeof HdsAdvancedTableTd,\n 'align' | 'compositeItem' | 'isCompositeItemDisabled'\n >;\n Tr?: ComponentLike<YieldedHdsAdvancedTableTr<T>>;\n Th?: WithBoundArgs<\n typeof HdsAdvancedTableTh,\n | 'compositeItem'\n | 'isCompositeItemDisabled'\n | 'depth'\n | 'isExpandable'\n | 'isExpanded'\n | 'isStickyColumnPinned'\n | 'newLabel'\n | 'onClickToggle'\n | 'parentId'\n | 'scope'\n >;\n data: T;\n rowIndex?: number | string;\n isOpen?: HdsAdvancedTableExpandState;\n },\n ];\n emptyState?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable<\n T = HdsAdvancedTableModel,\n> extends Component<HdsAdvancedTableSignature<T>> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n @tracked private _tableHeight = 0;\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _scrollHandler!: (event: Event) => void;\n private _dragOverHandler!: (event: DragEvent) => void;\n private _resizeObserver!: ResizeObserver;\n private _theadElement!: HTMLDivElement;\n private _scrollWrapperElement!: HTMLDivElement;\n\n @tracked scrollIndicatorDimensions = DEFAULT_SCROLL_DIMENSIONS;\n @tracked isStickyColumnPinned = false;\n @tracked isStickyHeaderPinned = false;\n @tracked hasPinnedFirstColumn: boolean | undefined = undefined;\n @tracked reorderedMessageText = '';\n @tracked showScrollIndicatorLeft = false;\n @tracked showScrollIndicatorRight = false;\n @tracked showScrollIndicatorTop = false;\n @tracked showScrollIndicatorBottom = false;\n @tracked stickyColumnOffset = '0px';\n\n // sorting properties\n @tracked currentSortBy?: string;\n @tracked currentSortOrder: HdsAdvancedTableThSortOrder =\n HdsAdvancedTableThSortOrderValues.Asc;\n\n // row expansion properties\n expandedRowIds = new TrackedSet<string>();\n\n private _setUpScrollWrapper = modifier((element: HTMLDivElement) => {\n this._scrollWrapperElement = element;\n\n const updateHorizontalScrollIndicators = () => {\n this.showScrollIndicatorRight = element.clientWidth < element.scrollWidth;\n };\n\n this._scrollHandler = () => {\n this._updateScrollIndicators(element);\n };\n\n this._dragOverHandler = (event: DragEvent) => {\n if (this.args.hasReorderableColumns !== true) {\n return;\n }\n\n const canScrollHorizontally = element.scrollWidth > element.clientWidth;\n\n if (!canScrollHorizontally) {\n return;\n }\n\n const firstReorderDropTarget = element.querySelector(\n '.hds-advanced-table__th-reorder-drop-target'\n );\n\n if (firstReorderDropTarget === null) {\n return;\n }\n\n const stickyColumnHeaders = element.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n const lastStickyColumnHeader = stickyColumnHeaders[\n stickyColumnHeaders.length - 1\n ] as HTMLDivElement | undefined;\n\n const leftVisibleEdge =\n lastStickyColumnHeader?.getBoundingClientRect().right ??\n firstReorderDropTarget.getBoundingClientRect().left;\n\n const leftScrollTrigger =\n lastStickyColumnHeader !== undefined\n ? leftVisibleEdge\n : leftVisibleEdge + REORDER_EDGE_SCROLL_TRIGGER_PX;\n\n const { right } = element.getBoundingClientRect();\n const rightScrollTrigger = right - REORDER_EDGE_SCROLL_TRIGGER_PX;\n\n if (event.clientX <= leftScrollTrigger) {\n element.scrollBy({ left: -REORDER_EDGE_SCROLL_STEP_PX });\n } else if (event.clientX >= rightScrollTrigger) {\n element.scrollBy({ left: REORDER_EDGE_SCROLL_STEP_PX });\n }\n };\n\n element.addEventListener('scroll', this._scrollHandler);\n element.addEventListener('dragover', this._dragOverHandler);\n\n const updateMeasurements = () => {\n const { isSelectable = false } = this.args;\n\n const newTableHeight = element.offsetHeight;\n\n const newDimensions = getScrollIndicatorDimensions(\n element,\n this._theadElement,\n this.hasStickyFirstColumn ? true : false,\n this.isStickyColumnPinned\n );\n\n const setUpdatedMeasurements = () => {\n if (this.isDestroying || this.isDestroyed) {\n return;\n }\n\n const isSameBottom =\n this.scrollIndicatorDimensions.bottom === newDimensions.bottom;\n const isSameHeight =\n this.scrollIndicatorDimensions.height === newDimensions.height;\n const isSameLeft =\n this.scrollIndicatorDimensions.left === newDimensions.left;\n const isSameRight =\n this.scrollIndicatorDimensions.right === newDimensions.right;\n\n if (\n isSameBottom &&\n isSameHeight &&\n isSameLeft &&\n isSameRight &&\n this._tableHeight === newTableHeight\n ) {\n return;\n }\n\n this._tableHeight = newTableHeight;\n this.scrollIndicatorDimensions = newDimensions;\n\n if (this.hasStickyFirstColumn) {\n this.stickyColumnOffset = getStickyColumnLeftOffset(\n this._theadElement,\n isSelectable,\n this.isStickyColumnPinned\n );\n }\n };\n\n window.requestAnimationFrame(setUpdatedMeasurements);\n };\n\n this._resizeObserver = new ResizeObserver((entries) => {\n entries.forEach(() => {\n updateMeasurements();\n updateHorizontalScrollIndicators();\n });\n });\n\n this._resizeObserver.observe(element);\n\n updateMeasurements();\n\n // on render check if should show right scroll indicator\n updateHorizontalScrollIndicators();\n\n // on render check if should show bottom scroll indicator\n if (element.clientHeight < element.scrollHeight) {\n this.showScrollIndicatorBottom = true;\n }\n\n return () => {\n element.removeEventListener('scroll', this._scrollHandler);\n element.removeEventListener('dragover', this._dragOverHandler);\n this._resizeObserver.disconnect();\n };\n });\n\n private _setUpThead = modifier((element: HTMLDivElement) => {\n this._theadElement = element;\n });\n\n private _syncSortArgs = modifier(() => {\n const { sortBy, sortOrder } = this.args;\n\n if (sortBy !== undefined) {\n this.currentSortBy = sortBy;\n }\n\n if (sortOrder !== undefined) {\n this.currentSortOrder = sortOrder;\n }\n });\n\n constructor(owner: Owner, args: HdsAdvancedTableSignature<T>['Args']) {\n super(owner, args);\n\n const { hasStickyFirstColumn, model } = args;\n\n this._runAssertions();\n\n this._initializeExpandedRows(model);\n\n if (hasStickyFirstColumn) {\n this.hasPinnedFirstColumn = true;\n }\n }\n\n get childrenKey(): string {\n return this.args.childrenKey ?? 'children';\n }\n\n get hasRowsWithChildren(): boolean {\n const { model } = this.args;\n\n return model.some((record) => {\n const children = (record as Record<string, unknown>)[this.childrenKey] as\n | Record<string, unknown>[]\n | undefined;\n\n return Array.isArray(children) && children.length > 0;\n });\n }\n\n @cached\n get expandableRowIds(): string[] {\n const { model } = this.args;\n\n const ids: string[] = [];\n\n const collect = (items: Record<string, unknown>[]) => {\n items.forEach((item) => {\n const children = item[this.childrenKey] as\n | Record<string, unknown>\n | undefined;\n\n if (Array.isArray(children) && children.length > 0) {\n ids.push(guidFor(item));\n\n collect(children);\n }\n });\n };\n\n collect(model as Record<string, unknown>[]);\n\n return ids;\n }\n\n get isAllExpanded(): boolean {\n if (this.expandableRowIds.length === 0) {\n return false;\n }\n\n return this.expandableRowIds.every((id) => this.expandedRowIds.has(id));\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n const { columns } = this.args;\n\n const currentColumn = columns.find(\n (column) => column.key === this.currentSortBy\n );\n\n if (\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n return `${this.currentSortBy}:${this.currentSortOrder}`;\n }\n }\n\n get isEmpty(): boolean {\n const { model } = this.args;\n\n return model.length === 0;\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get hasStickyFirstColumn(): boolean | undefined {\n // The user-controlled `hasPinnedFirstColumn` variable takes precedence over the model's `hasStickyFirstColumn` property.\n if (this.hasPinnedFirstColumn !== undefined) {\n return this.hasPinnedFirstColumn;\n } else if (this.args.hasStickyFirstColumn === false) {\n return this.args.hasStickyFirstColumn;\n }\n\n return undefined;\n }\n\n get sortedMessageText(): string {\n const { sortedMessageText } = this.args;\n\n if (sortedMessageText !== undefined) {\n return sortedMessageText;\n } else if (this.currentSortBy !== undefined) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${this.currentSortBy} ${this.currentSortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this.hasRowsWithChildren) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this.hasRowsWithChildren) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get hasStickyHeader(): boolean {\n if (this.args.maxHeight && this.args.hasStickyHeader !== false) {\n return true;\n } else if (this.args.hasStickyHeader && !this.args.maxHeight) {\n assert('Must set @maxHeight to use @hasStickyHeader.', false);\n }\n\n return false;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this.hasRowsWithChildren) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n if (this.hasStickyFirstColumn) {\n classes.push('hds-advanced-table--has-sticky-first-column');\n }\n\n if (this.hasStickyFirstColumn && this.isStickyColumnPinned) {\n classes.push('hds-advanced-table--sticky-first-column-pinned');\n }\n\n return classes.join(' ');\n }\n\n get theadClassNames(): string {\n const { hasResizableColumns } = this.args;\n\n const classes = ['hds-advanced-table__thead'];\n\n if (this.hasStickyHeader) {\n classes.push('hds-advanced-table__thead--sticky');\n }\n\n if (this.isStickyHeaderPinned) {\n classes.push('hds-advanced-table__thead--is-pinned');\n }\n\n if (hasResizableColumns) {\n classes.push('hds-advanced-table__thead--has-resizable-columns');\n }\n\n return classes.join(' ');\n }\n\n // these bridge the gap between strict TS and dynamic Glimmer templates\n asRowData = (source: Record<string, unknown>): T => source as unknown as T;\n asScope = (scope: string): 'col' | 'row' => scope as 'col' | 'row';\n // flattens the row interface to fix the potentially infinite nesting of rows with children\n asTr = (comp: unknown) => comp as ComponentLike<YieldedHdsAdvancedTableTr<T>>;\n\n private _initializeExpandedRows(model: T[]) {\n const traverse = (items: Record<string, unknown>[]) => {\n items.forEach((item) => {\n if (item['isOpen'] === true) {\n this.expandedRowIds.add(guidFor(item));\n }\n\n const children = item[this.childrenKey] as\n | Record<string, unknown>[]\n | undefined;\n\n if (Array.isArray(children) && children.length > 0) {\n traverse(children);\n }\n });\n };\n\n traverse(model as Record<string, unknown>[]);\n }\n\n private _runAssertions() {\n const {\n columns,\n hasReorderableColumns,\n hasResizableColumns,\n hasStickyFirstColumn,\n } = this.args;\n\n if (this.hasRowsWithChildren) {\n const sortableColumns = columns.filter((column) => column.isSortable);\n const sortableColumnLabels = sortableColumns.map(\n (column) => column.label\n );\n\n assert(\n 'Cannot have reorderable columns if there are nested rows.',\n !hasReorderableColumns\n );\n\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumnLabels.toString()}`,\n sortableColumns.length === 0\n );\n\n assert(\n 'Cannot have a sticky first column if there are nested rows.',\n hasStickyFirstColumn === undefined\n );\n\n assert(\n `Cannot have resizable columns if there are nested rows.`,\n !hasResizableColumns\n );\n }\n }\n\n private _onColumnReorder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n // Guard against accessing hdsIntl service after component destruction\n if (this.isDestroying || this.isDestroyed) return;\n\n const { reorderedMessageText } = this.args;\n\n if (reorderedMessageText !== undefined) {\n this.reorderedMessageText = reorderedMessageText;\n } else {\n const newPosition = insertedAt + 1;\n const translatedReorderedMessageText = this.hdsIntl.t(\n 'hds.advanced-table.reordered-message',\n {\n default: `Moved ${column.label} column to position ${newPosition}`,\n columnLabel: column.label,\n newPosition,\n }\n );\n\n this.reorderedMessageText = translatedReorderedMessageText;\n }\n\n this.args.onColumnReorder?.({\n column,\n newOrder,\n insertedAt,\n });\n };\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n toggleExpandAll() {\n const allIds = this.expandableRowIds;\n const isAllExpanded = allIds.every((id) => this.expandedRowIds.has(id));\n\n if (isAllExpanded) {\n this.expandedRowIds.clear();\n } else {\n // Add all IDs efficiently\n allIds.forEach((id) => this.expandedRowIds.add(id));\n }\n }\n\n @action\n toggleRow(rowId: string) {\n if (this.expandedRowIds.has(rowId)) {\n this.expandedRowIds.delete(rowId);\n } else {\n this.expandedRowIds.add(rowId);\n }\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n if (selectionKey === undefined) {\n return;\n }\n\n const index = this._selectableRows.findIndex(\n (row) => row.selectionKey === selectionKey\n );\n\n if (index === -1) {\n return;\n }\n\n this._selectableRows.splice(index, 1);\n\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n }\n }\n\n @action\n setSortBy(columnKey: HdsAdvancedTableColumn['key']): void {\n const { onSort } = this.args;\n\n if (columnKey === undefined) {\n return;\n }\n\n let newSortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n\n if (this.currentSortBy === columnKey) {\n newSortOrder =\n this.currentSortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n this.currentSortBy = columnKey;\n this.currentSortOrder = newSortOrder;\n\n if (typeof onSort === 'function') {\n onSort(columnKey, newSortOrder);\n }\n }\n\n private _updateScrollIndicators(element: HTMLElement): void {\n // 6px as a buffer so the shadow doesn't appear over the border radius on the edge of the table\n const SCROLL_BUFFER = 6;\n\n // left scroll indicator and sticky column styles\n if (element.scrollLeft > SCROLL_BUFFER) {\n if (this.hasStickyFirstColumn) {\n this.isStickyColumnPinned = true;\n }\n if (!this.showScrollIndicatorLeft) {\n this.showScrollIndicatorLeft = true;\n }\n } else if (element.scrollLeft === 0 && this.showScrollIndicatorLeft) {\n this.isStickyColumnPinned = false;\n this.showScrollIndicatorLeft = false;\n }\n\n // the right edge is how far the user can scroll, which is the full width of the table - the visible section of the table (also subtract the buffer)\n const rightEdge = element.scrollWidth - element.clientWidth - SCROLL_BUFFER;\n\n // right scroll indicator\n if (element.scrollLeft < rightEdge) {\n this.showScrollIndicatorRight = true;\n } else {\n this.showScrollIndicatorRight = false;\n }\n\n // sticky header\n if (element.scrollTop > 0) {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = true;\n }\n this.showScrollIndicatorTop = true;\n } else {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = false;\n }\n this.showScrollIndicatorTop = false;\n }\n\n // the bottom edge is how far the user can scroll, which is the full height of the table - the visible section of the table (also subtract the buffer)\n const bottomEdge =\n element.scrollHeight - element.clientHeight - SCROLL_BUFFER;\n\n // bottom scroll indicator\n if (element.scrollTop < bottomEdge) {\n this.showScrollIndicatorBottom = true;\n } else {\n this.showScrollIndicatorBottom = false;\n }\n }\n\n private _onPinFirstColumn = (): void => {\n this.hasPinnedFirstColumn = this.hasPinnedFirstColumn ? false : true;\n // we need to retrigger the scroll indicator updates if the pinned state is changed when the table is already scrolled\n this._updateScrollIndicators(this._scrollWrapperElement);\n };\n\n <template>\n <div class=\"hds-advanced-table__actions-container-wrapper\">\n {{#if (has-block \"actions\")}}\n <div class=\"hds-advanced-table__actions\">\n {{yield (hash FilterBar=(component HdsFilterBar)) to=\"actions\"}}\n </div>\n {{/if}}\n\n <div\n class=\"hds-advanced-table__container\n {{(if\n this.isStickyHeaderPinned\n 'hds-advanced-table__container--header-is-pinned'\n )}}\"\n {{this._syncSortArgs}}\n ...attributes\n >\n {{! Caption }}\n <div\n id={{this._captionId}}\n class=\"sr-only hds-advanced-table__caption\"\n aria-live=\"polite\"\n >\n {{@caption}}\n {{this.sortedMessageText}}\n {{this.reorderedMessageText}}\n </div>\n\n <HdsAdvancedTableColumnManager\n @columns={{@columns}}\n @columnOrder={{@columnOrder}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasStickyFirstColumn={{this.hasStickyFirstColumn}}\n @isSelectable={{@isSelectable}}\n @onColumnReorder={{this._onColumnReorder}}\n as |CM|\n >\n <HdsComposite as |C|>\n {{! Grid }}\n <div\n class={{this.classNames}}\n role=\"grid\"\n aria-describedby={{this._captionId}}\n {{style\n grid-template-columns=CM.gridTemplateColumns\n --hds-advanced-table-sticky-column-offset=this.stickyColumnOffset\n max-height=@maxHeight\n }}\n {{this._setUpScrollWrapper}}\n {{CM.syncColumnOrder CM.columns @columnOrder}}\n {{CM.syncWidthValues}}\n {{C.composite}}\n >\n {{! Header }}\n <div\n class={{this.theadClassNames}}\n role=\"rowgroup\"\n {{this._setUpThead}}\n {{on \"dragleave\" (fn CM.setReorderHoveredColumnKey null)}}\n >\n <HdsAdvancedTableTr\n @compositeGroup={{C.group}}\n @compositeItem={{C.item}}\n @selectionScope=\"col\"\n @onClickSortBySelected={{if\n @selectableColumnKey\n (fn this.setSortBy @selectableColumnKey)\n }}\n @sortBySelectedOrder={{if\n (eq this.currentSortBy @selectableColumnKey)\n this.currentSortOrder\n }}\n @isSelectable={{this.isSelectable}}\n @onSelectionChange={{this.onSelectionAllChange}}\n @didInsert={{this.didInsertSelectAllCheckbox}}\n @willDestroy={{this.willDestroySelectAllCheckbox}}\n @selectionAriaLabelSuffix=\"all rows\"\n @hasStickyColumn={{this.hasStickyFirstColumn}}\n @isStickyColumnPinned={{this.isStickyColumnPinned}}\n >\n {{#each CM.orderedColumns as |column|}}\n <HdsAdvancedTableTh\n @align={{column.align}}\n @column={{column}}\n @compositeItem={{C.item}}\n @draggedColumnKey={{CM.draggedColumnKey}}\n @firstColumnKey={{CM.firstColumnKey}}\n @firstNonStickyColumnKey={{CM.firstNonStickyColumnKey}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasResizableColumns={{@hasResizableColumns}}\n @hasSelectableRows={{this.isSelectable}}\n @hasStickyFirstColumn={{this.hasStickyFirstColumn}}\n @isStickyColumn={{if\n (and\n (eq column.key CM.firstColumnKey)\n (notEq this.hasStickyFirstColumn undefined)\n )\n this.hasStickyFirstColumn\n undefined\n }}\n @isStickyColumnPinned={{this.isStickyColumnPinned}}\n @lastColumnKey={{CM.lastColumnKey}}\n @reorderHoveredColumnKey={{CM.reorderHoveredColumnKey}}\n @draggedColumnSiblingColumnKeys={{if\n CM.draggedColumnKey\n (CM.getSiblingColumnKeys CM.draggedColumnKey)\n }}\n @siblingColumnKeys={{CM.getSiblingColumnKeys column.key}}\n @tableHeight={{this._tableHeight}}\n @tooltip={{column.tooltip}}\n @hasExpandAllButton={{this.hasRowsWithChildren}}\n @isExpanded={{this.isAllExpanded}}\n @isExpandable={{column.isExpandable}}\n @sortOrder={{if\n (eq column.key this.currentSortBy)\n this.currentSortOrder\n }}\n @onApplyTransientWidth={{CM.applyTransientWidth}}\n @onClickSort={{if\n column.isSortable\n (fn this.setSortBy column.key)\n }}\n @onClickToggle={{this.toggleExpandAll}}\n @onColumnResize={{@onColumnResize}}\n @onGetAppliedWidth={{CM.getAppliedWidth}}\n @onGetColumnByKey={{CM.getColumnByKey}}\n @onMoveColumnToTerminalPosition={{CM.moveColumnToTerminalPosition}}\n @onPinFirstColumn={{this._onPinFirstColumn}}\n @onReorderDrop={{CM.moveColumnToDropTarget}}\n @onRestoreColumnWidth={{CM.restoreColumnWidth}}\n @onResetTransientColumnWidths={{CM.resetTransientColumnWidths}}\n @onSetDraggedColumnKey={{CM.setDraggedColumnKey}}\n @onSetReorderHoveredColumnKey={{CM.setReorderHoveredColumnKey}}\n @onSetTransientColumnWidth={{CM.setTransientColumnWidth}}\n @onSetTransientColumnWidths={{CM.setTransientColumnWidths}}\n @onStepColumn={{CM.stepColumn}}\n @onUpdateResizeDebt={{CM.updateResizeDebt}}\n {{CM.syncThElements column.key}}\n >\n {{column.label}}\n </HdsAdvancedTableTh>\n {{/each}}\n </HdsAdvancedTableTr>\n\n {{#if this.showScrollIndicatorTop}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-top\"\n />\n {{/if}}\n </div>\n\n {{! Body }}\n <HdsAdvancedTableBody\n @childrenKey={{this.childrenKey}}\n @expandedRowIds={{this.expandedRowIds}}\n {{! @glint-expect-error: [HDS-4380](https://hashicorp.atlassian.net/browse/HDS-4380) }}\n @sortedModel={{sortBy this.sortCriteria @model}}\n as |B|\n >\n {{#each B.rows key=\"id\" as |row index|}}\n {{#let\n (and (not this.hasRowsWithChildren) (not row.hasChildren))\n as |isSelectionAllowed|\n }}\n {{yield\n (hash\n Tr=(this.asTr\n (component\n HdsAdvancedTableTr\n columnOrder=CM.columnOrder\n compositeGroup=C.group\n compositeItem=C.item\n data=(this.asRowData row.source)\n depth=row.depth\n isCompositeItemDisabled=(not row.isVisible)\n isParentRow=row.hasChildren\n isLastRow=(and\n (eq row.id B.lastVisibleRowId)\n (notEq B.lastVisibleRowId undefined)\n )\n displayRow=row.isVisible\n selectionScope=(if\n isSelectionAllowed (this.asScope \"row\")\n )\n isSelectable=(if\n isSelectionAllowed this.isSelectable\n )\n onSelectionChange=(if\n isSelectionAllowed this.onSelectionRowChange\n )\n didInsert=(if\n isSelectionAllowed this.didInsertRowCheckbox\n )\n willDestroy=(if\n isSelectionAllowed this.willDestroyRowCheckbox\n )\n hasStickyColumn=this.hasStickyFirstColumn\n isStickyColumnPinned=this.isStickyColumnPinned\n )\n )\n Th=(component\n HdsAdvancedTableTh\n compositeItem=C.item\n isCompositeItemDisabled=(not row.isVisible)\n isExpandable=row.hasChildren\n isExpanded=row.isExpanded\n onClickToggle=(fn this.toggleRow row.id)\n depth=row.depth\n scope=\"row\"\n newLabel=row.id\n parentId=undefined\n isStickyColumnPinned=this.isStickyColumnPinned\n )\n Td=(component\n HdsAdvancedTableTd\n align=@align\n compositeItem=C.item\n isCompositeItemDisabled=(not row.isVisible)\n )\n data=(this.asRowData row.source)\n rowIndex=index\n isOpen=row.isExpanded\n )\n to=\"body\"\n }}\n {{/let}}\n {{/each}}\n </HdsAdvancedTableBody>\n </div>\n </HdsComposite>\n </HdsAdvancedTableColumnManager>\n\n {{! Empty state }}\n {{#if this.isEmpty}}\n <div class=\"hds-advanced-table__empty-state\">\n {{#if (has-block \"emptyState\")}}\n {{yield to=\"emptyState\"}}\n {{else}}\n <HdsApplicationState as |A|>\n <A.Header\n @title={{hdsT\n \"hds.components.advanced-table.empty-state.title\"\n default=\"No data available\"\n }}\n />\n <A.Body\n @text={{hdsT\n \"hds.components.advanced-table.empty-state.description\"\n default=\"There is currently no data to display in the table.\"\n }}\n />\n </HdsApplicationState>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if this.showScrollIndicatorLeft}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-left\"\n {{style\n height=this.scrollIndicatorDimensions.height\n left=this.scrollIndicatorDimensions.left\n }}\n />\n {{/if}}\n\n {{#if this.showScrollIndicatorRight}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-right\"\n {{style\n height=this.scrollIndicatorDimensions.height\n right=this.scrollIndicatorDimensions.right\n }}\n />\n {{/if}}\n\n {{#if (and this.showScrollIndicatorBottom (not this.isEmpty))}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-bottom\"\n {{style\n bottom=this.scrollIndicatorDimensions.bottom\n width=this.scrollIndicatorDimensions.width\n }}\n />\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["KEYBOARD_RESIZE_STEP","calculateEffectiveDelta","deltaX","col","startColW","nextCol","startNextColW","colMin","parsePixel","minWidth","DEFAULT_MIN_WIDTH","colMax","maxWidth","DEFAULT_MAX_WIDTH","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","currentWidthInPixels","column","onGetAppliedWidth","undefined","appliedWidth","key","minWidthInPixels","maxWidthInPixels","height","tableHeight","BORDER_WIDTH","classNames","classes","resizing","push","join","_applyTransientWidths","siblingColumnKeys","onApplyTransientWidth","next","nextColumnKey","onColumnResize","width","n","action","handleKeydown","event","validKeys","includes","preventDefault","stopPropagation","onSetTransientColumnWidths","onResetTransientColumnWidths","onUpdateResizeDebt","roundValues","startColumnAppliedWidth","startNextColumnAppliedWidth","startColumnPxWidth","round","startNextColumnPxWidth","_applyResizeDelta","scrollIntoView","behavior","block","inline","queueMicrotask","_transientDelta","startResize","button","startX","clientX","window","addEventListener","_setColumnWidth","onSetTransientColumnWidth","onGetColumnByKey","canResizeNeighbor","nextColumn","columnAppliedWidth","actualNewColumnWidth","actualAppliedDelta","_lastPointerEvent","_isUpdateQueued","requestAnimationFrameWaiter","removeEventListener","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","concat","on","style","HdsAdvancedTableThReorderDropTarget","_element","_registerElement","_getDragSide","rect","getBoundingClientRect","mouseX","elementMiddleX","left","HdsAdvancedTableColumnReorderSideValues","Left","Right","isBeingDragged","draggedColumnKey","isDraggingOver","reorderHoveredColumnKey","isFirstColumn","isLastColumn","hasSelectableRows","_dragSide","handleDragOver","draggedColumnSiblingColumnKeys","onSetReorderHoveredColumnKey","previous","dragSide","handleDrop","onReorderDrop","ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","HdsAdvancedTableTh","_labelId","newLabel","rowspan","colspan","isStickyColumn","assert","guidFor","isSortable","firstColumnKey","isFirstNonStickyColumn","firstNonStickyColumnKey","lastColumnKey","tableHasColumnBeingDragged","isColumnBeingDragged","role","ariaSort","sortOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","align","paddingLeft","depth","isStickyColumnPinned","showDropTarget","showResizeHandle","hasResizableColumns","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","focusReorderHandle","focus","preventScroll","_reorderHandleElement","applyTransientWidth","columnKey","resetTransientColumnWidths","getAppliedWidth","getColumnByKey","setDraggedColumnKey","onSetDraggedColumnKey","setTransientColumnWidth","setTransientColumnWidths","options","stepColumn","step","onStepColumn","updateResizeDebt","delta","setElement","scheduleOnce","_registerReorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","_manageExpandButton","didInsertExpandButton","willDestroyExpandButton","hdsAdvancedTableCell","focusTrap","hash","hdsScrollIntoViewOnFocus","HdsLayoutFlex","and","not","HdsAdvancedTableThButtonExpand","HdsAdvancedTableThButtonTooltip","HdsAdvancedTableThButtonSort","HdsAdvancedTableThContextMenu","HdsAdvancedTableThReorderHandle","HdsAdvancedTableThSelectable","service","isSelected","_guid","_checkboxId","onClickSortBySelected","ariaLabel","selectionAriaLabelSuffix","defaultString","hdsIntl","t","default","suffix","sortBySelectedOrder","_manageCheckbox","checkbox","didInsert","willDestroy","selectionKey","onSelectionChange","target","_isSelected","checked","HdsFormCheckboxBase","HdsAdvancedTableTr","isSelectable","selectionScope","isLastRow","isParentRow","displayRow","cells","columnOrder","data","map","content","orderedCells","hasReorderableColumns","reduce","acc","cell","find","eq","DENSITIES","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","DEFAULT_SCROLL_DIMENSIONS","bottom","right","REORDER_EDGE_SCROLL_TRIGGER_PX","REORDER_EDGE_SCROLL_STEP_PX","getScrollIndicatorDimensions","scrollWrapper","theadElement","hasStickyFirstColumn","horizontalScrollBarHeight","offsetHeight","clientHeight","verticalScrollBarWidth","offsetWidth","clientWidth","leftOffset","stickyColumnHeaders","querySelectorAll","forEach","el","elAsHTMLElement","length","getStickyColumnLeftOffset","hasRowSelection","selectableCell","querySelector","HdsAdvancedTable","_selectableRows","_captionId","_scrollHandler","_dragOverHandler","_resizeObserver","_theadElement","_scrollWrapperElement","expandedRowIds","TrackedSet","_setUpScrollWrapper","updateHorizontalScrollIndicators","showScrollIndicatorRight","scrollWidth","_updateScrollIndicators","canScrollHorizontally","firstReorderDropTarget","lastStickyColumnHeader","leftVisibleEdge","leftScrollTrigger","rightScrollTrigger","scrollBy","updateMeasurements","newTableHeight","newDimensions","setUpdatedMeasurements","isDestroying","isDestroyed","isSameBottom","scrollIndicatorDimensions","isSameHeight","isSameLeft","isSameRight","_tableHeight","stickyColumnOffset","requestAnimationFrame","ResizeObserver","entries","observe","scrollHeight","showScrollIndicatorBottom","disconnect","_setUpThead","_syncSortArgs","sortBy","currentSortBy","currentSortOrder","model","_runAssertions","_initializeExpandedRows","hasPinnedFirstColumn","childrenKey","hasRowsWithChildren","some","record","children","Array","isArray","expandableRowIds","ids","collect","items","item","cached","isAllExpanded","every","id","has","sortCriteria","columns","currentColumn","sortingFunction","isEmpty","identityKey","sortedMessageText","isStriped","density","hasStickyHeader","maxHeight","valign","theadClassNames","isStickyHeaderPinned","asRowData","source","asScope","asTr","comp","traverse","add","sortableColumns","filter","sortableColumnLabels","label","toString","_onColumnReorder","newOrder","insertedAt","reorderedMessageText","newPosition","translatedReorderedMessageText","columnLabel","onColumnReorder","onSelectionChangeCallback","selectionCheckboxElement","selectedRowsKeys","row","selectableRowsStates","toggleExpandAll","allIds","clear","toggleRow","rowId","delete","onSelectionAllChange","_selectAllCheckbox","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","index","findIndex","splice","selectableRowsCount","selectedRowsCount","indeterminate","setSortBy","onSort","newSortOrder","SCROLL_BUFFER","scrollLeft","showScrollIndicatorLeft","rightEdge","scrollTop","showScrollIndicatorTop","bottomEdge","_onPinFirstColumn","HdsFilterBar","HdsAdvancedTableColumnManager","HdsComposite","fn","notEq","HdsAdvancedTableBody","HdsAdvancedTableTd","HdsApplicationState"],"mappings":"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"}
1
+ {"version":3,"file":"index-DtMB-P9m.js","sources":["../src/components/hds/advanced-table/th-resize-handle.gts","../src/components/hds/advanced-table/th-reorder-drop-target.gts","../src/components/hds/advanced-table/th.gts","../src/components/hds/advanced-table/th-selectable.gts","../src/components/hds/advanced-table/tr.gts","../src/components/hds/advanced-table/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\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 { on } from '@ember/modifier';\nimport style from 'ember-style-modifier';\nimport { concat } from '@ember/helper';\n\nimport { parsePixel, requestAnimationFrameWaiter } from './utils.ts';\nimport { BORDER_WIDTH } from './index.gts';\nimport {\n DEFAULT_MIN_WIDTH,\n DEFAULT_MAX_WIDTH,\n} from './column-manager/width.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type Owner from '@ember/owner';\nimport type { HdsAdvancedTableNormalizedColumn } from './types';\nimport type { HdsAdvancedTableSignature } from './index.gts';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nfunction calculateEffectiveDelta(\n deltaX: number,\n col: HdsAdvancedTableNormalizedColumn,\n startColW: number,\n nextCol: HdsAdvancedTableNormalizedColumn,\n startNextColW: number\n): number {\n const colMin = parsePixel(col.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n const colMax = parsePixel(col.maxWidth ?? DEFAULT_MAX_WIDTH) ?? Infinity;\n const nextMin = parsePixel(nextCol.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n const nextMax = parsePixel(nextCol.maxWidth ?? DEFAULT_MAX_WIDTH) ?? 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?: HdsAdvancedTableNormalizedColumn;\n siblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n tableHeight?: number;\n onApplyTransientWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onGetAppliedWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n onGetColumnByKey?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n onSetTransientColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ) => void;\n onSetTransientColumnWidths?: (options: { roundValues?: boolean }) => void;\n onResetTransientColumnWidths?: () => void;\n onUpdateResizeDebt?: (delta: number) => void;\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 currentWidthInPixels(): number {\n const { column, onGetAppliedWidth } = this.args;\n\n if (column === undefined || onGetAppliedWidth === undefined) {\n return 0;\n }\n\n const appliedWidth = onGetAppliedWidth(column.key);\n\n return parsePixel(appliedWidth) ?? 0;\n }\n\n get minWidthInPixels(): number {\n return parsePixel(this.args.column?.minWidth ?? DEFAULT_MIN_WIDTH) ?? 0;\n }\n\n get maxWidthInPixels(): number {\n return (\n parsePixel(this.args.column?.maxWidth ?? DEFAULT_MAX_WIDTH) ?? Infinity\n );\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, siblingColumnKeys, onApplyTransientWidth } = this.args;\n\n if (column === undefined || onApplyTransientWidth === undefined) {\n return;\n }\n\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n onApplyTransientWidth(column.key);\n\n if (nextColumnKey !== undefined) {\n onApplyTransientWidth(nextColumnKey);\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 {\n column,\n siblingColumnKeys,\n onApplyTransientWidth,\n onGetAppliedWidth,\n onSetTransientColumnWidths,\n onResetTransientColumnWidths,\n onUpdateResizeDebt,\n } = this.args;\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n if (\n column === undefined ||\n nextColumnKey === undefined ||\n onApplyTransientWidth === undefined ||\n onGetAppliedWidth === undefined ||\n onSetTransientColumnWidths === undefined ||\n onUpdateResizeDebt === undefined ||\n onResetTransientColumnWidths === undefined\n ) {\n return;\n }\n\n onSetTransientColumnWidths({ roundValues: true });\n\n const startColumnAppliedWidth = onGetAppliedWidth(column.key);\n const startNextColumnAppliedWidth = onGetAppliedWidth(nextColumnKey);\n\n const startColumnPxWidth = Math.round(\n parsePixel(startColumnAppliedWidth) ?? 0\n );\n const startNextColumnPxWidth = Math.round(\n parsePixel(startNextColumnAppliedWidth) ?? 0\n );\n const deltaX =\n event.key === 'ArrowRight' ? KEYBOARD_RESIZE_STEP : -KEYBOARD_RESIZE_STEP;\n\n this._applyResizeDelta(\n deltaX,\n startColumnPxWidth,\n column,\n nextColumnKey,\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 if (this._transientDelta !== 0) {\n onUpdateResizeDebt(this._transientDelta);\n }\n // reset transient values\n onApplyTransientWidth(column.key);\n onApplyTransientWidth(nextColumnKey);\n\n onResetTransientColumnWidths();\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 {\n column,\n siblingColumnKeys,\n onGetAppliedWidth,\n onSetTransientColumnWidths,\n } = this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onSetTransientColumnWidths === undefined\n ) {\n return;\n }\n\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n\n onSetTransientColumnWidths({});\n\n const startColumnAppliedWidth = onGetAppliedWidth(column.key);\n const startNextColumnAppliedWidth =\n nextColumnKey !== undefined\n ? onGetAppliedWidth(nextColumnKey)\n : undefined;\n\n const startColumnPxWidth = Math.round(\n parsePixel(startColumnAppliedWidth) ?? 0\n );\n const startNextColumnPxWidth = Math.round(\n parsePixel(startNextColumnAppliedWidth) ?? 0\n );\n\n this.resizing = {\n startX: event.clientX,\n startColumnPxWidth,\n startNextColumnPxWidth,\n };\n\n window.addEventListener('pointermove', this._boundResize);\n window.addEventListener('pointerup', this._boundStopResize);\n }\n\n private _setColumnWidth(\n column: HdsAdvancedTableNormalizedColumn,\n width: number\n ): void {\n const { onSetTransientColumnWidth } = this.args;\n\n if (column === undefined || onSetTransientColumnWidth === undefined) {\n return;\n }\n\n onSetTransientColumnWidth(column.key, `${width}px`);\n }\n\n private _applyResizeDelta(\n deltaX: number,\n startColumnPxWidth: number,\n column?: HdsAdvancedTableNormalizedColumn,\n nextColumnKey?: HdsAdvancedTableNormalizedColumn['key'],\n startNextColumnPxWidth?: number\n ): void {\n const { onGetAppliedWidth, onGetColumnByKey, onSetTransientColumnWidth } =\n this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onGetColumnByKey === undefined\n ) {\n return;\n }\n\n const canResizeNeighbor =\n nextColumnKey !== undefined && startNextColumnPxWidth !== undefined;\n\n if (canResizeNeighbor) {\n const nextColumn = onGetColumnByKey(nextColumnKey);\n\n if (nextColumn === undefined) {\n return;\n }\n\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 columnAppliedWidth = onGetAppliedWidth(column.key);\n const actualNewColumnWidth =\n parsePixel(columnAppliedWidth) ?? 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 if (onSetTransientColumnWidth !== undefined) {\n onSetTransientColumnWidth(\n column.key,\n `${Math.round(startColumnPxWidth + deltaX)}px`\n );\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, siblingColumnKeys } = this.args;\n const { next: nextColumnKey } = siblingColumnKeys ?? {};\n const { startX, startColumnPxWidth, startNextColumnPxWidth } =\n this.resizing;\n const deltaX = event.clientX - startX;\n\n this._applyResizeDelta(\n deltaX,\n startColumnPxWidth, // Width at the start of the drag\n column,\n nextColumnKey,\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 {\n column,\n onGetAppliedWidth,\n onResetTransientColumnWidths,\n onUpdateResizeDebt,\n } = this.args;\n\n if (\n column === undefined ||\n onGetAppliedWidth === undefined ||\n onResetTransientColumnWidths === undefined ||\n onUpdateResizeDebt === undefined\n ) {\n return;\n }\n\n window.removeEventListener('pointermove', this._boundResize);\n window.removeEventListener('pointerup', this._boundStopResize);\n\n if (this._transientDelta !== 0) {\n onUpdateResizeDebt(this._transientDelta);\n }\n\n this._applyTransientWidths();\n\n // reset the transient width\n onResetTransientColumnWidths();\n\n // reset the resizing state\n this.resizing = null;\n this._transientDelta = 0;\n\n const appliedWidth = onGetAppliedWidth(column.key);\n\n this.onColumnResize(column.key, appliedWidth);\n }\n\n <template>\n {{! template-lint-disable no-pointer-down-event-binding }}\n <div\n class={{this.classNames}}\n draggable=\"false\"\n role=\"slider\"\n aria-orientation=\"horizontal\"\n aria-valuenow={{this.currentWidthInPixels}}\n aria-valuemin={{this.minWidthInPixels}}\n aria-valuemax={{this.maxWidthInPixels}}\n tabindex=\"0\"\n aria-label={{hdsT\n \"hds.components.advanced-table.th-resize-handle.aria-label\"\n columnLabel=@column.label\n default=(concat \"Resize \" @column.label \" column\")\n }}\n {{this._registerHandleElement}}\n {{on \"pointerdown\" this.startResize}}\n {{on \"keydown\" this.handleKeydown}}\n {{style height=this.height}}\n ...attributes\n />\n </template>\n}\n","/**\n * Copyright IBM Corp. 2021, 2026\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 { on } from '@ember/modifier';\nimport style from 'ember-style-modifier';\n\nimport { BORDER_WIDTH } from './index.gts';\nimport { requestAnimationFrameWaiter } from './utils.ts';\nimport { HdsAdvancedTableColumnReorderSideValues } from './types.ts';\n\nimport type {\n HdsAdvancedTableNormalizedColumn,\n HdsAdvancedTableColumnReorderSide,\n} from './types.ts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\n\nexport interface HdsAdvancedTableThReorderDropTargetSignature {\n Args: {\n column?: HdsAdvancedTableNormalizedColumn;\n draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n reorderHoveredColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n draggedColumnSiblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n tableHeight?: number;\n onReorderDrop?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n onSetReorderHoveredColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\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 isBeingDragged(): boolean {\n const { column, draggedColumnKey } = this.args;\n\n return column !== undefined && column.key === draggedColumnKey;\n }\n\n get isDraggingOver(): boolean {\n const { column, reorderHoveredColumnKey } = this.args;\n\n return column !== undefined && column.key === reorderHoveredColumnKey;\n }\n\n get classNames(): string {\n const { isFirstColumn, isLastColumn } = this.args;\n\n const classes = ['hds-advanced-table__th-reorder-drop-target'];\n\n if (isFirstColumn && !this.args.hasSelectableRows) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-first');\n } else if (isLastColumn) {\n classes.push('hds-advanced-table__th-reorder-drop-target--is-last');\n }\n\n if (this.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 {\n column,\n draggedColumnKey,\n draggedColumnSiblingColumnKeys,\n onSetReorderHoveredColumnKey,\n } = this.args;\n\n if (column === undefined || onSetReorderHoveredColumnKey === undefined) {\n return;\n }\n\n if (draggedColumnKey !== null) {\n if (this.isBeingDragged) {\n onSetReorderHoveredColumnKey(null);\n } else {\n onSetReorderHoveredColumnKey(column.key);\n\n const { next, previous } = draggedColumnSiblingColumnKeys ?? {};\n const dragSide = this._getDragSide(event);\n\n if (\n (column.key === previous &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Left) ||\n (column.key === next &&\n dragSide === HdsAdvancedTableColumnReorderSideValues.Right) ||\n (column.key !== previous && column.key !== 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, onSetReorderHoveredColumnKey } = this.args;\n const { _dragSide } = this;\n\n if (\n column === undefined ||\n _dragSide === null ||\n typeof onReorderDrop !== 'function' ||\n typeof onSetReorderHoveredColumnKey !== 'function'\n ) {\n return;\n }\n\n onReorderDrop(column.key, _dragSide);\n\n this._dragSide = null;\n\n onSetReorderHoveredColumnKey(null);\n }\n\n <template>\n <div\n class={{this.classNames}}\n aria-hidden=\"true\"\n {{style height=this.height}}\n {{this._registerElement}}\n {{on \"dragover\" this.handleDragOver}}\n {{on \"drop\" this.handleDrop}}\n ...attributes\n />\n </template>\n}\n","/**\n * Copyright IBM Corp. 2021, 2026\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 { scheduleOnce } from '@ember/runloop';\nimport { focusable, type FocusableElement } from 'tabbable';\nimport { modifier } from 'ember-modifier';\nimport style from 'ember-style-modifier';\nimport { and, not } from 'ember-truth-helpers';\n\nimport hdsScrollIntoViewOnFocus from '../../../modifiers/hds-scroll-into-view-on-focus.ts';\nimport hdsAdvancedTableCell from '../../../modifiers/hds-advanced-table-cell.ts';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\nimport { hash } from '@ember/helper';\nimport HdsLayoutFlex from '../layout/flex/index.gts';\nimport HdsAdvancedTableThButtonExpand from './th-button-expand.gts';\nimport HdsAdvancedTableThButtonSort from './th-button-sort.gts';\nimport HdsAdvancedTableThButtonTooltip from './th-button-tooltip.gts';\nimport HdsAdvancedTableThContextMenu from './th-context-menu.gts';\nimport HdsAdvancedTableThReorderHandle from './th-reorder-handle.gts';\nimport HdsAdvancedTableThResizeHandle from './th-resize-handle.gts';\nimport HdsAdvancedTableThReorderDropTarget from './th-reorder-drop-target.gts';\n\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\nimport {\n HdsAdvancedTableHorizontalAlignmentValues,\n HdsAdvancedTableThSortOrderLabelValues,\n HdsAdvancedTableThSortOrderValues,\n} from './types.ts';\n\nimport type {\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableScope,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderSide,\n HdsAdvancedTableNormalizedColumn,\n HdsAdvancedTableThSortOrderLabels,\n HdsAdvancedTableThSortOrder,\n} from './types.ts';\n\nimport type { HdsCompositeSignature } from '../composite/index.gts';\nimport type { HdsAdvancedTableThButtonSortSignature } from './th-button-sort.gts';\nimport type { HdsAdvancedTableThReorderHandleSignature } from './th-reorder-handle.gts';\nimport type { HdsAdvancedTableThResizeHandleSignature } from './th-resize-handle.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type Owner from '@ember/owner';\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?: HdsAdvancedTableNormalizedColumn;\n colspan?: number;\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\n depth?: number;\n draggedColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n firstColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n firstNonStickyColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n hasExpandAllButton?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n hasResizableColumns?: HdsAdvancedTableSignature['Args']['hasResizableColumns'];\n hasSelectableRows?: HdsAdvancedTableSignature['Args']['isSelectable'];\n hasStickyFirstColumn?: HdsAdvancedTableSignature['Args']['hasStickyFirstColumn'];\n isExpandable?: boolean;\n isExpanded?: HdsAdvancedTableExpandState;\n isStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n lastColumnKey?: HdsAdvancedTableNormalizedColumn['key'];\n newLabel?: string;\n parentId?: string;\n reorderHoveredColumnKey?: HdsAdvancedTableNormalizedColumn['key'] | null;\n rowspan?: number;\n scope?: HdsAdvancedTableScope;\n siblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n draggedColumnSiblingColumnKeys?: {\n previous?: HdsAdvancedTableNormalizedColumn['key'];\n next?: HdsAdvancedTableNormalizedColumn['key'];\n };\n sortOrder?: HdsAdvancedTableThSortOrder;\n tableHeight?: number;\n tooltip?: string;\n didInsertExpandButton?: (button: HTMLButtonElement) => void;\n onApplyTransientWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onClickSort?: HdsAdvancedTableThButtonSortSignature['Args']['onClick'];\n onClickToggle?: () => void;\n onColumnResize?: HdsAdvancedTableSignature['Args']['onColumnResize'];\n onGetAppliedWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn['width'];\n onGetColumnByKey?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => HdsAdvancedTableNormalizedColumn | undefined;\n onMoveColumnToTerminalPosition?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n position: 'start' | 'end'\n ) => void;\n onPinFirstColumn?: () => void;\n onReorderDrop?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n side: HdsAdvancedTableColumnReorderSide\n ) => void;\n onResetTransientColumnWidths?: () => void;\n onRestoreColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ) => void;\n onSetDraggedColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n onSetReorderHoveredColumnKey?: (\n key: HdsAdvancedTableNormalizedColumn['key'] | null\n ) => void;\n onSetTransientColumnWidth?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ) => void;\n onSetTransientColumnWidths?: (options: { roundValues?: boolean }) => void;\n onStepColumn?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n step: number\n ) => void;\n onUpdateResizeDebt?: (\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n delta: number\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: string;\n\n @tracked private _element!: HTMLDivElement;\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 { newLabel, 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 this._labelId = newLabel ?? guidFor(this);\n }\n\n get isSortable(): boolean {\n return this.args.column?.isSortable ?? false;\n }\n\n get isFirstColumn(): boolean {\n const { column, firstColumnKey } = this.args;\n\n return (\n firstColumnKey !== undefined &&\n column !== undefined &&\n firstColumnKey === column.key\n );\n }\n\n get isFirstNonStickyColumn(): boolean {\n const { column, firstNonStickyColumnKey } = this.args;\n\n return (\n firstNonStickyColumnKey !== undefined &&\n column !== undefined &&\n firstNonStickyColumnKey === column.key\n );\n }\n\n get isLastColumn(): boolean {\n const { column, lastColumnKey } = this.args;\n\n return (\n lastColumnKey !== undefined &&\n column !== undefined &&\n lastColumnKey === column.key\n );\n }\n\n get tableHasColumnBeingDragged(): boolean {\n const { draggedColumnKey } = this.args;\n\n return draggedColumnKey != null;\n }\n\n get isColumnBeingDragged(): boolean {\n const { column, draggedColumnKey } = this.args;\n\n return (\n draggedColumnKey != null &&\n column !== undefined &&\n draggedColumnKey === column.key\n );\n }\n\n get scope(): HdsAdvancedTableScope {\n return this.args.scope ?? 'col';\n }\n\n get role(): string {\n return this.scope === 'col' ? 'columnheader' : 'rowheader';\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::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 return this.args.rowspan !== undefined\n ? `span ${this.args.rowspan}`\n : 'auto';\n }\n\n get colspan(): string | undefined {\n return this.args.colspan !== undefined\n ? `span ${this.args.colspan}`\n : 'auto';\n }\n\n get paddingLeft(): string | undefined {\n return this.args.depth !== undefined\n ? `calc(${this.args.depth} * 32px + 16px)`\n : undefined;\n }\n\n get classNames(): string {\n const { isStickyColumn, isStickyColumnPinned } = this.args;\n\n const classes = ['hds-advanced-table__th'];\n\n if (this.isSortable) {\n classes.push('hds-advanced-table__th--sort');\n }\n\n if (this.align) {\n classes.push(`hds-advanced-table__th--align-${this.align}`);\n }\n\n if (isStickyColumn) {\n classes.push('hds-advanced-table__th--is-sticky-column');\n }\n\n if (isStickyColumn && isStickyColumnPinned) {\n classes.push('hds-advanced-table__th--is-sticky-column-pinned');\n }\n\n if (this.isColumnBeingDragged) {\n classes.push('hds-advanced-table__th--is-being-dragged');\n }\n\n return classes.join(' ');\n }\n\n get showDropTarget(): boolean {\n const { isStickyColumn } = this.args;\n\n return this.tableHasColumnBeingDragged === true && !isStickyColumn;\n }\n\n get showResizeHandle(): boolean {\n const { hasResizableColumns } = this.args;\n\n return (\n hasResizableColumns === true &&\n !this.isLastColumn &&\n !this.tableHasColumnBeingDragged\n );\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\n return cellFocusableElements[0];\n }\n\n @action focusReorderHandle(): void {\n if (this._element === undefined) {\n return;\n }\n\n // focus the th element first (parent) to ensure the handle is visible\n this._element.focus({ preventScroll: true });\n\n if (this._reorderHandleElement === undefined) {\n return;\n }\n\n // then focus the reorder handle element\n this._reorderHandleElement.focus();\n }\n\n @action applyTransientWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): void {\n this.args.onApplyTransientWidth?.(columnKey);\n }\n\n @action resetTransientColumnWidths(): void {\n this.args.onResetTransientColumnWidths?.();\n }\n\n @action getAppliedWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): HdsAdvancedTableNormalizedColumn['width'] | undefined {\n return this.args.onGetAppliedWidth?.(columnKey);\n }\n\n @action getColumnByKey(\n columnKey: HdsAdvancedTableNormalizedColumn['key']\n ): HdsAdvancedTableNormalizedColumn | undefined {\n return this.args.onGetColumnByKey?.(columnKey);\n }\n\n @action setDraggedColumnKey(\n columnKey: HdsAdvancedTableNormalizedColumn['key'] | null\n ): void {\n this.args.onSetDraggedColumnKey?.(columnKey);\n }\n\n @action setTransientColumnWidth(\n columnKey: HdsAdvancedTableNormalizedColumn['key'],\n width: `${number}px`\n ): void {\n const { column, onSetTransientColumnWidth } = this.args;\n\n if (column !== undefined && onSetTransientColumnWidth !== undefined) {\n onSetTransientColumnWidth(columnKey, width);\n }\n }\n\n @action setTransientColumnWidths(options: { roundValues?: boolean }): void {\n this.args.onSetTransientColumnWidths?.(options);\n }\n\n @action stepColumn(step: number): void {\n const { column, onStepColumn } = this.args;\n\n if (column !== undefined && onStepColumn !== undefined) {\n onStepColumn(column.key, step);\n }\n }\n\n @action updateResizeDebt(delta: number): void {\n const { column, onUpdateResizeDebt } = this.args;\n\n if (column !== undefined && onUpdateResizeDebt !== undefined) {\n onUpdateResizeDebt(column.key, delta);\n }\n }\n\n @action setElement(element: HTMLDivElement): void {\n // eslint-disable-next-line ember/no-runloop, ember/no-incorrect-calls-with-inline-anonymous-functions\n scheduleOnce('afterRender', () => {\n this._element = 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\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 <template>\n <div\n class={{this.classNames}}\n role={{this.role}}\n aria-sort={{this.ariaSort}}\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n aria-describedby={{@parentId}}\n {{style\n grid-row=this.rowspan\n grid-column=this.colspan\n padding-left=this.paddingLeft\n }}\n {{hdsAdvancedTableCell\n handleEnableFocusTrap=this.enableFocusTrap\n shouldTrapFocus=this._shouldTrapFocus\n setCellElement=this.setElement\n }}\n {{focusTrap\n isActive=this._shouldTrapFocus\n focusTrapOptions=(hash\n onDeactivate=this.onFocusTrapDeactivate\n initialFocus=this.getInitialFocus\n clickOutsideDeactivates=true\n )\n }}\n {{@compositeItem disabled=@isCompositeItemDisabled}}\n {{hdsScrollIntoViewOnFocus options=(hash block=\"center\" inline=\"center\")}}\n ...attributes\n >\n <HdsLayoutFlex @justify=\"space-between\" @align=\"center\" @gap=\"8\">\n {{#if @column.isVisuallyHidden}}\n <span class=\"sr-only\">{{yield}}</span>\n {{else}}\n {{#if (and @isExpandable (not this.isSortable))}}\n <HdsAdvancedTableThButtonExpand\n @labelId={{this._labelId}}\n @onToggle={{@onClickToggle}}\n @isExpanded={{@isExpanded}}\n @isExpandAll={{@hasExpandAllButton}}\n {{this._manageExpandButton}}\n />\n {{/if}}\n <div class=\"hds-advanced-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-advanced-table__th-content-text hds-typography-body-200 hds-font-weight-semibold\"\n >\n {{yield}}\n </span>\n {{#if @tooltip}}\n <HdsAdvancedTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n {{#if this.isSortable}}\n <HdsAdvancedTableThButtonSort\n @sortOrder={{@sortOrder}}\n @onClick={{@onClickSort}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n {{#if @column}}\n <HdsAdvancedTableThContextMenu\n @column={{@column}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasResizableColumns={{@hasResizableColumns}}\n @isFirstColumn={{this.isFirstColumn}}\n @isFirstNonStickyColumn={{this.isFirstNonStickyColumn}}\n @isLastColumn={{this.isLastColumn}}\n @isStickyColumn={{@isStickyColumn}}\n @reorderHandleElement={{this._reorderHandleElement}}\n @resizeHandleElement={{this._resizeHandleElement}}\n @onColumnResize={{@onColumnResize}}\n @onFocusReorderHandle={{this.focusReorderHandle}}\n @onMoveColumnToTerminalPosition={{@onMoveColumnToTerminalPosition}}\n @onPinFirstColumn={{@onPinFirstColumn}}\n @onRestoreColumnWidth={{@onRestoreColumnWidth}}\n />\n {{#if (and @hasReorderableColumns (not @isStickyColumn))}}\n <HdsAdvancedTableThReorderHandle\n @column={{@column}}\n @tableHeight={{@tableHeight}}\n @thElement={{this._element}}\n @onFocusReorderHandle={{this.focusReorderHandle}}\n @onSetDraggedColumnKey={{this.setDraggedColumnKey}}\n @onStepColumn={{this.stepColumn}}\n {{this._registerReorderHandleElement}}\n />\n {{/if}}\n {{#if this.showResizeHandle}}\n <HdsAdvancedTableThResizeHandle\n @column={{@column}}\n @siblingColumnKeys={{@siblingColumnKeys}}\n @tableHeight={{@tableHeight}}\n @onApplyTransientWidth={{this.applyTransientWidth}}\n @onColumnResize={{@onColumnResize}}\n @onGetAppliedWidth={{this.getAppliedWidth}}\n @onGetColumnByKey={{this.getColumnByKey}}\n @onSetTransientColumnWidth={{this.setTransientColumnWidth}}\n @onSetTransientColumnWidths={{this.setTransientColumnWidths}}\n @onResetTransientColumnWidths={{this.resetTransientColumnWidths}}\n @onUpdateResizeDebt={{this.updateResizeDebt}}\n {{this._registerResizeHandleElement}}\n />\n {{/if}}\n {{/if}}\n {{/if}}\n </HdsLayoutFlex>\n {{#if this.showDropTarget}}\n <HdsAdvancedTableThReorderDropTarget\n @column={{@column}}\n @draggedColumnKey={{@draggedColumnKey}}\n @hasSelectableRows={{@hasSelectableRows}}\n @isFirstColumn={{this.isFirstColumn}}\n @isLastColumn={{this.isLastColumn}}\n @reorderHoveredColumnKey={{@reorderHoveredColumnKey}}\n @draggedColumnSiblingColumnKeys={{@draggedColumnSiblingColumnKeys}}\n @tableHeight={{@tableHeight}}\n @onReorderDrop={{@onReorderDrop}}\n @onSetReorderHoveredColumnKey={{@onSetReorderHoveredColumnKey}}\n />\n {{/if}}\n </div>\n </template>\n}\n","/**\n * Copyright IBM Corp. 2021, 2026\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';\nimport { service } from '@ember/service';\nimport { on } from '@ember/modifier';\n\nimport type HdsIntlService from '../../../services/hds-intl';\n\nimport {\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsAdvancedTableTh from './th.gts';\nimport HdsFormCheckboxBase from '../form/checkbox/base.gts';\nimport HdsAdvancedTableThButtonSort from './th-button-sort.gts';\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type {\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsAdvancedTableThSignature } from './th.gts';\nimport type { HdsCompositeSignature } from '../composite/index.gts';\n\nexport interface HdsAdvancedTableThSelectableSignature {\n Args: {\n compositeItem?: HdsCompositeSignature['Blocks']['default'][0]['item'];\n isCompositeItemDisabled?: boolean;\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 @service declare readonly hdsIntl: HdsIntlService;\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 const defaultString = `Select ${selectionAriaLabelSuffix}`;\n return this.hdsIntl.t(\n 'hds.components.advanced-table.th-selectable.aria-label',\n {\n default: defaultString,\n suffix: selectionAriaLabelSuffix,\n }\n );\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 <template>\n <HdsAdvancedTableTh\n class=\"hds-advanced-table__th--is-selectable\"\n aria-sort={{if this.isSortable this.ariaSort}}\n @scope={{@selectionScope}}\n @isStickyColumn={{@isStickyColumn}}\n @isStickyColumnPinned={{@isStickyColumnPinned}}\n @compositeItem={{@compositeItem}}\n @isCompositeItemDisabled={{@isCompositeItemDisabled}}\n ...attributes\n >\n <div class=\"hds-advanced-table__th-content\">\n <HdsFormCheckboxBase\n id={{this._checkboxId}}\n class=\"hds-advanced-table__checkbox\"\n checked={{@isSelected}}\n aria-label={{this.ariaLabel}}\n {{this._manageCheckbox}}\n {{on \"change\" this.onSelectionChange}}\n />\n {{#if this.isSortable}}\n <HdsAdvancedTableThButtonSort\n @sortOrder={{@sortBySelectedOrder}}\n @onClick={{@onClickSortBySelected}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n </HdsAdvancedTableTh>\n </template>\n}\n","/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { eq } from 'ember-truth-helpers';\n\nimport HdsAdvancedTableThSelectable from './th-selectable.gts';\n\nimport type {\n HdsAdvancedTableCell,\n HdsAdvancedTableScope,\n HdsAdvancedTableThSortOrder,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type { HdsAdvancedTableSignature } from './index.gts';\nimport type { HdsCompositeSignature } from '../composite/index.gts';\nimport type { HdsAdvancedTableThSelectableSignature } from './th-selectable.gts';\n\ntype HdsCompositeDefaultBlock = HdsCompositeSignature['Blocks']['default'][0];\n\nexport interface BaseHdsAdvancedTableTrSignature<T> {\n Args: {\n columnOrder?: HdsAdvancedTableSignature['Args']['columnOrder'];\n compositeGroup?: HdsCompositeDefaultBlock['group'];\n compositeItem?: HdsCompositeDefaultBlock['item'];\n displayRow?: boolean;\n selectableColumnKey?: HdsAdvancedTableSignature['Args']['selectableColumnKey'];\n isCompositeItemDisabled?: boolean;\n isLastRow?: boolean;\n isSelectable?: boolean;\n isSelected?: boolean;\n isParentRow?: boolean;\n hasReorderableColumns?: HdsAdvancedTableSignature['Args']['hasReorderableColumns'];\n data?: T;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsAdvancedTableScope;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n depth?: number;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsAdvancedTableThSelectableSignature['Args']['onClickSortBySelected'];\n hasStickyColumn?: boolean;\n isStickyColumnPinned?: boolean;\n };\n Blocks: {\n default?: [\n {\n orderedCells?: HdsAdvancedTableCell<T>[];\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\n/*\n * NOTE: There is currently an issue with `WithBoundArgs` or Glint that causes a typing error where @selectionKey is set as always required.\n *\n * Until this is fixed, we are holding off on doing a union with the SelectableHdsAdvancedTableTrArgs\n */\n\n// Extended interface for selectable rows\n// export interface SelectableHdsAdvancedTableTrArgs\n// extends BaseHdsAdvancedTableTrSignature {\n// Args: BaseHdsAdvancedTableTrSignature['Args'] & {\n// isSelectable: true;\n// selectionScope?: HdsAdvancedTableScopeValues.Row;\n// selectionKey: string; // Now required for selectable rows\n// };\n// }\n\n// Union type to combine both possible states\nexport type HdsAdvancedTableTrSignature<T> = BaseHdsAdvancedTableTrSignature<T>;\n// | SelectableHdsAdvancedTableTrArgs;\n\nexport default class HdsAdvancedTableTr<T> extends Component<\n HdsAdvancedTableTrSignature<T>\n> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n\n get classNames(): string {\n const { depth, isLastRow, isParentRow, displayRow } = this.args;\n const classes = ['hds-advanced-table__tr'];\n\n if (depth && depth > 0) {\n classes.push('hds-advanced-table__tr--nested');\n }\n\n if (isParentRow) {\n classes.push('hds-advanced-table__tr--parent-row');\n }\n\n if (displayRow === false) {\n classes.push('hds-advanced-table__tr--hidden');\n }\n\n if (isLastRow) {\n classes.push('hds-advanced-table__tr--last-row');\n }\n\n return classes.join(' ');\n }\n\n get cells(): HdsAdvancedTableCell<T>[] {\n const { columnOrder, data } = this.args;\n\n if (columnOrder === undefined || data == null) {\n return [];\n }\n\n return columnOrder.map((columnKey) => ({\n columnKey,\n content: data[columnKey as keyof T] as HdsAdvancedTableCell<T>['content'],\n }));\n }\n\n get orderedCells(): HdsAdvancedTableCell<T>[] | undefined {\n const { columnOrder, data, hasReorderableColumns } = this.args;\n\n if (columnOrder === undefined || data === undefined) {\n return this.cells;\n }\n\n if (hasReorderableColumns) {\n return columnOrder.reduce<HdsAdvancedTableCell<T>[]>((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 <template>\n <div class={{this.classNames}} role=\"row\" {{@compositeGroup}} ...attributes>\n {{#if @isSelectable}}\n <HdsAdvancedTableThSelectable\n role={{if (eq @selectionScope \"row\") \"gridcell\" \"columnheader\"}}\n @compositeItem={{@compositeItem}}\n @isCompositeItemDisabled={{@isCompositeItemDisabled}}\n @isSelected={{@isSelected}}\n @selectionScope={{@selectionScope}}\n @selectionKey={{this.selectionKey}}\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\n @sortBySelectedOrder={{@sortBySelectedOrder}}\n @didInsert={{@didInsert}}\n @willDestroy={{@willDestroy}}\n @onClickSortBySelected={{@onClickSortBySelected}}\n @onSelectionChange={{@onSelectionChange}}\n @isStickyColumn={{@hasStickyColumn}}\n @isStickyColumnPinned={{@isStickyColumnPinned}}\n />\n {{/if}}\n\n {{yield (hash orderedCells=this.orderedCells)}}\n </div>\n </template>\n}\n","/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { modifier } from 'ember-modifier';\nimport { TrackedSet } from 'tracked-built-ins';\nimport { fn, hash } from '@ember/helper';\nimport { and, eq, not, notEq } from 'ember-truth-helpers';\nimport style from 'ember-style-modifier';\nimport { on } from '@ember/modifier';\nimport { sortBy } from '@nullvoxpopuli/ember-composable-helpers';\n\nimport { HdsAdvancedTableThSortOrderValues } from './types.ts';\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport HdsFilterBar from '../filter-bar/index.gts';\nimport HdsApplicationState from '../application-state/index.gts';\nimport HdsComposite from '../composite/index.gts';\nimport HdsAdvancedTableColumnManager from './column-manager/index.gts';\nimport HdsAdvancedTableTr from './tr.gts';\nimport HdsAdvancedTableTh from './th.gts';\nimport HdsAdvancedTableBody from './body.gts';\nimport HdsAdvancedTableTd from './td.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type Owner from '@ember/owner';\nimport type { ComponentLike, WithBoundArgs } from '@glint/template';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableSortingFunction,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableExpandState,\n HdsAdvancedTableColumnReorderCallback,\n HdsAdvancedTableModel,\n} from './types.ts';\n\nimport type { HdsAdvancedTableThSelectableSignature } from './th-selectable.gts';\nimport type { HdsAdvancedTableTrSignature } from './tr.gts';\nimport type { HdsFilterBarSignature } from '../filter-bar/index.gts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\n// a flattened signature for the yielded `Tr` component\n// Replaces `WithBoundArgs` to prevent TS infinite recursion crashes\n// when processing deeply nested tree-grid data models.\nexport interface YieldedHdsAdvancedTableTr<T> {\n Args: {\n isSelected?: boolean;\n selectionKey?: string;\n selectionAriaLabelSuffix?: string;\n selectableColumnKey?: string;\n sortBySelectedOrder?: HdsAdvancedTableThSortOrder;\n onClickSortBySelected?: HdsAdvancedTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: HdsAdvancedTableTrSignature<T>['Blocks'];\n Element: HdsAdvancedTableTrSignature<T>['Element'];\n}\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport const BORDER_WIDTH = 1;\n\nconst DEFAULT_SCROLL_DIMENSIONS = {\n bottom: '0px',\n height: '0px',\n left: '0px',\n right: '0px',\n width: '0px',\n};\n\nconst REORDER_EDGE_SCROLL_TRIGGER_PX = 48;\nconst REORDER_EDGE_SCROLL_STEP_PX = 16;\n\nconst getScrollIndicatorDimensions = (\n scrollWrapper: HTMLDivElement,\n theadElement: HTMLDivElement,\n hasStickyFirstColumn: boolean,\n isStickyColumnPinned: boolean\n) => {\n const horizontalScrollBarHeight =\n scrollWrapper.offsetHeight - scrollWrapper.clientHeight;\n const verticalScrollBarWidth =\n scrollWrapper.offsetWidth - scrollWrapper.clientWidth;\n\n let leftOffset = 0;\n\n if (hasStickyFirstColumn) {\n const stickyColumnHeaders = theadElement.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n\n stickyColumnHeaders?.forEach((el) => {\n // querySelectorAll returns Elements, which don't have offsetWidth\n // need to use offsetWidth to account for the cell borders\n const elAsHTMLElement = el as HTMLElement;\n leftOffset += elAsHTMLElement.offsetWidth;\n });\n\n // offsets the left: -1px position if there are multiple sticky columns or the first column has a fixed pixel width\n if (stickyColumnHeaders.length > 1) {\n leftOffset -= 1;\n }\n\n // offsets the left: -1px position if the sticky column is already pinned when the scroll indicator is calculated\n if (isStickyColumnPinned) {\n leftOffset -= 1;\n }\n }\n\n return {\n bottom: `${horizontalScrollBarHeight}px`,\n height: `${scrollWrapper.offsetHeight - horizontalScrollBarHeight}px`,\n left: `${leftOffset}px`,\n right: `${verticalScrollBarWidth}px`,\n width: `${scrollWrapper.offsetWidth - verticalScrollBarWidth}px`,\n };\n};\n\nconst getStickyColumnLeftOffset = (\n theadElement: HTMLDivElement,\n hasRowSelection: boolean,\n isStickyColumnPinned: boolean\n) => {\n // if there is no select checkbox column, the sticky column is all the way to the left\n if (!hasRowSelection) return '0px';\n\n const selectableCell = theadElement.querySelector(\n '.hds-advanced-table__th--is-selectable'\n ) as HTMLElement;\n\n let leftOffset = selectableCell?.offsetWidth ?? 0;\n\n // if the sticky column is pinned when the offset is calculated, we need to account for the increased width of the border\n if (isStickyColumnPinned && leftOffset > 0) {\n leftOffset -= 2;\n }\n\n return `${leftOffset}px`;\n};\n\nexport interface HdsAdvancedTableSignature<T = HdsAdvancedTableModel> {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n columnOrder?: string[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: T[];\n reorderedMessageText?: string;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasReorderableColumns?: boolean;\n hasResizableColumns?: boolean;\n hasStickyHeader?: boolean;\n hasStickyFirstColumn?: boolean;\n childrenKey?: string;\n maxHeight?: string;\n onColumnReorder?: HdsAdvancedTableColumnReorderCallback;\n onColumnResize?: (columnKey: string, newWidth?: string) => void;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n };\n Blocks: {\n actions?: [\n {\n FilterBar?: ComponentLike<HdsFilterBarSignature>;\n },\n ];\n body?: [\n {\n Td?: WithBoundArgs<\n typeof HdsAdvancedTableTd,\n 'align' | 'compositeItem' | 'isCompositeItemDisabled'\n >;\n Tr?: ComponentLike<YieldedHdsAdvancedTableTr<T>>;\n Th?: WithBoundArgs<\n typeof HdsAdvancedTableTh,\n | 'compositeItem'\n | 'isCompositeItemDisabled'\n | 'depth'\n | 'isExpandable'\n | 'isExpanded'\n | 'isStickyColumnPinned'\n | 'newLabel'\n | 'onClickToggle'\n | 'parentId'\n | 'scope'\n >;\n data: T;\n rowIndex?: number | string;\n isOpen?: HdsAdvancedTableExpandState;\n },\n ];\n emptyState?: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable<\n T = HdsAdvancedTableModel,\n> extends Component<HdsAdvancedTableSignature<T>> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n @tracked private _tableHeight = 0;\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _scrollHandler!: (event: Event) => void;\n private _dragOverHandler!: (event: DragEvent) => void;\n private _resizeObserver!: ResizeObserver;\n private _theadElement!: HTMLDivElement;\n private _scrollWrapperElement!: HTMLDivElement;\n\n @tracked scrollIndicatorDimensions = DEFAULT_SCROLL_DIMENSIONS;\n @tracked isStickyColumnPinned = false;\n @tracked isStickyHeaderPinned = false;\n @tracked hasPinnedFirstColumn: boolean | undefined = undefined;\n @tracked reorderedMessageText = '';\n @tracked showScrollIndicatorLeft = false;\n @tracked showScrollIndicatorRight = false;\n @tracked showScrollIndicatorTop = false;\n @tracked showScrollIndicatorBottom = false;\n @tracked stickyColumnOffset = '0px';\n\n // sorting properties\n @tracked currentSortBy?: string;\n @tracked currentSortOrder: HdsAdvancedTableThSortOrder =\n HdsAdvancedTableThSortOrderValues.Asc;\n\n // row expansion properties\n expandedRowIds = new TrackedSet<string>();\n\n private _setUpScrollWrapper = modifier((element: HTMLDivElement) => {\n this._scrollWrapperElement = element;\n\n const updateHorizontalScrollIndicators = () => {\n this.showScrollIndicatorRight = element.clientWidth < element.scrollWidth;\n };\n\n this._scrollHandler = () => {\n this._updateScrollIndicators(element);\n };\n\n this._dragOverHandler = (event: DragEvent) => {\n if (this.args.hasReorderableColumns !== true) {\n return;\n }\n\n const canScrollHorizontally = element.scrollWidth > element.clientWidth;\n\n if (!canScrollHorizontally) {\n return;\n }\n\n const firstReorderDropTarget = element.querySelector(\n '.hds-advanced-table__th-reorder-drop-target'\n );\n\n if (firstReorderDropTarget === null) {\n return;\n }\n\n const stickyColumnHeaders = element.querySelectorAll(\n '.hds-advanced-table__th--is-sticky-column'\n );\n const lastStickyColumnHeader = stickyColumnHeaders[\n stickyColumnHeaders.length - 1\n ] as HTMLDivElement | undefined;\n\n const leftVisibleEdge =\n lastStickyColumnHeader?.getBoundingClientRect().right ??\n firstReorderDropTarget.getBoundingClientRect().left;\n\n const leftScrollTrigger =\n lastStickyColumnHeader !== undefined\n ? leftVisibleEdge\n : leftVisibleEdge + REORDER_EDGE_SCROLL_TRIGGER_PX;\n\n const { right } = element.getBoundingClientRect();\n const rightScrollTrigger = right - REORDER_EDGE_SCROLL_TRIGGER_PX;\n\n if (event.clientX <= leftScrollTrigger) {\n element.scrollBy({ left: -REORDER_EDGE_SCROLL_STEP_PX });\n } else if (event.clientX >= rightScrollTrigger) {\n element.scrollBy({ left: REORDER_EDGE_SCROLL_STEP_PX });\n }\n };\n\n element.addEventListener('scroll', this._scrollHandler);\n element.addEventListener('dragover', this._dragOverHandler);\n\n const updateMeasurements = () => {\n const { isSelectable = false } = this.args;\n\n const newTableHeight = element.offsetHeight;\n\n const newDimensions = getScrollIndicatorDimensions(\n element,\n this._theadElement,\n this.hasStickyFirstColumn ? true : false,\n this.isStickyColumnPinned\n );\n\n const setUpdatedMeasurements = () => {\n if (this.isDestroying || this.isDestroyed) {\n return;\n }\n\n const isSameBottom =\n this.scrollIndicatorDimensions.bottom === newDimensions.bottom;\n const isSameHeight =\n this.scrollIndicatorDimensions.height === newDimensions.height;\n const isSameLeft =\n this.scrollIndicatorDimensions.left === newDimensions.left;\n const isSameRight =\n this.scrollIndicatorDimensions.right === newDimensions.right;\n\n if (\n isSameBottom &&\n isSameHeight &&\n isSameLeft &&\n isSameRight &&\n this._tableHeight === newTableHeight\n ) {\n return;\n }\n\n this._tableHeight = newTableHeight;\n this.scrollIndicatorDimensions = newDimensions;\n\n if (this.hasStickyFirstColumn) {\n this.stickyColumnOffset = getStickyColumnLeftOffset(\n this._theadElement,\n isSelectable,\n this.isStickyColumnPinned\n );\n }\n };\n\n window.requestAnimationFrame(setUpdatedMeasurements);\n };\n\n this._resizeObserver = new ResizeObserver((entries) => {\n entries.forEach(() => {\n updateMeasurements();\n updateHorizontalScrollIndicators();\n });\n });\n\n this._resizeObserver.observe(element);\n\n updateMeasurements();\n\n // on render check if should show right scroll indicator\n updateHorizontalScrollIndicators();\n\n // on render check if should show bottom scroll indicator\n if (element.clientHeight < element.scrollHeight) {\n this.showScrollIndicatorBottom = true;\n }\n\n return () => {\n element.removeEventListener('scroll', this._scrollHandler);\n element.removeEventListener('dragover', this._dragOverHandler);\n this._resizeObserver.disconnect();\n };\n });\n\n private _setUpThead = modifier((element: HTMLDivElement) => {\n this._theadElement = element;\n });\n\n private _syncSortArgs = modifier(() => {\n const { sortBy, sortOrder } = this.args;\n\n if (sortBy !== undefined) {\n this.currentSortBy = sortBy;\n }\n\n if (sortOrder !== undefined) {\n this.currentSortOrder = sortOrder;\n }\n });\n\n constructor(owner: Owner, args: HdsAdvancedTableSignature<T>['Args']) {\n super(owner, args);\n\n const { hasStickyFirstColumn, model } = args;\n\n this._runAssertions();\n\n this._initializeExpandedRows(model);\n\n if (hasStickyFirstColumn) {\n this.hasPinnedFirstColumn = true;\n }\n }\n\n get childrenKey(): string {\n return this.args.childrenKey ?? 'children';\n }\n\n get hasRowsWithChildren(): boolean {\n const { model } = this.args;\n\n return model.some((record) => {\n const children = (record as Record<string, unknown>)[this.childrenKey] as\n | Record<string, unknown>[]\n | undefined;\n\n return Array.isArray(children) && children.length > 0;\n });\n }\n\n @cached\n get expandableRowIds(): string[] {\n const { model } = this.args;\n\n const ids: string[] = [];\n\n const collect = (items: Record<string, unknown>[]) => {\n items.forEach((item) => {\n const children = item[this.childrenKey] as\n | Record<string, unknown>\n | undefined;\n\n if (Array.isArray(children) && children.length > 0) {\n ids.push(guidFor(item));\n\n collect(children);\n }\n });\n };\n\n collect(model as Record<string, unknown>[]);\n\n return ids;\n }\n\n get isAllExpanded(): boolean {\n if (this.expandableRowIds.length === 0) {\n return false;\n }\n\n return this.expandableRowIds.every((id) => this.expandedRowIds.has(id));\n }\n\n get sortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n const { columns } = this.args;\n\n const currentColumn = columns.find(\n (column) => column.key === this.currentSortBy\n );\n\n if (\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n return `${this.currentSortBy}:${this.currentSortOrder}`;\n }\n }\n\n get isEmpty(): boolean {\n const { model } = this.args;\n\n return model.length === 0;\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get hasStickyFirstColumn(): boolean | undefined {\n // The user-controlled `hasPinnedFirstColumn` variable takes precedence over the model's `hasStickyFirstColumn` property.\n if (this.hasPinnedFirstColumn !== undefined) {\n return this.hasPinnedFirstColumn;\n } else if (this.args.hasStickyFirstColumn === false) {\n return this.args.hasStickyFirstColumn;\n }\n\n return undefined;\n }\n\n get sortedMessageText(): string {\n const { sortedMessageText } = this.args;\n\n if (sortedMessageText !== undefined) {\n return sortedMessageText;\n } else if (this.currentSortBy !== undefined) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${this.currentSortBy} ${this.currentSortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this.hasRowsWithChildren) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this.hasRowsWithChildren) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get hasStickyHeader(): boolean {\n if (this.args.maxHeight && this.args.hasStickyHeader !== false) {\n return true;\n } else if (this.args.hasStickyHeader && !this.args.maxHeight) {\n assert('Must set @maxHeight to use @hasStickyHeader.', false);\n }\n\n return false;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this.hasRowsWithChildren) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n if (this.hasStickyFirstColumn) {\n classes.push('hds-advanced-table--has-sticky-first-column');\n }\n\n if (this.hasStickyFirstColumn && this.isStickyColumnPinned) {\n classes.push('hds-advanced-table--sticky-first-column-pinned');\n }\n\n return classes.join(' ');\n }\n\n get theadClassNames(): string {\n const { hasResizableColumns } = this.args;\n\n const classes = ['hds-advanced-table__thead'];\n\n if (this.hasStickyHeader) {\n classes.push('hds-advanced-table__thead--sticky');\n }\n\n if (this.isStickyHeaderPinned) {\n classes.push('hds-advanced-table__thead--is-pinned');\n }\n\n if (hasResizableColumns) {\n classes.push('hds-advanced-table__thead--has-resizable-columns');\n }\n\n return classes.join(' ');\n }\n\n // these bridge the gap between strict TS and dynamic Glimmer templates\n asRowData = (source: Record<string, unknown>): T => source as unknown as T;\n asScope = (scope: string): 'col' | 'row' => scope as 'col' | 'row';\n // flattens the row interface to fix the potentially infinite nesting of rows with children\n asTr = (comp: unknown) => comp as ComponentLike<YieldedHdsAdvancedTableTr<T>>;\n\n private _initializeExpandedRows(model: T[]) {\n const traverse = (items: Record<string, unknown>[]) => {\n items.forEach((item) => {\n if (item['isOpen'] === true) {\n this.expandedRowIds.add(guidFor(item));\n }\n\n const children = item[this.childrenKey] as\n | Record<string, unknown>[]\n | undefined;\n\n if (Array.isArray(children) && children.length > 0) {\n traverse(children);\n }\n });\n };\n\n traverse(model as Record<string, unknown>[]);\n }\n\n private _runAssertions() {\n const {\n columns,\n hasReorderableColumns,\n hasResizableColumns,\n hasStickyFirstColumn,\n } = this.args;\n\n if (this.hasRowsWithChildren) {\n const sortableColumns = columns.filter((column) => column.isSortable);\n const sortableColumnLabels = sortableColumns.map(\n (column) => column.label\n );\n\n assert(\n 'Cannot have reorderable columns if there are nested rows.',\n !hasReorderableColumns\n );\n\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumnLabels.toString()}`,\n sortableColumns.length === 0\n );\n\n assert(\n 'Cannot have a sticky first column if there are nested rows.',\n hasStickyFirstColumn === undefined\n );\n\n assert(\n `Cannot have resizable columns if there are nested rows.`,\n !hasResizableColumns\n );\n }\n }\n\n private _onColumnReorder: HdsAdvancedTableColumnReorderCallback = ({\n column,\n newOrder,\n insertedAt,\n }) => {\n // Guard against accessing hdsIntl service after component destruction\n if (this.isDestroying || this.isDestroyed) return;\n\n const { reorderedMessageText } = this.args;\n\n if (reorderedMessageText !== undefined) {\n this.reorderedMessageText = reorderedMessageText;\n } else {\n const newPosition = insertedAt + 1;\n const translatedReorderedMessageText = this.hdsIntl.t(\n 'hds.advanced-table.reordered-message',\n {\n default: `Moved ${column.label} column to position ${newPosition}`,\n columnLabel: column.label,\n newPosition,\n }\n );\n\n this.reorderedMessageText = translatedReorderedMessageText;\n }\n\n this.args.onColumnReorder?.({\n column,\n newOrder,\n insertedAt,\n });\n };\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n toggleExpandAll() {\n const allIds = this.expandableRowIds;\n const isAllExpanded = allIds.every((id) => this.expandedRowIds.has(id));\n\n if (isAllExpanded) {\n this.expandedRowIds.clear();\n } else {\n // Add all IDs efficiently\n allIds.forEach((id) => this.expandedRowIds.add(id));\n }\n }\n\n @action\n toggleRow(rowId: string) {\n if (this.expandedRowIds.has(rowId)) {\n this.expandedRowIds.delete(rowId);\n } else {\n this.expandedRowIds.add(rowId);\n }\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n if (selectionKey === undefined) {\n return;\n }\n\n const index = this._selectableRows.findIndex(\n (row) => row.selectionKey === selectionKey\n );\n\n if (index === -1) {\n return;\n }\n\n this._selectableRows.splice(index, 1);\n\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n }\n }\n\n @action\n setSortBy(columnKey: HdsAdvancedTableColumn['key']): void {\n const { onSort } = this.args;\n\n if (columnKey === undefined) {\n return;\n }\n\n let newSortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n\n if (this.currentSortBy === columnKey) {\n newSortOrder =\n this.currentSortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n this.currentSortBy = columnKey;\n this.currentSortOrder = newSortOrder;\n\n if (typeof onSort === 'function') {\n onSort(columnKey, newSortOrder);\n }\n }\n\n private _updateScrollIndicators(element: HTMLElement): void {\n // 6px as a buffer so the shadow doesn't appear over the border radius on the edge of the table\n const SCROLL_BUFFER = 6;\n\n // left scroll indicator and sticky column styles\n if (element.scrollLeft > SCROLL_BUFFER) {\n if (this.hasStickyFirstColumn) {\n this.isStickyColumnPinned = true;\n }\n if (!this.showScrollIndicatorLeft) {\n this.showScrollIndicatorLeft = true;\n }\n } else if (element.scrollLeft === 0 && this.showScrollIndicatorLeft) {\n this.isStickyColumnPinned = false;\n this.showScrollIndicatorLeft = false;\n }\n\n // the right edge is how far the user can scroll, which is the full width of the table - the visible section of the table (also subtract the buffer)\n const rightEdge = element.scrollWidth - element.clientWidth - SCROLL_BUFFER;\n\n // right scroll indicator\n if (element.scrollLeft < rightEdge) {\n this.showScrollIndicatorRight = true;\n } else {\n this.showScrollIndicatorRight = false;\n }\n\n // sticky header\n if (element.scrollTop > 0) {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = true;\n }\n this.showScrollIndicatorTop = true;\n } else {\n if (this.hasStickyHeader) {\n this.isStickyHeaderPinned = false;\n }\n this.showScrollIndicatorTop = false;\n }\n\n // the bottom edge is how far the user can scroll, which is the full height of the table - the visible section of the table (also subtract the buffer)\n const bottomEdge =\n element.scrollHeight - element.clientHeight - SCROLL_BUFFER;\n\n // bottom scroll indicator\n if (element.scrollTop < bottomEdge) {\n this.showScrollIndicatorBottom = true;\n } else {\n this.showScrollIndicatorBottom = false;\n }\n }\n\n private _onPinFirstColumn = (): void => {\n this.hasPinnedFirstColumn = this.hasPinnedFirstColumn ? false : true;\n // we need to retrigger the scroll indicator updates if the pinned state is changed when the table is already scrolled\n this._updateScrollIndicators(this._scrollWrapperElement);\n };\n\n <template>\n <div class=\"hds-advanced-table__actions-container-wrapper\">\n {{#if (has-block \"actions\")}}\n <div class=\"hds-advanced-table__actions\">\n {{yield (hash FilterBar=(component HdsFilterBar)) to=\"actions\"}}\n </div>\n {{/if}}\n\n <div\n class=\"hds-advanced-table__container\n {{(if\n this.isStickyHeaderPinned\n 'hds-advanced-table__container--header-is-pinned'\n )}}\"\n {{this._syncSortArgs}}\n ...attributes\n >\n {{! Caption }}\n <div\n id={{this._captionId}}\n class=\"sr-only hds-advanced-table__caption\"\n aria-live=\"polite\"\n >\n {{@caption}}\n {{this.sortedMessageText}}\n {{this.reorderedMessageText}}\n </div>\n\n <HdsAdvancedTableColumnManager\n @columns={{@columns}}\n @columnOrder={{@columnOrder}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasStickyFirstColumn={{this.hasStickyFirstColumn}}\n @isSelectable={{@isSelectable}}\n @onColumnReorder={{this._onColumnReorder}}\n as |CM|\n >\n <HdsComposite as |C|>\n {{! Grid }}\n <div\n class={{this.classNames}}\n role=\"grid\"\n aria-describedby={{this._captionId}}\n {{style\n grid-template-columns=CM.gridTemplateColumns\n --hds-advanced-table-sticky-column-offset=this.stickyColumnOffset\n max-height=@maxHeight\n }}\n {{this._setUpScrollWrapper}}\n {{CM.syncColumnOrder CM.columns @columnOrder}}\n {{CM.syncWidthValues}}\n {{C.composite}}\n >\n {{! Header }}\n <div\n class={{this.theadClassNames}}\n role=\"rowgroup\"\n {{this._setUpThead}}\n {{on \"dragleave\" (fn CM.setReorderHoveredColumnKey null)}}\n >\n <HdsAdvancedTableTr\n @compositeGroup={{C.group}}\n @compositeItem={{C.item}}\n @selectionScope=\"col\"\n @onClickSortBySelected={{if\n @selectableColumnKey\n (fn this.setSortBy @selectableColumnKey)\n }}\n @sortBySelectedOrder={{if\n (eq this.currentSortBy @selectableColumnKey)\n this.currentSortOrder\n }}\n @isSelectable={{this.isSelectable}}\n @onSelectionChange={{this.onSelectionAllChange}}\n @didInsert={{this.didInsertSelectAllCheckbox}}\n @willDestroy={{this.willDestroySelectAllCheckbox}}\n @selectionAriaLabelSuffix=\"all rows\"\n @hasStickyColumn={{this.hasStickyFirstColumn}}\n @isStickyColumnPinned={{this.isStickyColumnPinned}}\n >\n {{#each CM.orderedColumns as |column|}}\n <HdsAdvancedTableTh\n @align={{column.align}}\n @column={{column}}\n @compositeItem={{C.item}}\n @draggedColumnKey={{CM.draggedColumnKey}}\n @firstColumnKey={{CM.firstColumnKey}}\n @firstNonStickyColumnKey={{CM.firstNonStickyColumnKey}}\n @hasReorderableColumns={{@hasReorderableColumns}}\n @hasResizableColumns={{@hasResizableColumns}}\n @hasSelectableRows={{this.isSelectable}}\n @hasStickyFirstColumn={{this.hasStickyFirstColumn}}\n @isStickyColumn={{if\n (and\n (eq column.key CM.firstColumnKey)\n (notEq this.hasStickyFirstColumn undefined)\n )\n this.hasStickyFirstColumn\n undefined\n }}\n @isStickyColumnPinned={{this.isStickyColumnPinned}}\n @lastColumnKey={{CM.lastColumnKey}}\n @reorderHoveredColumnKey={{CM.reorderHoveredColumnKey}}\n @draggedColumnSiblingColumnKeys={{if\n CM.draggedColumnKey\n (CM.getSiblingColumnKeys CM.draggedColumnKey)\n }}\n @siblingColumnKeys={{CM.getSiblingColumnKeys column.key}}\n @tableHeight={{this._tableHeight}}\n @tooltip={{column.tooltip}}\n @hasExpandAllButton={{this.hasRowsWithChildren}}\n @isExpanded={{this.isAllExpanded}}\n @isExpandable={{column.isExpandable}}\n @sortOrder={{if\n (eq column.key this.currentSortBy)\n this.currentSortOrder\n }}\n @onApplyTransientWidth={{CM.applyTransientWidth}}\n @onClickSort={{if\n column.isSortable\n (fn this.setSortBy column.key)\n }}\n @onClickToggle={{this.toggleExpandAll}}\n @onColumnResize={{@onColumnResize}}\n @onGetAppliedWidth={{CM.getAppliedWidth}}\n @onGetColumnByKey={{CM.getColumnByKey}}\n @onMoveColumnToTerminalPosition={{CM.moveColumnToTerminalPosition}}\n @onPinFirstColumn={{this._onPinFirstColumn}}\n @onReorderDrop={{CM.moveColumnToDropTarget}}\n @onRestoreColumnWidth={{CM.restoreColumnWidth}}\n @onResetTransientColumnWidths={{CM.resetTransientColumnWidths}}\n @onSetDraggedColumnKey={{CM.setDraggedColumnKey}}\n @onSetReorderHoveredColumnKey={{CM.setReorderHoveredColumnKey}}\n @onSetTransientColumnWidth={{CM.setTransientColumnWidth}}\n @onSetTransientColumnWidths={{CM.setTransientColumnWidths}}\n @onStepColumn={{CM.stepColumn}}\n @onUpdateResizeDebt={{CM.updateResizeDebt}}\n {{CM.syncThElements column.key}}\n >\n {{column.label}}\n </HdsAdvancedTableTh>\n {{/each}}\n </HdsAdvancedTableTr>\n\n {{#if this.showScrollIndicatorTop}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-top\"\n />\n {{/if}}\n </div>\n\n {{! Body }}\n <HdsAdvancedTableBody\n @childrenKey={{this.childrenKey}}\n @expandedRowIds={{this.expandedRowIds}}\n {{! @glint-expect-error: [HDS-4380](https://hashicorp.atlassian.net/browse/HDS-4380) }}\n @sortedModel={{sortBy this.sortCriteria @model}}\n as |B|\n >\n {{#each B.rows key=\"id\" as |row index|}}\n {{#let\n (and (not this.hasRowsWithChildren) (not row.hasChildren))\n as |isSelectionAllowed|\n }}\n {{yield\n (hash\n Tr=(this.asTr\n (component\n HdsAdvancedTableTr\n columnOrder=CM.columnOrder\n compositeGroup=C.group\n compositeItem=C.item\n data=(this.asRowData row.source)\n depth=row.depth\n isCompositeItemDisabled=(not row.isVisible)\n isParentRow=row.hasChildren\n isLastRow=(and\n (eq row.id B.lastVisibleRowId)\n (notEq B.lastVisibleRowId undefined)\n )\n displayRow=row.isVisible\n selectionScope=(if\n isSelectionAllowed (this.asScope \"row\")\n )\n isSelectable=(if\n isSelectionAllowed this.isSelectable\n )\n onSelectionChange=(if\n isSelectionAllowed this.onSelectionRowChange\n )\n didInsert=(if\n isSelectionAllowed this.didInsertRowCheckbox\n )\n willDestroy=(if\n isSelectionAllowed this.willDestroyRowCheckbox\n )\n hasStickyColumn=this.hasStickyFirstColumn\n isStickyColumnPinned=this.isStickyColumnPinned\n )\n )\n Th=(component\n HdsAdvancedTableTh\n compositeItem=C.item\n isCompositeItemDisabled=(not row.isVisible)\n isExpandable=row.hasChildren\n isExpanded=row.isExpanded\n onClickToggle=(fn this.toggleRow row.id)\n depth=row.depth\n scope=\"row\"\n newLabel=row.id\n parentId=undefined\n isStickyColumnPinned=this.isStickyColumnPinned\n )\n Td=(component\n HdsAdvancedTableTd\n align=@align\n compositeItem=C.item\n isCompositeItemDisabled=(not row.isVisible)\n )\n data=(this.asRowData row.source)\n rowIndex=index\n isOpen=row.isExpanded\n )\n to=\"body\"\n }}\n {{/let}}\n {{/each}}\n </HdsAdvancedTableBody>\n </div>\n </HdsComposite>\n </HdsAdvancedTableColumnManager>\n\n {{! Empty state }}\n {{#if this.isEmpty}}\n <div class=\"hds-advanced-table__empty-state\">\n {{#if (has-block \"emptyState\")}}\n {{yield to=\"emptyState\"}}\n {{else}}\n <HdsApplicationState as |A|>\n <A.Header\n @title={{hdsT\n \"hds.components.advanced-table.empty-state.title\"\n default=\"No data available\"\n }}\n />\n <A.Body\n @text={{hdsT\n \"hds.components.advanced-table.empty-state.description\"\n default=\"There is currently no data to display in the table.\"\n }}\n />\n </HdsApplicationState>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if this.showScrollIndicatorLeft}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-left\"\n {{style\n height=this.scrollIndicatorDimensions.height\n left=this.scrollIndicatorDimensions.left\n }}\n />\n {{/if}}\n\n {{#if this.showScrollIndicatorRight}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-right\"\n {{style\n height=this.scrollIndicatorDimensions.height\n right=this.scrollIndicatorDimensions.right\n }}\n />\n {{/if}}\n\n {{#if (and this.showScrollIndicatorBottom (not this.isEmpty))}}\n <div\n class=\"hds-advanced-table__scroll-indicator hds-advanced-table__scroll-indicator-bottom\"\n {{style\n bottom=this.scrollIndicatorDimensions.bottom\n width=this.scrollIndicatorDimensions.width\n }}\n />\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["KEYBOARD_RESIZE_STEP","calculateEffectiveDelta","deltaX","col","startColW","nextCol","startNextColW","colMin","parsePixel","minWidth","DEFAULT_MIN_WIDTH","colMax","maxWidth","DEFAULT_MAX_WIDTH","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","currentWidthInPixels","column","onGetAppliedWidth","undefined","appliedWidth","key","minWidthInPixels","maxWidthInPixels","height","tableHeight","BORDER_WIDTH","classNames","classes","resizing","push","join","_applyTransientWidths","siblingColumnKeys","onApplyTransientWidth","next","nextColumnKey","onColumnResize","width","n","action","handleKeydown","event","validKeys","includes","preventDefault","stopPropagation","onSetTransientColumnWidths","onResetTransientColumnWidths","onUpdateResizeDebt","roundValues","startColumnAppliedWidth","startNextColumnAppliedWidth","startColumnPxWidth","round","startNextColumnPxWidth","_applyResizeDelta","scrollIntoView","behavior","block","inline","queueMicrotask","_transientDelta","startResize","button","startX","clientX","window","addEventListener","_setColumnWidth","onSetTransientColumnWidth","onGetColumnByKey","canResizeNeighbor","nextColumn","columnAppliedWidth","actualNewColumnWidth","actualAppliedDelta","_lastPointerEvent","_isUpdateQueued","requestAnimationFrameWaiter","removeEventListener","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","concat","on","style","HdsAdvancedTableThReorderDropTarget","_element","_registerElement","_getDragSide","rect","getBoundingClientRect","mouseX","elementMiddleX","left","HdsAdvancedTableColumnReorderSideValues","Left","Right","isBeingDragged","draggedColumnKey","isDraggingOver","reorderHoveredColumnKey","isFirstColumn","isLastColumn","hasSelectableRows","_dragSide","handleDragOver","draggedColumnSiblingColumnKeys","onSetReorderHoveredColumnKey","previous","dragSide","handleDrop","onReorderDrop","ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","HdsAdvancedTableTh","_labelId","newLabel","rowspan","colspan","isStickyColumn","assert","guidFor","isSortable","firstColumnKey","isFirstNonStickyColumn","firstNonStickyColumnKey","lastColumnKey","tableHasColumnBeingDragged","isColumnBeingDragged","role","ariaSort","sortOrder","HdsAdvancedTableThSortOrderValues","Asc","HdsAdvancedTableThSortOrderLabelValues","Desc","None","align","paddingLeft","depth","isStickyColumnPinned","showDropTarget","showResizeHandle","hasResizableColumns","onFocusTrapDeactivate","_shouldTrapFocus","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","focusReorderHandle","focus","preventScroll","_reorderHandleElement","applyTransientWidth","columnKey","resetTransientColumnWidths","getAppliedWidth","getColumnByKey","setDraggedColumnKey","onSetDraggedColumnKey","setTransientColumnWidth","setTransientColumnWidths","options","stepColumn","step","onStepColumn","updateResizeDebt","delta","setElement","scheduleOnce","_registerReorderHandleElement","_registerResizeHandleElement","_resizeHandleElement","_manageExpandButton","didInsertExpandButton","willDestroyExpandButton","hdsAdvancedTableCell","focusTrap","hash","hdsScrollIntoViewOnFocus","HdsLayoutFlex","and","not","HdsAdvancedTableThButtonExpand","HdsAdvancedTableThButtonTooltip","HdsAdvancedTableThButtonSort","HdsAdvancedTableThContextMenu","HdsAdvancedTableThReorderHandle","HdsAdvancedTableThSelectable","service","isSelected","_guid","_checkboxId","onClickSortBySelected","ariaLabel","selectionAriaLabelSuffix","defaultString","hdsIntl","t","default","suffix","sortBySelectedOrder","_manageCheckbox","checkbox","didInsert","willDestroy","selectionKey","onSelectionChange","target","_isSelected","checked","HdsFormCheckboxBase","HdsAdvancedTableTr","isSelectable","selectionScope","isLastRow","isParentRow","displayRow","cells","columnOrder","data","map","content","orderedCells","hasReorderableColumns","reduce","acc","cell","find","eq","DENSITIES","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","DEFAULT_SCROLL_DIMENSIONS","bottom","right","REORDER_EDGE_SCROLL_TRIGGER_PX","REORDER_EDGE_SCROLL_STEP_PX","getScrollIndicatorDimensions","scrollWrapper","theadElement","hasStickyFirstColumn","horizontalScrollBarHeight","offsetHeight","clientHeight","verticalScrollBarWidth","offsetWidth","clientWidth","leftOffset","stickyColumnHeaders","querySelectorAll","forEach","el","elAsHTMLElement","length","getStickyColumnLeftOffset","hasRowSelection","selectableCell","querySelector","HdsAdvancedTable","_selectableRows","_captionId","_scrollHandler","_dragOverHandler","_resizeObserver","_theadElement","_scrollWrapperElement","expandedRowIds","TrackedSet","_setUpScrollWrapper","updateHorizontalScrollIndicators","showScrollIndicatorRight","scrollWidth","_updateScrollIndicators","canScrollHorizontally","firstReorderDropTarget","lastStickyColumnHeader","leftVisibleEdge","leftScrollTrigger","rightScrollTrigger","scrollBy","updateMeasurements","newTableHeight","newDimensions","setUpdatedMeasurements","isDestroying","isDestroyed","isSameBottom","scrollIndicatorDimensions","isSameHeight","isSameLeft","isSameRight","_tableHeight","stickyColumnOffset","requestAnimationFrame","ResizeObserver","entries","observe","scrollHeight","showScrollIndicatorBottom","disconnect","_setUpThead","_syncSortArgs","sortBy","currentSortBy","currentSortOrder","model","_runAssertions","_initializeExpandedRows","hasPinnedFirstColumn","childrenKey","hasRowsWithChildren","some","record","children","Array","isArray","expandableRowIds","ids","collect","items","item","cached","isAllExpanded","every","id","has","sortCriteria","columns","currentColumn","sortingFunction","isEmpty","identityKey","sortedMessageText","isStriped","density","hasStickyHeader","maxHeight","valign","theadClassNames","isStickyHeaderPinned","asRowData","source","asScope","asTr","comp","traverse","add","sortableColumns","filter","sortableColumnLabels","label","toString","_onColumnReorder","newOrder","insertedAt","reorderedMessageText","newPosition","translatedReorderedMessageText","columnLabel","onColumnReorder","onSelectionChangeCallback","selectionCheckboxElement","selectedRowsKeys","row","selectableRowsStates","toggleExpandAll","allIds","clear","toggleRow","rowId","delete","onSelectionAllChange","_selectAllCheckbox","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","index","findIndex","splice","selectableRowsCount","selectedRowsCount","indeterminate","setSortBy","onSort","newSortOrder","SCROLL_BUFFER","scrollLeft","showScrollIndicatorLeft","rightEdge","scrollTop","showScrollIndicatorTop","bottomEdge","_onPinFirstColumn","HdsFilterBar","HdsAdvancedTableColumnManager","HdsComposite","fn","notEq","HdsAdvancedTableBody","HdsAdvancedTableTd","HdsApplicationState"],"mappings":"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"}