@hashicorp/design-system-components 4.14.0 → 4.15.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 (558) hide show
  1. package/declarations/components/hds/accordion/item/index.d.ts +3 -3
  2. package/declarations/components/hds/accordion/item/index.d.ts.map +1 -1
  3. package/declarations/components/hds/alert/description.d.ts +0 -1
  4. package/declarations/components/hds/alert/description.d.ts.map +1 -1
  5. package/declarations/components/hds/alert/index.d.ts +2 -2
  6. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  7. package/declarations/components/hds/app-footer/item.d.ts +0 -1
  8. package/declarations/components/hds/app-footer/item.d.ts.map +1 -1
  9. package/declarations/components/hds/app-footer/link.d.ts +0 -1
  10. package/declarations/components/hds/app-footer/link.d.ts.map +1 -1
  11. package/declarations/components/hds/app-footer/status-link.d.ts +1 -1
  12. package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
  13. package/declarations/components/hds/app-frame/parts/footer.d.ts +0 -1
  14. package/declarations/components/hds/app-frame/parts/footer.d.ts.map +1 -1
  15. package/declarations/components/hds/app-frame/parts/header.d.ts +0 -1
  16. package/declarations/components/hds/app-frame/parts/header.d.ts.map +1 -1
  17. package/declarations/components/hds/app-frame/parts/main.d.ts +0 -1
  18. package/declarations/components/hds/app-frame/parts/main.d.ts.map +1 -1
  19. package/declarations/components/hds/app-frame/parts/modals.d.ts +0 -1
  20. package/declarations/components/hds/app-frame/parts/modals.d.ts.map +1 -1
  21. package/declarations/components/hds/app-frame/parts/sidebar.d.ts +0 -1
  22. package/declarations/components/hds/app-frame/parts/sidebar.d.ts.map +1 -1
  23. package/declarations/components/hds/app-header/index.d.ts +7 -7
  24. package/declarations/components/hds/app-header/index.d.ts.map +1 -1
  25. package/declarations/components/hds/app-side-nav/index.d.ts +8 -8
  26. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -1
  27. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +0 -1
  28. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -1
  29. package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
  30. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -1
  31. package/declarations/components/hds/app-side-nav/list/item.d.ts +0 -1
  32. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -1
  33. package/declarations/components/hds/app-side-nav/list/link.d.ts +0 -1
  34. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -1
  35. package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
  36. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -1
  37. package/declarations/components/hds/app-side-nav/portal/index.d.ts +0 -1
  38. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -1
  39. package/declarations/components/hds/app-side-nav/portal/target.d.ts +3 -3
  40. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -1
  41. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +0 -1
  42. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -1
  43. package/declarations/components/hds/application-state/body.d.ts +0 -1
  44. package/declarations/components/hds/application-state/body.d.ts.map +1 -1
  45. package/declarations/components/hds/application-state/footer.d.ts +0 -1
  46. package/declarations/components/hds/application-state/footer.d.ts.map +1 -1
  47. package/declarations/components/hds/application-state/media.d.ts +0 -1
  48. package/declarations/components/hds/application-state/media.d.ts.map +1 -1
  49. package/declarations/components/hds/button-set/index.d.ts +0 -1
  50. package/declarations/components/hds/button-set/index.d.ts.map +1 -1
  51. package/declarations/components/hds/code-block/copy-button.d.ts +0 -1
  52. package/declarations/components/hds/code-block/copy-button.d.ts.map +1 -1
  53. package/declarations/components/hds/code-block/description.d.ts +0 -1
  54. package/declarations/components/hds/code-block/description.d.ts.map +1 -1
  55. package/declarations/components/hds/code-block/index.d.ts +3 -4
  56. package/declarations/components/hds/code-block/index.d.ts.map +1 -1
  57. package/declarations/components/hds/copy/button/index.d.ts +2 -2
  58. package/declarations/components/hds/copy/button/index.d.ts.map +1 -1
  59. package/declarations/components/hds/copy/snippet/index.d.ts +2 -2
  60. package/declarations/components/hds/copy/snippet/index.d.ts.map +1 -1
  61. package/declarations/components/hds/dialog-primitive/body.d.ts +0 -1
  62. package/declarations/components/hds/dialog-primitive/body.d.ts.map +1 -1
  63. package/declarations/components/hds/dialog-primitive/description.d.ts +0 -1
  64. package/declarations/components/hds/dialog-primitive/description.d.ts.map +1 -1
  65. package/declarations/components/hds/dialog-primitive/overlay.d.ts +0 -1
  66. package/declarations/components/hds/dialog-primitive/overlay.d.ts.map +1 -1
  67. package/declarations/components/hds/dialog-primitive/wrapper.d.ts +0 -1
  68. package/declarations/components/hds/dialog-primitive/wrapper.d.ts.map +1 -1
  69. package/declarations/components/hds/disclosure-primitive/index.d.ts +2 -2
  70. package/declarations/components/hds/disclosure-primitive/index.d.ts.map +1 -1
  71. package/declarations/components/hds/dropdown/footer.d.ts +0 -1
  72. package/declarations/components/hds/dropdown/footer.d.ts.map +1 -1
  73. package/declarations/components/hds/dropdown/header.d.ts +0 -1
  74. package/declarations/components/hds/dropdown/header.d.ts.map +1 -1
  75. package/declarations/components/hds/dropdown/list-item/generic.d.ts +0 -1
  76. package/declarations/components/hds/dropdown/list-item/generic.d.ts.map +1 -1
  77. package/declarations/components/hds/dropdown/list-item/separator.d.ts +0 -1
  78. package/declarations/components/hds/dropdown/list-item/separator.d.ts.map +1 -1
  79. package/declarations/components/hds/dropdown/toggle/button.d.ts +2 -2
  80. package/declarations/components/hds/dropdown/toggle/button.d.ts.map +1 -1
  81. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +0 -1
  82. package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
  83. package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
  84. package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
  85. package/declarations/components/hds/flyout/index.d.ts +3 -3
  86. package/declarations/components/hds/flyout/index.d.ts.map +1 -1
  87. package/declarations/components/hds/form/checkbox/base.d.ts +0 -1
  88. package/declarations/components/hds/form/checkbox/base.d.ts.map +1 -1
  89. package/declarations/components/hds/form/checkbox/field.d.ts +0 -1
  90. package/declarations/components/hds/form/checkbox/field.d.ts.map +1 -1
  91. package/declarations/components/hds/form/checkbox/group.d.ts +0 -1
  92. package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
  93. package/declarations/components/hds/form/error/message.d.ts +0 -1
  94. package/declarations/components/hds/form/error/message.d.ts.map +1 -1
  95. package/declarations/components/hds/form/file-input/base.d.ts +0 -1
  96. package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
  97. package/declarations/components/hds/form/file-input/field.d.ts +0 -1
  98. package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
  99. package/declarations/components/hds/form/masked-input/field.d.ts +0 -1
  100. package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
  101. package/declarations/components/hds/form/radio/base.d.ts +0 -1
  102. package/declarations/components/hds/form/radio/base.d.ts.map +1 -1
  103. package/declarations/components/hds/form/radio/field.d.ts +0 -1
  104. package/declarations/components/hds/form/radio/field.d.ts.map +1 -1
  105. package/declarations/components/hds/form/radio/group.d.ts +0 -1
  106. package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
  107. package/declarations/components/hds/form/radio-card/description.d.ts +0 -1
  108. package/declarations/components/hds/form/radio-card/description.d.ts.map +1 -1
  109. package/declarations/components/hds/form/radio-card/group.d.ts +0 -1
  110. package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
  111. package/declarations/components/hds/form/radio-card/label.d.ts +0 -1
  112. package/declarations/components/hds/form/radio-card/label.d.ts.map +1 -1
  113. package/declarations/components/hds/form/select/field.d.ts +0 -1
  114. package/declarations/components/hds/form/select/field.d.ts.map +1 -1
  115. package/declarations/components/hds/form/super-select/after-options.d.ts +0 -1
  116. package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
  117. package/declarations/components/hds/form/super-select/multiple/base.d.ts +3 -3
  118. package/declarations/components/hds/form/super-select/multiple/base.d.ts.map +1 -1
  119. package/declarations/components/hds/form/super-select/option-group.d.ts +2 -1
  120. package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
  121. package/declarations/components/hds/form/super-select/placeholder.d.ts +0 -1
  122. package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
  123. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  124. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  125. package/declarations/components/hds/form/textarea/field.d.ts +0 -1
  126. package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
  127. package/declarations/components/hds/form/toggle/base.d.ts +0 -1
  128. package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
  129. package/declarations/components/hds/form/toggle/field.d.ts +0 -1
  130. package/declarations/components/hds/form/toggle/field.d.ts.map +1 -1
  131. package/declarations/components/hds/form/toggle/group.d.ts +0 -1
  132. package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
  133. package/declarations/components/hds/form/visibility-toggle/index.d.ts +0 -1
  134. package/declarations/components/hds/form/visibility-toggle/index.d.ts.map +1 -1
  135. package/declarations/components/hds/icon/index.d.ts +2 -2
  136. package/declarations/components/hds/icon/index.d.ts.map +1 -1
  137. package/declarations/components/hds/modal/index.d.ts +4 -4
  138. package/declarations/components/hds/modal/index.d.ts.map +1 -1
  139. package/declarations/components/hds/page-header/actions.d.ts +0 -1
  140. package/declarations/components/hds/page-header/actions.d.ts.map +1 -1
  141. package/declarations/components/hds/page-header/badges.d.ts +0 -1
  142. package/declarations/components/hds/page-header/badges.d.ts.map +1 -1
  143. package/declarations/components/hds/page-header/description.d.ts +0 -1
  144. package/declarations/components/hds/page-header/description.d.ts.map +1 -1
  145. package/declarations/components/hds/page-header/index.d.ts +0 -1
  146. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  147. package/declarations/components/hds/page-header/subtitle.d.ts +0 -1
  148. package/declarations/components/hds/page-header/subtitle.d.ts.map +1 -1
  149. package/declarations/components/hds/page-header/title.d.ts +0 -1
  150. package/declarations/components/hds/page-header/title.d.ts.map +1 -1
  151. package/declarations/components/hds/pagination/compact/index.d.ts +2 -2
  152. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  153. package/declarations/components/hds/pagination/nav/ellipsis.d.ts +0 -1
  154. package/declarations/components/hds/pagination/nav/ellipsis.d.ts.map +1 -1
  155. package/declarations/components/hds/pagination/numbered/index.d.ts +3 -3
  156. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  157. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
  158. package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
  159. package/declarations/components/hds/popover-primitive/index.d.ts +8 -8
  160. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  161. package/declarations/components/hds/reveal/index.d.ts +2 -2
  162. package/declarations/components/hds/reveal/index.d.ts.map +1 -1
  163. package/declarations/components/hds/rich-tooltip/index.d.ts +3 -3
  164. package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
  165. package/declarations/components/hds/segmented-group/index.d.ts +0 -1
  166. package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
  167. package/declarations/components/hds/side-nav/base.d.ts +0 -1
  168. package/declarations/components/hds/side-nav/base.d.ts.map +1 -1
  169. package/declarations/components/hds/side-nav/header/index.d.ts +0 -1
  170. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  171. package/declarations/components/hds/side-nav/list/back-link.d.ts +0 -1
  172. package/declarations/components/hds/side-nav/list/back-link.d.ts.map +1 -1
  173. package/declarations/components/hds/side-nav/list/item.d.ts +0 -1
  174. package/declarations/components/hds/side-nav/list/item.d.ts.map +1 -1
  175. package/declarations/components/hds/side-nav/list/link.d.ts +0 -1
  176. package/declarations/components/hds/side-nav/list/link.d.ts.map +1 -1
  177. package/declarations/components/hds/side-nav/portal/index.d.ts +0 -1
  178. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  179. package/declarations/components/hds/side-nav/toggle-button.d.ts +0 -1
  180. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  181. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
  182. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  183. package/declarations/components/hds/table/index.d.ts +5 -4
  184. package/declarations/components/hds/table/index.d.ts.map +1 -1
  185. package/declarations/components/hds/table/th-button-sort.d.ts +2 -2
  186. package/declarations/components/hds/table/th-button-sort.d.ts.map +1 -1
  187. package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
  188. package/declarations/components/hds/table/th-button-tooltip.d.ts.map +1 -1
  189. package/declarations/components/hds/table/th-selectable.d.ts +3 -3
  190. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  191. package/declarations/components/hds/table/th-sort.d.ts +2 -2
  192. package/declarations/components/hds/table/th-sort.d.ts.map +1 -1
  193. package/declarations/components/hds/table/th.d.ts +2 -2
  194. package/declarations/components/hds/table/th.d.ts.map +1 -1
  195. package/declarations/components/hds/tabs/index.d.ts +8 -8
  196. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  197. package/declarations/components/hds/tabs/panel.d.ts +3 -2
  198. package/declarations/components/hds/tabs/panel.d.ts.map +1 -1
  199. package/declarations/components/hds/tabs/tab.d.ts +2 -1
  200. package/declarations/components/hds/tabs/tab.d.ts.map +1 -1
  201. package/declarations/components/hds/time/index.d.ts +35 -0
  202. package/declarations/components/hds/time/index.d.ts.map +1 -0
  203. package/declarations/components/hds/time/range.d.ts +35 -0
  204. package/declarations/components/hds/time/range.d.ts.map +1 -0
  205. package/declarations/components/hds/time/single.d.ts +18 -0
  206. package/declarations/components/hds/time/single.d.ts.map +1 -0
  207. package/declarations/components/hds/toast/index.d.ts +0 -1
  208. package/declarations/components/hds/toast/index.d.ts.map +1 -1
  209. package/declarations/components/hds/yield/index.d.ts +0 -1
  210. package/declarations/components/hds/yield/index.d.ts.map +1 -1
  211. package/declarations/components.d.ts +4 -0
  212. package/declarations/components.d.ts.map +1 -1
  213. package/declarations/helpers/hds-format-date.d.ts +18 -0
  214. package/declarations/helpers/hds-format-date.d.ts.map +1 -0
  215. package/declarations/helpers/hds-format-relative.d.ts +11 -0
  216. package/declarations/helpers/hds-format-relative.d.ts.map +1 -0
  217. package/declarations/modifiers/hds-anchored-position.d.ts +1 -1
  218. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  219. package/declarations/modifiers/hds-clipboard.d.ts +4 -4
  220. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  221. package/declarations/modifiers/hds-register-event.d.ts +1 -1
  222. package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
  223. package/declarations/modifiers/hds-tooltip.d.ts +4 -4
  224. package/declarations/modifiers/hds-tooltip.d.ts.map +1 -1
  225. package/declarations/services/hds-time-types.d.ts +31 -0
  226. package/declarations/services/hds-time-types.d.ts.map +1 -0
  227. package/declarations/services/hds-time.d.ts +76 -0
  228. package/declarations/services/hds-time.d.ts.map +1 -0
  229. package/declarations/services.d.ts +5 -0
  230. package/declarations/services.d.ts.map +1 -0
  231. package/declarations/template-registry.d.ts +13 -0
  232. package/declarations/template-registry.d.ts.map +1 -1
  233. package/dist/_app_/components/hds/time/index.js +1 -0
  234. package/dist/_app_/components/hds/time/range.js +1 -0
  235. package/dist/_app_/components/hds/time/single.js +1 -0
  236. package/dist/_app_/helpers/hds-format-date.js +1 -0
  237. package/dist/_app_/helpers/hds-format-relative.js +1 -0
  238. package/dist/_app_/services/hds-time.js +1 -0
  239. package/dist/{_rollupPluginBabelHelpers-KIi_qCIU.js → _rollupPluginBabelHelpers-81503waH.js} +9 -3
  240. package/dist/_rollupPluginBabelHelpers-81503waH.js.map +1 -0
  241. package/dist/components/hds/accordion/index.js.map +1 -1
  242. package/dist/components/hds/accordion/item/button.js +2 -2
  243. package/dist/components/hds/accordion/item/button.js.map +1 -1
  244. package/dist/components/hds/accordion/item/index.js +6 -6
  245. package/dist/components/hds/accordion/item/index.js.map +1 -1
  246. package/dist/components/hds/accordion/types.js.map +1 -1
  247. package/dist/components/hds/alert/description.js.map +1 -1
  248. package/dist/components/hds/alert/index.js +10 -10
  249. package/dist/components/hds/alert/index.js.map +1 -1
  250. package/dist/components/hds/alert/title.js.map +1 -1
  251. package/dist/components/hds/alert/types.js.map +1 -1
  252. package/dist/components/hds/app-footer/copyright.js.map +1 -1
  253. package/dist/components/hds/app-footer/index.js.map +1 -1
  254. package/dist/components/hds/app-footer/item.js.map +1 -1
  255. package/dist/components/hds/app-footer/legal-links.js.map +1 -1
  256. package/dist/components/hds/app-footer/link.js.map +1 -1
  257. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  258. package/dist/components/hds/app-footer/types.js.map +1 -1
  259. package/dist/components/hds/app-frame/index.js.map +1 -1
  260. package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
  261. package/dist/components/hds/app-frame/parts/header.js.map +1 -1
  262. package/dist/components/hds/app-frame/parts/main.js.map +1 -1
  263. package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
  264. package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
  265. package/dist/components/hds/app-header/home-link.js.map +1 -1
  266. package/dist/components/hds/app-header/index.js +27 -27
  267. package/dist/components/hds/app-header/index.js.map +1 -1
  268. package/dist/components/hds/app-header/menu-button.js +2 -2
  269. package/dist/components/hds/app-header/menu-button.js.map +1 -1
  270. package/dist/components/hds/app-side-nav/index.js +48 -48
  271. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  272. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
  273. package/dist/components/hds/app-side-nav/list/index.js +3 -3
  274. package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
  275. package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
  276. package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
  277. package/dist/components/hds/app-side-nav/list/title.js +4 -4
  278. package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
  279. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
  280. package/dist/components/hds/app-side-nav/portal/target.js +14 -14
  281. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
  282. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
  283. package/dist/components/hds/application-state/body.js.map +1 -1
  284. package/dist/components/hds/application-state/footer.js.map +1 -1
  285. package/dist/components/hds/application-state/header.js.map +1 -1
  286. package/dist/components/hds/application-state/index.js.map +1 -1
  287. package/dist/components/hds/application-state/media.js.map +1 -1
  288. package/dist/components/hds/application-state/types.js.map +1 -1
  289. package/dist/components/hds/badge/index.js.map +1 -1
  290. package/dist/components/hds/badge/types.js.map +1 -1
  291. package/dist/components/hds/badge-count/index.js.map +1 -1
  292. package/dist/components/hds/badge-count/types.js.map +1 -1
  293. package/dist/components/hds/breadcrumb/index.js.map +1 -1
  294. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  295. package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
  296. package/dist/components/hds/button/index.js.map +1 -1
  297. package/dist/components/hds/button/types.js.map +1 -1
  298. package/dist/components/hds/button-set/index.js.map +1 -1
  299. package/dist/components/hds/card/container.js.map +1 -1
  300. package/dist/components/hds/card/types.js.map +1 -1
  301. package/dist/components/hds/code-block/copy-button.js.map +1 -1
  302. package/dist/components/hds/code-block/description.js.map +1 -1
  303. package/dist/components/hds/code-block/index.js +9 -9
  304. package/dist/components/hds/code-block/index.js.map +1 -1
  305. package/dist/components/hds/code-block/title.js.map +1 -1
  306. package/dist/components/hds/code-block/types.js.map +1 -1
  307. package/dist/components/hds/copy/button/index.js +14 -14
  308. package/dist/components/hds/copy/button/index.js.map +1 -1
  309. package/dist/components/hds/copy/button/types.js.map +1 -1
  310. package/dist/components/hds/copy/snippet/index.js +14 -14
  311. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  312. package/dist/components/hds/copy/snippet/types.js.map +1 -1
  313. package/dist/components/hds/dialog-primitive/body.js.map +1 -1
  314. package/dist/components/hds/dialog-primitive/description.js.map +1 -1
  315. package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
  316. package/dist/components/hds/dialog-primitive/header.js.map +1 -1
  317. package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
  318. package/dist/components/hds/dialog-primitive/types.js.map +1 -1
  319. package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
  320. package/dist/components/hds/disclosure-primitive/index.js +3 -3
  321. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  322. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  323. package/dist/components/hds/dropdown/footer.js.map +1 -1
  324. package/dist/components/hds/dropdown/header.js.map +1 -1
  325. package/dist/components/hds/dropdown/index.js +2 -2
  326. package/dist/components/hds/dropdown/index.js.map +1 -1
  327. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  328. package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
  329. package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
  330. package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
  331. package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
  332. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  333. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  334. package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
  335. package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
  336. package/dist/components/hds/dropdown/list-item/types.js.map +1 -1
  337. package/dist/components/hds/dropdown/toggle/button.js +4 -4
  338. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  339. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  340. package/dist/components/hds/dropdown/toggle/icon.js +7 -7
  341. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  342. package/dist/components/hds/dropdown/toggle/types.js.map +1 -1
  343. package/dist/components/hds/dropdown/types.js.map +1 -1
  344. package/dist/components/hds/flyout/body.js.map +1 -1
  345. package/dist/components/hds/flyout/description.js.map +1 -1
  346. package/dist/components/hds/flyout/footer.js.map +1 -1
  347. package/dist/components/hds/flyout/header.js.map +1 -1
  348. package/dist/components/hds/flyout/index.js +21 -19
  349. package/dist/components/hds/flyout/index.js.map +1 -1
  350. package/dist/components/hds/flyout/types.js.map +1 -1
  351. package/dist/components/hds/form/character-count/index.js.map +1 -1
  352. package/dist/components/hds/form/checkbox/base.js.map +1 -1
  353. package/dist/components/hds/form/checkbox/field.js.map +1 -1
  354. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  355. package/dist/components/hds/form/error/index.js.map +1 -1
  356. package/dist/components/hds/form/error/message.js.map +1 -1
  357. package/dist/components/hds/form/field/index.js +2 -2
  358. package/dist/components/hds/form/field/index.js.map +1 -1
  359. package/dist/components/hds/form/field/types.js.map +1 -1
  360. package/dist/components/hds/form/fieldset/index.js +2 -2
  361. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  362. package/dist/components/hds/form/fieldset/types.js.map +1 -1
  363. package/dist/components/hds/form/file-input/base.js.map +1 -1
  364. package/dist/components/hds/form/file-input/field.js.map +1 -1
  365. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  366. package/dist/components/hds/form/indicator/index.js.map +1 -1
  367. package/dist/components/hds/form/label/index.js.map +1 -1
  368. package/dist/components/hds/form/legend/index.js.map +1 -1
  369. package/dist/components/hds/form/masked-input/base.js +3 -3
  370. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  371. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  372. package/dist/components/hds/form/radio/base.js.map +1 -1
  373. package/dist/components/hds/form/radio/field.js.map +1 -1
  374. package/dist/components/hds/form/radio/group.js.map +1 -1
  375. package/dist/components/hds/form/radio-card/description.js.map +1 -1
  376. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  377. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  378. package/dist/components/hds/form/radio-card/label.js.map +1 -1
  379. package/dist/components/hds/form/radio-card/types.js.map +1 -1
  380. package/dist/components/hds/form/select/base.js.map +1 -1
  381. package/dist/components/hds/form/select/field.js.map +1 -1
  382. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  383. package/dist/components/hds/form/super-select/multiple/base.js +20 -20
  384. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  385. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  386. package/dist/components/hds/form/super-select/option-group.js +4 -3
  387. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  388. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  389. package/dist/components/hds/form/super-select/single/base.js +3 -3
  390. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  391. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  392. package/dist/components/hds/form/super-select/types.js.map +1 -1
  393. package/dist/components/hds/form/text-input/base.js.map +1 -1
  394. package/dist/components/hds/form/text-input/field.js +9 -9
  395. package/dist/components/hds/form/text-input/field.js.map +1 -1
  396. package/dist/components/hds/form/text-input/types.js.map +1 -1
  397. package/dist/components/hds/form/textarea/base.js.map +1 -1
  398. package/dist/components/hds/form/textarea/field.js.map +1 -1
  399. package/dist/components/hds/form/toggle/base.js.map +1 -1
  400. package/dist/components/hds/form/toggle/field.js.map +1 -1
  401. package/dist/components/hds/form/toggle/group.js.map +1 -1
  402. package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
  403. package/dist/components/hds/icon/index.js +5 -5
  404. package/dist/components/hds/icon/index.js.map +1 -1
  405. package/dist/components/hds/icon/types.js.map +1 -1
  406. package/dist/components/hds/icon-tile/index.js.map +1 -1
  407. package/dist/components/hds/icon-tile/types.js.map +1 -1
  408. package/dist/components/hds/interactive/index.js +2 -2
  409. package/dist/components/hds/interactive/index.js.map +1 -1
  410. package/dist/components/hds/link/inline.js.map +1 -1
  411. package/dist/components/hds/link/standalone.js.map +1 -1
  412. package/dist/components/hds/link/types.js.map +1 -1
  413. package/dist/components/hds/menu-primitive/index.js +3 -3
  414. package/dist/components/hds/menu-primitive/index.js.map +1 -1
  415. package/dist/components/hds/modal/body.js.map +1 -1
  416. package/dist/components/hds/modal/footer.js.map +1 -1
  417. package/dist/components/hds/modal/header.js.map +1 -1
  418. package/dist/components/hds/modal/index.js +32 -32
  419. package/dist/components/hds/modal/index.js.map +1 -1
  420. package/dist/components/hds/modal/types.js.map +1 -1
  421. package/dist/components/hds/page-header/actions.js.map +1 -1
  422. package/dist/components/hds/page-header/badges.js.map +1 -1
  423. package/dist/components/hds/page-header/description.js.map +1 -1
  424. package/dist/components/hds/page-header/index.js.map +1 -1
  425. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  426. package/dist/components/hds/page-header/title.js.map +1 -1
  427. package/dist/components/hds/pagination/compact/index.js +11 -11
  428. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  429. package/dist/components/hds/pagination/info/index.js.map +1 -1
  430. package/dist/components/hds/pagination/nav/arrow.js +2 -2
  431. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  432. package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
  433. package/dist/components/hds/pagination/nav/number.js +2 -2
  434. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  435. package/dist/components/hds/pagination/numbered/index.js +15 -15
  436. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  437. package/dist/components/hds/pagination/size-selector/index.js +4 -4
  438. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  439. package/dist/components/hds/pagination/types.js.map +1 -1
  440. package/dist/components/hds/popover-primitive/index.js +52 -52
  441. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  442. package/dist/components/hds/reveal/index.js +4 -4
  443. package/dist/components/hds/reveal/index.js.map +1 -1
  444. package/dist/components/hds/reveal/toggle/button.js.map +1 -1
  445. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  446. package/dist/components/hds/rich-tooltip/index.js +5 -5
  447. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  448. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  449. package/dist/components/hds/rich-tooltip/types.js.map +1 -1
  450. package/dist/components/hds/segmented-group/index.js.map +1 -1
  451. package/dist/components/hds/separator/index.js.map +1 -1
  452. package/dist/components/hds/separator/types.js.map +1 -1
  453. package/dist/components/hds/side-nav/base.js.map +1 -1
  454. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  455. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  456. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  457. package/dist/components/hds/side-nav/index.js +3 -3
  458. package/dist/components/hds/side-nav/index.js.map +1 -1
  459. package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
  460. package/dist/components/hds/side-nav/list/index.js +3 -3
  461. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  462. package/dist/components/hds/side-nav/list/item.js.map +1 -1
  463. package/dist/components/hds/side-nav/list/link.js.map +1 -1
  464. package/dist/components/hds/side-nav/list/title.js +2 -2
  465. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  466. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  467. package/dist/components/hds/side-nav/portal/target.js +3 -3
  468. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  469. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  470. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  471. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  472. package/dist/components/hds/stepper/types.js.map +1 -1
  473. package/dist/components/hds/table/index.js +26 -26
  474. package/dist/components/hds/table/index.js.map +1 -1
  475. package/dist/components/hds/table/td.js.map +1 -1
  476. package/dist/components/hds/table/th-button-sort.js +4 -4
  477. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  478. package/dist/components/hds/table/th-button-tooltip.js +3 -3
  479. package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
  480. package/dist/components/hds/table/th-selectable.js +7 -7
  481. package/dist/components/hds/table/th-selectable.js.map +1 -1
  482. package/dist/components/hds/table/th-sort.js +4 -4
  483. package/dist/components/hds/table/th-sort.js.map +1 -1
  484. package/dist/components/hds/table/th.js +4 -4
  485. package/dist/components/hds/table/th.js.map +1 -1
  486. package/dist/components/hds/table/tr.js.map +1 -1
  487. package/dist/components/hds/table/types.js.map +1 -1
  488. package/dist/components/hds/tabs/index.js +40 -40
  489. package/dist/components/hds/tabs/index.js.map +1 -1
  490. package/dist/components/hds/tabs/panel.js +9 -8
  491. package/dist/components/hds/tabs/panel.js.map +1 -1
  492. package/dist/components/hds/tabs/tab.js +6 -5
  493. package/dist/components/hds/tabs/tab.js.map +1 -1
  494. package/dist/components/hds/tabs/types.js.map +1 -1
  495. package/dist/components/hds/tag/index.js.map +1 -1
  496. package/dist/components/hds/tag/types.js.map +1 -1
  497. package/dist/components/hds/text/body.js.map +1 -1
  498. package/dist/components/hds/text/code.js.map +1 -1
  499. package/dist/components/hds/text/display.js.map +1 -1
  500. package/dist/components/hds/text/index.js.map +1 -1
  501. package/dist/components/hds/text/types.js.map +1 -1
  502. package/dist/components/hds/time/index.js +128 -0
  503. package/dist/components/hds/time/index.js.map +1 -0
  504. package/dist/components/hds/time/range.js +66 -0
  505. package/dist/components/hds/time/range.js.map +1 -0
  506. package/dist/components/hds/time/single.js +16 -0
  507. package/dist/components/hds/time/single.js.map +1 -0
  508. package/dist/components/hds/toast/index.js.map +1 -1
  509. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  510. package/dist/components/hds/tooltip-button/types.js.map +1 -1
  511. package/dist/components/hds/yield/index.js.map +1 -1
  512. package/dist/components.js +3 -0
  513. package/dist/components.js.map +1 -1
  514. package/dist/helpers/hds-format-date.js +29 -0
  515. package/dist/helpers/hds-format-date.js.map +1 -0
  516. package/dist/helpers/hds-format-relative.js +29 -0
  517. package/dist/helpers/hds-format-relative.js.map +1 -0
  518. package/dist/helpers/hds-link-to-models.js.map +1 -1
  519. package/dist/helpers/hds-link-to-query.js.map +1 -1
  520. package/dist/instance-initializers/load-sprite.js.map +1 -1
  521. package/dist/modifiers/hds-anchored-position.js +12 -8
  522. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  523. package/dist/modifiers/hds-clipboard.js.map +1 -1
  524. package/dist/modifiers/hds-register-event.js +4 -4
  525. package/dist/modifiers/hds-register-event.js.map +1 -1
  526. package/dist/modifiers/hds-tooltip.js +19 -19
  527. package/dist/modifiers/hds-tooltip.js.map +1 -1
  528. package/dist/services/hds-time-types.js +2 -0
  529. package/dist/services/hds-time-types.js.map +1 -0
  530. package/dist/services/hds-time.js +215 -0
  531. package/dist/services/hds-time.js.map +1 -0
  532. package/dist/services.js +2 -0
  533. package/dist/services.js.map +1 -0
  534. package/dist/styles/@hashicorp/design-system-components.css +101 -114
  535. package/dist/styles/@hashicorp/design-system-components.scss +1 -0
  536. package/dist/styles/components/alert.scss +0 -1
  537. package/dist/styles/components/app-side-nav/index.scss +4 -4
  538. package/dist/styles/components/badge-count.scss +6 -5
  539. package/dist/styles/components/badge.scss +11 -9
  540. package/dist/styles/components/code-block/index.scss +1 -1
  541. package/dist/styles/components/copy/index.scss +2 -2
  542. package/dist/styles/components/dropdown.scss +14 -7
  543. package/dist/styles/components/icon-tile.scss +19 -23
  544. package/dist/styles/components/link/index.scss +2 -2
  545. package/dist/styles/components/link/standalone.scss +5 -4
  546. package/dist/styles/components/page-header.scss +4 -1
  547. package/dist/styles/components/side-nav/index.scss +6 -6
  548. package/dist/styles/components/stepper/index.scss +2 -2
  549. package/dist/styles/components/stepper/step-indicator.scss +14 -12
  550. package/dist/styles/components/stepper/task-indicator.scss +5 -3
  551. package/dist/styles/components/tabs.scss +4 -3
  552. package/dist/styles/components/time.scss +13 -0
  553. package/dist/styles/mixins/_button.scss +11 -9
  554. package/dist/utils/hds-aria-described-by.js +3 -3
  555. package/dist/utils/hds-aria-described-by.js.map +1 -1
  556. package/dist/utils/hds-get-element-id.js.map +1 -1
  557. package/package.json +14 -6
  558. package/dist/_rollupPluginBabelHelpers-KIi_qCIU.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
