@hashicorp/design-system-components 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/declarations/components/hds/accordion/index.d.ts +1 -2
  2. package/declarations/components/hds/accordion/index.d.ts.map +1 -1
  3. package/declarations/components/hds/accordion/item/button.d.ts +1 -2
  4. package/declarations/components/hds/accordion/item/button.d.ts.map +1 -1
  5. package/declarations/components/hds/alert/index.d.ts +1 -28
  6. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  7. package/declarations/components/hds/app-side-nav/index.d.ts +45 -0
  8. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -0
  9. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +15 -0
  10. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -0
  11. package/declarations/components/hds/app-side-nav/list/index.d.ts +32 -0
  12. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -0
  13. package/declarations/components/hds/app-side-nav/list/item.d.ts +14 -0
  14. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -0
  15. package/declarations/components/hds/app-side-nav/list/link.d.ts +24 -0
  16. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -0
  17. package/declarations/components/hds/app-side-nav/list/title.d.ts +19 -0
  18. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -0
  19. package/declarations/components/hds/app-side-nav/portal/index.d.ts +27 -0
  20. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -0
  21. package/declarations/components/hds/app-side-nav/portal/target.d.ts +37 -0
  22. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -0
  23. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +15 -0
  24. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -0
  25. package/declarations/components/hds/button-set/index.d.ts +1 -1
  26. package/declarations/components/hds/button-set/index.d.ts.map +1 -1
  27. package/declarations/components/hds/dropdown/index.d.ts +3 -0
  28. package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
  29. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
  30. package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
  31. package/declarations/components/hds/flyout/body.d.ts +2 -1
  32. package/declarations/components/hds/flyout/body.d.ts.map +1 -1
  33. package/declarations/components/hds/flyout/description.d.ts +3 -3
  34. package/declarations/components/hds/flyout/description.d.ts.map +1 -1
  35. package/declarations/components/hds/flyout/footer.d.ts +1 -2
  36. package/declarations/components/hds/flyout/footer.d.ts.map +1 -1
  37. package/declarations/components/hds/form/character-count/index.d.ts +1 -2
  38. package/declarations/components/hds/form/character-count/index.d.ts.map +1 -1
  39. package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
  40. package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
  41. package/declarations/components/hds/form/file-input/base.d.ts +1 -1
  42. package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
  43. package/declarations/components/hds/form/file-input/field.d.ts +1 -1
  44. package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
  45. package/declarations/components/hds/form/masked-input/base.d.ts +1 -23
  46. package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
  47. package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
  48. package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
  49. package/declarations/components/hds/form/radio/group.d.ts +1 -1
  50. package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
  51. package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
  52. package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
  53. package/declarations/components/hds/form/select/field.d.ts +1 -1
  54. package/declarations/components/hds/form/select/field.d.ts.map +1 -1
  55. package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
  56. package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
  57. package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -2
  58. package/declarations/components/hds/form/super-select/multiple/field.d.ts.map +1 -1
  59. package/declarations/components/hds/form/super-select/option-group.d.ts +1 -2
  60. package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
  61. package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
  62. package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
  63. package/declarations/components/hds/form/super-select/single/field.d.ts +1 -2
  64. package/declarations/components/hds/form/super-select/single/field.d.ts.map +1 -1
  65. package/declarations/components/hds/form/text-input/field.d.ts +3 -18
  66. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  67. package/declarations/components/hds/form/textarea/field.d.ts +1 -1
  68. package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
  69. package/declarations/components/hds/form/toggle/base.d.ts +1 -1
  70. package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
  71. package/declarations/components/hds/form/toggle/group.d.ts +1 -1
  72. package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
  73. package/declarations/components/hds/modal/body.d.ts +2 -1
  74. package/declarations/components/hds/modal/body.d.ts.map +1 -1
  75. package/declarations/components/hds/page-header/index.d.ts +1 -1
  76. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  77. package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
  78. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  79. package/declarations/components/hds/pagination/info/index.d.ts +1 -2
  80. package/declarations/components/hds/pagination/info/index.d.ts.map +1 -1
  81. package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
  82. package/declarations/components/hds/pagination/nav/arrow.d.ts.map +1 -1
  83. package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
  84. package/declarations/components/hds/pagination/nav/number.d.ts.map +1 -1
  85. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  86. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  87. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -2
  88. package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
  89. package/declarations/components/hds/popover-primitive/index.d.ts +1 -0
  90. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  91. package/declarations/components/hds/reveal/index.d.ts +1 -2
  92. package/declarations/components/hds/reveal/index.d.ts.map +1 -1
  93. package/declarations/components/hds/rich-tooltip/index.d.ts +1 -2
  94. package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
  95. package/declarations/components/hds/segmented-group/index.d.ts +1 -1
  96. package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
  97. package/declarations/components/hds/separator/index.d.ts +1 -2
  98. package/declarations/components/hds/separator/index.d.ts.map +1 -1
  99. package/declarations/components/hds/side-nav/header/home-link.d.ts +1 -2
  100. package/declarations/components/hds/side-nav/header/home-link.d.ts.map +1 -1
  101. package/declarations/components/hds/side-nav/header/icon-button.d.ts +1 -2
  102. package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
  103. package/declarations/components/hds/side-nav/header/index.d.ts +1 -1
  104. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  105. package/declarations/components/hds/side-nav/index.d.ts +10 -10
  106. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  107. package/declarations/components/hds/side-nav/list/index.d.ts +6 -3
  108. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  109. package/declarations/components/hds/side-nav/list/title.d.ts +8 -3
  110. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  111. package/declarations/components/hds/side-nav/portal/index.d.ts +1 -1
  112. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  113. package/declarations/components/hds/side-nav/portal/target.d.ts +2 -3
  114. package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
  115. package/declarations/components/hds/side-nav/toggle-button.d.ts +1 -1
  116. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  117. package/declarations/components/hds/stepper/step/indicator.d.ts +1 -2
  118. package/declarations/components/hds/stepper/step/indicator.d.ts.map +1 -1
  119. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -2
  120. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  121. package/declarations/components/hds/table/index.d.ts +1 -0
  122. package/declarations/components/hds/table/index.d.ts.map +1 -1
  123. package/declarations/components/hds/table/th-selectable.d.ts +1 -0
  124. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  125. package/declarations/components/hds/tabs/index.d.ts +1 -2
  126. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  127. package/declarations/components/hds/tag/index.d.ts +1 -2
  128. package/declarations/components/hds/tag/index.d.ts.map +1 -1
  129. package/declarations/modifiers/hds-anchored-position.d.ts +10 -0
  130. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  131. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  132. package/declarations/modifiers/hds-register-event.d.ts +9 -0
  133. package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
  134. package/declarations/template-registry.d.ts +36 -0
  135. package/declarations/template-registry.d.ts.map +1 -1
  136. package/dist/components/hds/accordion/index.js.map +1 -1
  137. package/dist/components/hds/accordion/item/button.js.map +1 -1
  138. package/dist/components/hds/alert/description.js +2 -2
  139. package/dist/components/hds/alert/index.js +11 -33
  140. package/dist/components/hds/alert/index.js.map +1 -1
  141. package/dist/components/hds/app-footer/item.js +2 -2
  142. package/dist/components/hds/app-footer/link.js +2 -2
  143. package/dist/components/hds/app-frame/parts/footer.js +2 -2
  144. package/dist/components/hds/app-frame/parts/header.js +2 -2
  145. package/dist/components/hds/app-frame/parts/main.js +2 -2
  146. package/dist/components/hds/app-frame/parts/modals.js +2 -2
  147. package/dist/components/hds/app-frame/parts/sidebar.js +2 -2
  148. package/dist/components/hds/app-side-nav/index.js +187 -0
  149. package/dist/components/hds/app-side-nav/index.js.map +1 -0
  150. package/dist/components/hds/app-side-nav/list/back-link.js +16 -0
  151. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -0
  152. package/dist/components/hds/app-side-nav/list/index.js +33 -0
  153. package/dist/components/hds/app-side-nav/list/index.js.map +1 -0
  154. package/dist/components/hds/app-side-nav/list/item.js +16 -0
  155. package/dist/components/hds/app-side-nav/list/item.js.map +1 -0
  156. package/dist/components/hds/app-side-nav/list/link.js +16 -0
  157. package/dist/components/hds/app-side-nav/list/link.js.map +1 -0
  158. package/dist/components/hds/app-side-nav/list/title.js +29 -0
  159. package/dist/components/hds/app-side-nav/list/title.js.map +1 -0
  160. package/dist/components/hds/app-side-nav/portal/index.js +16 -0
  161. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -0
  162. package/dist/components/hds/app-side-nav/portal/target.js +173 -0
  163. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -0
  164. package/dist/components/hds/app-side-nav/toggle-button.js +16 -0
  165. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -0
  166. package/dist/components/hds/application-state/body.js +2 -2
  167. package/dist/components/hds/application-state/footer.js +2 -2
  168. package/dist/components/hds/application-state/media.js +2 -2
  169. package/dist/components/hds/button-set/index.js +2 -2
  170. package/dist/components/hds/button-set/index.js.map +1 -1
  171. package/dist/components/hds/code-block/copy-button.js +2 -2
  172. package/dist/components/hds/code-block/description.js +2 -2
  173. package/dist/components/hds/dialog-primitive/body.js +2 -2
  174. package/dist/components/hds/dialog-primitive/description.js +2 -2
  175. package/dist/components/hds/dialog-primitive/overlay.js +2 -2
  176. package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
  177. package/dist/components/hds/dropdown/footer.js +2 -2
  178. package/dist/components/hds/dropdown/header.js +2 -2
  179. package/dist/components/hds/dropdown/index.js +7 -3
  180. package/dist/components/hds/dropdown/index.js.map +1 -1
  181. package/dist/components/hds/dropdown/list-item/generic.js +2 -2
  182. package/dist/components/hds/dropdown/list-item/separator.js +2 -2
  183. package/dist/components/hds/dropdown/toggle/chevron.js +2 -2
  184. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  185. package/dist/components/hds/flyout/body.js +2 -2
  186. package/dist/components/hds/flyout/body.js.map +1 -1
  187. package/dist/components/hds/flyout/description.js +2 -2
  188. package/dist/components/hds/flyout/description.js.map +1 -1
  189. package/dist/components/hds/flyout/footer.js.map +1 -1
  190. package/dist/components/hds/form/character-count/index.js.map +1 -1
  191. package/dist/components/hds/form/checkbox/base.js +2 -2
  192. package/dist/components/hds/form/checkbox/field.js +2 -2
  193. package/dist/components/hds/form/checkbox/group.js +2 -2
  194. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  195. package/dist/components/hds/form/error/message.js +2 -2
  196. package/dist/components/hds/form/file-input/base.js +2 -2
  197. package/dist/components/hds/form/file-input/base.js.map +1 -1
  198. package/dist/components/hds/form/file-input/field.js +2 -2
  199. package/dist/components/hds/form/file-input/field.js.map +1 -1
  200. package/dist/components/hds/form/masked-input/base.js +5 -34
  201. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  202. package/dist/components/hds/form/masked-input/field.js +2 -2
  203. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  204. package/dist/components/hds/form/radio/base.js +2 -2
  205. package/dist/components/hds/form/radio/field.js +2 -2
  206. package/dist/components/hds/form/radio/group.js +2 -2
  207. package/dist/components/hds/form/radio/group.js.map +1 -1
  208. package/dist/components/hds/form/radio-card/description.js +2 -2
  209. package/dist/components/hds/form/radio-card/group.js +2 -2
  210. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  211. package/dist/components/hds/form/radio-card/label.js +2 -2
  212. package/dist/components/hds/form/select/field.js +2 -2
  213. package/dist/components/hds/form/select/field.js.map +1 -1
  214. package/dist/components/hds/form/super-select/after-options.js +2 -2
  215. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  216. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  217. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  218. package/dist/components/hds/form/super-select/placeholder.js +2 -2
  219. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  220. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  221. package/dist/components/hds/form/text-input/field.js +10 -33
  222. package/dist/components/hds/form/text-input/field.js.map +1 -1
  223. package/dist/components/hds/form/textarea/field.js +2 -2
  224. package/dist/components/hds/form/textarea/field.js.map +1 -1
  225. package/dist/components/hds/form/toggle/base.js +2 -2
  226. package/dist/components/hds/form/toggle/base.js.map +1 -1
  227. package/dist/components/hds/form/toggle/field.js +2 -2
  228. package/dist/components/hds/form/toggle/group.js +2 -2
  229. package/dist/components/hds/form/toggle/group.js.map +1 -1
  230. package/dist/components/hds/form/visibility-toggle/index.js +2 -2
  231. package/dist/components/hds/modal/body.js +2 -2
  232. package/dist/components/hds/modal/body.js.map +1 -1
  233. package/dist/components/hds/page-header/actions.js +2 -2
  234. package/dist/components/hds/page-header/badges.js +2 -2
  235. package/dist/components/hds/page-header/description.js +2 -2
  236. package/dist/components/hds/page-header/index.js +2 -2
  237. package/dist/components/hds/page-header/index.js.map +1 -1
  238. package/dist/components/hds/page-header/subtitle.js +2 -2
  239. package/dist/components/hds/page-header/title.js +2 -2
  240. package/dist/components/hds/pagination/compact/index.js +4 -3
  241. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  242. package/dist/components/hds/pagination/info/index.js.map +1 -1
  243. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  244. package/dist/components/hds/pagination/nav/ellipsis.js +2 -2
  245. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  246. package/dist/components/hds/pagination/numbered/index.js +5 -7
  247. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  248. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  249. package/dist/components/hds/popover-primitive/index.js +4 -5
  250. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  251. package/dist/components/hds/reveal/index.js.map +1 -1
  252. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  253. package/dist/components/hds/segmented-group/index.js +2 -2
  254. package/dist/components/hds/segmented-group/index.js.map +1 -1
  255. package/dist/components/hds/separator/index.js.map +1 -1
  256. package/dist/components/hds/side-nav/base.js +3 -3
  257. package/dist/components/hds/side-nav/base.js.map +1 -1
  258. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  259. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  260. package/dist/components/hds/side-nav/header/index.js +2 -2
  261. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  262. package/dist/components/hds/side-nav/index.js +37 -36
  263. package/dist/components/hds/side-nav/index.js.map +1 -1
  264. package/dist/components/hds/side-nav/list/back-link.js +2 -2
  265. package/dist/components/hds/side-nav/list/index.js +27 -10
  266. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  267. package/dist/components/hds/side-nav/list/item.js +2 -2
  268. package/dist/components/hds/side-nav/list/link.js +2 -2
  269. package/dist/components/hds/side-nav/list/title.js +23 -10
  270. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  271. package/dist/components/hds/side-nav/portal/index.js +2 -2
  272. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  273. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  274. package/dist/components/hds/side-nav/toggle-button.js +2 -2
  275. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  276. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  277. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  278. package/dist/components/hds/table/index.js +6 -8
  279. package/dist/components/hds/table/index.js.map +1 -1
  280. package/dist/components/hds/table/th-selectable.js +4 -5
  281. package/dist/components/hds/table/th-selectable.js.map +1 -1
  282. package/dist/components/hds/tabs/index.js +2 -3
  283. package/dist/components/hds/tabs/index.js.map +1 -1
  284. package/dist/components/hds/tag/index.js.map +1 -1
  285. package/dist/components/hds/toast/index.js +3 -3
  286. package/dist/components/hds/toast/index.js.map +1 -1
  287. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  288. package/dist/components/hds/yield/index.js +2 -2
  289. package/dist/modifiers/hds-anchored-position.js +15 -16
  290. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  291. package/dist/modifiers/hds-clipboard.js +15 -6
  292. package/dist/modifiers/hds-clipboard.js.map +1 -1
  293. package/dist/modifiers/hds-register-event.js.map +1 -1
  294. package/dist/styles/@hashicorp/design-system-components.css +41 -293
  295. package/dist/styles/@hashicorp/design-system-components.scss +2 -1
  296. package/dist/styles/components/app-side-nav/content.scss +182 -0
  297. package/dist/styles/components/app-side-nav/index.scss +9 -0
  298. package/dist/styles/components/app-side-nav/main.scss +147 -0
  299. package/dist/styles/components/app-side-nav/toggle-button.scss +101 -0
  300. package/dist/styles/components/app-side-nav/vars.scss +36 -0
  301. package/dist/styles/components/dropdown.scss +6 -0
  302. package/dist/styles/components/side-nav/content.scss +5 -0
  303. package/package.json +5 -5
  304. package/dist/_app_/components/hds/app-header/home-link.js +0 -1
  305. package/dist/_app_/components/hds/app-header/index.js +0 -1
  306. package/dist/_app_/components/hds/app-header/menu-button.js +0 -1