@@ -27,7 +27,7 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
27
27
  // at rendering time, but from that moment on it's not updated anymore, no matter what interaction the user
28
28
  // has with the component (the state is controlled externally, eg. via query parameters)
29
29
  _initializerDefineProperty(this, "_currentPageSize", _descriptor, this);
30
- _initializerDefineProperty(this, "isControlled", _descriptor2, this);
30
+ _initializerDefineProperty(this, "_isControlled", _descriptor2, this);
31
31
  _defineProperty(this, "showLabels", this.args.showLabels ?? true);
32
32
  // if the labels for the "prev/next" controls are visible
33
33
  _defineProperty(this, "showSizeSelector", this.args.showSizeSelector ?? false);
@@ -44,11 +44,11 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
44
44
  // initialized and updated using the arguments passed to it.
45
45
 
46
46
  if (queryFunction === undefined) {
47
- this.isControlled = false;
47
+ this._isControlled = false;
48
48
  } else {
49
49
  assert('@model, @models, or @route for "Hds::Pagination::Compact" must be provided when using the `@queryFunction` argument', this.args.model !== undefined || this.args.models !== undefined || this.args.route !== undefined);
50
50
  assert('@queryFunction for "Hds::Pagination::Compact" must be a function', typeof queryFunction === 'function');
51
- this.isControlled = true;
51
+ this._isControlled = true;
52
52
  }