@@ -1,16 +1,33 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
+ import Component from '@glimmer/component';
3
+ import { action } from '@ember/object';
4
+ import { tracked } from '@glimmer/tracking';
2
5
  import { precompileTemplate } from '@ember/template-compilation';
3
6
  import { setComponentTemplate } from '@ember/component';
4
7
 
5
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<nav class=\"hds-side-nav__list-wrapper\" ...attributes>\n {{yield (hash ExtraBefore=(component \"hds/yield\"))}}\n <ul class=\"hds-side-nav__list\" role=\"list\">\n {{yield\n (hash\n Item=(component \"hds/side-nav/list/item\")\n BackLink=(component \"hds/side-nav/list/back-link\")\n Title=(component \"hds/side-nav/list/title\")\n Link=(component \"hds/side-nav/list/link\")\n )\n }}\n </ul>\n {{yield (hash ExtraAfter=(component \"hds/yield\"))}}\n</nav>");
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<nav class=\"hds-side-nav__list-wrapper\" aria-labelledby=\"hds-side-nav-header\" ...attributes>\n {{yield (hash ExtraBefore=(component \"hds/yield\"))}}\n <ul class=\"hds-side-nav__list\" role=\"list\" aria-labelledby={{this.titleIds}}>\n {{yield\n (hash\n Item=(component \"hds/side-nav/list/item\")\n BackLink=(component \"hds/side-nav/list/back-link\")\n Title=(component \"hds/side-nav/list/title\" didInsertTitle=this.didInsertTitle)\n Link=(component \"hds/side-nav/list/link\")\n )\n }}\n </ul>\n {{yield (hash ExtraAfter=(component \"hds/yield\"))}}\n</nav>");
6
9
 
7
- /**
8
- * Copyright (c) HashiCorp, Inc.
9
- * SPDX-License-Identifier: MPL-2.0
10
- */
10
+ var _class, _descriptor;
11
+ let HdsSideNavList = (_class = class HdsSideNavList extends Component {
12
+ constructor(...args) {
13
+ super(...args);
14
+ _initializerDefineProperty(this, "_titleIds", _descriptor, this);
15
+ }
16
+ get titleIds() {
17
+ return this._titleIds.join(' ');
18
+ }
19
+ didInsertTitle(titleId) {
20
+ this._titleIds = [...this._titleIds, titleId];
21
+ }
22
+ }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "_titleIds", [tracked], {
23
+ configurable: true,
24
+ enumerable: true,
25
+ writable: true,
26
+ initializer: function () {
27
+ return [];
28
+ }
29
+ }), _applyDecoratedDescriptor(_class.prototype, "didInsertTitle", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTitle"), _class.prototype)), _class);
30
+ setComponentTemplate(TEMPLATE, HdsSideNavList);
11
31
 
12
- const HdsSideNavList = templateOnlyComponent();
13
- var index = setComponentTemplate(TEMPLATE, HdsSideNavList);
14
-
15
- export { index as default };
32
+ export { HdsSideNavList as default };
16
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/side-nav/list/index.hbs","../../../../../src/components/hds/side-nav/list/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<nav class=\\\"hds-side-nav__list-wrapper\\\" ...attributes>\\n {{yield (hash ExtraBefore=(component \\\"hds/yield\\\"))}}\\n <ul class=\\\"hds-side-nav__list\\\" role=\\\"list\\\">\\n {{yield\\n (hash\\n Item=(component \\\"hds/side-nav/list/item\\\")\\n BackLink=(component \\\"hds/side-nav/list/back-link\\\")\\n Title=(component \\\"hds/side-nav/list/title\\\")\\n Link=(component \\\"hds/side-nav/list/link\\\")\\n )\\n }}\\n </ul>\\n {{yield (hash ExtraAfter=(component \\\"hds/yield\\\"))}}\\n</nav>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsYieldSignature } from '../../yield';\nimport type { HdsSideNavListItemSignature } from './item';\nimport type { HdsSideNavListBackLinkSignature } from './back-link';\nimport type { HdsSideNavListTitleSignature } from './title';\nimport type { HdsSideNavListLinkSignature } from './link';\n\nexport interface HdsSideNavListSignature {\n Blocks: {\n default: [\n {\n ExtraBefore?: ComponentLike<HdsYieldSignature>;\n Item?: ComponentLike<HdsSideNavListItemSignature>;\n BackLink?: ComponentLike<HdsSideNavListBackLinkSignature>;\n Title?: ComponentLike<HdsSideNavListTitleSignature>;\n Link?: ComponentLike<HdsSideNavListLinkSignature>;\n ExtraAfter?: ComponentLike<HdsYieldSignature>;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nconst HdsSideNavList = TemplateOnlyComponent<HdsSideNavListSignature>();\n\nexport default HdsSideNavList;\n"],"names":["HdsSideNavList","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,2kBAA2kB;;ACD7mB;AACA;AACA;AACA;;AA2BA,MAAMA,cAAc,GAAGC,qBAAqB,EAA2B,CAAA;AAEvE,YAAAC,oBAAA,CAAAC,QAAA,EAAeH,cAAc,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/side-nav/list/index.hbs","../../../../../src/components/hds/side-nav/list/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<nav class=\\\"hds-side-nav__list-wrapper\\\" aria-labelledby=\\\"hds-side-nav-header\\\" ...attributes>\\n {{yield (hash ExtraBefore=(component \\\"hds/yield\\\"))}}\\n <ul class=\\\"hds-side-nav__list\\\" role=\\\"list\\\" aria-labelledby={{this.titleIds}}>\\n {{yield\\n (hash\\n Item=(component \\\"hds/side-nav/list/item\\\")\\n BackLink=(component \\\"hds/side-nav/list/back-link\\\")\\n Title=(component \\\"hds/side-nav/list/title\\\" didInsertTitle=this.didInsertTitle)\\n Link=(component \\\"hds/side-nav/list/link\\\")\\n )\\n }}\\n </ul>\\n {{yield (hash ExtraAfter=(component \\\"hds/yield\\\"))}}\\n</nav>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsYieldSignature } from '../../yield';\nimport type { HdsSideNavListItemSignature } from './item';\nimport type { HdsSideNavListBackLinkSignature } from './back-link';\nimport type { HdsSideNavListTitleSignature } from './title';\nimport type { HdsSideNavListLinkSignature } from './link';\n\nexport interface HdsSideNavListSignature {\n Blocks: {\n default: [\n {\n ExtraBefore?: ComponentLike<HdsYieldSignature>;\n Item?: ComponentLike<HdsSideNavListItemSignature>;\n BackLink?: ComponentLike<HdsSideNavListBackLinkSignature>;\n Title?: ComponentLike<HdsSideNavListTitleSignature>;\n Link?: ComponentLike<HdsSideNavListLinkSignature>;\n ExtraAfter?: ComponentLike<HdsYieldSignature>;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsSideNavList extends Component<HdsSideNavListSignature> {\n @tracked _titleIds: string[] = [];\n\n get titleIds(): string {\n return this._titleIds.join(' ');\n }\n\n @action\n didInsertTitle(titleId: string): void {\n this._titleIds = [...this._titleIds, titleId];\n }\n}\n"],"names":["HdsSideNavList","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","titleIds","_titleIds","join","didInsertTitle","titleId","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,wrBAAwrB;;;AC8BrsBA,IAAAA,cAAc,IAAAC,MAAA,GAApB,MAAMD,cAAc,SAASE,SAAS,CAA0B;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,oBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAAA;EAG7E,IAAIC,QAAQA,GAAW;AACrB,IAAA,OAAO,IAAI,CAACC,SAAS,CAACC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjC,GAAA;EAGAC,cAAcA,CAACC,OAAe,EAAQ;IACpC,IAAI,CAACH,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA,SAAS,EAAEG,OAAO,CAAC,CAAA;AAC/C,GAAA;AACF,CAAC,GAAAL,WAAA,GAAAM,yBAAA,CAAAX,MAAA,CAAAY,SAAA,EAAA,WAAA,EAAA,CAVEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAuB,EAAE,CAAA;AAAA,GAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAAX,MAAA,CAAAY,SAAA,EAMhCM,gBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAApB,MAAA,CAAAY,SAAA,EAAA,gBAAA,CAAA,EAAAZ,MAAA,CAAAY,SAAA,IAAAZ,MAAA,EAAA;AAP0BqB,oBAAA,CAAAC,QAAA,EAAdvB,cAAc,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsSideNavListItem = templateOnlyComponent();
12
+ const HdsSideNavListItem = TemplateOnlyComponent();
13
13
  var item = setComponentTemplate(TEMPLATE, HdsSideNavListItem);
14
14
 
15
15
  export { item as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsSideNavListLink = templateOnlyComponent();
12
+ const HdsSideNavListLink = TemplateOnlyComponent();
13
13
  var link = setComponentTemplate(TEMPLATE, HdsSideNavListLink);
14
14
 
15
15
  export { link as default };
@@ -1,16 +1,29 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
+ import { guidFor } from '@ember/object/internals';
3
+ import { action } from '@ember/object';
4
+ import Component from '@glimmer/component';
2
5
  import { precompileTemplate } from '@ember/template-compilation';
3
6
  import { setComponentTemplate } from '@ember/component';
4
7
 
5
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<Hds::SideNav::List::Item>\n <div class=\"hds-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\" ...attributes>{{~yield~}}</div>\n</Hds::SideNav::List::Item>");
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<Hds::SideNav::List::Item>\n <div\n class=\"hds-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\"\n id={{this.titleId}}\n {{did-insert this.didInsertTitle}}\n ...attributes\n >{{~yield~}}</div>\n</Hds::SideNav::List::Item>");
6
9
 