53
53
 
54
54
  // we assert that `this.pageSizes` will always be an array with at least one item
@@ -72,14 +72,14 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
72
72
  // For this reason the "get" and "set" methods always read from or write to the private internal state (_variable).
73
73
 
74
74
  get currentPageSize() {
75
- if (this.isControlled) {
75
+ if (this._isControlled) {
76
76
  return this.args.currentPageSize;
77
77
  } else {
78
78
  return this._currentPageSize;
79
79
  }
80
80
  }
81
81
  set currentPageSize(value) {
82
- if (this.isControlled) ; else {
82
+ if (this._isControlled) ; else {
83
83
  this._currentPageSize = value;
84
84
  }
85
85
  }
@@ -91,7 +91,7 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
91
91
  return pageSizes;
92
92
  }
93
93
  buildQueryParamsObject(page, pageSize) {
94
- if (this.isControlled) {
94
+ if (this._isControlled) {
95
95
  // if the component is controlled, we can assert that the queryFunction is defined
96
96
  return this.args.queryFunction(page, pageSize);
97
97
  } else {
@@ -107,7 +107,7 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
107
107
  };
108
108
 
109
109
  // the "query" is dynamic and needs to be calculated
110
- if (this.isControlled) {
110
+ if (this._isControlled) {
111
111
  routing.queryPrev = this.buildQueryParamsObject(HdsPaginationDirectionValues.Prev, this.currentPageSize);
112
112
  routing.queryNext = this.buildQueryParamsObject(HdsPaginationDirectionValues.Next, this.currentPageSize);
113
113
  } else {
@@ -134,17 +134,17 @@ let HdsPaginationCompact = (_class = class HdsPaginationCompact extends Componen
134
134
  onPageSizeChange(newPageSize);
135
135
  }
136
136
  }
137
- }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "_currentPageSize", [tracked], {
137
+ }, _descriptor = _applyDecoratedDescriptor(_class.prototype, "_currentPageSize", [tracked], {
138
138
  configurable: true,
139
139
  enumerable: true,
140
140
  writable: true,
141
141
  initializer: null
142
- }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "isControlled", [tracked], {
142
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "_isControlled", [tracked], {
143
143
  configurable: true,
144
144
  enumerable: true,
145
145
  writable: true,
146
146
  initializer: null
147
- }), _applyDecoratedDescriptor(_class.prototype, "onPageChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPageSizeChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageSizeChange"), _class.prototype)), _class);
147
+ }), _applyDecoratedDescriptor(_class.prototype, "onPageChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPageSizeChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageSizeChange"), _class.prototype), _class);
148
148
  setComponentTemplate(TEMPLATE, HdsPaginationCompact);
149
149
 
150
150
  export { DEFAULT_PAGE_SIZES, HdsPaginationCompact as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/compact/index.hbs","../../../../../src/components/hds/pagination/compact/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<div class=\\\"hds-pagination\\\" ...attributes>\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{@isDisabledPrev}}\\n />\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{@isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { HdsPaginationDirectionValues } from '../types.ts';\n\nimport type {\n HdsPaginationRoutingProps,\n HdsPaginationDirections,\n} from '../types';\nimport type { HdsInteractiveSignature } from '../../interactive';\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationCompactRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n};\n\ntype HdsPaginationQueryFunction = (\n page: HdsPaginationDirections,\n pageSize?: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationCompactArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n showLabels?: boolean;\n isDisabledPrev?: boolean;\n isDisabledNext?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: HdsPaginationDirections) => void;\n onPageSizeChange?: (pageSize: number) => void;\n}\n\ninterface HdsPaginationCompactArgsControlledBase\n extends HdsPaginationCompactArgs {\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationCompactArgsControlledWithModel\n extends HdsPaginationCompactArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationCompactArgsControlledWithModels\n extends HdsPaginationCompactArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationCompactArgsControlledWithRoute\n extends HdsPaginationCompactArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationCompactArgsControlled =\n | HdsPaginationCompactArgsControlledWithModel\n | HdsPaginationCompactArgsControlledWithModels\n | HdsPaginationCompactArgsControlledWithRoute;\n\ninterface HdsPaginationCompactArgsUncontrolled\n extends HdsPaginationCompactArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationCompactSignature {\n Args:\n | HdsPaginationCompactArgsControlled\n | HdsPaginationCompactArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\nexport default class HdsPaginationCompact extends Component<HdsPaginationCompactSignature> {\n // This private variable is used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, the variable stores the internal state of the component at any moment,\n // and its value is updated internally according to the user's interaction with the component.\n // In the second case, the variable stores *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on it's not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked _currentPageSize;\n @tracked isControlled;\n\n showLabels = this.args.showLabels ?? true; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? false; // if the \"size selector\" block is visible\n\n constructor(owner: unknown, args: HdsPaginationCompactSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this.isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Compact\" must be provided when using the `@queryFunction` argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Compact\" must be a function',\n typeof queryFunction === 'function'\n );\n this.isControlled = true;\n }\n\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPageSize` variable\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPageSize(): number | undefined {\n if (this.isControlled) {\n return this.args.currentPageSize;\n } else {\n return this._currentPageSize;\n }\n }\n set currentPageSize(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n `pageSizes argument must be an array. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n buildQueryParamsObject(\n page: HdsPaginationDirections,\n pageSize?: number\n ): HdsInteractiveQuery {\n if (this.isControlled) {\n // if the component is controlled, we can assert that the queryFunction is defined\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationCompactRoutingQueryProps {\n const routing: HdsPaginationCompactRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this.isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n HdsPaginationDirectionValues.Prev,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n HdsPaginationDirectionValues.Next,\n this.currentPageSize\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n @action\n onPageChange(newPage: HdsPaginationDirections): void {\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(newPage);\n }\n }\n\n @action\n onPageSizeChange(newPageSize: number): void {\n const { onPageSizeChange } = this.args;\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n}\n"],"names":["DEFAULT_PAGE_SIZES","HdsPaginationCompact","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_defineProperty","showLabels","showSizeSelector","queryFunction","undefined","isControlled","assert","model","models","route","_currentPageSize","currentPageSize","pageSizes","ariaLabel","value","Array","isArray","length","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","HdsPaginationDirectionValues","Prev","queryNext","Next","onPageChange","newPage","onPageSizeChange","newPageSize","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/compact/index.hbs","../../../../../src/components/hds/pagination/compact/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<div class=\\\"hds-pagination\\\" ...attributes>\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{@isDisabledPrev}}\\n />\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{@isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { HdsPaginationDirectionValues } from '../types.ts';\n\nimport type {\n HdsPaginationRoutingProps,\n HdsPaginationDirections,\n} from '../types';\nimport type { HdsInteractiveSignature } from '../../interactive';\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationCompactRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n};\n\ntype HdsPaginationQueryFunction = (\n page: HdsPaginationDirections,\n pageSize?: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationCompactArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n showLabels?: boolean;\n isDisabledPrev?: boolean;\n isDisabledNext?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: HdsPaginationDirections) => void;\n onPageSizeChange?: (pageSize: number) => void;\n}\n\ninterface HdsPaginationCompactArgsControlledBase\n extends HdsPaginationCompactArgs {\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationCompactArgsControlledWithModel\n extends HdsPaginationCompactArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationCompactArgsControlledWithModels\n extends HdsPaginationCompactArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationCompactArgsControlledWithRoute\n extends HdsPaginationCompactArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationCompactArgsControlled =\n | HdsPaginationCompactArgsControlledWithModel\n | HdsPaginationCompactArgsControlledWithModels\n | HdsPaginationCompactArgsControlledWithRoute;\n\ninterface HdsPaginationCompactArgsUncontrolled\n extends HdsPaginationCompactArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationCompactSignature {\n Args:\n | HdsPaginationCompactArgsControlled\n | HdsPaginationCompactArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\nexport default class HdsPaginationCompact extends Component<HdsPaginationCompactSignature> {\n // This private variable is used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, the variable stores the internal state of the component at any moment,\n // and its value is updated internally according to the user's interaction with the component.\n // In the second case, the variable stores *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on it's not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked private _currentPageSize;\n @tracked private _isControlled;\n\n showLabels = this.args.showLabels ?? true; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? false; // if the \"size selector\" block is visible\n\n constructor(owner: unknown, args: HdsPaginationCompactSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this._isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Compact\" must be provided when using the `@queryFunction` argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Compact\" must be a function',\n typeof queryFunction === 'function'\n );\n this._isControlled = true;\n }\n\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPageSize` variable\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPageSize(): number | undefined {\n if (this._isControlled) {\n return this.args.currentPageSize;\n } else {\n return this._currentPageSize;\n }\n }\n set currentPageSize(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n `pageSizes argument must be an array. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n buildQueryParamsObject(\n page: HdsPaginationDirections,\n pageSize?: number\n ): HdsInteractiveQuery {\n if (this._isControlled) {\n // if the component is controlled, we can assert that the queryFunction is defined\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationCompactRoutingQueryProps {\n const routing: HdsPaginationCompactRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this._isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n HdsPaginationDirectionValues.Prev,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n HdsPaginationDirectionValues.Next,\n this.currentPageSize\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n @action\n onPageChange(newPage: HdsPaginationDirections): void {\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(newPage);\n }\n }\n\n @action\n onPageSizeChange(newPageSize: number): void {\n const { onPageSizeChange } = this.args;\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n}\n"],"names":["DEFAULT_PAGE_SIZES","HdsPaginationCompact","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_defineProperty","showLabels","showSizeSelector","queryFunction","undefined","_isControlled","assert","model","models","route","_currentPageSize","currentPageSize","pageSizes","ariaLabel","value","Array","isArray","length","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","HdsPaginationDirectionValues","Prev","queryNext","Next","onPageChange","newPage","onPageSizeChange","newPageSize","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/info/index.hbs","../../../../../src/components/hds/pagination/info/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<Hds::Text::Body class=\\\"hds-pagination-info\\\" @tag=\\\"div\\\" @size=\\\"100\\\" @weight=\\\"medium\\\" ...attributes>\\n {{@itemsRangeStart}}–{{@itemsRangeEnd}}\\n {{#if this.showTotalItems}}\\n of\\n {{@totalItems}}\\n {{/if}}\\n</Hds::Text::Body>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport type { HdsPaginationNumberedSignature } from '../numbered/index';\nimport type { HdsTextBodySignature } from '../../text/body';\nexport interface HdsPaginationInfoSignature {\n Args: {\n itemsRangeStart: number;\n itemsRangeEnd: number;\n showTotalItems?: HdsPaginationNumberedSignature['Args']['showTotalItems'];\n totalItems: HdsPaginationNumberedSignature['Args']['totalItems'];\n };\n Element: HdsTextBodySignature['Element'];\n}\n\nexport default class HdsPaginationInfo extends Component<HdsPaginationInfoSignature> {\n get showTotalItems(): boolean {\n return this.args.showTotalItems ?? true;\n }\n}\n"],"names":["HdsPaginationInfo","Component","showTotalItems","args","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,iUAAiU;;ACDnW;AACA;AACA;AACA;;AAee,MAAMA,iBAAiB,SAASC,SAAS,CAA6B;EACnF,IAAIC,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,cAAc,IAAI,IAAI,CAAA;AACzC,GAAA;AACF,CAAA;AAACE,oBAAA,CAAAC,QAAA,EAJoBL,iBAAiB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/info/index.hbs","../../../../../src/components/hds/pagination/info/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<Hds::Text::Body class=\\\"hds-pagination-info\\\" @tag=\\\"div\\\" @size=\\\"100\\\" @weight=\\\"medium\\\" ...attributes>\\n {{@itemsRangeStart}}–{{@itemsRangeEnd}}\\n {{#if this.showTotalItems}}\\n of\\n {{@totalItems}}\\n {{/if}}\\n</Hds::Text::Body>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport type { HdsPaginationNumberedSignature } from '../numbered/index';\nimport type { HdsTextBodySignature } from '../../text/body';\nexport interface HdsPaginationInfoSignature {\n Args: {\n itemsRangeStart: number;\n itemsRangeEnd: number;\n showTotalItems?: HdsPaginationNumberedSignature['Args']['showTotalItems'];\n totalItems: HdsPaginationNumberedSignature['Args']['totalItems'];\n };\n Element: HdsTextBodySignature['Element'];\n}\n\nexport default class HdsPaginationInfo extends Component<HdsPaginationInfoSignature> {\n get showTotalItems(): boolean {\n return this.args.showTotalItems ?? true;\n }\n}\n"],"names":["HdsPaginationInfo","Component","showTotalItems","args","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,iUAAiU;;ACDnW;AACA;AACA;AACA;;AAee,MAAMA,iBAAiB,SAASC,SAAS,CAA6B;EACnF,IAAIC,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,cAAc,IAAI,IAAI;AACzC;AACF;AAACE,oBAAA,CAAAC,QAAA,EAJoBL,iBAAiB,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor } from '../../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { action } from '@ember/object';
4
4
  import { assert } from '@ember/debug';
@@ -48,7 +48,7 @@ let HdsPaginationControlArrow = (_class = class HdsPaginationControlArrow extend
48
48
  onClick(this.args.direction);
49
49
  }
50
50
  }
51
- }, (_applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype)), _class);
51
+ }, _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _class);
52
52
  setComponentTemplate(TEMPLATE, HdsPaginationControlArrow);
53
53
 
54
54
  export { DIRECTIONS, HdsPaginationControlArrow as default };