7
- /**
8
- * Copyright (c) HashiCorp, Inc.
9
- * SPDX-License-Identifier: MPL-2.0
10
- */
10
+ var _class;
11
+ let HdsSideNavListTitle = (_class = class HdsSideNavListTitle extends Component {
12
+ constructor(...args) {
13
+ super(...args);
14
+ /* Generate a unique ID for each Title */
15
+ _defineProperty(this, "titleId", 'title-' + guidFor(this));
16
+ }
17
+ didInsertTitle(element) {
18
+ const {
19
+ didInsertTitle
20
+ } = this.args;
21
+ if (typeof didInsertTitle === 'function') {
22
+ didInsertTitle(element.id);
23
+ }
24
+ }
25
+ }, (_applyDecoratedDescriptor(_class.prototype, "didInsertTitle", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTitle"), _class.prototype)), _class);
26
+ setComponentTemplate(TEMPLATE, HdsSideNavListTitle);
11
27
 
12
- const HdsSideNavListTitle = templateOnlyComponent();
13
- var title = setComponentTemplate(TEMPLATE, HdsSideNavListTitle);
14
-
15
- export { title as default };
28
+ export { HdsSideNavListTitle as default };
16
29
  //# sourceMappingURL=title.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"title.js","sources":["../../../../../src/components/hds/side-nav/list/title.hbs","../../../../../src/components/hds/side-nav/list/title.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::SideNav::List::Item>\\n <div class=\\\"hds-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\\\" ...attributes>{{~yield~}}</div>\\n</Hds::SideNav::List::Item>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nexport interface HdsSideNavListTitleSignature {\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsSideNavListTitle =\n TemplateOnlyComponent<HdsSideNavListTitleSignature>();\n\nexport default HdsSideNavListTitle;\n"],"names":["HdsSideNavListTitle","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,qQAAqQ;;ACDvS;AACA;AACA;AACA;;AAWA,MAAMA,mBAAmB,GACvBC,qBAAqB,EAAgC,CAAA;AAEvD,YAAAC,oBAAA,CAAAC,QAAA,EAAeH,mBAAmB,CAAA;;;;"}
1
+ {"version":3,"file":"title.js","sources":["../../../../../src/components/hds/side-nav/list/title.hbs","../../../../../src/components/hds/side-nav/list/title.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::SideNav::List::Item>\\n <div\\n class=\\\"hds-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\\\"\\n id={{this.titleId}}\\n {{did-insert this.didInsertTitle}}\\n ...attributes\\n >{{~yield~}}</div>\\n</Hds::SideNav::List::Item>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport Component from '@glimmer/component';\n\nexport interface HdsSideNavListTitleSignature {\n Args: {\n didInsertTitle?: (titleId: string) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsSideNavListTitle extends Component<HdsSideNavListTitleSignature> {\n /* Generate a unique ID for each Title */\n titleId = 'title-' + guidFor(this);\n\n @action\n didInsertTitle(element: HTMLElement): void {\n const { didInsertTitle } = this.args;\n\n if (typeof didInsertTitle === 'function') {\n didInsertTitle(element.id);\n }\n }\n}\n"],"names":["HdsSideNavListTitle","_class","Component","constructor","args","_defineProperty","guidFor","didInsertTitle","element","id","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,oVAAoV;;;ACkBjWA,IAAAA,mBAAmB,IAAAC,MAAA,GAAzB,MAAMD,mBAAmB,SAASE,SAAS,CAA+B;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AACvF;AAAAC,IAAAA,eAAA,kBACU,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAGlCC,cAAcA,CAACC,OAAoB,EAAQ;IACzC,MAAM;AAAED,MAAAA,cAAAA;KAAgB,GAAG,IAAI,CAACH,IAAI,CAAA;AAEpC,IAAA,IAAI,OAAOG,cAAc,KAAK,UAAU,EAAE;AACxCA,MAAAA,cAAc,CAACC,OAAO,CAACC,EAAE,CAAC,CAAA;AAC5B,KAAA;AACF,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAT,MAAA,CAAAU,SAAA,EAAA,gBAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAb,MAAA,CAAAU,SAAA,qBAAAV,MAAA,CAAAU,SAAA,CAAA,GAAAV,MAAA,EAAA;AAJ+Bc,oBAAA,CAAAC,QAAA,EAAnBhB,mBAAmB,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsSideNavPortal = templateOnlyComponent();
12
+ const HdsSideNavPortal = TemplateOnlyComponent();
13
13
  var index = setComponentTemplate(TEMPLATE, HdsSideNavPortal);
14
14
 
15
15
  export { index as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/side-nav/portal/index.hbs","../../../../../src/components/hds/side-nav/portal/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Portal @target={{if @targetName @targetName \\\"hds-side-nav-portal-target\\\"}}>\\n <div class=\\\"hds-side-nav__content-panel\\\" ...attributes>\\n <Hds::SideNav::List aria-label={{@ariaLabel}} as |ListElements|>\\n {{yield ListElements}}\\n </Hds::SideNav::List>\\n </div>\\n</Portal>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsSideNavListSignature } from '../list/index';\n\n// TODO! understand how this should be done \"correctly\"\n// import type { PortalSignature } from 'ember-stargate/components/portal';\ninterface PortalSignature {\n Args: {\n target: string;\n renderInPlace?: boolean;\n fallback?: 'inplace';\n };\n Blocks: {\n default: [];\n };\n}\n\nexport interface HdsSideNavPortalSignature {\n Args: PortalSignature['Args'] & {\n ariaLabel?: string;\n targetName?: string;\n };\n Blocks: HdsSideNavListSignature['Blocks'];\n Element: HTMLDivElement;\n}\n\nconst HdsSideNavPortal = TemplateOnlyComponent<HdsSideNavPortalSignature>();\n\nexport default HdsSideNavPortal;\n"],"names":["HdsSideNavPortal","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,iXAAiX;;ACDnZ;AACA;AACA;AACA;;AA4BA,MAAMA,gBAAgB,GAAGC,qBAAqB,EAA6B,CAAA;AAE3E,YAAAC,oBAAA,CAAAC,QAAA,EAAeH,gBAAgB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/side-nav/portal/index.hbs","../../../../../src/components/hds/side-nav/portal/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Portal @target={{if @targetName @targetName \\\"hds-side-nav-portal-target\\\"}}>\\n <div class=\\\"hds-side-nav__content-panel\\\" ...attributes>\\n <Hds::SideNav::List aria-label={{@ariaLabel}} as |ListElements|>\\n {{yield ListElements}}\\n </Hds::SideNav::List>\\n </div>\\n</Portal>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsSideNavListSignature } from '../list/index';\n\n// TODO! understand how this should be done \"correctly\"\n// import type { PortalSignature } from 'ember-stargate/components/portal';\nexport interface PortalSignature {\n Args: {\n target: string;\n renderInPlace?: boolean;\n fallback?: 'inplace';\n };\n Blocks: {\n default: [];\n };\n}\n\nexport interface HdsSideNavPortalSignature {\n Args: PortalSignature['Args'] & {\n ariaLabel?: string;\n targetName?: string;\n };\n Blocks: HdsSideNavListSignature['Blocks'];\n Element: HTMLDivElement;\n}\n\nconst HdsSideNavPortal = TemplateOnlyComponent<HdsSideNavPortalSignature>();\n\nexport default HdsSideNavPortal;\n"],"names":["HdsSideNavPortal","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,iXAAiX;;ACDnZ;AACA;AACA;AACA;;AA4BA,MAAMA,gBAAgB,GAAGC,qBAAqB,EAA6B,CAAA;AAE3E,YAAAC,oBAAA,CAAAC,QAAA,EAAeH,gBAAgB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"target.js","sources":["../../../../../src/components/hds/side-nav/portal/target.hbs","../../../../../src/components/hds/side-nav/portal/target.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div class=\\\"hds-side-nav__content\\\" ...attributes>\\n <PortalTarget\\n @multiple={{true}}\\n @onChange={{this.panelsChanged}}\\n @name={{if @targetName @targetName \\\"hds-side-nav-portal-target\\\"}}\\n class=\\\"hds-side-nav__content-panels hds-side-nav-hide-when-minimized\\\"\\n {{did-update this.didUpdateSubnav this.numSubnavs}}\\n />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { DEBUG } from '@glimmer/env';\nimport { macroCondition, isTesting } from '@embroider/macros';\n\nimport type { HdsSideNavPortalSignature } from './index';\n\n// import { PortalTargetSignature } from 'ember-stargate/components/portal-target';\ninterface PortalTargetSignature {\n Element: HTMLDivElement;\n Args: {\n name: string;\n multiple?: boolean;\n onChange?: (count: number) => void;\n };\n Blocks: {\n default: [number];\n };\n}\n\nimport type { Registry as Services } from '@ember/service';\n\ninterface HdsSideNavPortalTargetSignature {\n Args: PortalTargetSignature['Args'] & {\n targetName?: HdsSideNavPortalSignature['Args']['targetName'];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsSideNavPortalTarget extends Component<HdsSideNavPortalTargetSignature> {\n @service router!: Services['router'];\n\n @tracked numSubnavs = 0;\n @tracked lastPanelEl: Element | undefined;\n\n static get prefersReducedMotionOverride(): boolean {\n return macroCondition(isTesting()) ? true : false;\n }\n\n prefersReducedMotionMQ = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n );\n\n get prefersReducedMotion(): boolean {\n return (\n HdsSideNavPortalTarget.prefersReducedMotionOverride ||\n (this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches)\n );\n }\n\n @action\n panelsChanged(portalCount: number): void {\n this.numSubnavs = portalCount;\n }\n\n @action\n didUpdateSubnav(element: HTMLElement, [count]: [number]): void {\n this.animateSubnav(element, [count]);\n }\n\n @action\n animateSubnav(element: HTMLElement, [count]: [number]): void {\n /*\n * Here is what the layout looks like for this setup\n *\n\n SideNav\n +----------------------+\n | +------------------+ |\n | | (\"header\") | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"body\") | |\n (PortalTarget) | | | |\n +----------------------------------------------+ | |\n | +----------+ +----------+ | +----------+ | | |\n | | (Portal) | | (Portal) | | (Portal) | | | |\n | | | | | | | | | | |\n | | hidden | | hidden | | *active* | | | |\n | | panel | | panel | | | panel | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | +----------+ +----------+ | +----------+ | | |\n +----------------------------------------------+ | |\n | | | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"footer\") | |\n | +------------------+ |\n +----------------------+\n\n *\n * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled \"panel\"\n * that is rendered into the `hds-side-nav__content-panels` (inside the PortalTarget).\n *\n * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of\n * subnavs to change (via `numSubnavs`), so this function runs and slides\n * `hds-side-nav__content-panels` left or right using the `element.animate` api.\n *\n * */\n\n const activeIndex = count - 1;\n const targetElement = element;\n const { prefersReducedMotion } = this;\n\n const styles = getComputedStyle(targetElement);\n const columnWidth = styles.getPropertyValue(\n '--hds-app-sidenav-width-expanded'\n );\n const slideDuration = prefersReducedMotion ? 0 : 150;\n let fadeDuration = prefersReducedMotion ? 0 : 175;\n let fadeDelay = prefersReducedMotion ? 0 : 50;\n\n // slide entire parent panel\n const start = styles.transform;\n const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;\n const anim = targetElement.animate(\n [{ transform: start }, { transform: end }],\n {\n duration: slideDuration,\n easing: 'cubic-bezier(0.65, 0, 0.35, 1)',\n fill: 'forwards',\n }\n );\n\n anim.finished.then((): void => {\n // uncomment this if we need/want to scroll the element to the top\n // targetElement.scrollIntoView(true);\n if (activeIndex > 0) {\n const allPrev = Array.from(targetElement.children).slice(\n 0,\n activeIndex\n ) as HTMLElement[];\n for (const ele of allPrev) {\n ele.ariaHidden = 'true';\n ele.style.setProperty('visibility', 'hidden');\n ele.style.setProperty('opacity', '0');\n }\n }\n // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render\n if (DEBUG) {\n // Check the visibility of the element before attempting to commitStyles.\n if (targetElement.offsetParent !== null) {\n anim.commitStyles();\n }\n }\n });\n\n // fade in next panel\n const nextPanelEl = targetElement.children[activeIndex] as HTMLElement;\n\n // get reference to last child panel\n const lastPanelEl = targetElement.children[\n targetElement.children.length - 1\n ] as HTMLElement;\n\n if (nextPanelEl) {\n nextPanelEl.ariaHidden = 'false';\n nextPanelEl.style.setProperty('visibility', 'visible');\n // this eliminates a flicker if there's only one subnav rendering or if we\n // already just rendered this panel.\n if (this.lastPanelEl) {\n if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {\n fadeDelay = 0;\n fadeDuration = 0;\n }\n }\n\n // remember the last panel\n this.lastPanelEl = lastPanelEl;\n\n nextPanelEl.animate([{ opacity: '0' }, { opacity: '1' }], {\n delay: fadeDelay,\n duration: fadeDuration,\n fill: 'forwards',\n });\n }\n }\n}\n"],"names":["HdsSideNavPortalTarget","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","window","matchMedia","prefersReducedMotionOverride","macroCondition","isTesting","prefersReducedMotion","prefersReducedMotionMQ","matches","panelsChanged","portalCount","numSubnavs","didUpdateSubnav","element","count","animateSubnav","activeIndex","targetElement","styles","getComputedStyle","columnWidth","getPropertyValue","slideDuration","fadeDuration","fadeDelay","start","transform","end","parseInt","anim","animate","duration","easing","fill","finished","then","allPrev","Array","from","children","slice","ele","ariaHidden","style","setProperty","DEBUG","offsetParent","commitStyles","nextPanelEl","lastPanelEl","length","isSameNode","opacity","delay","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","tracked","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"target.js","sources":["../../../../../src/components/hds/side-nav/portal/target.hbs","../../../../../src/components/hds/side-nav/portal/target.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div class=\\\"hds-side-nav__content\\\" ...attributes>\\n <PortalTarget\\n @multiple={{true}}\\n @onChange={{this.panelsChanged}}\\n @name={{if @targetName @targetName \\\"hds-side-nav-portal-target\\\"}}\\n class=\\\"hds-side-nav__content-panels hds-side-nav-hide-when-minimized\\\"\\n {{did-update this.didUpdateSubnav this.numSubnavs}}\\n />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { DEBUG } from '@glimmer/env';\nimport { macroCondition, isTesting } from '@embroider/macros';\n\nimport type { HdsSideNavPortalSignature } from './index';\n\n// import { PortalTargetSignature } from 'ember-stargate/components/portal-target';\nexport interface PortalTargetSignature {\n Element: HTMLDivElement;\n Args: {\n name: string;\n multiple?: boolean;\n onChange?: (count: number) => void;\n };\n Blocks: {\n default: [number];\n };\n}\n\nimport type { Registry as Services } from '@ember/service';\n\nexport interface HdsSideNavPortalTargetSignature {\n Args: PortalTargetSignature['Args'] & {\n targetName?: HdsSideNavPortalSignature['Args']['targetName'];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsSideNavPortalTarget extends Component<HdsSideNavPortalTargetSignature> {\n @service router!: Services['router'];\n\n @tracked numSubnavs = 0;\n @tracked lastPanelEl: Element | undefined;\n\n static get prefersReducedMotionOverride(): boolean {\n return macroCondition(isTesting()) ? true : false;\n }\n\n prefersReducedMotionMQ = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n );\n\n get prefersReducedMotion(): boolean {\n return (\n HdsSideNavPortalTarget.prefersReducedMotionOverride ||\n (this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches)\n );\n }\n\n @action\n panelsChanged(portalCount: number): void {\n this.numSubnavs = portalCount;\n }\n\n @action\n didUpdateSubnav(element: HTMLElement, [count]: [number]): void {\n this.animateSubnav(element, [count]);\n }\n\n @action\n animateSubnav(element: HTMLElement, [count]: [number]): void {\n /*\n * Here is what the layout looks like for this setup\n *\n\n SideNav\n +----------------------+\n | +------------------+ |\n | | (\"header\") | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"body\") | |\n (PortalTarget) | | | |\n +----------------------------------------------+ | |\n | +----------+ +----------+ | +----------+ | | |\n | | (Portal) | | (Portal) | | (Portal) | | | |\n | | | | | | | | | | |\n | | hidden | | hidden | | *active* | | | |\n | | panel | | panel | | | panel | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | +----------+ +----------+ | +----------+ | | |\n +----------------------------------------------+ | |\n | | | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"footer\") | |\n | +------------------+ |\n +----------------------+\n\n *\n * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled \"panel\"\n * that is rendered into the `hds-side-nav__content-panels` (inside the PortalTarget).\n *\n * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of\n * subnavs to change (via `numSubnavs`), so this function runs and slides\n * `hds-side-nav__content-panels` left or right using the `element.animate` api.\n *\n * */\n\n const activeIndex = count - 1;\n const targetElement = element;\n const { prefersReducedMotion } = this;\n\n const styles = getComputedStyle(targetElement);\n const columnWidth = styles.getPropertyValue(\n '--hds-app-sidenav-width-expanded'\n );\n const slideDuration = prefersReducedMotion ? 0 : 150;\n let fadeDuration = prefersReducedMotion ? 0 : 175;\n let fadeDelay = prefersReducedMotion ? 0 : 50;\n\n // slide entire parent panel\n const start = styles.transform;\n const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;\n const anim = targetElement.animate(\n [{ transform: start }, { transform: end }],\n {\n duration: slideDuration,\n easing: 'cubic-bezier(0.65, 0, 0.35, 1)',\n fill: 'forwards',\n }\n );\n\n anim.finished.then((): void => {\n // uncomment this if we need/want to scroll the element to the top\n // targetElement.scrollIntoView(true);\n if (activeIndex > 0) {\n const allPrev = Array.from(targetElement.children).slice(\n 0,\n activeIndex\n ) as HTMLElement[];\n for (const ele of allPrev) {\n ele.ariaHidden = 'true';\n ele.style.setProperty('visibility', 'hidden');\n ele.style.setProperty('opacity', '0');\n }\n }\n // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render\n if (DEBUG) {\n // Check the visibility of the element before attempting to commitStyles.\n if (targetElement.offsetParent !== null) {\n anim.commitStyles();\n }\n }\n });\n\n // fade in next panel\n const nextPanelEl = targetElement.children[activeIndex] as HTMLElement;\n\n // get reference to last child panel\n const lastPanelEl = targetElement.children[\n targetElement.children.length - 1\n ] as HTMLElement;\n\n if (nextPanelEl) {\n nextPanelEl.ariaHidden = 'false';\n nextPanelEl.style.setProperty('visibility', 'visible');\n // this eliminates a flicker if there's only one subnav rendering or if we\n // already just rendered this panel.\n if (this.lastPanelEl) {\n if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {\n fadeDelay = 0;\n fadeDuration = 0;\n }\n }\n\n // remember the last panel\n this.lastPanelEl = lastPanelEl;\n\n nextPanelEl.animate([{ opacity: '0' }, { opacity: '1' }], {\n delay: fadeDelay,\n duration: fadeDuration,\n fill: 'forwards',\n });\n }\n }\n}\n"],"names":["HdsSideNavPortalTarget","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","window","matchMedia","prefersReducedMotionOverride","macroCondition","isTesting","prefersReducedMotion","prefersReducedMotionMQ","matches","panelsChanged","portalCount","numSubnavs","didUpdateSubnav","element","count","animateSubnav","activeIndex","targetElement","styles","getComputedStyle","columnWidth","getPropertyValue","slideDuration","fadeDuration","fadeDelay","start","transform","end","parseInt","anim","animate","duration","easing","fill","finished","then","allPrev","Array","from","children","slice","ele","ariaHidden","style","setProperty","DEBUG","offsetParent","commitStyles","nextPanelEl","lastPanelEl","length","isSameNode","opacity","delay","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","tracked","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsSideNavToggleButton = templateOnlyComponent();
12
+ const HdsSideNavToggleButton = TemplateOnlyComponent();
13
13
  var toggleButton = setComponentTemplate(TEMPLATE, HdsSideNavToggleButton);
14
14
 
15
15
  export { toggleButton as default };
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.js","sources":["../../../../src/components/hds/side-nav/toggle-button.hbs","../../../../src/components/hds/side-nav/toggle-button.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<button class=\\\"hds-side-nav__toggle-button\\\" type=\\\"button\\\" ...attributes>\\n <Hds::Icon @name={{@icon}} />\\n</button>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsIconSignature } from '../icon';\n\ninterface HdsSideNavToggleButtonSignature {\n Args: {\n icon: HdsIconSignature['Args']['name'];\n };\n Element: HTMLButtonElement;\n}\n\nconst HdsSideNavToggleButton =\n TemplateOnlyComponent<HdsSideNavToggleButtonSignature>();\n\nexport default HdsSideNavToggleButton;\n"],"names":["HdsSideNavToggleButton","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,wMAAwM;;ACD1O;AACA;AACA;AACA;;AAaA,MAAMA,sBAAsB,GAC1BC,qBAAqB,EAAmC,CAAA;AAE1D,mBAAAC,oBAAA,CAAAC,QAAA,EAAeH,sBAAsB,CAAA;;;;"}
1
+ {"version":3,"file":"toggle-button.js","sources":["../../../../src/components/hds/side-nav/toggle-button.hbs","../../../../src/components/hds/side-nav/toggle-button.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<button class=\\\"hds-side-nav__toggle-button\\\" type=\\\"button\\\" ...attributes>\\n <Hds::Icon @name={{@icon}} />\\n</button>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsIconSignature } from '../icon';\n\nexport interface HdsSideNavToggleButtonSignature {\n Args: {\n icon: HdsIconSignature['Args']['name'];\n };\n Element: HTMLButtonElement;\n}\n\nconst HdsSideNavToggleButton =\n TemplateOnlyComponent<HdsSideNavToggleButtonSignature>();\n\nexport default HdsSideNavToggleButton;\n"],"names":["HdsSideNavToggleButton","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,wMAAwM;;ACD1O;AACA;AACA;AACA;;AAaA,MAAMA,sBAAsB,GAC1BC,qBAAqB,EAAmC,CAAA;AAE1D,mBAAAC,oBAAA,CAAAC,QAAA,EAAeH,sBAAsB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/step/indicator.hbs","../../../../../src/components/hds/stepper/step/indicator.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class={{this.classNames}} ...attributes>\\n <div class=\\\"hds-stepper-indicator-step__svg-hexagon\\\">\\n <svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\">\\n <path\\n d=\\\"m3.664 6.264 6.99-4.42a2.5 2.5 0 0 1 2.67-.002l7.01 4.422A2.5 2.5 0 0 1 21.5 8.38v7.242a2.5 2.5 0 0 1-1.166 2.115l-7.01 4.422a2.5 2.5 0 0 1-2.67-.002l-6.99-4.42A2.5 2.5 0 0 1 2.5 15.623V8.377a2.5 2.5 0 0 1 1.164-2.113Z\\\"\\n stroke-width=\\\"1\\\"\\n ></path>\\n </svg>\\n </div>\\n <div class=\\\"hds-stepper-indicator-step__status\\\">\\n {{#if (eq @status \\\"processing\\\")}}\\n <Hds::Icon class=\\\"hds-stepper-indicator-step__icon\\\" @name=\\\"loading\\\" @size=\\\"16\\\" />\\n {{else if (eq @status \\\"complete\\\")}}\\n <Hds::Icon class=\\\"hds-stepper-indicator-step__icon\\\" @name=\\\"check\\\" @size=\\\"16\\\" />\\n {{else}}\\n <Hds::Text::Body\\n class=\\\"hds-stepper-indicator-step__text\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n >{{@text}}</Hds::Text::Body>\\n {{/if}}\\n </div>\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { HdsStepperStatusesValues } from '../types.ts';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\ninterface HdsStepperStepIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n text?: string;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperStepIndicator extends Component<HdsStepperStepIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Step::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorStep#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-step'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-step--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-step--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","HdsStepperStepIndicator","Component","status","args","assert","join","includes","isInteractive","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,kqCAAkqC;;ACDpsC;AACA;AACA;AACA;;AAQaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC,WAAU;AAC1D,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB,EAAC;AAW1D,MAAMK,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGR,cAAAA;KAAgB,GAAG,IAAI,CAACS,IAAI,CAAA;AAE7CC,IAAAA,MAAM,CACJ,CAA6EP,0EAAAA,EAAAA,QAAQ,CAACQ,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBL,QAAQ,CAACS,QAAQ,CAACJ,MAAM,CAC1B,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC,CAAA;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACR,MAAM,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBE,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACJ,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACM,oBAAA,CAAAC,QAAA,EA/CoBZ,uBAAuB,CAAA;;;;"}
1
+ {"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/step/indicator.hbs","../../../../../src/components/hds/stepper/step/indicator.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class={{this.classNames}} ...attributes>\\n <div class=\\\"hds-stepper-indicator-step__svg-hexagon\\\">\\n <svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\">\\n <path\\n d=\\\"m3.664 6.264 6.99-4.42a2.5 2.5 0 0 1 2.67-.002l7.01 4.422A2.5 2.5 0 0 1 21.5 8.38v7.242a2.5 2.5 0 0 1-1.166 2.115l-7.01 4.422a2.5 2.5 0 0 1-2.67-.002l-6.99-4.42A2.5 2.5 0 0 1 2.5 15.623V8.377a2.5 2.5 0 0 1 1.164-2.113Z\\\"\\n stroke-width=\\\"1\\\"\\n ></path>\\n </svg>\\n </div>\\n <div class=\\\"hds-stepper-indicator-step__status\\\">\\n {{#if (eq @status \\\"processing\\\")}}\\n <Hds::Icon class=\\\"hds-stepper-indicator-step__icon\\\" @name=\\\"loading\\\" @size=\\\"16\\\" />\\n {{else if (eq @status \\\"complete\\\")}}\\n <Hds::Icon class=\\\"hds-stepper-indicator-step__icon\\\" @name=\\\"check\\\" @size=\\\"16\\\" />\\n {{else}}\\n <Hds::Text::Body\\n class=\\\"hds-stepper-indicator-step__text\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n >{{@text}}</Hds::Text::Body>\\n {{/if}}\\n </div>\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { HdsStepperStatusesValues } from '../types.ts';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\nexport interface HdsStepperStepIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n text?: string;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperStepIndicator extends Component<HdsStepperStepIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Step::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorStep#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-step'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-step--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-step--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","HdsStepperStepIndicator","Component","status","args","assert","join","includes","isInteractive","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,kqCAAkqC;;ACDpsC;AACA;AACA;AACA;;AAQaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC,WAAU;AAC1D,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB,EAAC;AAW1D,MAAMK,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGR,cAAAA;KAAgB,GAAG,IAAI,CAACS,IAAI,CAAA;AAE7CC,IAAAA,MAAM,CACJ,CAA6EP,0EAAAA,EAAAA,QAAQ,CAACQ,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBL,QAAQ,CAACS,QAAQ,CAACJ,MAAM,CAC1B,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC,CAAA;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACR,MAAM,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBE,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACJ,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACM,oBAAA,CAAAC,QAAA,EA/CoBZ,uBAAuB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/task/indicator.hbs","../../../../../src/components/hds/stepper/task/indicator.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class={{this.classNames}} ...attributes>\\n <Hds::Icon class=\\\"hds-stepper-indicator-task__icon\\\" @name={{this.iconName}} @size=\\\"16\\\" />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport {\n HdsStepperStatusesValues,\n HdsStepperStatusToIconsValues,\n} from '../types.ts';\nimport type { HdsIconSignature } from '../../icon';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\nexport const MAPPING_STATUS_TO_ICONS = HdsStepperStatusToIconsValues;\n\ninterface HdsStepperTaskIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperTaskIndicator extends Component<HdsStepperTaskIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Task::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * @param iconName\n * @type {string}\n */\n\n get iconName(): HdsIconSignature['Args']['name'] {\n return MAPPING_STATUS_TO_ICONS[this.status];\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorTask#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-task'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-task--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-task--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","MAPPING_STATUS_TO_ICONS","HdsStepperStatusToIconsValues","HdsStepperTaskIndicator","Component","status","args","assert","join","includes","isInteractive","iconName","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,sOAAsO;;ACDxQ;AACA;AACA;AACA;;AAYaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC,WAAU;AAC1D,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB,EAAC;AAElE,MAAMK,uBAAuB,GAAGC,8BAA6B;AAUrD,MAAMC,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGV,cAAAA;KAAgB,GAAG,IAAI,CAACW,IAAI,CAAA;AAE7CC,IAAAA,MAAM,CACJ,CAA6ET,0EAAAA,EAAAA,QAAQ,CAACU,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBP,QAAQ,CAACW,QAAQ,CAACJ,MAAM,CAC1B,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;;EAEE,IAAIC,QAAQA,GAAqC;AAC/C,IAAA,OAAOV,uBAAuB,CAAC,IAAI,CAACI,MAAM,CAAC,CAAA;AAC7C,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIO,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC,CAAA;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACT,MAAM,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBG,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACL,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACO,oBAAA,CAAAC,QAAA,EAxDoBb,uBAAuB,CAAA;;;;"}
1
+ {"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/task/indicator.hbs","../../../../../src/components/hds/stepper/task/indicator.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class={{this.classNames}} ...attributes>\\n <Hds::Icon class=\\\"hds-stepper-indicator-task__icon\\\" @name={{this.iconName}} @size=\\\"16\\\" />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport {\n HdsStepperStatusesValues,\n HdsStepperStatusToIconsValues,\n} from '../types.ts';\nimport type { HdsIconSignature } from '../../icon';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\nexport const MAPPING_STATUS_TO_ICONS = HdsStepperStatusToIconsValues;\n\nexport interface HdsStepperTaskIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperTaskIndicator extends Component<HdsStepperTaskIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Task::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * @param iconName\n * @type {string}\n */\n\n get iconName(): HdsIconSignature['Args']['name'] {\n return MAPPING_STATUS_TO_ICONS[this.status];\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorTask#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-task'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-task--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-task--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","MAPPING_STATUS_TO_ICONS","HdsStepperStatusToIconsValues","HdsStepperTaskIndicator","Component","status","args","assert","join","includes","isInteractive","iconName","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,sOAAsO;;ACDxQ;AACA;AACA;AACA;;AAYaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC,WAAU;AAC1D,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB,EAAC;AAElE,MAAMK,uBAAuB,GAAGC,8BAA6B;AAUrD,MAAMC,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGV,cAAAA;KAAgB,GAAG,IAAI,CAACW,IAAI,CAAA;AAE7CC,IAAAA,MAAM,CACJ,CAA6ET,0EAAAA,EAAAA,QAAQ,CAACU,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBP,QAAQ,CAACW,QAAQ,CAACJ,MAAM,CAC1B,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK,CAAA;AACzC,GAAA;;AAEA;AACF;AACA;AACA;;EAEE,IAAIC,QAAQA,GAAqC;AAC/C,IAAA,OAAOV,uBAAuB,CAAC,IAAI,CAACI,MAAM,CAAC,CAAA;AAC7C,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIO,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC,CAAA;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACT,MAAM,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBG,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC,CAAA;AAC5D,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACL,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACO,oBAAA,CAAAC,QAAA,EAxDoBb,uBAAuB,CAAA;;;;"}
@@ -15,13 +15,15 @@ const DEFAULT_DENSITY = HdsTableDensityValues.Medium;
15
15
  const VALIGNMENTS = Object.values(HdsTableVerticalAlignmentValues);
16
16
  const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;
17
17
  let HdsTable = (_class = class HdsTable extends Component {
18
- constructor(...args) {
19
- super(...args);
18
+ constructor(owner, args) {
19
+ super(owner, args);
20
20
  _initializerDefineProperty(this, "sortBy", _descriptor, this);
21
21
  _initializerDefineProperty(this, "sortOrder", _descriptor2, this);
22
22
  _initializerDefineProperty(this, "selectAllCheckbox", _descriptor3, this);
23
23
  _defineProperty(this, "selectableRows", []);
24
24
  _initializerDefineProperty(this, "isSelectAllCheckboxSelected", _descriptor4, this);
25
+ this.sortBy = this.args.sortBy ?? undefined;
26
+ this.sortOrder = this.args.sortOrder ?? HdsTableThSortOrderValues.Asc;
25
27
  }
26
28
  get getSortCriteria() {
27
29
  // get the current column
@@ -186,16 +188,12 @@ let HdsTable = (_class = class HdsTable extends Component {
186
188
  configurable: true,
187
189
  enumerable: true,
188
190
  writable: true,
189
- initializer: function () {
190
- return this.args.sortBy ?? undefined;
191
- }
191
+ initializer: null
192
192
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "sortOrder", [tracked], {
193
193
  configurable: true,
194
194
  enumerable: true,
195
195
  writable: true,
196
- initializer: function () {
197
- return this.args.sortOrder || HdsTableThSortOrderValues.Asc;
198
- }
196
+ initializer: null
199
197
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "selectAllCheckbox", [tracked], {
200
198
  configurable: true,
201
199
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/table/index.hbs","../../../../src/components/hds/table/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<table class={{this.classNames}} ...attributes>\\n {{#if @columns}}\\n <caption class=\\\"sr-only\\\" aria-live=\\\"polite\\\">{{@caption}} {{this.sortedMessageText}}</caption>\\n {{else if @caption}}\\n <caption class=\\\"sr-only\\\">{{@caption}}</caption>\\n {{/if}}\\n\\n <thead class=\\\"hds-table__thead\\\">\\n {{#if @columns}}\\n <Hds::Table::Tr\\n @selectionScope=\\\"col\\\"\\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\\n @sortBySelectedOrder={{if (eq this.sortBy @selectableColumnKey) this.sortOrder}}\\n @isSelectable={{@isSelectable}}\\n @onSelectionChange={{this.onSelectionAllChange}}\\n @didInsert={{this.didInsertSelectAllCheckbox}}\\n @willDestroy={{this.willDestroySelectAllCheckbox}}\\n @selectionAriaLabelSuffix=\\\"all rows\\\"\\n >\\n {{#each @columns as |column|}}\\n {{#if column.isSortable}}\\n <Hds::Table::ThSort\\n @sortOrder={{if (eq column.key this.sortBy) this.sortOrder}}\\n @onClickSort={{fn this.setSortBy column.key}}\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n >\\n {{column.label}}\\n </Hds::Table::ThSort>\\n {{else}}\\n <Hds::Table::Th\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n @isVisuallyHidden={{column.isVisuallyHidden}}\\n >{{column.label}}</Hds::Table::Th>\\n {{/if}}\\n {{/each}}\\n </Hds::Table::Tr>\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"col\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionAllChange\\n didInsert=this.didInsertSelectAllCheckbox\\n willDestroy=this.willDestroySelectAllCheckbox\\n selectionAriaLabelSuffix=\\\"all rows\\\"\\n onClickSortBySelected=(if @selectableColumnKey (fn this.setSortBy @selectableColumnKey))\\n sortBySelectedOrder=(if (eq this.sortBy @selectableColumnKey) this.sortOrder)\\n )\\n Th=(component \\\"hds/table/th\\\")\\n ThSort=(component \\\"hds/table/th-sort\\\")\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n setSortBy=this.setSortBy\\n )\\n to=\\\"head\\\"\\n }}\\n {{/if}}\\n </thead>\\n\\n <tbody class=\\\"hds-table__tbody\\\">\\n {{#if @columns}}\\n {{! ----------------------------------------------------------------------------------------\\n IMPORTANT: we loop on the `model` array and for each record\\n we yield the Tr/Td/Th elements _and_ the record itself as `data`\\n this means the consumer will *have to* use the `data` key to access it in their template\\n -------------------------------------------------------------------------------------------- }}\\n {{#each (sort-by this.getSortCriteria @model) key=this.identityKey as |record|}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n data=record\\n )\\n to=\\\"body\\\"\\n }}\\n {{/each}}\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n )\\n to=\\\"body\\\"\\n }}\\n {{/if}}\\n </tbody>\\n</table>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\n\nimport {\n HdsTableDensityValues,\n HdsTableThSortOrderValues,\n HdsTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsTableColumn,\n HdsTableDensities,\n HdsTableHorizontalAlignment,\n HdsTableOnSelectionChangeSignature,\n HdsTableSelectableRow,\n HdsTableSortingFunction,\n HdsTableThSortOrder,\n HdsTableVerticalAlignment,\n HdsTableModel,\n} from './types';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableTdSignature } from './td.ts';\nimport type { HdsTableThSignature } from './th.ts';\nimport type { HdsTableThSortSignature } from './th-sort.ts';\nimport type { HdsTableTrSignature } from './tr.ts';\n\nexport const DENSITIES: HdsTableDensities[] = Object.values(\n HdsTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsTableVerticalAlignment[] = Object.values(\n HdsTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;\n\nexport interface HdsTableSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n caption?: string;\n columns?: HdsTableColumn[];\n density?: HdsTableDensities;\n identityKey?: string;\n isFixedLayout?: boolean;\n isSelectable?: boolean;\n isStriped?: boolean;\n model?: HdsTableModel;\n onSelectionChange?: (selection: HdsTableOnSelectionChangeSignature) => void;\n onSort?: (sortBy: string, sortOrder: HdsTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsTableThSortOrder;\n valign?: HdsTableVerticalAlignment;\n };\n Blocks: {\n head?: [\n {\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n ThSort?: ComponentLike<HdsTableThSortSignature>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n setSortBy?: (column: string) => void;\n },\n ];\n body?: [\n {\n Td?: ComponentLike<HdsTableTdSignature>;\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n data?: Record<string, unknown>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n },\n ];\n };\n Element: HTMLTableElement;\n}\n\nexport default class HdsTable extends Component<HdsTableSignature> {\n @tracked sortBy = this.args.sortBy ?? undefined;\n @tracked sortOrder = this.args.sortOrder || HdsTableThSortOrderValues.Asc;\n @tracked selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n selectableRows: HdsTableSelectableRow[] = [];\n @tracked isSelectAllCheckboxSelected?: boolean = undefined;\n\n get getSortCriteria(): string | HdsTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.args?.columns?.find(\n (column) => column.key === this.sortBy\n );\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get 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 sortedMessageText(): string {\n if (this.args.sortedMessageText) {\n return this.args.sortedMessageText;\n } else if (this.sortBy && this.sortOrder) {\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.sortBy} ${this.sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isStriped(): boolean {\n return this.args.isStriped ?? false;\n }\n\n get isFixedLayout(): boolean {\n return this.args.isFixedLayout ?? false;\n }\n\n get density(): HdsTableDensities {\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 valign(): HdsTableVerticalAlignment {\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-table'];\n\n // add a class based on the @isStriped argument\n if (this.isStriped) {\n classes.push('hds-table--striped');\n }\n\n // add a class based on the @isFixedLayout argument\n if (this.isFixedLayout) {\n classes.push('hds-table--layout-fixed');\n }\n\n // add a class based on the @density argument\n if (this.density) {\n classes.push(`hds-table--density-${this.density}`);\n }\n\n // add a class based on the @valign argument\n if (this.valign) {\n classes.push(`hds-table--valign-${this.valign}`);\n }\n\n return classes.join(' ');\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsTableThSortOrderValues.Asc\n ? HdsTableThSortOrderValues.Desc\n : HdsTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsTableThSortOrderValues.Asc;\n }\n\n const { onSort } = this.args;\n\n if (typeof onSort === 'function') {\n onSort(this.sortBy, this.sortOrder);\n }\n }\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\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\n @action\n onSelectionAllChange(): void {\n this.selectableRows.forEach((row) => {\n row.checkbox.checked = this.selectAllCheckbox?.checked ?? false;\n row.checkbox.dispatchEvent(new Event('toggle', { bubbles: false }));\n });\n this.isSelectAllCheckboxSelected = this.selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this.selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this.selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this.selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this.selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this.selectableRows = this.selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this.selectAllCheckbox) {\n const selectableRowsCount = this.selectableRows.length;\n const selectedRowsCount = this.selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this.selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this.selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this.isSelectAllCheckboxSelected = this.selectAllCheckbox.checked;\n this.selectAllCheckbox.dispatchEvent(\n new Event('toggle', { bubbles: false })\n );\n }\n }\n}\n"],"names":["DENSITIES","Object","values","HdsTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsTable","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","_descriptor4","getSortCriteria","currentColumn","columns","find","column","key","sortBy","sortingFunction","sortOrder","identityKey","undefined","sortedMessageText","isStriped","isFixedLayout","density","assert","join","includes","valign","classNames","classes","push","setSortBy","HdsTableThSortOrderValues","Asc","Desc","onSort","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","selectableRows","reduce","acc","row","checked","selectableRowsStates","isSelected","onSelectionAllChange","forEach","selectAllCheckbox","dispatchEvent","Event","bubbles","isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","filter","selectableRowsCount","length","selectedRowsCount","indeterminate","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;AACA,eAAe,kBAAkB,CAAC,q3IAAq3I;;;ACgCh5I,MAAMA,SAA8B,GAAGC,MAAM,CAACC,MAAM,CACzDC,qBACF,EAAC;AACYC,MAAAA,eAAe,GAAGD,qBAAqB,CAACE,OAAM;AAEpD,MAAMC,WAAwC,GAAGL,MAAM,CAACC,MAAM,CACnEK,+BACF,EAAC;AACYC,MAAAA,cAAc,GAAGD,+BAA+B,CAACE,IAAG;AA+C5CC,IAAAA,QAAQ,IAAAC,MAAA,GAAd,MAAMD,QAAQ,SAASE,SAAS,CAAoB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAAD,IAAAA,0BAAA,oBAAAE,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAF,IAAAA,0BAAA,4BAAAG,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,eAAA,yBAKvB,EAAE,CAAA,CAAA;AAAAJ,IAAAA,0BAAA,sCAAAK,YAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAAA;EAG5C,IAAIC,eAAeA,GAA8C;AAC/D;AACA,IAAA,MAAMC,aAAa,GAAG,IAAI,CAACR,IAAI,EAAES,OAAO,EAAEC,IAAI,CAC3CC,MAAM,IAAKA,MAAM,CAACC,GAAG,KAAK,IAAI,CAACC,MAClC,CAAC,CAAA;AACD,IAAA;AACE;IACAL,aAAa,EAAEM,eAAe,IAC9B,OAAON,aAAa,CAACM,eAAe,KAAK,UAAU,EACnD;MACA,OAAON,aAAa,CAACM,eAAe,CAAA;AACtC,KAAC,MAAM;AACL;MACA,OAAO,CAAA,EAAG,IAAI,CAACD,MAAM,IAAI,IAAI,CAACE,SAAS,CAAE,CAAA,CAAA;AAC3C,KAAA;AACF,GAAA;EAEA,IAAIC,WAAWA,GAAuB;AACpC;AACA,IAAA,IAAI,IAAI,CAAChB,IAAI,CAACgB,WAAW,KAAK,MAAM,EAAE;AACpC,MAAA,OAAOC,SAAS,CAAA;AAClB,KAAC,MAAM;AACL,MAAA,OAAO,IAAI,CAACjB,IAAI,CAACgB,WAAW,IAAI,WAAW,CAAA;AAC7C,KAAA;AACF,GAAA;EAEA,IAAIE,iBAAiBA,GAAW;AAC9B,IAAA,IAAI,IAAI,CAAClB,IAAI,CAACkB,iBAAiB,EAAE;AAC/B,MAAA,OAAO,IAAI,CAAClB,IAAI,CAACkB,iBAAiB,CAAA;KACnC,MAAM,IAAI,IAAI,CAACL,MAAM,IAAI,IAAI,CAACE,SAAS,EAAE;AACxC;MACA,OAAO,CAAA,UAAA,EAAa,IAAI,CAACF,MAAM,IAAI,IAAI,CAACE,SAAS,CAAQ,MAAA,CAAA,CAAA;AAC3D,KAAC,MAAM;AACL,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;AACF,GAAA;EAEA,IAAII,SAASA,GAAY;AACvB,IAAA,OAAO,IAAI,CAACnB,IAAI,CAACmB,SAAS,IAAI,KAAK,CAAA;AACrC,GAAA;EAEA,IAAIC,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACpB,IAAI,CAACoB,aAAa,IAAI,KAAK,CAAA;AACzC,GAAA;EAEA,IAAIC,OAAOA,GAAsB;IAC/B,MAAM;AAAEA,MAAAA,OAAO,GAAG/B,eAAAA;KAAiB,GAAG,IAAI,CAACU,IAAI,CAAA;AAE/CsB,IAAAA,MAAM,CACJ,CAA2DpC,wDAAAA,EAAAA,SAAS,CAACqC,IAAI,CACvE,IACF,CAAC,CAAA,YAAA,EAAeF,OAAO,CAAA,CAAE,EACzBnC,SAAS,CAACsC,QAAQ,CAACH,OAAO,CAC5B,CAAC,CAAA;AAED,IAAA,OAAOA,OAAO,CAAA;AAChB,GAAA;EAEA,IAAII,MAAMA,GAA8B;IACtC,MAAM;AAAEA,MAAAA,MAAM,GAAG/B,cAAAA;KAAgB,GAAG,IAAI,CAACM,IAAI,CAAA;AAE7CsB,IAAAA,MAAM,CACJ,CAA0D9B,uDAAAA,EAAAA,WAAW,CAAC+B,IAAI,CACxE,IACF,CAAC,CAAA,YAAA,EAAeE,MAAM,CAAA,CAAE,EACxBjC,WAAW,CAACgC,QAAQ,CAACC,MAAM,CAC7B,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;EAEA,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAA;;AAE7B;IACA,IAAI,IAAI,CAACR,SAAS,EAAE;AAClBQ,MAAAA,OAAO,CAACC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AACpC,KAAA;;AAEA;IACA,IAAI,IAAI,CAACR,aAAa,EAAE;AACtBO,MAAAA,OAAO,CAACC,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACzC,KAAA;;AAEA;IACA,IAAI,IAAI,CAACP,OAAO,EAAE;MAChBM,OAAO,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAACP,OAAO,EAAE,CAAC,CAAA;AACpD,KAAA;;AAEA;IACA,IAAI,IAAI,CAACI,MAAM,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAACH,MAAM,EAAE,CAAC,CAAA;AAClD,KAAA;AAEA,IAAA,OAAOE,OAAO,CAACJ,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;EAGAM,SAASA,CAAClB,MAAc,EAAQ;AAC9B,IAAA,IAAI,IAAI,CAACE,MAAM,KAAKF,MAAM,EAAE;AAC1B;AACA,MAAA,IAAI,CAACI,SAAS,GACZ,IAAI,CAACA,SAAS,KAAKe,yBAAyB,CAACC,GAAG,GAC5CD,yBAAyB,CAACE,IAAI,GAC9BF,yBAAyB,CAACC,GAAG,CAAA;AACrC,KAAC,MAAM;AACL;MACA,IAAI,CAAClB,MAAM,GAAGF,MAAM,CAAA;AACpB,MAAA,IAAI,CAACI,SAAS,GAAGe,yBAAyB,CAACC,GAAG,CAAA;AAChD,KAAA;IAEA,MAAM;AAAEE,MAAAA,MAAAA;KAAQ,GAAG,IAAI,CAACjC,IAAI,CAAA;AAE5B,IAAA,IAAI,OAAOiC,MAAM,KAAK,UAAU,EAAE;MAChCA,MAAM,CAAC,IAAI,CAACpB,MAAM,EAAE,IAAI,CAACE,SAAS,CAAC,CAAA;AACrC,KAAA;AACF,GAAA;AAEAmB,EAAAA,yBAAyBA,CACvBC,QAAkD,EAClDC,YAAqB,EACf;IACN,MAAM;AAAEC,MAAAA,iBAAAA;KAAmB,GAAG,IAAI,CAACrC,IAAI,CAAA;AACvC,IAAA,IAAI,OAAOqC,iBAAiB,KAAK,UAAU,EAAE;AAC3CA,MAAAA,iBAAiB,CAAC;AAChBD,QAAAA,YAAY,EAAEA,YAAY;AAC1BE,QAAAA,wBAAwB,EAAEH,QAAQ;QAClCI,gBAAgB,EAAE,IAAI,CAACC,cAAc,CAACC,MAAM,CAAW,CAACC,GAAG,EAAEC,GAAG,KAAK;AACnE,UAAA,IAAIA,GAAG,CAACR,QAAQ,CAACS,OAAO,EAAE;AACxBF,YAAAA,GAAG,CAACd,IAAI,CAACe,GAAG,CAACP,YAAY,CAAC,CAAA;AAC5B,WAAA;AACA,UAAA,OAAOM,GAAG,CAAA;SACX,EAAE,EAAE,CAAC;QACNG,oBAAoB,EAAE,IAAI,CAACL,cAAc,CAACC,MAAM,CAC9C,CACEC,GAAgE,EAChEC,GAAG,KACA;UACHD,GAAG,CAACd,IAAI,CAAC;YACPQ,YAAY,EAAEO,GAAG,CAACP,YAAY;AAC9BU,YAAAA,UAAU,EAAEH,GAAG,CAACR,QAAQ,CAACS,OAAAA;AAC3B,WAAC,CAAC,CAAA;AACF,UAAA,OAAOF,GAAG,CAAA;AACZ,SAAC,EACD,EACF,CAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAGAK,EAAAA,oBAAoBA,GAAS;AAC3B,IAAA,IAAI,CAACP,cAAc,CAACQ,OAAO,CAAEL,GAAG,IAAK;MACnCA,GAAG,CAACR,QAAQ,CAACS,OAAO,GAAG,IAAI,CAACK,iBAAiB,EAAEL,OAAO,IAAI,KAAK,CAAA;MAC/DD,GAAG,CAACR,QAAQ,CAACe,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;AAAEC,QAAAA,OAAO,EAAE,KAAA;AAAM,OAAC,CAAC,CAAC,CAAA;AACrE,KAAC,CAAC,CAAA;IACF,IAAI,CAACC,2BAA2B,GAAG,IAAI,CAACJ,iBAAiB,EAAEL,OAAO,IAAI,KAAK,CAAA;IAC3E,IAAI,CAACV,yBAAyB,CAAC,IAAI,CAACe,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC/D,GAAA;AAGAK,EAAAA,oBAAoBA,CAClBnB,QAAkD,EAClDC,YAAqB,EACf;IACN,IAAI,CAACmB,iBAAiB,EAAE,CAAA;AACxB,IAAA,IAAI,CAACrB,yBAAyB,CAACC,QAAQ,EAAEC,YAAY,CAAC,CAAA;AACxD,GAAA;EAGAoB,0BAA0BA,CACxBrB,QAAiD,EAC3C;IACN,IAAI,CAACc,iBAAiB,GAAGd,QAAQ,CAAA;AACnC,GAAA;AAGAsB,EAAAA,4BAA4BA,GAAS;IACnC,IAAI,CAACR,iBAAiB,GAAGhC,SAAS,CAAA;AACpC,GAAA;AAGAyC,EAAAA,oBAAoBA,CAClBvB,QAAiD,EACjDC,YAAqB,EACf;AACN,IAAA,IAAIA,YAAY,EAAE;AAChB,MAAA,IAAI,CAACI,cAAc,CAACZ,IAAI,CAAC;QAAEQ,YAAY;AAAED,QAAAA,QAAAA;AAAS,OAAC,CAAC,CAAA;AACtD,KAAA;IACA,IAAI,CAACoB,iBAAiB,EAAE,CAAA;AAC1B,GAAA;EAGAI,sBAAsBA,CAACvB,YAAqB,EAAQ;AAClD,IAAA,IAAI,CAACI,cAAc,GAAG,IAAI,CAACA,cAAc,CAACoB,MAAM,CAC7CjB,GAAG,IAAKA,GAAG,CAACP,YAAY,KAAKA,YAChC,CAAC,CAAA;IACD,IAAI,CAACmB,iBAAiB,EAAE,CAAA;AAC1B,GAAA;AAGAA,EAAAA,iBAAiBA,GAAS;IACxB,IAAI,IAAI,CAACN,iBAAiB,EAAE;AAC1B,MAAA,MAAMY,mBAAmB,GAAG,IAAI,CAACrB,cAAc,CAACsB,MAAM,CAAA;AACtD,MAAA,MAAMC,iBAAiB,GAAG,IAAI,CAACvB,cAAc,CAACoB,MAAM,CACjDjB,GAAG,IAAKA,GAAG,CAACR,QAAQ,CAACS,OACxB,CAAC,CAACkB,MAAM,CAAA;AAER,MAAA,IAAI,CAACb,iBAAiB,CAACL,OAAO,GAC5BmB,iBAAiB,KAAKF,mBAAmB,CAAA;MAC3C,IAAI,CAACZ,iBAAiB,CAACe,aAAa,GAClCD,iBAAiB,GAAG,CAAC,IAAIA,iBAAiB,GAAGF,mBAAmB,CAAA;AAClE,MAAA,IAAI,CAACR,2BAA2B,GAAG,IAAI,CAACJ,iBAAiB,CAACL,OAAO,CAAA;MACjE,IAAI,CAACK,iBAAiB,CAACC,aAAa,CAClC,IAAIC,KAAK,CAAC,QAAQ,EAAE;AAAEC,QAAAA,OAAO,EAAE,KAAA;AAAM,OAAC,CACxC,CAAC,CAAA;AACH,KAAA;AACF,GAAA;AACF,CAAC,GAAAlD,WAAA,GAAA+D,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAAA,QAAA,EAAA,CAjOEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAU,IAAI,CAACvE,IAAI,CAACa,MAAM,IAAII,SAAS,CAAA;AAAA,GAAA;AAAA,CAAAd,CAAAA,EAAAA,YAAA,GAAA8D,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,gBAC9CC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;IAAA,OAAa,IAAI,CAACvE,IAAI,CAACe,SAAS,IAAIe,yBAAyB,CAACC,GAAG,CAAA;AAAA,GAAA;AAAA,CAAA3B,CAAAA,EAAAA,YAAA,GAAA6D,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,wBACxEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OACNtD,SAAS,CAAA;AAAA,GAAA;AAAA,CAAAX,CAAAA,EAAAA,YAAA,GAAA2D,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,kCAEVC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAyCtD,SAAS,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA,EAAAgD,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,gBAmGzDM,MAAM,CAAA,EAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,gBAAArE,MAAA,CAAAqE,SAAA,CAAA,EAAAD,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,2BAqDNM,MAAM,CAAA,EAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAA,sBAAA,CAAA,EAAArE,MAAA,CAAAqE,SAAA,CAAAD,EAAAA,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAAA,sBAAA,EAAA,CAUNM,MAAM,CAAArF,EAAAA,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAA,sBAAA,CAAA,EAAArE,MAAA,CAAAqE,SAAA,CAAAD,EAAAA,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAAA,4BAAA,EAAA,CASNM,MAAM,CAAArF,EAAAA,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAArE,4BAAAA,CAAAA,EAAAA,MAAA,CAAAqE,SAAA,CAAA,EAAAD,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAONM,8BAAAA,EAAAA,CAAAA,MAAM,GAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAArE,8BAAAA,CAAAA,EAAAA,MAAA,CAAAqE,SAAA,CAAA,EAAAD,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAKNM,sBAAAA,EAAAA,CAAAA,MAAM,GAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,2BAAArE,MAAA,CAAAqE,SAAA,CAAAD,EAAAA,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAAA,wBAAA,EAAA,CAWNM,MAAM,CAAA,EAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAA,wBAAA,CAAA,EAAArE,MAAA,CAAAqE,SAAA,CAAAD,EAAAA,yBAAA,CAAApE,MAAA,CAAAqE,SAAA,EAAA,mBAAA,EAAA,CAQNM,MAAM,CAAA,EAAArF,MAAA,CAAAsF,wBAAA,CAAA5E,MAAA,CAAAqE,SAAA,EAAA,mBAAA,CAAA,EAAArE,MAAA,CAAAqE,SAAA,IAAArE,MAAA,EAAA;AAhNoB6E,oBAAA,CAAAC,QAAA,EAAR/E,QAAQ,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/table/index.hbs","../../../../src/components/hds/table/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<table class={{this.classNames}} ...attributes>\\n {{#if @columns}}\\n <caption class=\\\"sr-only\\\" aria-live=\\\"polite\\\">{{@caption}} {{this.sortedMessageText}}</caption>\\n {{else if @caption}}\\n <caption class=\\\"sr-only\\\">{{@caption}}</caption>\\n {{/if}}\\n\\n <thead class=\\\"hds-table__thead\\\">\\n {{#if @columns}}\\n <Hds::Table::Tr\\n @selectionScope=\\\"col\\\"\\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\\n @sortBySelectedOrder={{if (eq this.sortBy @selectableColumnKey) this.sortOrder}}\\n @isSelectable={{@isSelectable}}\\n @onSelectionChange={{this.onSelectionAllChange}}\\n @didInsert={{this.didInsertSelectAllCheckbox}}\\n @willDestroy={{this.willDestroySelectAllCheckbox}}\\n @selectionAriaLabelSuffix=\\\"all rows\\\"\\n >\\n {{#each @columns as |column|}}\\n {{#if column.isSortable}}\\n <Hds::Table::ThSort\\n @sortOrder={{if (eq column.key this.sortBy) this.sortOrder}}\\n @onClickSort={{fn this.setSortBy column.key}}\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n >\\n {{column.label}}\\n </Hds::Table::ThSort>\\n {{else}}\\n <Hds::Table::Th\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n @isVisuallyHidden={{column.isVisuallyHidden}}\\n >{{column.label}}</Hds::Table::Th>\\n {{/if}}\\n {{/each}}\\n </Hds::Table::Tr>\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"col\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionAllChange\\n didInsert=this.didInsertSelectAllCheckbox\\n willDestroy=this.willDestroySelectAllCheckbox\\n selectionAriaLabelSuffix=\\\"all rows\\\"\\n onClickSortBySelected=(if @selectableColumnKey (fn this.setSortBy @selectableColumnKey))\\n sortBySelectedOrder=(if (eq this.sortBy @selectableColumnKey) this.sortOrder)\\n )\\n Th=(component \\\"hds/table/th\\\")\\n ThSort=(component \\\"hds/table/th-sort\\\")\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n setSortBy=this.setSortBy\\n )\\n to=\\\"head\\\"\\n }}\\n {{/if}}\\n </thead>\\n\\n <tbody class=\\\"hds-table__tbody\\\">\\n {{#if @columns}}\\n {{! ----------------------------------------------------------------------------------------\\n IMPORTANT: we loop on the `model` array and for each record\\n we yield the Tr/Td/Th elements _and_ the record itself as `data`\\n this means the consumer will *have to* use the `data` key to access it in their template\\n -------------------------------------------------------------------------------------------- }}\\n {{#each (sort-by this.getSortCriteria @model) key=this.identityKey as |record|}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n data=record\\n )\\n to=\\\"body\\\"\\n }}\\n {{/each}}\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n )\\n to=\\\"body\\\"\\n }}\\n {{/if}}\\n </tbody>\\n</table>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\n\nimport {\n HdsTableDensityValues,\n HdsTableThSortOrderValues,\n HdsTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsTableColumn,\n HdsTableDensities,\n HdsTableHorizontalAlignment,\n HdsTableOnSelectionChangeSignature,\n HdsTableSelectableRow,\n HdsTableSortingFunction,\n HdsTableThSortOrder,\n HdsTableVerticalAlignment,\n HdsTableModel,\n} from './types';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableTdSignature } from './td.ts';\nimport type { HdsTableThSignature } from './th.ts';\nimport type { HdsTableThSortSignature } from './th-sort.ts';\nimport type { HdsTableTrSignature } from './tr.ts';\n\nexport const DENSITIES: HdsTableDensities[] = Object.values(\n HdsTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsTableVerticalAlignment[] = Object.values(\n HdsTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;\n\nexport interface HdsTableSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n caption?: string;\n columns?: HdsTableColumn[];\n density?: HdsTableDensities;\n identityKey?: string;\n isFixedLayout?: boolean;\n isSelectable?: boolean;\n isStriped?: boolean;\n model?: HdsTableModel;\n onSelectionChange?: (selection: HdsTableOnSelectionChangeSignature) => void;\n onSort?: (sortBy: string, sortOrder: HdsTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsTableThSortOrder;\n valign?: HdsTableVerticalAlignment;\n };\n Blocks: {\n head?: [\n {\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n ThSort?: ComponentLike<HdsTableThSortSignature>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n setSortBy?: (column: string) => void;\n },\n ];\n body?: [\n {\n Td?: ComponentLike<HdsTableTdSignature>;\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n data?: Record<string, unknown>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n },\n ];\n };\n Element: HTMLTableElement;\n}\n\nexport default class HdsTable extends Component<HdsTableSignature> {\n @tracked sortBy;\n @tracked sortOrder;\n @tracked selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n selectableRows: HdsTableSelectableRow[] = [];\n @tracked isSelectAllCheckboxSelected?: boolean = undefined;\n\n constructor(owner: unknown, args: HdsTableSignature['Args']) {\n super(owner, args);\n this.sortBy = this.args.sortBy ?? undefined;\n this.sortOrder = this.args.sortOrder ?? HdsTableThSortOrderValues.Asc;\n }\n\n get getSortCriteria(): string | HdsTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.args?.columns?.find(\n (column) => column.key === this.sortBy\n );\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this.sortBy}:${this.sortOrder}`;\n }\n }\n\n get 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 sortedMessageText(): string {\n if (this.args.sortedMessageText) {\n return this.args.sortedMessageText;\n } else if (this.sortBy && this.sortOrder) {\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.sortBy} ${this.sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isStriped(): boolean {\n return this.args.isStriped ?? false;\n }\n\n get isFixedLayout(): boolean {\n return this.args.isFixedLayout ?? false;\n }\n\n get density(): HdsTableDensities {\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 valign(): HdsTableVerticalAlignment {\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-table'];\n\n // add a class based on the @isStriped argument\n if (this.isStriped) {\n classes.push('hds-table--striped');\n }\n\n // add a class based on the @isFixedLayout argument\n if (this.isFixedLayout) {\n classes.push('hds-table--layout-fixed');\n }\n\n // add a class based on the @density argument\n if (this.density) {\n classes.push(`hds-table--density-${this.density}`);\n }\n\n // add a class based on the @valign argument\n if (this.valign) {\n classes.push(`hds-table--valign-${this.valign}`);\n }\n\n return classes.join(' ');\n }\n\n @action\n setSortBy(column: string): void {\n if (this.sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this.sortOrder =\n this.sortOrder === HdsTableThSortOrderValues.Asc\n ? HdsTableThSortOrderValues.Desc\n : HdsTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsTableThSortOrderValues.Asc;\n }\n\n const { onSort } = this.args;\n\n if (typeof onSort === 'function') {\n onSort(this.sortBy, this.sortOrder);\n }\n }\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\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\n @action\n onSelectionAllChange(): void {\n this.selectableRows.forEach((row) => {\n row.checkbox.checked = this.selectAllCheckbox?.checked ?? false;\n row.checkbox.dispatchEvent(new Event('toggle', { bubbles: false }));\n });\n this.isSelectAllCheckboxSelected = this.selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this.selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this.selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this.selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this.selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this.selectableRows = this.selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this.selectAllCheckbox) {\n const selectableRowsCount = this.selectableRows.length;\n const selectedRowsCount = this.selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this.selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this.selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this.isSelectAllCheckboxSelected = this.selectAllCheckbox.checked;\n this.selectAllCheckbox.dispatchEvent(\n new Event('toggle', { bubbles: false })\n );\n }\n }\n}\n"],"names":["DENSITIES","Object","values","HdsTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsTable","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","_descriptor4","sortBy","undefined","sortOrder","HdsTableThSortOrderValues","Asc","getSortCriteria","currentColumn","columns","find","column","key","sortingFunction","identityKey","sortedMessageText","isStriped","isFixedLayout","density","assert","join","includes","valign","classNames","classes","push","setSortBy","Desc","onSort","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","selectableRows","reduce","acc","row","checked","selectableRowsStates","isSelected","onSelectionAllChange","forEach","selectAllCheckbox","dispatchEvent","Event","bubbles","isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","filter","selectableRowsCount","length","selectedRowsCount","indeterminate","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -11,12 +11,13 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
11
11
 
12
12
  var _class, _descriptor;
13
13
  let HdsTableThSelectable = (_class = class HdsTableThSelectable extends Component {
14
- constructor(...args) {
15
- super(...args);
14
+ constructor(owner, args) {
15
+ super(owner, args);
16
16
  _initializerDefineProperty(this, "isSelected", _descriptor, this);
17
17
  _defineProperty(this, "guid", guidFor(this));
18
18
  _defineProperty(this, "checkboxId", `checkbox-${this.guid}`);
19
19
  _defineProperty(this, "labelId", `label-${this.guid}`);
20
+ this.isSelected = this.args.isSelected ?? false;
20
21
  }
21
22
  get isSortable() {
22
23
  return this.args.onClickSortBySelected !== undefined;
@@ -87,9 +88,7 @@ let HdsTableThSelectable = (_class = class HdsTableThSelectable extends Componen
87
88
  configurable: true,
88
89
  enumerable: true,
89
90
  writable: true,
90
- initializer: function () {
91
- return this.args.isSelected ?? false;
92
- }
91
+ initializer: null
93
92
  }), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onSelectionChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onSelectionChange"), _class.prototype)), _class);
94
93
  setComponentTemplate(TEMPLATE, HdsTableThSelectable);
95
94
 
@@ -1 +1 @@
1
- {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.hbs","../../../../src/components/hds/table/th-selectable.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::Table::Th\\n class=\\\"hds-table__th--is-selectable\\\"\\n aria-sort={{if this.isSortable this.ariaSort}}\\n @scope={{@selectionScope}}\\n ...attributes\\n>\\n <div class=\\\"hds-table__th-content\\\">\\n <Hds::Form::Checkbox::Base\\n id={{this.checkboxId}}\\n class=\\\"hds-table__checkbox\\\"\\n checked={{@isSelected}}\\n aria-label={{this.ariaLabel}}\\n {{did-insert this.didInsert}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"change\\\" this.onSelectionChange}}\\n />\\n {{#if this.isSortable}}\\n <span id={{this.labelId}} class=\\\"sr-only\\\">selection state</span>\\n <Hds::Table::ThButtonSort\\n @sortOrder={{@sortBySelectedOrder}}\\n @onClick={{@onClickSortBySelected}}\\n @labelId={{this.labelId}}\\n />\\n {{/if}}\\n </div>\\n</Hds::Table::Th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport {\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsTableScope,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types';\nimport type { HdsTableThSignature } from './th';\n\nexport interface HdsTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n };\n Element: HdsTableThSignature['Element'];\n}\n\nexport default class HdsTableThSelectable extends Component<HdsTableThSelectableSignature> {\n @tracked isSelected = this.args.isSelected ?? false;\n\n guid = guidFor(this);\n\n checkboxId = `checkbox-${this.guid}`;\n labelId = `label-${this.guid}`;\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix } = this.args;\n const prefix = this.isSelected ? 'Deselect' : 'Select';\n if (selectionAriaLabelSuffix) {\n return `${prefix} ${selectionAriaLabelSuffix}`;\n } else {\n return prefix;\n }\n }\n\n get ariaSort(): HdsTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n @action\n didInsert(checkbox: HdsFormCheckboxBaseSignature['Element']): void {\n const { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n // we need to use a custom event listener here because changing the `checked` value via JS\n // (and this happens with the \"select all\") doesn't trigger the `change` event\n // and consequently the `aria-label` won't be automatically updated (and so we have to force it)\n checkbox.addEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n\n @action\n willDestroyNode(checkbox: HdsFormCheckboxBaseSignature['Element']): void {\n super.willDestroy();\n const { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n if (checkbox) {\n checkbox.removeEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\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 updateAriaLabel(event: Event): void {\n // Assert event.target as HTMLInputElement to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this.isSelected = target.checked;\n }\n}\n"],"names":["HdsTableThSelectable","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","guid","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","prefix","isSelected","ariaSort","sortBySelectedOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","didInsert","checkbox","selectionKey","addEventListener","updateAriaLabel","bind","willDestroyNode","willDestroy","removeEventListener","onSelectionChange","event","target","checked","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.hbs","../../../../src/components/hds/table/th-selectable.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::Table::Th\\n class=\\\"hds-table__th--is-selectable\\\"\\n aria-sort={{if this.isSortable this.ariaSort}}\\n @scope={{@selectionScope}}\\n ...attributes\\n>\\n <div class=\\\"hds-table__th-content\\\">\\n <Hds::Form::Checkbox::Base\\n id={{this.checkboxId}}\\n class=\\\"hds-table__checkbox\\\"\\n checked={{@isSelected}}\\n aria-label={{this.ariaLabel}}\\n {{did-insert this.didInsert}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"change\\\" this.onSelectionChange}}\\n />\\n {{#if this.isSortable}}\\n <span id={{this.labelId}} class=\\\"sr-only\\\">selection state</span>\\n <Hds::Table::ThButtonSort\\n @sortOrder={{@sortBySelectedOrder}}\\n @onClick={{@onClickSortBySelected}}\\n @labelId={{this.labelId}}\\n />\\n {{/if}}\\n </div>\\n</Hds::Table::Th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport {\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsTableScope,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types';\nimport type { HdsTableThSignature } from './th';\n\nexport interface HdsTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n };\n Element: HdsTableThSignature['Element'];\n}\n\nexport default class HdsTableThSelectable extends Component<HdsTableThSelectableSignature> {\n @tracked isSelected: boolean;\n guid = guidFor(this);\n\n checkboxId = `checkbox-${this.guid}`;\n labelId = `label-${this.guid}`;\n\n constructor(owner: unknown, args: HdsTableThSelectableSignature['Args']) {\n super(owner, args);\n this.isSelected = this.args.isSelected ?? false;\n }\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix } = this.args;\n const prefix = this.isSelected ? 'Deselect' : 'Select';\n if (selectionAriaLabelSuffix) {\n return `${prefix} ${selectionAriaLabelSuffix}`;\n } else {\n return prefix;\n }\n }\n\n get ariaSort(): HdsTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n @action\n didInsert(checkbox: HdsFormCheckboxBaseSignature['Element']): void {\n const { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n // we need to use a custom event listener here because changing the `checked` value via JS\n // (and this happens with the \"select all\") doesn't trigger the `change` event\n // and consequently the `aria-label` won't be automatically updated (and so we have to force it)\n checkbox.addEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n\n @action\n willDestroyNode(checkbox: HdsFormCheckboxBaseSignature['Element']): void {\n super.willDestroy();\n const { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n if (checkbox) {\n checkbox.removeEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\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 updateAriaLabel(event: Event): void {\n // Assert event.target as HTMLInputElement to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this.isSelected = target.checked;\n }\n}\n"],"names":["HdsTableThSelectable","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","guid","isSelected","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","prefix","ariaSort","sortBySelectedOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","didInsert","checkbox","selectionKey","addEventListener","updateAriaLabel","bind","willDestroyNode","willDestroy","removeEventListener","onSelectionChange","event","target","checked","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;AACA,eAAe,kBAAkB,CAAC,k4BAAk4B;;;ACyC/4BA,IAAAA,oBAAoB,IAAAC,MAAA,GAA1B,MAAMD,oBAAoB,SAASE,SAAS,CAAgC;AAOzFC,EAAAA,WAAWA,CAACC,KAAc,EAAEC,IAA2C,EAAE;AACvE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC,CAAA;AAACC,IAAAA,0BAAA,qBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,eAAA,CANdC,IAAAA,EAAAA,MAAAA,EAAAA,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAAD,IAAAA,eAAA,CAEP,IAAA,EAAA,YAAA,EAAA,CAAA,SAAA,EAAY,IAAI,CAACE,IAAI,CAAE,CAAA,CAAA,CAAA;AAAAF,IAAAA,eAAA,CAC1B,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,EAAS,IAAI,CAACE,IAAI,CAAE,CAAA,CAAA,CAAA;IAI5B,IAAI,CAACC,UAAU,GAAG,IAAI,CAACN,IAAI,CAACM,UAAU,IAAI,KAAK,CAAA;AACjD,GAAA;EAEA,IAAIC,UAAUA,GAAY;AACxB,IAAA,OAAO,IAAI,CAACP,IAAI,CAACQ,qBAAqB,KAAKC,SAAS,CAAA;AACtD,GAAA;EAEA,IAAIC,SAASA,GAAW;IACtB,MAAM;AAAEC,MAAAA,wBAAAA;KAA0B,GAAG,IAAI,CAACX,IAAI,CAAA;IAC9C,MAAMY,MAAM,GAAG,IAAI,CAACN,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;AACtD,IAAA,IAAIK,wBAAwB,EAAE;AAC5B,MAAA,OAAO,CAAGC,EAAAA,MAAM,CAAID,CAAAA,EAAAA,wBAAwB,CAAE,CAAA,CAAA;AAChD,KAAC,MAAM;AACL,MAAA,OAAOC,MAAM,CAAA;AACf,KAAA;AACF,GAAA;EAEA,IAAIC,QAAQA,GAA0C;AACpD,IAAA,QAAQ,IAAI,CAACb,IAAI,CAACc,mBAAmB;MACnC,KAAKC,yBAAyB,CAACC,GAAG;QAChC,OAAOC,8BAA8B,CAACD,GAAG,CAAA;MAC3C,KAAKD,yBAAyB,CAACG,IAAI;QACjC,OAAOD,8BAA8B,CAACC,IAAI,CAAA;AAC5C,MAAA;AACE;QACA,OAAOD,8BAA8B,CAACE,IAAI,CAAA;AAC9C,KAAA;AACF,GAAA;EAGAC,SAASA,CAACC,QAAiD,EAAQ;IACjE,MAAM;AAAED,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACpB,IAAI,CAAA;AAC/B,IAAA,IAAI,OAAOoB,SAAS,KAAK,UAAU,EAAE;MACnCA,SAAS,CAACC,QAAQ,EAAE,IAAI,CAACrB,IAAI,CAACsB,YAAY,CAAC,CAAA;AAC3C;AACA;AACA;AACAD,MAAAA,QAAQ,CAACE,gBAAgB,CACvB,QAAQ,EACR,IAAI,CAACC,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC,EAC/B,IACF,CAAC,CAAA;AACH,KAAA;AACF,GAAA;EAGAC,eAAeA,CAACL,QAAiD,EAAQ;IACvE,KAAK,CAACM,WAAW,EAAE,CAAA;IACnB,MAAM;AAAEA,MAAAA,WAAAA;KAAa,GAAG,IAAI,CAAC3B,IAAI,CAAA;AACjC,IAAA,IAAI,OAAO2B,WAAW,KAAK,UAAU,EAAE;AACrCA,MAAAA,WAAW,CAAC,IAAI,CAAC3B,IAAI,CAACsB,YAAY,CAAC,CAAA;AACnC,MAAA,IAAID,QAAQ,EAAE;AACZA,QAAAA,QAAQ,CAACO,mBAAmB,CAC1B,QAAQ,EACR,IAAI,CAACJ,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC,EAC/B,IACF,CAAC,CAAA;AACH,OAAA;AACF,KAAA;AACF,GAAA;EAGAI,iBAAiBA,CAACC,KAAY,EAAQ;AACpC;AACA,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAiD,CAAA;AACtE,IAAA,IAAI,CAACzB,UAAU,GAAGyB,MAAM,CAACC,OAAO,CAAA;IAChC,MAAM;AAAEH,MAAAA,iBAAAA;KAAmB,GAAG,IAAI,CAAC7B,IAAI,CAAA;AACvC,IAAA,IAAI,OAAO6B,iBAAiB,KAAK,UAAU,EAAE;MAC3CA,iBAAiB,CAACE,MAAM,EAAE,IAAI,CAAC/B,IAAI,CAACsB,YAAY,CAAC,CAAA;AACnD,KAAA;AACF,GAAA;EAEAE,eAAeA,CAACM,KAAY,EAAQ;AAClC;AACA,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAiD,CAAA;AACtE,IAAA,IAAI,CAACzB,UAAU,GAAGyB,MAAM,CAACC,OAAO,CAAA;AAClC,GAAA;AACF,CAAC,GAAA9B,WAAA,GAAA+B,yBAAA,CAAArC,MAAA,CAAAsC,SAAA,EAAA,YAAA,EAAA,CArFEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAAN,yBAAA,CAAArC,MAAA,CAAAsC,SAAA,EAAA,WAAA,EAAA,CAqCPM,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA9C,MAAA,CAAAsC,SAAA,EAAA,WAAA,CAAA,EAAAtC,MAAA,CAAAsC,SAAA,CAAA,EAAAD,yBAAA,CAAArC,MAAA,CAAAsC,SAAA,EAAA,iBAAA,EAAA,CAgBNM,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA9C,MAAA,CAAAsC,SAAA,EAAA,iBAAA,CAAA,EAAAtC,MAAA,CAAAsC,SAAA,CAAA,EAAAD,yBAAA,CAAArC,MAAA,CAAAsC,SAAA,EAAA,mBAAA,EAAA,CAgBNM,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA9C,MAAA,CAAAsC,SAAA,EAAA,mBAAA,CAAA,EAAAtC,MAAA,CAAAsC,SAAA,CAAA,GAAAtC,MAAA,EAAA;AAtEgC+C,oBAAA,CAAAC,QAAA,EAApBjD,oBAAoB,CAAA;;;;"}
@@ -41,6 +41,7 @@ let HdsTabs = (_class = class HdsTabs extends Component {
41
41
  _initializerDefineProperty(this, "selectedTabId", _descriptor6, this);
42
42
  _initializerDefineProperty(this, "isControlled", _descriptor7, this);
43
43
  this.isControlled = this.args.selectedTabIndex !== undefined;
44
+ this._selectedTabIndex = this.args.selectedTabIndex ?? 0;
44
45
  }
45
46
  get selectedTabIndex() {
46
47
  if (this.isControlled) {
@@ -228,9 +229,7 @@ let HdsTabs = (_class = class HdsTabs extends Component {
228
229
  configurable: true,
229
230
  enumerable: true,
230
231
  writable: true,
231
- initializer: function () {
232
- return this.args.selectedTabIndex ?? 0;
233
- }
232
+ initializer: null
234
233
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "selectedTabId", [tracked], {
235
234
  configurable: true,
236
235
  enumerable: true,