@@ -1 +1 @@
1
- {"version":3,"file":"arrow.js","sources":["../../../../../src/components/hds/pagination/nav/arrow.hbs","../../../../../src/components/hds/pagination/nav/arrow.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{{#if @disabled}}\\n <Hds::Interactive class={{this.classNames}} aria-label={{this.content.ariaLabel}} disabled={{true}} ...attributes>\\n <Hds::Icon @name={{this.content.icon}} />\\n {{#if this.showLabel}}\\n <Hds::Text::Body\\n class=\\\"hds-pagination-nav__arrow-label\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n {{this.content.label}}\\n </Hds::Text::Body>\\n {{/if}}\\n </Hds::Interactive>\\n{{else}}\\n <Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n aria-label={{this.content.ariaLabel}}\\n ...attributes\\n >\\n <Hds::Icon @name={{this.content.icon}} />\\n {{#if this.showLabel}}\\n <Hds::Text::Body\\n class=\\\"hds-pagination-nav__arrow-label\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n {{this.content.label}}\\n </Hds::Text::Body>\\n {{/if}}\\n </Hds::Interactive>\\n{{/if}}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport {\n HdsPaginationDirectionValues,\n HdsPaginationDirectionAriaLabelValues,\n HdsPaginationDirectionLabelValues,\n} from '../types.ts';\n\nimport type { HdsIconSignature } from '../../icon/index.ts';\nimport type { HdsInteractiveSignature } from '../../interactive';\nimport type {\n HdsPaginationDirections,\n HdsPaginationDirectionAriaLabels,\n HdsPaginationDirectionLabels,\n} from '../types';\n\ninterface HdsPaginationControlArrowContent {\n label: HdsPaginationDirectionLabels;\n icon: HdsIconSignature['Args']['name'];\n ariaLabel: HdsPaginationDirectionAriaLabels;\n}\n\ninterface HdsPaginationControlArrowArgs {\n direction: HdsPaginationDirections;\n disabled?: boolean;\n showLabel?: boolean;\n onClick?: (direction: HdsPaginationDirections) => void;\n}\n\nexport interface HdsPaginationControlArrowSignature {\n Args: HdsPaginationControlArrowArgs & HdsInteractiveSignature['Args'];\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport const DIRECTIONS: HdsPaginationDirections[] = [\n HdsPaginationDirectionValues.Prev,\n HdsPaginationDirectionValues.Next,\n];\n\nexport default class HdsPaginationControlArrow extends Component<HdsPaginationControlArrowSignature> {\n get content(): HdsPaginationControlArrowContent {\n const { direction } = this.args;\n\n assert(\n `@direction for \"Pagination::Nav::Arrow\" must be one of the following: ${DIRECTIONS.join(\n ', '\n )}; received: ${direction}`,\n DIRECTIONS.includes(direction)\n );\n\n const hdsPaginationNavArrowContentDirectionMap: Record<\n HdsPaginationDirections,\n HdsPaginationControlArrowContent\n > = {\n [HdsPaginationDirectionValues.Prev]: {\n label: HdsPaginationDirectionLabelValues.Prev,\n icon: 'chevron-left',\n ariaLabel: HdsPaginationDirectionAriaLabelValues.Prev,\n },\n [HdsPaginationDirectionValues.Next]: {\n label: HdsPaginationDirectionLabelValues.Next,\n icon: 'chevron-right',\n ariaLabel: HdsPaginationDirectionAriaLabelValues.Next,\n },\n };\n\n return hdsPaginationNavArrowContentDirectionMap[direction];\n }\n\n get showLabel(): boolean {\n const { showLabel = true } = this.args;\n\n return showLabel;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-pagination-nav__control',\n 'hds-pagination-nav__arrow',\n `hds-pagination-nav__arrow--direction-${this.args.direction}`,\n ];\n\n return classes.join(' ');\n }\n\n @action\n onClick(): void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.direction);\n }\n }\n}\n"],"names":["DIRECTIONS","HdsPaginationDirectionValues","Prev","Next","HdsPaginationControlArrow","_class","Component","content","direction","args","assert","join","includes","hdsPaginationNavArrowContentDirectionMap","label","HdsPaginationDirectionLabelValues","icon","ariaLabel","HdsPaginationDirectionAriaLabelValues","showLabel","classNames","classes","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,4tCAA4tC;;;ACsCvvC,MAAMA,UAAqC,GAAG,CACnDC,4BAA4B,CAACC,IAAI,EACjCD,4BAA4B,CAACE,IAAI,EAClC;AAEoBC,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAqC;EACnG,IAAIC,OAAOA,GAAqC;IAC9C,MAAM;AAAEC,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACC,IAAI,CAAA;AAE/BC,IAAAA,MAAM,CACJ,CAAyEV,sEAAAA,EAAAA,UAAU,CAACW,IAAI,CACtF,IACF,CAAC,CAAA,YAAA,EAAeH,SAAS,CAAA,CAAE,EAC3BR,UAAU,CAACY,QAAQ,CAACJ,SAAS,CAC/B,CAAC,CAAA;AAED,IAAA,MAAMK,wCAGL,GAAG;MACF,CAACZ,4BAA4B,CAACC,IAAI,GAAG;QACnCY,KAAK,EAAEC,iCAAiC,CAACb,IAAI;AAC7Cc,QAAAA,IAAI,EAAE,cAAc;QACpBC,SAAS,EAAEC,qCAAqC,CAAChB,IAAAA;OAClD;MACD,CAACD,4BAA4B,CAACE,IAAI,GAAG;QACnCW,KAAK,EAAEC,iCAAiC,CAACZ,IAAI;AAC7Ca,QAAAA,IAAI,EAAE,eAAe;QACrBC,SAAS,EAAEC,qCAAqC,CAACf,IAAAA;AACnD,OAAA;KACD,CAAA;IAED,OAAOU,wCAAwC,CAACL,SAAS,CAAC,CAAA;AAC5D,GAAA;EAEA,IAAIW,SAASA,GAAY;IACvB,MAAM;AAAEA,MAAAA,SAAS,GAAG,IAAA;KAAM,GAAG,IAAI,CAACV,IAAI,CAAA;AAEtC,IAAA,OAAOU,SAAS,CAAA;AAClB,GAAA;EAEA,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,6BAA6B,EAC7B,2BAA2B,EAC3B,CAAwC,qCAAA,EAAA,IAAI,CAACZ,IAAI,CAACD,SAAS,EAAE,CAC9D,CAAA;AAED,IAAA,OAAOa,OAAO,CAACV,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AAGAW,EAAAA,OAAOA,GAAS;IACd,MAAM;AAAEA,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACb,IAAI,CAAA;AAE7B,IAAA,IAAI,OAAOa,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACb,IAAI,CAACD,SAAS,CAAC,CAAA;AAC9B,KAAA;AACF,GAAA;AACF,CAAC,GAAAe,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,cAAAnB,MAAA,CAAAmB,SAAA,CAAA,GAAAnB,MAAA,EAAA;AA9CqCuB,oBAAA,CAAAC,QAAA,EAAzBzB,yBAAyB,CAAA;;;;"}
1
+ {"version":3,"file":"arrow.js","sources":["../../../../../src/components/hds/pagination/nav/arrow.hbs","../../../../../src/components/hds/pagination/nav/arrow.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{{#if @disabled}}\\n <Hds::Interactive class={{this.classNames}} aria-label={{this.content.ariaLabel}} disabled={{true}} ...attributes>\\n <Hds::Icon @name={{this.content.icon}} />\\n {{#if this.showLabel}}\\n <Hds::Text::Body\\n class=\\\"hds-pagination-nav__arrow-label\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n {{this.content.label}}\\n </Hds::Text::Body>\\n {{/if}}\\n </Hds::Interactive>\\n{{else}}\\n <Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n aria-label={{this.content.ariaLabel}}\\n ...attributes\\n >\\n <Hds::Icon @name={{this.content.icon}} />\\n {{#if this.showLabel}}\\n <Hds::Text::Body\\n class=\\\"hds-pagination-nav__arrow-label\\\"\\n @tag=\\\"span\\\"\\n @size=\\\"100\\\"\\n @weight=\\\"medium\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n {{this.content.label}}\\n </Hds::Text::Body>\\n {{/if}}\\n </Hds::Interactive>\\n{{/if}}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport {\n HdsPaginationDirectionValues,\n HdsPaginationDirectionAriaLabelValues,\n HdsPaginationDirectionLabelValues,\n} from '../types.ts';\n\nimport type { HdsIconSignature } from '../../icon/index.ts';\nimport type { HdsInteractiveSignature } from '../../interactive';\nimport type {\n HdsPaginationDirections,\n HdsPaginationDirectionAriaLabels,\n HdsPaginationDirectionLabels,\n} from '../types';\n\ninterface HdsPaginationControlArrowContent {\n label: HdsPaginationDirectionLabels;\n icon: HdsIconSignature['Args']['name'];\n ariaLabel: HdsPaginationDirectionAriaLabels;\n}\n\ninterface HdsPaginationControlArrowArgs {\n direction: HdsPaginationDirections;\n disabled?: boolean;\n showLabel?: boolean;\n onClick?: (direction: HdsPaginationDirections) => void;\n}\n\nexport interface HdsPaginationControlArrowSignature {\n Args: HdsPaginationControlArrowArgs & HdsInteractiveSignature['Args'];\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport const DIRECTIONS: HdsPaginationDirections[] = [\n HdsPaginationDirectionValues.Prev,\n HdsPaginationDirectionValues.Next,\n];\n\nexport default class HdsPaginationControlArrow extends Component<HdsPaginationControlArrowSignature> {\n get content(): HdsPaginationControlArrowContent {\n const { direction } = this.args;\n\n assert(\n `@direction for \"Pagination::Nav::Arrow\" must be one of the following: ${DIRECTIONS.join(\n ', '\n )}; received: ${direction}`,\n DIRECTIONS.includes(direction)\n );\n\n const hdsPaginationNavArrowContentDirectionMap: Record<\n HdsPaginationDirections,\n HdsPaginationControlArrowContent\n > = {\n [HdsPaginationDirectionValues.Prev]: {\n label: HdsPaginationDirectionLabelValues.Prev,\n icon: 'chevron-left',\n ariaLabel: HdsPaginationDirectionAriaLabelValues.Prev,\n },\n [HdsPaginationDirectionValues.Next]: {\n label: HdsPaginationDirectionLabelValues.Next,\n icon: 'chevron-right',\n ariaLabel: HdsPaginationDirectionAriaLabelValues.Next,\n },\n };\n\n return hdsPaginationNavArrowContentDirectionMap[direction];\n }\n\n get showLabel(): boolean {\n const { showLabel = true } = this.args;\n\n return showLabel;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-pagination-nav__control',\n 'hds-pagination-nav__arrow',\n `hds-pagination-nav__arrow--direction-${this.args.direction}`,\n ];\n\n return classes.join(' ');\n }\n\n @action\n onClick(): void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.direction);\n }\n }\n}\n"],"names":["DIRECTIONS","HdsPaginationDirectionValues","Prev","Next","HdsPaginationControlArrow","_class","Component","content","direction","args","assert","join","includes","hdsPaginationNavArrowContentDirectionMap","label","HdsPaginationDirectionLabelValues","icon","ariaLabel","HdsPaginationDirectionAriaLabelValues","showLabel","classNames","classes","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,4tCAA4tC;;;ACsCvvC,MAAMA,UAAqC,GAAG,CACnDC,4BAA4B,CAACC,IAAI,EACjCD,4BAA4B,CAACE,IAAI;AAGdC,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAqC;EACnG,IAAIC,OAAOA,GAAqC;IAC9C,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACC,IAAI;AAE/BC,IAAAA,MAAM,CACJ,CAAyEV,sEAAAA,EAAAA,UAAU,CAACW,IAAI,CACtF,IACF,CAAC,CAAA,YAAA,EAAeH,SAAS,CAAA,CAAE,EAC3BR,UAAU,CAACY,QAAQ,CAACJ,SAAS,CAC/B,CAAC;AAED,IAAA,MAAMK,wCAGL,GAAG;MACF,CAACZ,4BAA4B,CAACC,IAAI,GAAG;QACnCY,KAAK,EAAEC,iCAAiC,CAACb,IAAI;AAC7Cc,QAAAA,IAAI,EAAE,cAAc;QACpBC,SAAS,EAAEC,qCAAqC,CAAChB;OAClD;MACD,CAACD,4BAA4B,CAACE,IAAI,GAAG;QACnCW,KAAK,EAAEC,iCAAiC,CAACZ,IAAI;AAC7Ca,QAAAA,IAAI,EAAE,eAAe;QACrBC,SAAS,EAAEC,qCAAqC,CAACf;AACnD;KACD;IAED,OAAOU,wCAAwC,CAACL,SAAS,CAAC;AAC5D;EAEA,IAAIW,SAASA,GAAY;IACvB,MAAM;AAAEA,MAAAA,SAAS,GAAG;KAAM,GAAG,IAAI,CAACV,IAAI;AAEtC,IAAA,OAAOU,SAAS;AAClB;EAEA,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,6BAA6B,EAC7B,2BAA2B,EAC3B,CAAwC,qCAAA,EAAA,IAAI,CAACZ,IAAI,CAACD,SAAS,EAAE,CAC9D;AAED,IAAA,OAAOa,OAAO,CAACV,IAAI,CAAC,GAAG,CAAC;AAC1B;AAGAW,EAAAA,OAAOA,GAAS;IACd,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACb,IAAI;AAE7B,IAAA,IAAI,OAAOa,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACb,IAAI,CAACD,SAAS,CAAC;AAC9B;AACF;AACF,CAAC,EAAAe,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,cAAAnB,MAAA,CAAAmB,SAAA,CAAA,EAAAnB,MAAA;AA9CqCuB,oBAAA,CAAAC,QAAA,EAAzBzB,yBAAyB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ellipsis.js","sources":["../../../../../src/components/hds/pagination/nav/ellipsis.hbs","../../../../../src/components/hds/pagination/nav/ellipsis.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=\\\"hds-pagination-nav__ellipsis\\\" ...attributes>...</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nexport interface HdsApplicationPaginationNavEllipsisSignature {\n Element: HTMLDivElement;\n}\n\nconst HdsApplicationPaginationNavEllipsis =\n TemplateOnlyComponent<HdsApplicationPaginationNavEllipsisSignature>();\n\nexport default HdsApplicationPaginationNavEllipsis;\n"],"names":["HdsApplicationPaginationNavEllipsis","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,mJAAmJ;;ACDrL;AACA;AACA;AACA;AAOA,MAAMA,mCAAmC,GACvCC,qBAAqB,EAAgD,CAAA;AAEvE,eAAAC,oBAAA,CAAAC,QAAA,EAAeH,mCAAmC,CAAA;;;;"}
1
+ {"version":3,"file":"ellipsis.js","sources":["../../../../../src/components/hds/pagination/nav/ellipsis.hbs","../../../../../src/components/hds/pagination/nav/ellipsis.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=\\\"hds-pagination-nav__ellipsis\\\" ...attributes>...</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nexport interface HdsApplicationPaginationNavEllipsisSignature {\n Element: HTMLDivElement;\n}\n\nconst HdsApplicationPaginationNavEllipsis =\n TemplateOnlyComponent<HdsApplicationPaginationNavEllipsisSignature>();\n\nexport default HdsApplicationPaginationNavEllipsis;\n"],"names":["HdsApplicationPaginationNavEllipsis","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,mJAAmJ;;ACDrL;AACA;AACA;AACA;AAOA,MAAMA,mCAAmC,GACvCC,qBAAqB,EAAgD;AAEvE,eAAAC,oBAAA,CAAAC,QAAA,EAAeH,mCAAmC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor } from '../../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { action } from '@ember/object';
4
4
  import { assert } from '@ember/debug';
@@ -31,7 +31,7 @@ let HdsPaginationControlNumber = (_class = class HdsPaginationControlNumber exte
31
31
  onClick(this.args.page);
32
32
  }
33
33
  }
34
- }, (_applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype)), _class);
34
+ }, _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _class);
35
35
  setComponentTemplate(TEMPLATE, HdsPaginationControlNumber);
36
36
 
37
37
  export { HdsPaginationControlNumber as default };
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sources":["../../../../../src/components/hds/pagination/nav/number.hbs","../../../../../src/components/hds/pagination/nav/number.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<Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n ...attributes\\n aria-current={{if @isSelected \\\"page\\\" null}}\\n>\\n <Hds::Text::Body @tag=\\\"span\\\" @size=\\\"100\\\" @weight=\\\"medium\\\"><span class=\\\"sr-only\\\">page\\n </span>{{this.page}}</Hds::Text::Body>\\n</Hds::Interactive>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\n\nimport type { HdsInteractiveSignature } from '../../interactive';\n\ninterface HdsPaginationNavNumberArgs {\n page: number;\n onClick: (page: number) => void;\n isSelected: boolean;\n}\n\nexport interface HdsPaginationNavNumberSignature {\n Args: HdsPaginationNavNumberArgs & HdsInteractiveSignature['Args'];\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsPaginationControlNumber extends Component<HdsPaginationNavNumberSignature> {\n get page(): number {\n const { page } = this.args;\n\n assert(\n '@page for \"Pagination::Nav::Number\" must have a valid value',\n page !== undefined\n );\n\n return page;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-pagination-nav__control',\n 'hds-pagination-nav__number',\n ];\n\n if (this.args.isSelected) {\n classes.push(`hds-pagination-nav__number--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n @action\n onClick(): void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.page);\n }\n }\n}\n"],"names":["HdsPaginationControlNumber","_class","Component","page","args","assert","undefined","classNames","classes","isSelected","push","join","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,2gBAA2gB;;;ACoBxhBA,IAAAA,0BAA0B,IAAAC,MAAA,GAAhC,MAAMD,0BAA0B,SAASE,SAAS,CAAkC;EACjG,IAAIC,IAAIA,GAAW;IACjB,MAAM;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACC,IAAI,CAAA;AAE1BC,IAAAA,MAAM,CACJ,6DAA6D,EAC7DF,IAAI,KAAKG,SACX,CAAC,CAAA;AAED,IAAA,OAAOH,IAAI,CAAA;AACb,GAAA;EAEA,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,6BAA6B,EAC7B,4BAA4B,CAC7B,CAAA;AAED,IAAA,IAAI,IAAI,CAACJ,IAAI,CAACK,UAAU,EAAE;AACxBD,MAAAA,OAAO,CAACE,IAAI,CAAC,CAAA,uCAAA,CAAyC,CAAC,CAAA;AACzD,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AAGAC,EAAAA,OAAOA,GAAS;IACd,MAAM;AAAEA,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACR,IAAI,CAAA;AAE7B,IAAA,IAAI,OAAOQ,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACR,IAAI,CAACD,IAAI,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;AACF,CAAC,GAAAU,yBAAA,CAAAZ,MAAA,CAAAa,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAhB,MAAA,CAAAa,SAAA,cAAAb,MAAA,CAAAa,SAAA,CAAA,GAAAb,MAAA,EAAA;AAzBsCiB,oBAAA,CAAAC,QAAA,EAA1BnB,0BAA0B,CAAA;;;;"}
1
+ {"version":3,"file":"number.js","sources":["../../../../../src/components/hds/pagination/nav/number.hbs","../../../../../src/components/hds/pagination/nav/number.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<Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n ...attributes\\n aria-current={{if @isSelected \\\"page\\\" null}}\\n>\\n <Hds::Text::Body @tag=\\\"span\\\" @size=\\\"100\\\" @weight=\\\"medium\\\"><span class=\\\"sr-only\\\">page\\n </span>{{this.page}}</Hds::Text::Body>\\n</Hds::Interactive>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\n\nimport type { HdsInteractiveSignature } from '../../interactive';\n\ninterface HdsPaginationNavNumberArgs {\n page: number;\n onClick: (page: number) => void;\n isSelected: boolean;\n}\n\nexport interface HdsPaginationNavNumberSignature {\n Args: HdsPaginationNavNumberArgs & HdsInteractiveSignature['Args'];\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsPaginationControlNumber extends Component<HdsPaginationNavNumberSignature> {\n get page(): number {\n const { page } = this.args;\n\n assert(\n '@page for \"Pagination::Nav::Number\" must have a valid value',\n page !== undefined\n );\n\n return page;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-pagination-nav__control',\n 'hds-pagination-nav__number',\n ];\n\n if (this.args.isSelected) {\n classes.push(`hds-pagination-nav__number--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n @action\n onClick(): void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.page);\n }\n }\n}\n"],"names":["HdsPaginationControlNumber","_class","Component","page","args","assert","undefined","classNames","classes","isSelected","push","join","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,2gBAA2gB;;;ACoBxhBA,IAAAA,0BAA0B,IAAAC,MAAA,GAAhC,MAAMD,0BAA0B,SAASE,SAAS,CAAkC;EACjG,IAAIC,IAAIA,GAAW;IACjB,MAAM;AAAEA,MAAAA;KAAM,GAAG,IAAI,CAACC,IAAI;AAE1BC,IAAAA,MAAM,CACJ,6DAA6D,EAC7DF,IAAI,KAAKG,SACX,CAAC;AAED,IAAA,OAAOH,IAAI;AACb;EAEA,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,6BAA6B,EAC7B,4BAA4B,CAC7B;AAED,IAAA,IAAI,IAAI,CAACJ,IAAI,CAACK,UAAU,EAAE;AACxBD,MAAAA,OAAO,CAACE,IAAI,CAAC,CAAA,uCAAA,CAAyC,CAAC;AACzD;AAEA,IAAA,OAAOF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAC;AAC1B;AAGAC,EAAAA,OAAOA,GAAS;IACd,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACR,IAAI;AAE7B,IAAA,IAAI,OAAOQ,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACR,IAAI,CAACD,IAAI,CAAC;AACzB;AACF;AACF,CAAC,EAAAU,yBAAA,CAAAZ,MAAA,CAAAa,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAhB,MAAA,CAAAa,SAAA,cAAAb,MAAA,CAAAa,SAAA,CAAA,EAAAb,MAAA;AAzBsCiB,oBAAA,CAAAC,QAAA,EAA1BnB,0BAA0B,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
@@ -71,7 +71,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
71
71
  // has with the component (the state is controlled externally, eg. via query parameters)
72
72
  _initializerDefineProperty(this, "_currentPage", _descriptor, this);
73
73
  _initializerDefineProperty(this, "_currentPageSize", _descriptor2, this);
74
- _initializerDefineProperty(this, "isControlled", _descriptor3, this);
74
+ _initializerDefineProperty(this, "_isControlled", _descriptor3, this);
75
75
  _defineProperty(this, "showInfo", this.args.showInfo ?? true);
76
76
  // if the "info" block is visible
77
77
  _defineProperty(this, "showLabels", this.args.showLabels ?? false);
@@ -102,12 +102,12 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
102
102
  // initialized and updated using the arguments passed to it.
103
103
 
104
104
  if (queryFunction === undefined) {
105
- this.isControlled = false;
105
+ this._isControlled = false;
106
106
  } else {
107
107
  assert('@model, @models, or @route for "Hds::Pagination::Numbered" must be provided when using the @queryFunction argument', this.args.model !== undefined || this.args.models !== undefined || this.args.route !== undefined);
108
108
  assert('@queryFunction for "Hds::Pagination::Numbered" must be a function', typeof queryFunction === 'function');
109
109
  assert('@currentPage and @currentPageSize for "Hds::Pagination::Numbered" must be provided as numeric arguments when the pagination controls the routing', typeof this.args.currentPageSize === 'number' && typeof this.args.currentPage === 'number');
110
- this.isControlled = true;
110
+ this._isControlled = true;
111
111
  }
112
112
  assert('@totalItems for "Hds::Pagination::Numbered" must be defined as an integer number', typeof this.args.totalItems === 'number');
113
113
  this._currentPage = this.args.currentPage ?? 1;
@@ -132,7 +132,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
132
132
  // For this reason the "get" and "set" methods always read from or write to the private internal state (_variable).
133
133
 
134
134
  get currentPage() {
135
- if (this.isControlled) {
135
+ if (this._isControlled) {
136
136
  // if the component is controlled, `@currentPage` is asserted to be a number
137
137
  return this.args.currentPage;
138
138
  } else {
@@ -140,13 +140,13 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
140
140
  }
141
141
  }
142
142
  set currentPage(value) {
143
- if (this.isControlled) ; else {
144
- // if `this.isControlled` is `false`
143
+ if (this._isControlled) ; else {
144
+ // if `this._isControlled` is `false`
145
145
  this._currentPage = value;
146
146
  }
147
147
  }
148
148
  get currentPageSize() {
149
- if (this.isControlled) {
149
+ if (this._isControlled) {
150
150
  // if the component is controlled, `@currentPageSize` is asserted to be a number
151
151
  return this.args.currentPageSize;
152
152
  } else {
@@ -154,7 +154,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
154
154
  }
155
155
  }
156
156
  set currentPageSize(value) {
157
- if (this.isControlled) ; else {
157
+ if (this._isControlled) ; else {
158
158
  this._currentPageSize = value;
159
159
  }
160
160
  }
@@ -205,7 +205,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
205
205
  }
206
206
  buildQueryParamsObject(page, pageSize) {
207
207
  // `page` may also be ellipsis
208
- if (this.isControlled && typeof page === 'number') {
208
+ if (this._isControlled && typeof page === 'number') {
209
209
  // if the component is controlled, `@queryFunction` is asserted to be a function
210
210
  return this.args.queryFunction(page, pageSize);
211
211
  } else {
@@ -221,7 +221,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
221
221
  };
222
222
 
223
223
  // the "query" is dynamic and needs to be calculated
224
- if (this.isControlled) {
224
+ if (this._isControlled) {
225
225
  routing.queryPrev = this.buildQueryParamsObject(this.currentPage - 1, this.currentPageSize);
226
226
  routing.queryNext = this.buildQueryParamsObject(this.currentPage + 1, this.currentPageSize);
227
227
  // IMPORTANT: here we need to use an object and not an array
@@ -267,7 +267,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
267
267
  const {
268
268
  onPageSizeChange
269
269
  } = this.args;
270
- if (!this.isControlled) {
270
+ if (!this._isControlled) {
271
271
  // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)
272
272
  this.currentPage = 1;
273
273
  this.currentPageSize = newPageSize;
@@ -281,7 +281,7 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
281
281
  getPageNumberQuery(page) {
282
282
  return this.routing.queryPages[this.elliptizedPageArrayItemAsNumber(page)];
283
283
  }
284
- }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "_currentPage", [tracked], {
284
+ }, _descriptor = _applyDecoratedDescriptor(_class.prototype, "_currentPage", [tracked], {
285
285
  configurable: true,
286
286
  enumerable: true,
287
287
  writable: true,
@@ -291,12 +291,12 @@ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Compon
291
291
  enumerable: true,
292
292
  writable: true,
293
293
  initializer: null
294
- }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "isControlled", [tracked], {
294
+ }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "_isControlled", [tracked], {
295
295
  configurable: true,
296
296
  enumerable: true,
297
297
  writable: true,
298
298
  initializer: null
299
- }), _applyDecoratedDescriptor(_class.prototype, "onPageChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPageSizeChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageSizeChange"), _class.prototype)), _class);
299
+ }), _applyDecoratedDescriptor(_class.prototype, "onPageChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPageSizeChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageSizeChange"), _class.prototype), _class);
300
300
  setComponentTemplate(TEMPLATE, HdsPaginationNumbered);
301
301
 
302
302
  export { DEFAULT_PAGE_SIZES, HdsPaginationNumbered as default, elliptize };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.hbs","../../../../../src/components/hds/pagination/numbered/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<div class=\\\"hds-pagination\\\" ...attributes>\\n {{#if this.showInfo}}\\n <Hds::Pagination::Info\\n @itemsRangeStart={{this.itemsRangeStart}}\\n @itemsRangeEnd={{this.itemsRangeEnd}}\\n @totalItems={{@totalItems}}\\n @showTotalItems={{@showTotalItems}}\\n />\\n {{/if}}\\n\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledPrev}}\\n />\\n {{#if this.showPageNumbers}}\\n <ul class=\\\"hds-pagination-nav__page-list\\\">\\n {{#each this.pages as |page|}}\\n <li class=\\\"hds-pagination-nav__page-item\\\">\\n {{#if (eq page \\\"…\\\")}}\\n <Hds::Pagination::Nav::Ellipsis />\\n {{else}}\\n <Hds::Pagination::Nav::Number\\n @page={{this.elliptizedPageArrayItemAsNumber page}}\\n @route={{this.routing.route}}\\n @query={{get this.routing.queryPages page}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @isSelected={{if (eq page this.currentPage) true false}}\\n />\\n {{/if}}\\n </li>\\n {{/each}}\\n </ul>\\n {{/if}}\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { HdsPaginationDirectionValues } from '../types.ts';\n\nimport type {\n HdsPaginationPage,\n HdsPaginationRoutingProps,\n HdsPaginationElliptizedPageArray,\n HdsPaginationElliptizedPageArrayItem,\n} from '../types';\nimport type { HdsInteractiveSignature } from '../../interactive/index.ts';\ninterface ElliptizeProps {\n pages: number[];\n current: number;\n limit?: number;\n}\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationNumberedRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n queryPages?: Record<\n HdsPaginationElliptizedPageArrayItem,\n HdsInteractiveQuery\n >;\n};\n\ntype HdsPaginationQueryFunction = (\n page: number,\n pageSize: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationNumberedArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n totalItems: number;\n showLabels?: boolean;\n isTruncated?: boolean;\n currentPage?: number;\n showInfo?: boolean;\n showPageNumbers?: boolean;\n showTotalItems?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: number, pageSize: number) => unknown;\n onPageSizeChange?: (pageSize: number) => unknown;\n}\n\ninterface HdsPaginationNumberedArgsControlledBase\n extends HdsPaginationNumberedArgs {\n currentPage: number;\n currentPageSize: number;\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModel\n extends HdsPaginationNumberedArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModels\n extends HdsPaginationNumberedArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationNumberedArgsControlledWithRoute\n extends HdsPaginationNumberedArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationNumberedArgsControlled =\n | HdsPaginationNumberedArgsControlledWithModel\n | HdsPaginationNumberedArgsControlledWithModels\n | HdsPaginationNumberedArgsControlledWithRoute;\n\ninterface HdsPaginationNumberedArgsUncontrolled\n extends HdsPaginationNumberedArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationNumberedSignature {\n Args:\n | HdsPaginationNumberedArgsControlled\n | HdsPaginationNumberedArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\nconst ELLIPSIS = '…';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\nexport const elliptize = ({\n pages,\n current,\n limit = 7,\n}: ElliptizeProps): HdsPaginationElliptizedPageArray => {\n const length = pages.length;\n\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart: HdsPaginationElliptizedPageArray = pages.slice(0, start);\n const sliceEnd: HdsPaginationElliptizedPageArray = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart.shift() as number,\n ELLIPSIS,\n sliceCurr,\n ELLIPSIS,\n sliceEnd.pop() as number\n );\n }\n\n return result;\n};\nexport default class HdsPaginationNumbered extends Component<HdsPaginationNumberedSignature> {\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked _currentPage;\n @tracked _currentPageSize;\n @tracked isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor(owner: unknown, args: HdsPaginationNumberedSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this.isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Numbered\" must be provided when using the @queryFunction argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this.isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n\n this._currentPage = this.args.currentPage ?? 1;\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage(): number {\n if (this.isControlled) {\n // if the component is controlled, `@currentPage` is asserted to be a number\n return this.args.currentPage as number;\n } else {\n return this._currentPage;\n }\n }\n set currentPage(value) {\n if (this.isControlled) {\n // noop\n } else {\n // if `this.isControlled` is `false`\n this._currentPage = value as number;\n }\n }\n\n get currentPageSize(): number {\n if (this.isControlled) {\n // if the component is controlled, `@currentPageSize` is asserted to be a number\n return this.args.currentPageSize as number;\n } else {\n return this._currentPageSize as number;\n }\n }\n set currentPageSize(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n // TODO: Add test for this\n `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart(): number {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd(): number {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages(): HdsPaginationElliptizedPageArray {\n const pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(\n page: HdsPaginationElliptizedPageArrayItem,\n pageSize: number\n ): HdsInteractiveQuery {\n // `page` may also be ellipsis\n if (this.isControlled && typeof page === 'number') {\n // if the component is controlled, `@queryFunction` is asserted to be a function\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationNumberedRoutingQueryProps {\n const routing: HdsPaginationNumberedRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this.isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages![page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n @action\n onPageChange(page: HdsPaginationPage) {\n let gotoPageNumber;\n if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (\n page === HdsPaginationDirectionValues.Next &&\n this.currentPage < this.totalPages\n ) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n // we have already determined that `gotoPageNumber` is not `prev` or `next`\n this.currentPage = gotoPageNumber as number;\n\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n }\n\n @action\n onPageSizeChange(newPageSize: number) {\n const { onPageSizeChange } = this.args;\n\n if (!this.isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n\n elliptizedPageArrayItemAsNumber = (\n item: HdsPaginationElliptizedPageArrayItem\n ): number => {\n if (typeof item === 'number') {\n return item;\n } else {\n throw new Error('Expected a number, but got an ellipsis');\n }\n };\n\n getPageNumberQuery(page: HdsPaginationElliptizedPageArrayItem) {\n return this.routing.queryPages![this.elliptizedPageArrayItemAsNumber(page)];\n }\n}\n"],"names":["ELLIPSIS","DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumbered","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","showInfo","showLabels","showSizeSelector","showPageNumbers","isTruncated","item","Error","queryFunction","undefined","isControlled","assert","model","models","route","currentPageSize","currentPage","totalItems","_currentPage","_currentPageSize","pageSizes","ariaLabel","value","Array","isArray","itemsRangeStart","itemsRangeEnd","i","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","queryNext","queryPages","forEach","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","HdsPaginationDirectionValues","Prev","Next","onPageSizeChange","newPageSize","getPageNumberQuery","elliptizedPageArrayItemAsNumber","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.hbs","../../../../../src/components/hds/pagination/numbered/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<div class=\\\"hds-pagination\\\" ...attributes>\\n {{#if this.showInfo}}\\n <Hds::Pagination::Info\\n @itemsRangeStart={{this.itemsRangeStart}}\\n @itemsRangeEnd={{this.itemsRangeEnd}}\\n @totalItems={{@totalItems}}\\n @showTotalItems={{@showTotalItems}}\\n />\\n {{/if}}\\n\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledPrev}}\\n />\\n {{#if this.showPageNumbers}}\\n <ul class=\\\"hds-pagination-nav__page-list\\\">\\n {{#each this.pages as |page|}}\\n <li class=\\\"hds-pagination-nav__page-item\\\">\\n {{#if (eq page \\\"…\\\")}}\\n <Hds::Pagination::Nav::Ellipsis />\\n {{else}}\\n <Hds::Pagination::Nav::Number\\n @page={{this.elliptizedPageArrayItemAsNumber page}}\\n @route={{this.routing.route}}\\n @query={{get this.routing.queryPages page}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @isSelected={{if (eq page this.currentPage) true false}}\\n />\\n {{/if}}\\n </li>\\n {{/each}}\\n </ul>\\n {{/if}}\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { HdsPaginationDirectionValues } from '../types.ts';\n\nimport type {\n HdsPaginationPage,\n HdsPaginationRoutingProps,\n HdsPaginationElliptizedPageArray,\n HdsPaginationElliptizedPageArrayItem,\n} from '../types';\nimport type { HdsInteractiveSignature } from '../../interactive/index.ts';\ninterface ElliptizeProps {\n pages: number[];\n current: number;\n limit?: number;\n}\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationNumberedRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n queryPages?: Record<\n HdsPaginationElliptizedPageArrayItem,\n HdsInteractiveQuery\n >;\n};\n\ntype HdsPaginationQueryFunction = (\n page: number,\n pageSize: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationNumberedArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n totalItems: number;\n showLabels?: boolean;\n isTruncated?: boolean;\n currentPage?: number;\n showInfo?: boolean;\n showPageNumbers?: boolean;\n showTotalItems?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: number, pageSize: number) => unknown;\n onPageSizeChange?: (pageSize: number) => unknown;\n}\n\ninterface HdsPaginationNumberedArgsControlledBase\n extends HdsPaginationNumberedArgs {\n currentPage: number;\n currentPageSize: number;\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModel\n extends HdsPaginationNumberedArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModels\n extends HdsPaginationNumberedArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationNumberedArgsControlledWithRoute\n extends HdsPaginationNumberedArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationNumberedArgsControlled =\n | HdsPaginationNumberedArgsControlledWithModel\n | HdsPaginationNumberedArgsControlledWithModels\n | HdsPaginationNumberedArgsControlledWithRoute;\n\ninterface HdsPaginationNumberedArgsUncontrolled\n extends HdsPaginationNumberedArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationNumberedSignature {\n Args:\n | HdsPaginationNumberedArgsControlled\n | HdsPaginationNumberedArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\nconst ELLIPSIS = '…';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\nexport const elliptize = ({\n pages,\n current,\n limit = 7,\n}: ElliptizeProps): HdsPaginationElliptizedPageArray => {\n const length = pages.length;\n\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart: HdsPaginationElliptizedPageArray = pages.slice(0, start);\n const sliceEnd: HdsPaginationElliptizedPageArray = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart.shift() as number,\n ELLIPSIS,\n sliceCurr,\n ELLIPSIS,\n sliceEnd.pop() as number\n );\n }\n\n return result;\n};\nexport default class HdsPaginationNumbered extends Component<HdsPaginationNumberedSignature> {\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked private _currentPage;\n @tracked private _currentPageSize;\n @tracked private _isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor(owner: unknown, args: HdsPaginationNumberedSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this._isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Numbered\" must be provided when using the @queryFunction argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this._isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n\n this._currentPage = this.args.currentPage ?? 1;\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPage` is asserted to be a number\n return this.args.currentPage as number;\n } else {\n return this._currentPage;\n }\n }\n set currentPage(value) {\n if (this._isControlled) {\n // noop\n } else {\n // if `this._isControlled` is `false`\n this._currentPage = value as number;\n }\n }\n\n get currentPageSize(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPageSize` is asserted to be a number\n return this.args.currentPageSize as number;\n } else {\n return this._currentPageSize as number;\n }\n }\n set currentPageSize(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n // TODO: Add test for this\n `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart(): number {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd(): number {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages(): HdsPaginationElliptizedPageArray {\n const pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(\n page: HdsPaginationElliptizedPageArrayItem,\n pageSize: number\n ): HdsInteractiveQuery {\n // `page` may also be ellipsis\n if (this._isControlled && typeof page === 'number') {\n // if the component is controlled, `@queryFunction` is asserted to be a function\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationNumberedRoutingQueryProps {\n const routing: HdsPaginationNumberedRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this._isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages![page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n @action\n onPageChange(page: HdsPaginationPage) {\n let gotoPageNumber;\n if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (\n page === HdsPaginationDirectionValues.Next &&\n this.currentPage < this.totalPages\n ) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n // we have already determined that `gotoPageNumber` is not `prev` or `next`\n this.currentPage = gotoPageNumber as number;\n\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n }\n\n @action\n onPageSizeChange(newPageSize: number) {\n const { onPageSizeChange } = this.args;\n\n if (!this._isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n\n elliptizedPageArrayItemAsNumber = (\n item: HdsPaginationElliptizedPageArrayItem\n ): number => {\n if (typeof item === 'number') {\n return item;\n } else {\n throw new Error('Expected a number, but got an ellipsis');\n }\n };\n\n getPageNumberQuery(page: HdsPaginationElliptizedPageArrayItem) {\n return this.routing.queryPages![this.elliptizedPageArrayItemAsNumber(page)];\n }\n}\n"],"names":["ELLIPSIS","DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumbered","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","showInfo","showLabels","showSizeSelector","showPageNumbers","isTruncated","item","Error","queryFunction","undefined","_isControlled","assert","model","models","route","currentPageSize","currentPage","totalItems","_currentPage","_currentPageSize","pageSizes","ariaLabel","value","Array","isArray","itemsRangeStart","itemsRangeEnd","i","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","queryNext","queryPages","forEach","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","HdsPaginationDirectionValues","Prev","Next","onPageSizeChange","newPageSize","getPageNumberQuery","elliptizedPageArrayItemAsNumber","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { assert } from '@ember/debug';
4
4
  import { guidFor } from '@ember/object/internals';
@@ -6,13 +6,13 @@ import { action } from '@ember/object';
6
6
  import { precompileTemplate } from '@ember/template-compilation';
7
7
  import { setComponentTemplate } from '@ember/component';
8
8
 
9
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-size-selector\" ...attributes>\n <label class=\"hds-typography-body-100 hds-font-weight-medium\" for={{this.SizeSelectorId}}>\n {{this.label}}\n </label>\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \"change\" this.onChange}} as |S|>\n <S.Options>\n {{#each this.pageSizes as |size|}}\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\n {{/each}}\n </S.Options>\n </Hds::Form::Select::Base>\n</div>");
9
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-size-selector\" ...attributes>\n <label class=\"hds-typography-body-100 hds-font-weight-medium\" for={{this._sizeSelectorId}}>\n {{this.label}}\n </label>\n <Hds::Form::Select::Base id={{this._sizeSelectorId}} {{on \"change\" this.onChange}} as |S|>\n <S.Options>\n {{#each this.pageSizes as |size|}}\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\n {{/each}}\n </S.Options>\n </Hds::Form::Select::Base>\n</div>");
10
10
 
11
11
  var _class;
12
12
  let HdsPaginationSizeSelector = (_class = class HdsPaginationSizeSelector extends Component {
13
13
  constructor(...args) {
14
14
  super(...args);
15
- _defineProperty(this, "SizeSelectorId", 'pagination-size-selector-' + guidFor(this));
15
+ _defineProperty(this, "_sizeSelectorId", 'pagination-size-selector-' + guidFor(this));
16
16
  }
17
17
  get pageSizes() {
18
18
  const {
@@ -43,7 +43,7 @@ let HdsPaginationSizeSelector = (_class = class HdsPaginationSizeSelector extend
43
43
  onChange(parseInt(target.value));
44
44
  }
45
45
  }
46
- }, (_applyDecoratedDescriptor(_class.prototype, "onChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onChange"), _class.prototype)), _class);
46
+ }, _applyDecoratedDescriptor(_class.prototype, "onChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onChange"), _class.prototype), _class);
47
47
  setComponentTemplate(TEMPLATE, HdsPaginationSizeSelector);
48
48
 
49
49
  export { HdsPaginationSizeSelector as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.hbs","../../../../../src/components/hds/pagination/size-selector/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<div class=\\\"hds-pagination-size-selector\\\" ...attributes>\\n <label class=\\\"hds-typography-body-100 hds-font-weight-medium\\\" for={{this.SizeSelectorId}}>\\n {{this.label}}\\n </label>\\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \\\"change\\\" this.onChange}} as |S|>\\n <S.Options>\\n {{#each this.pageSizes as |size|}}\\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\\n {{/each}}\\n </S.Options>\\n </Hds::Form::Select::Base>\\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';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nimport type { HdsFormSelectBaseSignature } from '../../form/select/base';\n\nexport interface HdsPaginationSizeSelectorSignature {\n Args: {\n pageSizes: number[];\n label?: string;\n selectedSize?: number;\n onChange?: (size: number) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsPaginationSizeSelector extends Component<HdsPaginationSizeSelectorSignature> {\n SizeSelectorId = 'pagination-size-selector-' + guidFor(this);\n\n get pageSizes(): number[] {\n const { pageSizes } = this.args;\n\n assert(\n '@pageSizes for \"Pagination::SizeSelector\" must be defined',\n pageSizes !== undefined\n );\n\n return pageSizes;\n }\n\n get selectedSize(): number | undefined {\n const { selectedSize } = this.args;\n\n assert(\n `@selectedSize for \"Pagination::SizeSelector\" must one of the @pageSizes provided (${this.pageSizes.join(\n ','\n )}), received ${selectedSize}`,\n selectedSize === undefined || this.pageSizes.includes(selectedSize)\n );\n\n return selectedSize;\n }\n\n get label(): string {\n const { label = 'Items per page' } = this.args;\n\n return label;\n }\n\n @action\n onChange(e: Event): void {\n const { onChange } = this.args;\n\n const target = e.target as HdsFormSelectBaseSignature['Element'];\n\n if (typeof onChange === 'function') {\n onChange(parseInt(target.value));\n }\n }\n}\n"],"names":["HdsPaginationSizeSelector","_class","Component","constructor","args","_defineProperty","guidFor","pageSizes","assert","undefined","selectedSize","join","includes","label","onChange","e","target","parseInt","value","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,qlBAAqlB;;;ACqBlmBA,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAqC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,eAAA,yBAClF,2BAA2B,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAE5D,IAAIC,SAASA,GAAa;IACxB,MAAM;AAAEA,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACH,IAAI,CAAA;AAE/BI,IAAAA,MAAM,CACJ,2DAA2D,EAC3DD,SAAS,KAAKE,SAChB,CAAC,CAAA;AAED,IAAA,OAAOF,SAAS,CAAA;AAClB,GAAA;EAEA,IAAIG,YAAYA,GAAuB;IACrC,MAAM;AAAEA,MAAAA,YAAAA;KAAc,GAAG,IAAI,CAACN,IAAI,CAAA;IAElCI,MAAM,CACJ,CAAqF,kFAAA,EAAA,IAAI,CAACD,SAAS,CAACI,IAAI,CACtG,GACF,CAAC,CAAA,YAAA,EAAeD,YAAY,CAAA,CAAE,EAC9BA,YAAY,KAAKD,SAAS,IAAI,IAAI,CAACF,SAAS,CAACK,QAAQ,CAACF,YAAY,CACpE,CAAC,CAAA;AAED,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;EAEA,IAAIG,KAAKA,GAAW;IAClB,MAAM;AAAEA,MAAAA,KAAK,GAAG,gBAAA;KAAkB,GAAG,IAAI,CAACT,IAAI,CAAA;AAE9C,IAAA,OAAOS,KAAK,CAAA;AACd,GAAA;EAGAC,QAAQA,CAACC,CAAQ,EAAQ;IACvB,MAAM;AAAED,MAAAA,QAAAA;KAAU,GAAG,IAAI,CAACV,IAAI,CAAA;AAE9B,IAAA,MAAMY,MAAM,GAAGD,CAAC,CAACC,MAA+C,CAAA;AAEhE,IAAA,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;AAClCA,MAAAA,QAAQ,CAACG,QAAQ,CAACD,MAAM,CAACE,KAAK,CAAC,CAAC,CAAA;AAClC,KAAA;AACF,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,UAAA,EAAA,CAVEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,eAAAnB,MAAA,CAAAmB,SAAA,CAAA,GAAAnB,MAAA,EAAA;AAjCqCuB,oBAAA,CAAAC,QAAA,EAAzBzB,yBAAyB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.hbs","../../../../../src/components/hds/pagination/size-selector/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<div class=\\\"hds-pagination-size-selector\\\" ...attributes>\\n <label class=\\\"hds-typography-body-100 hds-font-weight-medium\\\" for={{this._sizeSelectorId}}>\\n {{this.label}}\\n </label>\\n <Hds::Form::Select::Base id={{this._sizeSelectorId}} {{on \\\"change\\\" this.onChange}} as |S|>\\n <S.Options>\\n {{#each this.pageSizes as |size|}}\\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\\n {{/each}}\\n </S.Options>\\n </Hds::Form::Select::Base>\\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';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nimport type { HdsFormSelectBaseSignature } from '../../form/select/base';\n\nexport interface HdsPaginationSizeSelectorSignature {\n Args: {\n pageSizes: number[];\n label?: string;\n selectedSize?: number;\n onChange?: (size: number) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsPaginationSizeSelector extends Component<HdsPaginationSizeSelectorSignature> {\n private _sizeSelectorId = 'pagination-size-selector-' + guidFor(this);\n\n get pageSizes(): number[] {\n const { pageSizes } = this.args;\n\n assert(\n '@pageSizes for \"Pagination::SizeSelector\" must be defined',\n pageSizes !== undefined\n );\n\n return pageSizes;\n }\n\n get selectedSize(): number | undefined {\n const { selectedSize } = this.args;\n\n assert(\n `@selectedSize for \"Pagination::SizeSelector\" must one of the @pageSizes provided (${this.pageSizes.join(\n ','\n )}), received ${selectedSize}`,\n selectedSize === undefined || this.pageSizes.includes(selectedSize)\n );\n\n return selectedSize;\n }\n\n get label(): string {\n const { label = 'Items per page' } = this.args;\n\n return label;\n }\n\n @action\n onChange(e: Event): void {\n const { onChange } = this.args;\n\n const target = e.target as HdsFormSelectBaseSignature['Element'];\n\n if (typeof onChange === 'function') {\n onChange(parseInt(target.value));\n }\n }\n}\n"],"names":["HdsPaginationSizeSelector","_class","Component","constructor","args","_defineProperty","guidFor","pageSizes","assert","undefined","selectedSize","join","includes","label","onChange","e","target","parseInt","value","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,ulBAAulB;;;ACqBpmBA,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAqC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,eAAA,0BACzE,2BAA2B,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA;EAErE,IAAIC,SAASA,GAAa;IACxB,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACH,IAAI;AAE/BI,IAAAA,MAAM,CACJ,2DAA2D,EAC3DD,SAAS,KAAKE,SAChB,CAAC;AAED,IAAA,OAAOF,SAAS;AAClB;EAEA,IAAIG,YAAYA,GAAuB;IACrC,MAAM;AAAEA,MAAAA;KAAc,GAAG,IAAI,CAACN,IAAI;IAElCI,MAAM,CACJ,CAAqF,kFAAA,EAAA,IAAI,CAACD,SAAS,CAACI,IAAI,CACtG,GACF,CAAC,CAAA,YAAA,EAAeD,YAAY,CAAA,CAAE,EAC9BA,YAAY,KAAKD,SAAS,IAAI,IAAI,CAACF,SAAS,CAACK,QAAQ,CAACF,YAAY,CACpE,CAAC;AAED,IAAA,OAAOA,YAAY;AACrB;EAEA,IAAIG,KAAKA,GAAW;IAClB,MAAM;AAAEA,MAAAA,KAAK,GAAG;KAAkB,GAAG,IAAI,CAACT,IAAI;AAE9C,IAAA,OAAOS,KAAK;AACd;EAGAC,QAAQA,CAACC,CAAQ,EAAQ;IACvB,MAAM;AAAED,MAAAA;KAAU,GAAG,IAAI,CAACV,IAAI;AAE9B,IAAA,MAAMY,MAAM,GAAGD,CAAC,CAACC,MAA+C;AAEhE,IAAA,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;AAClCA,MAAAA,QAAQ,CAACG,QAAQ,CAACD,MAAM,CAACE,KAAK,CAAC,CAAC;AAClC;AACF;AACF,CAAC,EAAAC,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,UAAA,EAAA,CAVEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,eAAAnB,MAAA,CAAAmB,SAAA,CAAA,EAAAnB,MAAA;AAjCqCuB,oBAAA,CAAAC,QAAA,EAAzBzB,yBAAyB,CAAA;;;;"}