@cloudscape-design/components-themeable 3.0.139 → 3.0.141

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 (333) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/visual-refresh/main.scss +13 -5
  3. package/lib/internal/scss/collection-preferences/styles.scss +1 -0
  4. package/lib/internal/scss/table/body-cell/styles.scss +4 -0
  5. package/lib/internal/scss/wizard/styles.scss +1 -0
  6. package/lib/internal/template/alert/internal.d.ts +1 -1
  7. package/lib/internal/template/alert/internal.d.ts.map +1 -1
  8. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +60 -60
  9. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +148 -148
  10. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +60 -60
  11. package/lib/internal/template/area-chart/chart-container.d.ts.map +1 -1
  12. package/lib/internal/template/area-chart/chart-container.js +2 -1
  13. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  14. package/lib/internal/template/area-chart/internal.d.ts +1 -1
  15. package/lib/internal/template/area-chart/internal.d.ts.map +1 -1
  16. package/lib/internal/template/area-chart/model/async-store.d.ts +2 -2
  17. package/lib/internal/template/area-chart/model/async-store.d.ts.map +1 -1
  18. package/lib/internal/template/area-chart/model/interactions-store.d.ts.map +1 -1
  19. package/lib/internal/template/area-chart/model/interactions-store.js +1 -1
  20. package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
  21. package/lib/internal/template/area-chart/model/use-chart-model.d.ts +1 -2
  22. package/lib/internal/template/area-chart/model/use-chart-model.d.ts.map +1 -1
  23. package/lib/internal/template/area-chart/model/use-chart-model.js +46 -10
  24. package/lib/internal/template/area-chart/model/use-chart-model.js.map +1 -1
  25. package/lib/internal/template/area-chart/model/use-filter-props.d.ts +1 -1
  26. package/lib/internal/template/area-chart/model/use-filter-props.d.ts.map +1 -1
  27. package/lib/internal/template/area-chart/model/use-highlight-props.d.ts +1 -1
  28. package/lib/internal/template/area-chart/model/use-highlight-props.d.ts.map +1 -1
  29. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  30. package/lib/internal/template/autosuggest/interfaces.d.ts +1 -1
  31. package/lib/internal/template/autosuggest/interfaces.d.ts.map +1 -1
  32. package/lib/internal/template/autosuggest/options-controller.d.ts +1 -1
  33. package/lib/internal/template/autosuggest/options-controller.d.ts.map +1 -1
  34. package/lib/internal/template/autosuggest/plain-list.d.ts +1 -1
  35. package/lib/internal/template/autosuggest/plain-list.d.ts.map +1 -1
  36. package/lib/internal/template/bar-chart/interfaces.d.ts +1 -1
  37. package/lib/internal/template/bar-chart/interfaces.d.ts.map +1 -1
  38. package/lib/internal/template/box/internal.d.ts +1 -1
  39. package/lib/internal/template/box/internal.d.ts.map +1 -1
  40. package/lib/internal/template/breadcrumb-group/internal.d.ts +1 -1
  41. package/lib/internal/template/breadcrumb-group/internal.d.ts.map +1 -1
  42. package/lib/internal/template/button-dropdown/interfaces.d.ts +2 -2
  43. package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
  44. package/lib/internal/template/button-dropdown/utils/create-items-tree.d.ts +1 -1
  45. package/lib/internal/template/button-dropdown/utils/create-items-tree.d.ts.map +1 -1
  46. package/lib/internal/template/calendar/internal.d.ts +1 -1
  47. package/lib/internal/template/calendar/internal.d.ts.map +1 -1
  48. package/lib/internal/template/code-editor/interfaces.d.ts +2 -2
  49. package/lib/internal/template/code-editor/interfaces.d.ts.map +1 -1
  50. package/lib/internal/template/code-editor/util.d.ts +1 -1
  51. package/lib/internal/template/code-editor/util.d.ts.map +1 -1
  52. package/lib/internal/template/collection-preferences/index.d.ts +1 -1
  53. package/lib/internal/template/collection-preferences/index.d.ts.map +1 -1
  54. package/lib/internal/template/collection-preferences/index.js +10 -5
  55. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  56. package/lib/internal/template/collection-preferences/interfaces.d.ts +17 -0
  57. package/lib/internal/template/collection-preferences/interfaces.d.ts.map +1 -1
  58. package/lib/internal/template/collection-preferences/interfaces.js.map +1 -1
  59. package/lib/internal/template/collection-preferences/styles.css.js +20 -19
  60. package/lib/internal/template/collection-preferences/styles.scoped.css +21 -20
  61. package/lib/internal/template/collection-preferences/styles.selectors.js +20 -19
  62. package/lib/internal/template/collection-preferences/utils.d.ts +6 -1
  63. package/lib/internal/template/collection-preferences/utils.d.ts.map +1 -1
  64. package/lib/internal/template/collection-preferences/utils.js +10 -1
  65. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  66. package/lib/internal/template/column-layout/internal.d.ts +2 -2
  67. package/lib/internal/template/column-layout/internal.d.ts.map +1 -1
  68. package/lib/internal/template/container/use-sticky-header.d.ts +1 -1
  69. package/lib/internal/template/container/use-sticky-header.d.ts.map +1 -1
  70. package/lib/internal/template/date-range-picker/calendar/range-inputs.d.ts +1 -1
  71. package/lib/internal/template/date-range-picker/calendar/range-inputs.d.ts.map +1 -1
  72. package/lib/internal/template/date-range-picker/interfaces.d.ts +2 -2
  73. package/lib/internal/template/date-range-picker/interfaces.d.ts.map +1 -1
  74. package/lib/internal/template/expandable-section/internal.d.ts +1 -1
  75. package/lib/internal/template/expandable-section/internal.d.ts.map +1 -1
  76. package/lib/internal/template/flashbar/styles.css.js +33 -33
  77. package/lib/internal/template/flashbar/styles.scoped.css +115 -115
  78. package/lib/internal/template/flashbar/styles.selectors.js +33 -33
  79. package/lib/internal/template/form/internal.d.ts +1 -1
  80. package/lib/internal/template/form/internal.d.ts.map +1 -1
  81. package/lib/internal/template/icon/internal.d.ts +1 -1
  82. package/lib/internal/template/icon/internal.d.ts.map +1 -1
  83. package/lib/internal/template/input/index.js.map +1 -1
  84. package/lib/internal/template/input/styles.css.js +13 -13
  85. package/lib/internal/template/input/styles.scoped.css +35 -37
  86. package/lib/internal/template/input/styles.selectors.js +13 -13
  87. package/lib/internal/template/internal/base-component/styles.scoped.css +9 -0
  88. package/lib/internal/template/internal/breakpoints.d.ts +1 -1
  89. package/lib/internal/template/internal/breakpoints.d.ts.map +1 -1
  90. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  91. package/lib/internal/template/internal/components/cartesian-chart/bottom-labels.d.ts.map +1 -1
  92. package/lib/internal/template/internal/components/cartesian-chart/bottom-labels.js +1 -1
  93. package/lib/internal/template/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  94. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts +8 -8
  95. package/lib/internal/template/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  96. package/lib/internal/template/internal/components/cartesian-chart/scales.d.ts +2 -2
  97. package/lib/internal/template/internal/components/cartesian-chart/scales.d.ts.map +1 -1
  98. package/lib/internal/template/internal/components/chart-plot/application-controller.js +1 -1
  99. package/lib/internal/template/internal/components/chart-plot/application-controller.js.map +1 -1
  100. package/lib/internal/template/internal/components/chart-plot/focus-outline.d.ts +2 -1
  101. package/lib/internal/template/internal/components/chart-plot/focus-outline.d.ts.map +1 -1
  102. package/lib/internal/template/internal/components/chart-plot/focus-outline.js +6 -4
  103. package/lib/internal/template/internal/components/chart-plot/focus-outline.js.map +1 -1
  104. package/lib/internal/template/internal/components/chart-plot/index.d.ts +3 -2
  105. package/lib/internal/template/internal/components/chart-plot/index.d.ts.map +1 -1
  106. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  107. package/lib/internal/template/internal/components/chart-plot/interfaces.d.ts +5 -0
  108. package/lib/internal/template/internal/components/chart-plot/interfaces.d.ts.map +1 -0
  109. package/lib/internal/template/internal/components/chart-plot/interfaces.js +2 -0
  110. package/lib/internal/template/internal/components/chart-plot/interfaces.js.map +1 -0
  111. package/lib/internal/template/internal/components/chart-series-marker/index.d.ts +1 -1
  112. package/lib/internal/template/internal/components/chart-series-marker/index.d.ts.map +1 -1
  113. package/lib/internal/template/internal/components/dropdown/context.d.ts +1 -1
  114. package/lib/internal/template/internal/components/dropdown/context.d.ts.map +1 -1
  115. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.d.ts +5 -5
  116. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.d.ts.map +1 -1
  117. package/lib/internal/template/internal/components/dropdown/interfaces.d.ts +1 -1
  118. package/lib/internal/template/internal/components/dropdown/interfaces.d.ts.map +1 -1
  119. package/lib/internal/template/internal/components/dropdown-status/index.d.ts +1 -1
  120. package/lib/internal/template/internal/components/dropdown-status/index.d.ts.map +1 -1
  121. package/lib/internal/template/internal/components/interfaces.d.ts +5 -0
  122. package/lib/internal/template/internal/components/interfaces.d.ts.map +1 -0
  123. package/lib/internal/template/internal/components/interfaces.js +2 -0
  124. package/lib/internal/template/internal/components/interfaces.js.map +1 -0
  125. package/lib/internal/template/internal/components/live-region/index.d.ts +1 -1
  126. package/lib/internal/template/internal/components/live-region/index.d.ts.map +1 -1
  127. package/lib/internal/template/internal/components/option/utils/filter-options.d.ts +3 -3
  128. package/lib/internal/template/internal/components/option/utils/filter-options.d.ts.map +1 -1
  129. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.d.ts +1 -1
  130. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  131. package/lib/internal/template/internal/components/selectable-item/index.d.ts +1 -1
  132. package/lib/internal/template/internal/components/selectable-item/index.d.ts.map +1 -1
  133. package/lib/internal/template/internal/components/transition/index.d.ts +1 -1
  134. package/lib/internal/template/internal/components/transition/index.d.ts.map +1 -1
  135. package/lib/internal/template/internal/context/split-panel-context.d.ts +1 -1
  136. package/lib/internal/template/internal/context/split-panel-context.d.ts.map +1 -1
  137. package/lib/internal/template/internal/environment.js +1 -1
  138. package/lib/internal/template/internal/events/index.d.ts +3 -3
  139. package/lib/internal/template/internal/events/index.d.ts.map +1 -1
  140. package/lib/internal/template/internal/generated/theming/index.cjs +26 -0
  141. package/lib/internal/template/internal/generated/theming/index.js +26 -0
  142. package/lib/internal/template/internal/hooks/container-queries/use-resize-observer.d.ts +1 -1
  143. package/lib/internal/template/internal/hooks/container-queries/use-resize-observer.d.ts.map +1 -1
  144. package/lib/internal/template/internal/hooks/forward-focus/index.js.map +1 -1
  145. package/lib/internal/template/internal/hooks/use-singleton-handler/index.d.ts +3 -3
  146. package/lib/internal/template/internal/hooks/use-singleton-handler/index.d.ts.map +1 -1
  147. package/lib/internal/template/internal/metrics.d.ts +2 -2
  148. package/lib/internal/template/internal/metrics.d.ts.map +1 -1
  149. package/lib/internal/template/internal/metrics.js.map +1 -1
  150. package/lib/internal/template/internal/types.d.ts +1 -1
  151. package/lib/internal/template/internal/types.d.ts.map +1 -1
  152. package/lib/internal/template/internal/utils/locale/normalize-start-of-week.d.ts +1 -1
  153. package/lib/internal/template/internal/utils/locale/normalize-start-of-week.d.ts.map +1 -1
  154. package/lib/internal/template/internal/utils/scrollable-containers.d.ts +1 -1
  155. package/lib/internal/template/internal/utils/scrollable-containers.d.ts.map +1 -1
  156. package/lib/internal/template/internal/vendor/d3-scale.js +185 -186
  157. package/lib/internal/template/line-chart/interfaces.d.ts +1 -1
  158. package/lib/internal/template/line-chart/interfaces.d.ts.map +1 -1
  159. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts +1 -2
  160. package/lib/internal/template/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  161. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +55 -41
  162. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  163. package/lib/internal/template/mixed-line-bar-chart/domain.js +4 -4
  164. package/lib/internal/template/mixed-line-bar-chart/domain.js.map +1 -1
  165. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.d.ts +3 -4
  166. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.d.ts.map +1 -1
  167. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js +22 -18
  168. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  169. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.d.ts +7 -4
  170. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.d.ts.map +1 -1
  171. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +61 -31
  172. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  173. package/lib/internal/template/mixed-line-bar-chart/interfaces.d.ts +8 -4
  174. package/lib/internal/template/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  175. package/lib/internal/template/mixed-line-bar-chart/interfaces.js.map +1 -1
  176. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts +1 -1
  177. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
  178. package/lib/internal/template/mixed-line-bar-chart/internal.js +1 -1
  179. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  180. package/lib/internal/template/mixed-line-bar-chart/styles.css.js +19 -19
  181. package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +26 -26
  182. package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +19 -19
  183. package/lib/internal/template/mixed-line-bar-chart/utils.d.ts +1 -1
  184. package/lib/internal/template/mixed-line-bar-chart/utils.d.ts.map +1 -1
  185. package/lib/internal/template/modal/internal.d.ts +1 -1
  186. package/lib/internal/template/modal/internal.d.ts.map +1 -1
  187. package/lib/internal/template/package-lock.json +3027 -3737
  188. package/lib/internal/template/pagination/internal.d.ts +1 -1
  189. package/lib/internal/template/pagination/internal.d.ts.map +1 -1
  190. package/lib/internal/template/popover/interfaces.d.ts +2 -2
  191. package/lib/internal/template/popover/interfaces.d.ts.map +1 -1
  192. package/lib/internal/template/property-filter/interfaces.d.ts +16 -16
  193. package/lib/internal/template/property-filter/interfaces.d.ts.map +1 -1
  194. package/lib/internal/template/property-filter/use-load-items.d.ts +2 -1
  195. package/lib/internal/template/property-filter/use-load-items.d.ts.map +1 -1
  196. package/lib/internal/template/s3-resource-selector/interfaces.d.ts +1 -1
  197. package/lib/internal/template/s3-resource-selector/interfaces.d.ts.map +1 -1
  198. package/lib/internal/template/segmented-control/internal.d.ts +1 -1
  199. package/lib/internal/template/segmented-control/internal.d.ts.map +1 -1
  200. package/lib/internal/template/select/utils/use-select.d.ts +3 -3
  201. package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
  202. package/lib/internal/template/select/utils/use-select.js +4 -3
  203. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  204. package/lib/internal/template/side-navigation/util.d.ts +1 -1
  205. package/lib/internal/template/side-navigation/util.d.ts.map +1 -1
  206. package/lib/internal/template/space-between/internal.d.ts +1 -1
  207. package/lib/internal/template/space-between/internal.d.ts.map +1 -1
  208. package/lib/internal/template/table/body-cell/index.d.ts +3 -1
  209. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  210. package/lib/internal/template/table/body-cell/index.js +2 -2
  211. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  212. package/lib/internal/template/table/body-cell/styles.css.js +8 -7
  213. package/lib/internal/template/table/body-cell/styles.scoped.css +21 -18
  214. package/lib/internal/template/table/body-cell/styles.selectors.js +8 -7
  215. package/lib/internal/template/table/header-cell/utils.d.ts +1 -1
  216. package/lib/internal/template/table/header-cell/utils.d.ts.map +1 -1
  217. package/lib/internal/template/table/interfaces.d.ts +4 -0
  218. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  219. package/lib/internal/template/table/interfaces.js.map +1 -1
  220. package/lib/internal/template/table/internal.d.ts.map +1 -1
  221. package/lib/internal/template/table/internal.js +4 -3
  222. package/lib/internal/template/table/internal.js.map +1 -1
  223. package/lib/internal/template/table/styles.css.js +34 -34
  224. package/lib/internal/template/table/styles.scoped.css +42 -45
  225. package/lib/internal/template/table/styles.selectors.js +34 -34
  226. package/lib/internal/template/table/use-sticky-header.d.ts.map +1 -1
  227. package/lib/internal/template/table/use-sticky-header.js +4 -1
  228. package/lib/internal/template/table/use-sticky-header.js.map +1 -1
  229. package/lib/internal/template/tabs/styles.css.js +21 -21
  230. package/lib/internal/template/tabs/styles.scoped.css +41 -44
  231. package/lib/internal/template/tabs/styles.selectors.js +21 -21
  232. package/lib/internal/template/tag-editor/validation.d.ts +1 -1
  233. package/lib/internal/template/tag-editor/validation.d.ts.map +1 -1
  234. package/lib/internal/template/test-utils/dom/collection-preferences/index.d.ts +1 -0
  235. package/lib/internal/template/test-utils/dom/collection-preferences/index.js +3 -0
  236. package/lib/internal/template/test-utils/dom/collection-preferences/index.js.map +1 -1
  237. package/lib/internal/template/test-utils/selectors/alert/index.js.map +1 -1
  238. package/lib/internal/template/test-utils/selectors/annotation/index.js.map +1 -1
  239. package/lib/internal/template/test-utils/selectors/app-layout/index.js.map +1 -1
  240. package/lib/internal/template/test-utils/selectors/area-chart/index.js.map +1 -1
  241. package/lib/internal/template/test-utils/selectors/attribute-editor/index.js.map +1 -1
  242. package/lib/internal/template/test-utils/selectors/autosuggest/index.js.map +1 -1
  243. package/lib/internal/template/test-utils/selectors/breadcrumb-group/index.js.map +1 -1
  244. package/lib/internal/template/test-utils/selectors/button/index.js.map +1 -1
  245. package/lib/internal/template/test-utils/selectors/button-dropdown/index.js.map +1 -1
  246. package/lib/internal/template/test-utils/selectors/calendar/index.js.map +1 -1
  247. package/lib/internal/template/test-utils/selectors/cards/index.js.map +1 -1
  248. package/lib/internal/template/test-utils/selectors/checkbox/index.js.map +1 -1
  249. package/lib/internal/template/test-utils/selectors/code-editor/index.js.map +1 -1
  250. package/lib/internal/template/test-utils/selectors/collection-preferences/index.d.ts +1 -0
  251. package/lib/internal/template/test-utils/selectors/collection-preferences/index.js +3 -0
  252. package/lib/internal/template/test-utils/selectors/collection-preferences/index.js.map +1 -1
  253. package/lib/internal/template/test-utils/selectors/collection-preferences/page-size-preference.js.map +1 -1
  254. package/lib/internal/template/test-utils/selectors/collection-preferences/visible-content-preference.js.map +1 -1
  255. package/lib/internal/template/test-utils/selectors/container/index.js.map +1 -1
  256. package/lib/internal/template/test-utils/selectors/content-layout/index.js.map +1 -1
  257. package/lib/internal/template/test-utils/selectors/date-picker/index.js +2 -2
  258. package/lib/internal/template/test-utils/selectors/date-picker/index.js.map +1 -1
  259. package/lib/internal/template/test-utils/selectors/date-range-picker/index.js +6 -3
  260. package/lib/internal/template/test-utils/selectors/date-range-picker/index.js.map +1 -1
  261. package/lib/internal/template/test-utils/selectors/expandable-section/index.js.map +1 -1
  262. package/lib/internal/template/test-utils/selectors/flashbar/flash.js.map +1 -1
  263. package/lib/internal/template/test-utils/selectors/flashbar/index.js.map +1 -1
  264. package/lib/internal/template/test-utils/selectors/form/index.js.map +1 -1
  265. package/lib/internal/template/test-utils/selectors/form-field/index.js.map +1 -1
  266. package/lib/internal/template/test-utils/selectors/grid/index.js.map +1 -1
  267. package/lib/internal/template/test-utils/selectors/header/index.js.map +1 -1
  268. package/lib/internal/template/test-utils/selectors/help-panel/index.js.map +1 -1
  269. package/lib/internal/template/test-utils/selectors/hotspot/index.js.map +1 -1
  270. package/lib/internal/template/test-utils/selectors/input/base-input.js.map +1 -1
  271. package/lib/internal/template/test-utils/selectors/input/index.js.map +1 -1
  272. package/lib/internal/template/test-utils/selectors/internal/abstract-switch.js.map +1 -1
  273. package/lib/internal/template/test-utils/selectors/internal/autosuggest-input.js.map +1 -1
  274. package/lib/internal/template/test-utils/selectors/internal/chart-filter.js.map +1 -1
  275. package/lib/internal/template/test-utils/selectors/internal/chart-legend.js.map +1 -1
  276. package/lib/internal/template/test-utils/selectors/internal/chart-popover.js.map +1 -1
  277. package/lib/internal/template/test-utils/selectors/internal/charts.js.map +1 -1
  278. package/lib/internal/template/test-utils/selectors/internal/dropdown-host.js.map +1 -1
  279. package/lib/internal/template/test-utils/selectors/internal/dropdown.js.map +1 -1
  280. package/lib/internal/template/test-utils/selectors/internal/filtering-token.js.map +1 -1
  281. package/lib/internal/template/test-utils/selectors/internal/option.js.map +1 -1
  282. package/lib/internal/template/test-utils/selectors/mixed-line-bar-chart/index.js.map +1 -1
  283. package/lib/internal/template/test-utils/selectors/modal/index.js.map +1 -1
  284. package/lib/internal/template/test-utils/selectors/multiselect/index.js.map +1 -1
  285. package/lib/internal/template/test-utils/selectors/pagination/index.js.map +1 -1
  286. package/lib/internal/template/test-utils/selectors/pie-chart/index.js.map +1 -1
  287. package/lib/internal/template/test-utils/selectors/popover/index.js.map +1 -1
  288. package/lib/internal/template/test-utils/selectors/progress-bar/index.js.map +1 -1
  289. package/lib/internal/template/test-utils/selectors/property-filter/index.js.map +1 -1
  290. package/lib/internal/template/test-utils/selectors/radio-group/index.js.map +1 -1
  291. package/lib/internal/template/test-utils/selectors/radio-group/radio-button.js.map +1 -1
  292. package/lib/internal/template/test-utils/selectors/s3-resource-selector/index.js.map +1 -1
  293. package/lib/internal/template/test-utils/selectors/segmented-control/index.js.map +1 -1
  294. package/lib/internal/template/test-utils/selectors/select/index.js.map +1 -1
  295. package/lib/internal/template/test-utils/selectors/side-navigation/index.js.map +1 -1
  296. package/lib/internal/template/test-utils/selectors/split-panel/index.js.map +1 -1
  297. package/lib/internal/template/test-utils/selectors/table/index.js +2 -1
  298. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  299. package/lib/internal/template/test-utils/selectors/tabs/index.js.map +1 -1
  300. package/lib/internal/template/test-utils/selectors/tag-editor/index.js.map +1 -1
  301. package/lib/internal/template/test-utils/selectors/text-filter/index.js.map +1 -1
  302. package/lib/internal/template/test-utils/selectors/textarea/index.js.map +1 -1
  303. package/lib/internal/template/test-utils/selectors/tiles/index.js.map +1 -1
  304. package/lib/internal/template/test-utils/selectors/tiles/tile.js.map +1 -1
  305. package/lib/internal/template/test-utils/selectors/toggle/index.js.map +1 -1
  306. package/lib/internal/template/test-utils/selectors/token-group/index.js.map +1 -1
  307. package/lib/internal/template/test-utils/selectors/token-group/token.js.map +1 -1
  308. package/lib/internal/template/test-utils/selectors/top-navigation/1.0-beta/index.js.map +1 -1
  309. package/lib/internal/template/test-utils/selectors/top-navigation/index.js.map +1 -1
  310. package/lib/internal/template/test-utils/selectors/tutorial-panel/index.js.map +1 -1
  311. package/lib/internal/template/test-utils/selectors/tutorial-panel/tutorial.js.map +1 -1
  312. package/lib/internal/template/test-utils/selectors/wizard/index.js.map +1 -1
  313. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  314. package/lib/internal/template/textarea/styles.css.js +4 -4
  315. package/lib/internal/template/textarea/styles.scoped.css +13 -14
  316. package/lib/internal/template/textarea/styles.selectors.js +4 -4
  317. package/lib/internal/template/theming/index.d.ts +1 -1
  318. package/lib/internal/template/theming/index.d.ts.map +1 -1
  319. package/lib/internal/template/token-group/internal.d.ts +1 -1
  320. package/lib/internal/template/token-group/internal.d.ts.map +1 -1
  321. package/lib/internal/template/top-navigation/1.0-beta/internal.d.ts +1 -1
  322. package/lib/internal/template/top-navigation/1.0-beta/internal.d.ts.map +1 -1
  323. package/lib/internal/template/top-navigation/internal.d.ts +1 -1
  324. package/lib/internal/template/top-navigation/internal.d.ts.map +1 -1
  325. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts +2 -2
  326. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  327. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  328. package/lib/internal/template/top-navigation/parts/overflow-menu/router.d.ts +1 -1
  329. package/lib/internal/template/top-navigation/parts/overflow-menu/router.d.ts.map +1 -1
  330. package/lib/internal/template/wizard/styles.css.js +32 -32
  331. package/lib/internal/template/wizard/styles.scoped.css +61 -60
  332. package/lib/internal/template/wizard/styles.selectors.js +32 -32
  333. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-mouse-hover.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-mouse-hover.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useState } from 'react';\nimport { nodeContains } from '../../internal/utils/dom';\n\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\nimport { ScaledPoint } from '../make-scaled-series';\n\nimport styles from '../styles.css.js';\nimport { ChartPlotRef } from '../../internal/components/chart-plot';\nimport { MixedLineBarChartProps } from '../interfaces';\nimport { isYThreshold } from '../utils';\n\nconst MAX_HOVER_MARGIN = 6;\n\nexport interface UseMouseHoverProps<T> {\n plotRef: React.RefObject<ChartPlotRef>;\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n barGroups: ScaledBarGroup<T>[];\n highlightSeries: (series: MixedLineBarChartProps.ChartSeries<T> | null) => void;\n highlightPoint: (point: ScaledPoint<T> | null) => void;\n highlightGroup: (groupIndex: number) => void;\n clearHighlightedSeries: () => void;\n isGroupNavigation: boolean;\n isHandlersDisabled: boolean;\n}\n\nexport function useMouseHover<T>({\n plotRef,\n scaledSeries,\n barGroups,\n highlightSeries,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n}: UseMouseHoverProps<T>) {\n const [verticalMarkerLeft, setVerticalMarkerLeft] = useState<number | null>(null);\n\n const onSeriesMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n const svgRect = (event.target as SVGElement).getBoundingClientRect();\n const offsetX = event.clientX - svgRect.left;\n const offsetY = event.clientY - svgRect.top;\n\n const closestX = scaledSeries\n .map(v => v.x)\n .reduce((prev, curr) => (Math.abs(curr - offsetX) < Math.abs(prev - offsetX) ? curr : prev), -Infinity);\n\n const closestY = scaledSeries\n .filter(v => v.x === closestX || isYThreshold(v.series))\n .map(v => v.y)\n .reduce((prev, curr) => (Math.abs(curr - offsetY) < Math.abs(prev - offsetY) ? curr : prev), -Infinity);\n\n if (isFinite(closestX)) {\n setVerticalMarkerLeft(closestX);\n if (\n isFinite(closestY) &&\n Math.abs(offsetX - closestX) < MAX_HOVER_MARGIN &&\n Math.abs(offsetY - closestY) < MAX_HOVER_MARGIN\n ) {\n const [{ color, datum, series }] = scaledSeries.filter(\n s => (s.x === closestX || isYThreshold(s.series)) && s.y === closestY\n );\n highlightSeries(series);\n highlightPoint({ x: closestX, y: closestY, color, datum, series });\n } else {\n highlightSeries(null);\n highlightPoint(null);\n }\n }\n };\n\n const onGroupMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n const svgRect = (event.target as SVGElement).getBoundingClientRect();\n const offsetX = event.clientX - svgRect.left;\n const offsetY = event.clientY - svgRect.top;\n\n // If hovering over some group - highlight it.\n for (let groupIndex = 0; groupIndex < barGroups.length; groupIndex++) {\n const {\n position: { x, y, width, height },\n } = barGroups[groupIndex];\n\n if (x <= offsetX && offsetX <= x + width && y <= offsetY && offsetY <= y + height) {\n highlightGroup(groupIndex);\n return;\n }\n }\n // Otherwise - clear the highlight.\n clearHighlightedSeries();\n };\n\n const onSVGMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (event.target === plotRef.current!.svg && !isHandlersDisabled) {\n if (isGroupNavigation) {\n onGroupMouseMove(event);\n } else if (scaledSeries.length > 0) {\n onSeriesMouseMove(event);\n }\n }\n };\n\n const onSVGMouseOut = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (isHandlersDisabled) {\n return;\n }\n if (\n !nodeContains(plotRef.current!.svg, event.relatedTarget as Element) ||\n // `classList` is not supported on IE11 for SVG elements\n ((event.relatedTarget && (event.relatedTarget as Element).getAttribute('class')) || '')\n .split(' ')\n .indexOf(styles.series) > -1\n ) {\n setVerticalMarkerLeft(null);\n clearHighlightedSeries();\n }\n };\n\n return { verticalMarkerLeft, onSVGMouseMove, onSVGMouseOut };\n}\n"]}
1
+ {"version":3,"file":"use-mouse-hover.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-mouse-hover.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { nodeContains } from '../../internal/utils/dom';\n\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\nimport { ScaledPoint } from '../make-scaled-series';\n\nimport styles from '../styles.css.js';\nimport { ChartPlotRef } from '../../internal/components/chart-plot';\nimport { VerticalMarkerX } from '../interfaces';\nimport { isYThreshold } from '../utils';\n\nconst MAX_HOVER_MARGIN = 6;\n\nexport interface UseMouseHoverProps<T> {\n plotRef: React.RefObject<ChartPlotRef>;\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n barGroups: ScaledBarGroup<T>[];\n highlightPoint: (point: ScaledPoint<T> | null) => void;\n highlightGroup: (groupIndex: number) => void;\n clearHighlightedSeries: () => void;\n isGroupNavigation: boolean;\n isHandlersDisabled: boolean;\n highlightX: (verticalMarker: VerticalMarkerX<T> | null) => void;\n}\n\nexport function useMouseHover<T>({\n plotRef,\n scaledSeries,\n barGroups,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n highlightX,\n}: UseMouseHoverProps<T>) {\n const onSeriesMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n const svgRect = (event.target as SVGElement).getBoundingClientRect();\n const offsetX = event.clientX - svgRect.left;\n\n const closestX = scaledSeries\n .map(v => v.x)\n .reduce((prev, curr) => (Math.abs(curr - offsetX) < Math.abs(prev - offsetX) ? curr : prev), -Infinity);\n\n if (isFinite(closestX)) {\n const offsetY = event.clientY - svgRect.top;\n const closestY = scaledSeries\n .filter(v => v.x === closestX || isYThreshold(v.series))\n .map(v => v.y)\n .reduce((prev, curr) => (Math.abs(curr - offsetY) < Math.abs(prev - offsetY) ? curr : prev), -Infinity);\n\n if (\n isFinite(closestY) &&\n Math.abs(offsetX - closestX) < MAX_HOVER_MARGIN &&\n Math.abs(offsetY - closestY) < MAX_HOVER_MARGIN\n ) {\n const [{ color, datum, series }] = scaledSeries.filter(\n s => (s.x === closestX || isYThreshold(s.series)) && s.y === closestY\n );\n highlightPoint({ x: closestX, y: closestY, color, datum, series });\n } else {\n let datumX = null;\n for (const point of scaledSeries) {\n if (point.x === closestX) {\n datumX = point.datum?.x ?? null;\n break;\n }\n }\n highlightX({ scaledX: closestX, label: datumX });\n }\n }\n };\n\n const onGroupMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n const svgRect = (event.target as SVGElement).getBoundingClientRect();\n const offsetX = event.clientX - svgRect.left;\n const offsetY = event.clientY - svgRect.top;\n\n // If hovering over some group - highlight it.\n for (let groupIndex = 0; groupIndex < barGroups.length; groupIndex++) {\n const {\n position: { x, y, width, height },\n } = barGroups[groupIndex];\n\n if (x <= offsetX && offsetX <= x + width && y <= offsetY && offsetY <= y + height) {\n highlightGroup(groupIndex);\n return;\n }\n }\n // Otherwise - clear the highlight.\n clearHighlightedSeries();\n };\n\n const onSVGMouseMove = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (event.target === plotRef.current!.svg && !isHandlersDisabled) {\n if (isGroupNavigation) {\n onGroupMouseMove(event);\n } else if (scaledSeries.length > 0) {\n onSeriesMouseMove(event);\n }\n }\n };\n\n const onSVGMouseOut = (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (isHandlersDisabled) {\n return;\n }\n if (\n !nodeContains(plotRef.current!.svg, event.relatedTarget as Element) ||\n // `classList` is not supported on IE11 for SVG elements\n ((event.relatedTarget && (event.relatedTarget as Element).getAttribute('class')) || '')\n .split(' ')\n .indexOf(styles.series) > -1\n ) {\n highlightX(null);\n clearHighlightedSeries();\n }\n };\n\n return { onSVGMouseMove, onSVGMouseOut };\n}\n"]}
@@ -1,26 +1,29 @@
1
+ import React from 'react';
1
2
  import { ChartContainerProps } from '../chart-container';
2
- import { ChartDataTypes, MixedLineBarChartProps } from '../interfaces';
3
+ import { ChartDataTypes, MixedLineBarChartProps, VerticalMarkerX } from '../interfaces';
3
4
  import { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales';
4
5
  import { ScaledPoint } from '../make-scaled-series';
5
6
  import { ScaledBarGroup } from '../make-scaled-bar-groups';
6
- export declare type UseNavigationProps<T extends ChartDataTypes> = Pick<ChartContainerProps<T>, 'highlightedSeries' | 'series' | 'visibleSeries'> & {
7
+ export type UseNavigationProps<T extends ChartDataTypes> = Pick<ChartContainerProps<T>, 'highlightedSeries' | 'series' | 'visibleSeries'> & {
7
8
  xScale: ChartScale;
8
9
  yScale: NumericChartScale;
9
10
  barGroups: ScaledBarGroup<T>[];
10
11
  scaledSeries: ReadonlyArray<ScaledPoint<T>>;
11
12
  highlightedPoint: ScaledPoint<T> | null;
12
13
  highlightedGroupIndex: number | null;
13
- legendSeries: null | MixedLineBarChartProps.ChartSeries<T>;
14
14
  isHandlersDisabled: boolean;
15
15
  pinPopover(pinned?: boolean): void;
16
16
  highlightSeries(series: MixedLineBarChartProps.ChartSeries<T> | null): void;
17
17
  highlightGroup(groupIndex: number): void;
18
18
  highlightPoint(point: ScaledPoint<T> | null): void;
19
+ highlightX: (verticalMarker: VerticalMarkerX<T> | null) => void;
19
20
  clearHighlightedSeries(): void;
21
+ verticalMarkerX: VerticalMarkerX<T> | null;
20
22
  };
21
- export declare function useNavigation<T extends ChartDataTypes>({ series, visibleSeries, scaledSeries, barGroups, xScale, yScale, highlightedPoint, highlightedGroupIndex, highlightedSeries, legendSeries, isHandlersDisabled, pinPopover, highlightSeries, highlightGroup, highlightPoint, }: UseNavigationProps<T>): {
23
+ export declare function useNavigation<T extends ChartDataTypes>({ series, visibleSeries, scaledSeries, barGroups, xScale, yScale, highlightedPoint, highlightedGroupIndex, highlightedSeries, isHandlersDisabled, pinPopover, highlightSeries, highlightGroup, highlightPoint, highlightX, verticalMarkerX, }: UseNavigationProps<T>): {
22
24
  isGroupNavigation: boolean;
23
25
  onFocus: () => void;
24
26
  onKeyDown: (event: React.KeyboardEvent) => void;
27
+ xIndex: number;
25
28
  };
26
29
  //# sourceMappingURL=use-navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-navigation.d.ts","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,oBAAY,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI,IAAI,CAC7D,mBAAmB,CAAC,CAAC,CAAC,EACtB,mBAAmB,GAAG,QAAQ,GAAG,eAAe,CACjD,GAAG;IACF,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,IAAI,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3D,kBAAkB,EAAE,OAAO,CAAC;IAE5B,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,sBAAsB,IAAI,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,EACtD,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,GACf,EAAE,kBAAkB,CAAC,CAAC,CAAC;;;uBAqKZ,mBAAmB;EA+B9B"}
1
+ {"version":3,"file":"use-navigation.d.ts","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI,IAAI,CAC7D,mBAAmB,CAAC,CAAC,CAAC,EACtB,mBAAmB,GAAG,QAAQ,GAAG,eAAe,CACjD,GAAG;IACF,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAE5B,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAChE,sBAAsB,IAAI,IAAI,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,EACtD,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,EACV,eAAe,GAChB,EAAE,kBAAkB,CAAC,CAAC,CAAC;;;uBA0MZ,mBAAmB;;EA+B9B"}
@@ -5,33 +5,31 @@ import { useCallback, useMemo, useState } from 'react';
5
5
  import { KeyCode } from '../../internal/keycode';
6
6
  import { findNavigableSeries, isXThreshold, isYThreshold, nextValidDomainIndex } from '../utils';
7
7
  export function useNavigation(_a) {
8
- var series = _a.series, visibleSeries = _a.visibleSeries, scaledSeries = _a.scaledSeries, barGroups = _a.barGroups, xScale = _a.xScale, yScale = _a.yScale, highlightedPoint = _a.highlightedPoint, highlightedGroupIndex = _a.highlightedGroupIndex, highlightedSeries = _a.highlightedSeries, legendSeries = _a.legendSeries, isHandlersDisabled = _a.isHandlersDisabled, pinPopover = _a.pinPopover, highlightSeries = _a.highlightSeries, highlightGroup = _a.highlightGroup, highlightPoint = _a.highlightPoint;
8
+ var series = _a.series, visibleSeries = _a.visibleSeries, scaledSeries = _a.scaledSeries, barGroups = _a.barGroups, xScale = _a.xScale, yScale = _a.yScale, highlightedPoint = _a.highlightedPoint, highlightedGroupIndex = _a.highlightedGroupIndex, highlightedSeries = _a.highlightedSeries, isHandlersDisabled = _a.isHandlersDisabled, pinPopover = _a.pinPopover, highlightSeries = _a.highlightSeries, highlightGroup = _a.highlightGroup, highlightPoint = _a.highlightPoint, highlightX = _a.highlightX, verticalMarkerX = _a.verticalMarkerX;
9
9
  var _b = useState(null), targetX = _b[0], setTargetX = _b[1];
10
+ var _c = useState(0), xIndex = _c[0], setXIndex = _c[1];
10
11
  // There are two different types of navigation:
11
12
  // 1) Group navigation for any chart that contains a bar series
12
13
  // 2) Line navigation for any chart that only contains lines and thresholds
13
- var isGroupNavigation = visibleSeries.some(function (_a) {
14
+ var isGroupNavigation = useMemo(function () { return visibleSeries.some(function (_a) {
14
15
  var series = _a.series;
15
16
  return series.type === 'bar';
16
- });
17
+ }); }, [visibleSeries]);
17
18
  // Make a list of series that can be navigated between. Bar series are treated as one.
18
19
  var navigableSeries = useMemo(function () { return findNavigableSeries(visibleSeries); }, [visibleSeries]).navigableSeries;
20
+ var containsMultipleSeries = navigableSeries.length > 1;
19
21
  var onBarGroupFocus = function () {
20
22
  var groupIndex = highlightedGroupIndex !== null && highlightedGroupIndex !== void 0 ? highlightedGroupIndex : 0;
21
23
  setTargetX(xScale.domain[groupIndex]);
22
24
  highlightGroup(groupIndex);
23
25
  };
24
- var onLineGroupFocus = function () {
25
- var _a, _b, _c;
26
- if (!highlightedSeries || !highlightedPoint) {
27
- var targetSeries = (_c = (_a = highlightedSeries !== null && highlightedSeries !== void 0 ? highlightedSeries : legendSeries) !== null && _a !== void 0 ? _a : (_b = series[0]) === null || _b === void 0 ? void 0 : _b.series) !== null && _c !== void 0 ? _c : null;
28
- highlightSeries(targetSeries);
29
- for (var _i = 0, scaledSeries_1 = scaledSeries; _i < scaledSeries_1.length; _i++) {
30
- var scaledS = scaledSeries_1[_i];
31
- if (scaledS.series === targetSeries) {
32
- highlightPoint(scaledS);
33
- return;
34
- }
26
+ var onLineFocus = function () {
27
+ if (verticalMarkerX === null) {
28
+ if (containsMultipleSeries) {
29
+ moveToLineGroupIndex(0);
30
+ }
31
+ else {
32
+ moveBetweenSeries(0);
35
33
  }
36
34
  }
37
35
  };
@@ -40,9 +38,21 @@ export function useNavigation(_a) {
40
38
  onBarGroupFocus();
41
39
  }
42
40
  else {
43
- onLineGroupFocus();
41
+ onLineFocus();
44
42
  }
45
43
  };
44
+ // Returns all the unique X coordinates in scaledSeries.
45
+ // Assumes scaledSeries is sorted by `x`.
46
+ var allUniqueX = useMemo(function () {
47
+ var result = [];
48
+ for (var i = 0; i < scaledSeries.length; i += 1) {
49
+ var point = scaledSeries[i];
50
+ if (point !== undefined && (!result.length || result[result.length - 1].scaledX !== point.x)) {
51
+ result.push({ scaledX: point.x, datum: point.datum });
52
+ }
53
+ }
54
+ return result;
55
+ }, [scaledSeries]);
46
56
  var moveBetweenSeries = useCallback(function (direction) {
47
57
  var _a, _b, _c, _d;
48
58
  if (isGroupNavigation) {
@@ -56,16 +66,23 @@ export function useNavigation(_a) {
56
66
  previousSeriesIndex = navigableSeries.indexOf(highlightedSeries);
57
67
  }
58
68
  // Move forwards or backwards to the new series
69
+ // If index === -1, show all data points from all series at the given X instead of one single series
70
+ var firstPossibleIndex = containsMultipleSeries ? -1 : 0;
59
71
  var nextSeriesIndex = 0;
60
- if (previousSeriesIndex !== -1) {
72
+ if (previousSeriesIndex !== null) {
61
73
  nextSeriesIndex = previousSeriesIndex + direction;
62
74
  if (nextSeriesIndex > MAX_SERIES_INDEX) {
63
- nextSeriesIndex = 0;
75
+ nextSeriesIndex = firstPossibleIndex;
64
76
  }
65
- else if (nextSeriesIndex < 0) {
77
+ else if (nextSeriesIndex < firstPossibleIndex) {
66
78
  nextSeriesIndex = MAX_SERIES_INDEX;
67
79
  }
68
80
  }
81
+ if (nextSeriesIndex === -1) {
82
+ highlightSeries(null);
83
+ highlightPoint(null);
84
+ return;
85
+ }
69
86
  var nextSeries = navigableSeries[nextSeriesIndex];
70
87
  var nextInternalSeries = series.filter(function (_a) {
71
88
  var series = _a.series;
@@ -79,12 +96,10 @@ export function useNavigation(_a) {
79
96
  if (nextSeries.type === 'line') {
80
97
  var nextScaledSeries = scaledSeries.filter(function (it) { return it.series === nextSeries; });
81
98
  var closestNextSeriesPoint = nextScaledSeries.reduce(function (prev, curr) { return (Math.abs(curr.x - targetXPoint) < Math.abs(prev.x - targetXPoint) ? curr : prev); }, { x: -Infinity, y: -Infinity });
82
- highlightSeries(nextSeries);
83
99
  highlightPoint(__assign(__assign({}, closestNextSeriesPoint), { color: nextInternalSeries.color, series: nextSeries }));
84
100
  }
85
101
  else if (isYThreshold(nextSeries)) {
86
102
  var scaledTargetIndex = scaledSeries.map(function (it) { var _a; return ((_a = it.datum) === null || _a === void 0 ? void 0 : _a.x) || null; }).indexOf(targetX);
87
- highlightSeries(nextSeries);
88
103
  highlightPoint({
89
104
  x: targetXPoint,
90
105
  y: (_b = yScale.d3Scale(nextSeries.y)) !== null && _b !== void 0 ? _b : NaN,
@@ -94,7 +109,6 @@ export function useNavigation(_a) {
94
109
  });
95
110
  }
96
111
  else if (isXThreshold(nextSeries)) {
97
- highlightSeries(nextSeries);
98
112
  highlightPoint({
99
113
  x: (_d = xScale.d3Scale(nextSeries.x)) !== null && _d !== void 0 ? _d : NaN,
100
114
  y: yScale.d3Scale.range()[0],
@@ -108,24 +122,25 @@ export function useNavigation(_a) {
108
122
  xScale,
109
123
  navigableSeries,
110
124
  highlightedSeries,
111
- scaledSeries,
112
- series,
113
- targetX,
125
+ containsMultipleSeries,
114
126
  highlightSeries,
115
127
  highlightPoint,
128
+ series,
129
+ targetX,
130
+ scaledSeries,
116
131
  yScale,
117
132
  ]);
118
133
  var moveWithinSeries = useCallback(function (direction) {
119
134
  var _a;
120
135
  var series = highlightedSeries || visibleSeries[0].series;
121
- var previousPoint = highlightedPoint || scaledSeries[0];
122
136
  if (series.type === 'line' || isYThreshold(series)) {
123
137
  var targetScaledSeries = scaledSeries.filter(function (it) { return it.series === series; });
138
+ var previousPoint = highlightedPoint || targetScaledSeries[0];
124
139
  var indexOfPreviousPoint = targetScaledSeries.map(function (it) { return it.x; }).indexOf(previousPoint.x);
125
140
  var nextPointIndex = circleIndex(indexOfPreviousPoint + direction, [0, targetScaledSeries.length - 1]);
126
141
  var nextPoint = targetScaledSeries[nextPointIndex];
127
142
  setTargetX(((_a = nextPoint.datum) === null || _a === void 0 ? void 0 : _a.x) || null);
128
- highlightSeries(series);
143
+ setXIndex(nextPointIndex);
129
144
  highlightPoint(nextPoint);
130
145
  }
131
146
  else if (series.type === 'bar') {
@@ -149,15 +164,30 @@ export function useNavigation(_a) {
149
164
  }, [
150
165
  highlightedSeries,
151
166
  visibleSeries,
152
- highlightedPoint,
153
167
  scaledSeries,
154
- highlightSeries,
168
+ highlightedPoint,
155
169
  highlightPoint,
156
170
  xScale.domain,
157
171
  highlightedGroupIndex,
158
172
  barGroups,
159
173
  highlightGroup,
160
174
  ]);
175
+ var moveToLineGroupIndex = useCallback(function (index) {
176
+ var _a, _b, _c, _d;
177
+ var point = allUniqueX[index];
178
+ setXIndex(index);
179
+ setTargetX(((_a = point.datum) === null || _a === void 0 ? void 0 : _a.x) || null);
180
+ highlightX({ scaledX: (_b = point === null || point === void 0 ? void 0 : point.scaledX) !== null && _b !== void 0 ? _b : null, label: (_d = (_c = point.datum) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : null });
181
+ }, [allUniqueX, highlightX]);
182
+ var moveWithinXAxis = useCallback(function (direction) {
183
+ if (highlightedSeries || isGroupNavigation) {
184
+ moveWithinSeries(direction);
185
+ }
186
+ else {
187
+ var nextPointGroupIndex = circleIndex(xIndex + direction, [0, allUniqueX.length - 1]);
188
+ moveToLineGroupIndex(nextPointGroupIndex);
189
+ }
190
+ }, [highlightedSeries, isGroupNavigation, moveWithinSeries, xIndex, allUniqueX.length, moveToLineGroupIndex]);
161
191
  var onKeyDown = useCallback(function (event) {
162
192
  var keyCode = event.keyCode;
163
193
  if (keyCode !== KeyCode.up &&
@@ -176,13 +206,13 @@ export function useNavigation(_a) {
176
206
  moveBetweenSeries(keyCode === KeyCode.down ? 1 : -1);
177
207
  }
178
208
  else if (keyCode === KeyCode.left || keyCode === KeyCode.right) {
179
- moveWithinSeries(keyCode === KeyCode.right ? 1 : -1);
209
+ moveWithinXAxis(keyCode === KeyCode.right ? 1 : -1);
180
210
  }
181
211
  else if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {
182
212
  pinPopover();
183
213
  }
184
- }, [moveWithinSeries, moveBetweenSeries, isHandlersDisabled, pinPopover]);
185
- return { isGroupNavigation: isGroupNavigation, onFocus: onFocus, onKeyDown: onKeyDown };
214
+ }, [isHandlersDisabled, moveBetweenSeries, moveWithinXAxis, pinPopover]);
215
+ return { isGroupNavigation: isGroupNavigation, onFocus: onFocus, onKeyDown: onKeyDown, xIndex: xIndex };
186
216
  }
187
217
  // Returns given index if it is in range or the opposite range boundary otherwise.
188
218
  function circleIndex(index, _a) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useCallback, useMemo, useState } from 'react';\nimport { KeyCode } from '../../internal/keycode';\nimport { ChartContainerProps } from '../chart-container';\nimport { ChartDataTypes, MixedLineBarChartProps } from '../interfaces';\nimport { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales';\nimport { findNavigableSeries, isXThreshold, isYThreshold, nextValidDomainIndex } from '../utils';\nimport { ScaledPoint } from '../make-scaled-series';\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\n\nexport type UseNavigationProps<T extends ChartDataTypes> = Pick<\n ChartContainerProps<T>,\n 'highlightedSeries' | 'series' | 'visibleSeries'\n> & {\n xScale: ChartScale;\n yScale: NumericChartScale;\n barGroups: ScaledBarGroup<T>[];\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n\n highlightedPoint: ScaledPoint<T> | null;\n highlightedGroupIndex: number | null;\n legendSeries: null | MixedLineBarChartProps.ChartSeries<T>;\n isHandlersDisabled: boolean;\n\n pinPopover(pinned?: boolean): void;\n highlightSeries(series: MixedLineBarChartProps.ChartSeries<T> | null): void;\n highlightGroup(groupIndex: number): void;\n highlightPoint(point: ScaledPoint<T> | null): void;\n clearHighlightedSeries(): void;\n};\n\nexport function useNavigation<T extends ChartDataTypes>({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n legendSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n}: UseNavigationProps<T>) {\n const [targetX, setTargetX] = useState<T | null>(null);\n\n // There are two different types of navigation:\n // 1) Group navigation for any chart that contains a bar series\n // 2) Line navigation for any chart that only contains lines and thresholds\n const isGroupNavigation = visibleSeries.some(({ series }) => series.type === 'bar');\n\n // Make a list of series that can be navigated between. Bar series are treated as one.\n const { navigableSeries } = useMemo(() => findNavigableSeries(visibleSeries), [visibleSeries]);\n\n const onBarGroupFocus = () => {\n const groupIndex = highlightedGroupIndex ?? 0;\n setTargetX((xScale.domain as T[])[groupIndex]);\n highlightGroup(groupIndex);\n };\n\n const onLineGroupFocus = () => {\n if (!highlightedSeries || !highlightedPoint) {\n const targetSeries = highlightedSeries ?? legendSeries ?? series[0]?.series ?? null;\n highlightSeries(targetSeries);\n for (const scaledS of scaledSeries) {\n if (scaledS.series === targetSeries) {\n highlightPoint(scaledS);\n return;\n }\n }\n }\n };\n\n const onFocus = () => {\n if (isGroupNavigation) {\n onBarGroupFocus();\n } else {\n onLineGroupFocus();\n }\n };\n\n const moveBetweenSeries = useCallback(\n (direction: number) => {\n if (isGroupNavigation) {\n return;\n }\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const MAX_SERIES_INDEX = navigableSeries.length - 1;\n\n // Find the index of the currently highlighted series (if any)\n let previousSeriesIndex = -1;\n if (highlightedSeries) {\n previousSeriesIndex = navigableSeries.indexOf(highlightedSeries);\n }\n\n // Move forwards or backwards to the new series\n let nextSeriesIndex = 0;\n if (previousSeriesIndex !== -1) {\n nextSeriesIndex = previousSeriesIndex + direction;\n if (nextSeriesIndex > MAX_SERIES_INDEX) {\n nextSeriesIndex = 0;\n } else if (nextSeriesIndex < 0) {\n nextSeriesIndex = MAX_SERIES_INDEX;\n }\n }\n\n const nextSeries = navigableSeries[nextSeriesIndex];\n const nextInternalSeries = series.filter(({ series }) => series === nextSeries)[0];\n\n // 2. Find point in the next series\n let targetXPoint = (xScale.d3Scale(targetX as any) ?? NaN) + xOffset;\n if (!isFinite(targetXPoint)) {\n targetXPoint = 0;\n }\n\n if (nextSeries.type === 'line') {\n const nextScaledSeries = scaledSeries.filter(it => it.series === nextSeries);\n const closestNextSeriesPoint = nextScaledSeries.reduce(\n (prev, curr) => (Math.abs(curr.x - targetXPoint) < Math.abs(prev.x - targetXPoint) ? curr : prev),\n { x: -Infinity, y: -Infinity }\n );\n highlightSeries(nextSeries);\n highlightPoint({ ...closestNextSeriesPoint, color: nextInternalSeries.color, series: nextSeries });\n } else if (isYThreshold(nextSeries)) {\n const scaledTargetIndex = scaledSeries.map(it => it.datum?.x || null).indexOf(targetX);\n highlightSeries(nextSeries);\n highlightPoint({\n x: targetXPoint,\n y: yScale.d3Scale(nextSeries.y) ?? NaN,\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: scaledSeries[scaledTargetIndex]?.datum,\n });\n } else if (isXThreshold(nextSeries)) {\n highlightSeries(nextSeries);\n highlightPoint({\n x: xScale.d3Scale(nextSeries.x as any) ?? NaN,\n y: yScale.d3Scale.range()[0],\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: { x: nextSeries.x, y: NaN },\n });\n }\n },\n [\n isGroupNavigation,\n xScale,\n navigableSeries,\n highlightedSeries,\n scaledSeries,\n series,\n targetX,\n highlightSeries,\n highlightPoint,\n yScale,\n ]\n );\n\n const moveWithinSeries = useCallback(\n (direction: number) => {\n const series = highlightedSeries || visibleSeries[0].series;\n const previousPoint = highlightedPoint || scaledSeries[0];\n\n if (series.type === 'line' || isYThreshold(series)) {\n const targetScaledSeries = scaledSeries.filter(it => it.series === series);\n const indexOfPreviousPoint = targetScaledSeries.map(it => it.x).indexOf(previousPoint.x);\n const nextPointIndex = circleIndex(indexOfPreviousPoint + direction, [0, targetScaledSeries.length - 1]);\n const nextPoint = targetScaledSeries[nextPointIndex];\n\n setTargetX(nextPoint.datum?.x || null);\n highlightSeries(series);\n highlightPoint(nextPoint);\n } else if (series.type === 'bar') {\n const xDomain = xScale.domain as T[];\n const MAX_GROUP_INDEX = xDomain.length - 1;\n\n let nextGroupIndex = 0;\n if (highlightedGroupIndex !== null) {\n // find next group\n nextGroupIndex = highlightedGroupIndex + direction;\n if (nextGroupIndex > MAX_GROUP_INDEX) {\n nextGroupIndex = 0;\n } else if (nextGroupIndex < 0) {\n nextGroupIndex = MAX_GROUP_INDEX;\n }\n }\n\n const nextDomainIndex = nextValidDomainIndex(nextGroupIndex, barGroups, direction);\n setTargetX(xDomain[nextDomainIndex]);\n highlightGroup(nextDomainIndex);\n }\n },\n [\n highlightedSeries,\n visibleSeries,\n highlightedPoint,\n scaledSeries,\n highlightSeries,\n highlightPoint,\n xScale.domain,\n highlightedGroupIndex,\n barGroups,\n highlightGroup,\n ]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.up &&\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.down &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.space &&\n keyCode !== KeyCode.enter\n ) {\n return;\n }\n\n event.preventDefault();\n\n if (isHandlersDisabled) {\n return;\n }\n\n if (keyCode === KeyCode.down || keyCode === KeyCode.up) {\n moveBetweenSeries(keyCode === KeyCode.down ? 1 : -1);\n } else if (keyCode === KeyCode.left || keyCode === KeyCode.right) {\n moveWithinSeries(keyCode === KeyCode.right ? 1 : -1);\n } else if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n pinPopover();\n }\n },\n [moveWithinSeries, moveBetweenSeries, isHandlersDisabled, pinPopover]\n );\n\n return { isGroupNavigation, onFocus, onKeyDown };\n}\n\n// Returns given index if it is in range or the opposite range boundary otherwise.\nfunction circleIndex(index: number, [from, to]: [number, number]): number {\n if (index < from) {\n return to;\n }\n if (index > to) {\n return from;\n }\n return index;\n}\n"]}
1
+ {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AA0BjG,MAAM,UAAU,aAAa,CAA2B,EAiBhC;QAhBtB,MAAM,YAAA,EACN,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,SAAS,eAAA,EACT,MAAM,YAAA,EACN,MAAM,YAAA,EACN,gBAAgB,sBAAA,EAChB,qBAAqB,2BAAA,EACrB,iBAAiB,uBAAA,EACjB,kBAAkB,wBAAA,EAClB,UAAU,gBAAA,EACV,eAAe,qBAAA,EACf,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,UAAU,gBAAA,EACV,eAAe,qBAAA;IAET,IAAA,KAAwB,QAAQ,CAAW,IAAI,CAAC,EAA/C,OAAO,QAAA,EAAE,UAAU,QAA4B,CAAC;IACjD,IAAA,KAAsB,QAAQ,CAAC,CAAC,CAAC,EAAhC,MAAM,QAAA,EAAE,SAAS,QAAe,CAAC;IAExC,+CAA+C;IAC/C,+DAA+D;IAC/D,2EAA2E;IAC3E,IAAM,iBAAiB,GAAG,OAAO,CAAC,cAAM,OAAA,aAAa,CAAC,IAAI,CAAC,UAAC,EAAU;YAAR,MAAM,YAAA;QAAO,OAAA,MAAM,CAAC,IAAI,KAAK,KAAK;IAArB,CAAqB,CAAC,EAAzD,CAAyD,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpH,sFAAsF;IAC9E,IAAA,eAAe,GAAK,OAAO,CAAC,cAAM,OAAA,mBAAmB,CAAC,aAAa,CAAC,EAAlC,CAAkC,EAAE,CAAC,aAAa,CAAC,CAAC,gBAAvE,CAAwE;IAC/F,IAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1D,IAAM,eAAe,GAAG;QACtB,IAAM,UAAU,GAAG,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,CAAC,CAAC;QAC9C,UAAU,CAAE,MAAM,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,cAAc,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,IAAI,sBAAsB,EAAE;gBAC1B,oBAAoB,CAAC,CAAC,CAAC,CAAC;aACzB;iBAAM;gBACL,iBAAiB,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;IACH,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG;QACd,IAAI,iBAAiB,EAAE;YACrB,eAAe,EAAE,CAAC;SACnB;aAAM;YACL,WAAW,EAAE,CAAC;SACf;IACH,CAAC,CAAC;IAEF,wDAAwD;IACxD,yCAAyC;IACzC,IAAM,UAAU,GAAG,OAAO,CAAC;QACzB,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC5F,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;aACvD;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,IAAM,iBAAiB,GAAG,WAAW,CACnC,UAAC,SAAiB;;QAChB,IAAI,iBAAiB,EAAE;YACrB,OAAO;SACR;QAED,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAEpD,8DAA8D;QAC9D,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,iBAAiB,EAAE;YACrB,mBAAmB,GAAG,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAClE;QAED,+CAA+C;QAC/C,oGAAoG;QACpG,IAAM,kBAAkB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,mBAAmB,KAAK,IAAI,EAAE;YAChC,eAAe,GAAG,mBAAmB,GAAG,SAAS,CAAC;YAClD,IAAI,eAAe,GAAG,gBAAgB,EAAE;gBACtC,eAAe,GAAG,kBAAkB,CAAC;aACtC;iBAAM,IAAI,eAAe,GAAG,kBAAkB,EAAE;gBAC/C,eAAe,GAAG,gBAAgB,CAAC;aACpC;SACF;QACD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO;SACR;QACD,IAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACpD,IAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,EAAU;gBAAR,MAAM,YAAA;YAAO,OAAA,MAAM,KAAK,UAAU;QAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,mCAAmC;QACnC,IAAI,YAAY,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,CAAC,OAAc,CAAC,mCAAI,GAAG,CAAC,GAAG,OAAO,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC3B,YAAY,GAAG,CAAC,CAAC;SAClB;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,IAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,MAAM,KAAK,UAAU,EAAxB,CAAwB,CAAC,CAAC;YAC7E,IAAM,sBAAsB,GAAG,gBAAgB,CAAC,MAAM,CACpD,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAjF,CAAiF,EACjG,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAC/B,CAAC;YACF,cAAc,uBAAM,sBAAsB,KAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,IAAG,CAAC;SACpG;aAAM,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;YACnC,IAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,UAAA,EAAE,YAAI,OAAA,CAAA,MAAA,EAAE,CAAC,KAAK,0CAAE,CAAC,KAAI,IAAI,CAAA,EAAA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvF,cAAc,CAAC;gBACb,CAAC,EAAE,YAAY;gBACf,CAAC,EAAE,MAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,mCAAI,GAAG;gBACtC,KAAK,EAAE,kBAAkB,CAAC,KAAK;gBAC/B,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,MAAA,YAAY,CAAC,iBAAiB,CAAC,0CAAE,KAAK;aAC9C,CAAC,CAAC;SACJ;aAAM,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;YACnC,cAAc,CAAC;gBACb,CAAC,EAAE,MAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAQ,CAAC,mCAAI,GAAG;gBAC7C,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC5B,KAAK,EAAE,kBAAkB,CAAC,KAAK;gBAC/B,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;aACnC,CAAC,CAAC;SACJ;IACH,CAAC,EACD;QACE,iBAAiB;QACjB,MAAM;QACN,eAAe;QACf,iBAAiB;QACjB,sBAAsB;QACtB,eAAe;QACf,cAAc;QACd,MAAM;QACN,OAAO;QACP,YAAY;QACZ,MAAM;KACP,CACF,CAAC;IAEF,IAAM,gBAAgB,GAAG,WAAW,CAClC,UAAC,SAAiB;;QAChB,IAAM,MAAM,GAAG,iBAAiB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;YAClD,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,MAAM,KAAK,MAAM,EAApB,CAAoB,CAAC,CAAC;YAC3E,IAAM,aAAa,GAAG,gBAAgB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAChE,IAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,CAAC,EAAJ,CAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACzF,IAAM,cAAc,GAAG,WAAW,CAAC,oBAAoB,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACzG,IAAM,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAErD,UAAU,CAAC,CAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,CAAC,KAAI,IAAI,CAAC,CAAC;YACvC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC1B,cAAc,CAAC,SAAS,CAAC,CAAC;SAC3B;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;YAChC,IAAM,OAAO,GAAG,MAAM,CAAC,MAAa,CAAC;YACrC,IAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAE3C,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,qBAAqB,KAAK,IAAI,EAAE;gBAClC,kBAAkB;gBAClB,cAAc,GAAG,qBAAqB,GAAG,SAAS,CAAC;gBACnD,IAAI,cAAc,GAAG,eAAe,EAAE;oBACpC,cAAc,GAAG,CAAC,CAAC;iBACpB;qBAAM,IAAI,cAAc,GAAG,CAAC,EAAE;oBAC7B,cAAc,GAAG,eAAe,CAAC;iBAClC;aACF;YAED,IAAM,eAAe,GAAG,oBAAoB,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,cAAc,CAAC,eAAe,CAAC,CAAC;SACjC;IACH,CAAC,EACD;QACE,iBAAiB;QACjB,aAAa;QACb,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,MAAM,CAAC,MAAM;QACb,qBAAqB;QACrB,SAAS;QACT,cAAc;KACf,CACF,CAAC;IAEF,IAAM,oBAAoB,GAAG,WAAW,CACtC,UAAC,KAAa;;QACZ,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,CAAC,KAAI,IAAI,CAAC,CAAC;QACnC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,IAAI,EAAE,KAAK,EAAE,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,CAAC,mCAAI,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC,EACD,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB,CAAC;IAEF,IAAM,eAAe,GAAG,WAAW,CACjC,UAAC,SAAiB;QAChB,IAAI,iBAAiB,IAAI,iBAAiB,EAAE;YAC1C,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC7B;aAAM;YACL,IAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACxF,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;SAC3C;IACH,CAAC,EACD,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC1G,CAAC;IAEF,IAAM,SAAS,GAAG,WAAW,CAC3B,UAAC,KAA0B;QACzB,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IACE,OAAO,KAAK,OAAO,CAAC,EAAE;YACtB,OAAO,KAAK,OAAO,CAAC,KAAK;YACzB,OAAO,KAAK,OAAO,CAAC,IAAI;YACxB,OAAO,KAAK,OAAO,CAAC,IAAI;YACxB,OAAO,KAAK,OAAO,CAAC,KAAK;YACzB,OAAO,KAAK,OAAO,CAAC,KAAK,EACzB;YACA,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,kBAAkB,EAAE;YACtB,OAAO;SACR;QAED,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE;YACtD,iBAAiB,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD;aAAM,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE;YAChE,eAAe,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;aAAM,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE;YACjE,UAAU,EAAE,CAAC;SACd;IACH,CAAC,EACD,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,CAAC,CACrE,CAAC;IAEF,OAAO,EAAE,iBAAiB,mBAAA,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AAC3D,CAAC;AAED,kFAAkF;AAClF,SAAS,WAAW,CAAC,KAAa,EAAE,EAA4B;QAA3B,IAAI,QAAA,EAAE,EAAE,QAAA;IAC3C,IAAI,KAAK,GAAG,IAAI,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,KAAK,GAAG,EAAE,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { KeyCode } from '../../internal/keycode';\nimport { ChartContainerProps } from '../chart-container';\nimport { ChartDataTypes, MixedLineBarChartProps, VerticalMarkerX } from '../interfaces';\nimport { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales';\nimport { findNavigableSeries, isXThreshold, isYThreshold, nextValidDomainIndex } from '../utils';\nimport { ScaledPoint } from '../make-scaled-series';\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\n\nexport type UseNavigationProps<T extends ChartDataTypes> = Pick<\n ChartContainerProps<T>,\n 'highlightedSeries' | 'series' | 'visibleSeries'\n> & {\n xScale: ChartScale;\n yScale: NumericChartScale;\n barGroups: ScaledBarGroup<T>[];\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n\n highlightedPoint: ScaledPoint<T> | null;\n highlightedGroupIndex: number | null;\n isHandlersDisabled: boolean;\n\n pinPopover(pinned?: boolean): void;\n highlightSeries(series: MixedLineBarChartProps.ChartSeries<T> | null): void;\n highlightGroup(groupIndex: number): void;\n highlightPoint(point: ScaledPoint<T> | null): void;\n highlightX: (verticalMarker: VerticalMarkerX<T> | null) => void;\n clearHighlightedSeries(): void;\n verticalMarkerX: VerticalMarkerX<T> | null;\n};\n\nexport function useNavigation<T extends ChartDataTypes>({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n verticalMarkerX,\n}: UseNavigationProps<T>) {\n const [targetX, setTargetX] = useState<T | null>(null);\n const [xIndex, setXIndex] = useState(0);\n\n // There are two different types of navigation:\n // 1) Group navigation for any chart that contains a bar series\n // 2) Line navigation for any chart that only contains lines and thresholds\n const isGroupNavigation = useMemo(() => visibleSeries.some(({ series }) => series.type === 'bar'), [visibleSeries]);\n\n // Make a list of series that can be navigated between. Bar series are treated as one.\n const { navigableSeries } = useMemo(() => findNavigableSeries(visibleSeries), [visibleSeries]);\n const containsMultipleSeries = navigableSeries.length > 1;\n\n const onBarGroupFocus = () => {\n const groupIndex = highlightedGroupIndex ?? 0;\n setTargetX((xScale.domain as T[])[groupIndex]);\n highlightGroup(groupIndex);\n };\n\n const onLineFocus = () => {\n if (verticalMarkerX === null) {\n if (containsMultipleSeries) {\n moveToLineGroupIndex(0);\n } else {\n moveBetweenSeries(0);\n }\n }\n };\n\n const onFocus = () => {\n if (isGroupNavigation) {\n onBarGroupFocus();\n } else {\n onLineFocus();\n }\n };\n\n // Returns all the unique X coordinates in scaledSeries.\n // Assumes scaledSeries is sorted by `x`.\n const allUniqueX = useMemo(() => {\n const result = [];\n for (let i = 0; i < scaledSeries.length; i += 1) {\n const point = scaledSeries[i];\n if (point !== undefined && (!result.length || result[result.length - 1].scaledX !== point.x)) {\n result.push({ scaledX: point.x, datum: point.datum });\n }\n }\n return result;\n }, [scaledSeries]);\n\n const moveBetweenSeries = useCallback(\n (direction: number) => {\n if (isGroupNavigation) {\n return;\n }\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const MAX_SERIES_INDEX = navigableSeries.length - 1;\n\n // Find the index of the currently highlighted series (if any)\n let previousSeriesIndex = -1;\n if (highlightedSeries) {\n previousSeriesIndex = navigableSeries.indexOf(highlightedSeries);\n }\n\n // Move forwards or backwards to the new series\n // If index === -1, show all data points from all series at the given X instead of one single series\n const firstPossibleIndex = containsMultipleSeries ? -1 : 0;\n let nextSeriesIndex = 0;\n if (previousSeriesIndex !== null) {\n nextSeriesIndex = previousSeriesIndex + direction;\n if (nextSeriesIndex > MAX_SERIES_INDEX) {\n nextSeriesIndex = firstPossibleIndex;\n } else if (nextSeriesIndex < firstPossibleIndex) {\n nextSeriesIndex = MAX_SERIES_INDEX;\n }\n }\n if (nextSeriesIndex === -1) {\n highlightSeries(null);\n highlightPoint(null);\n return;\n }\n const nextSeries = navigableSeries[nextSeriesIndex];\n const nextInternalSeries = series.filter(({ series }) => series === nextSeries)[0];\n\n // 2. Find point in the next series\n let targetXPoint = (xScale.d3Scale(targetX as any) ?? NaN) + xOffset;\n if (!isFinite(targetXPoint)) {\n targetXPoint = 0;\n }\n\n if (nextSeries.type === 'line') {\n const nextScaledSeries = scaledSeries.filter(it => it.series === nextSeries);\n const closestNextSeriesPoint = nextScaledSeries.reduce(\n (prev, curr) => (Math.abs(curr.x - targetXPoint) < Math.abs(prev.x - targetXPoint) ? curr : prev),\n { x: -Infinity, y: -Infinity }\n );\n highlightPoint({ ...closestNextSeriesPoint, color: nextInternalSeries.color, series: nextSeries });\n } else if (isYThreshold(nextSeries)) {\n const scaledTargetIndex = scaledSeries.map(it => it.datum?.x || null).indexOf(targetX);\n highlightPoint({\n x: targetXPoint,\n y: yScale.d3Scale(nextSeries.y) ?? NaN,\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: scaledSeries[scaledTargetIndex]?.datum,\n });\n } else if (isXThreshold(nextSeries)) {\n highlightPoint({\n x: xScale.d3Scale(nextSeries.x as any) ?? NaN,\n y: yScale.d3Scale.range()[0],\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: { x: nextSeries.x, y: NaN },\n });\n }\n },\n [\n isGroupNavigation,\n xScale,\n navigableSeries,\n highlightedSeries,\n containsMultipleSeries,\n highlightSeries,\n highlightPoint,\n series,\n targetX,\n scaledSeries,\n yScale,\n ]\n );\n\n const moveWithinSeries = useCallback(\n (direction: number) => {\n const series = highlightedSeries || visibleSeries[0].series;\n\n if (series.type === 'line' || isYThreshold(series)) {\n const targetScaledSeries = scaledSeries.filter(it => it.series === series);\n const previousPoint = highlightedPoint || targetScaledSeries[0];\n const indexOfPreviousPoint = targetScaledSeries.map(it => it.x).indexOf(previousPoint.x);\n const nextPointIndex = circleIndex(indexOfPreviousPoint + direction, [0, targetScaledSeries.length - 1]);\n const nextPoint = targetScaledSeries[nextPointIndex];\n\n setTargetX(nextPoint.datum?.x || null);\n setXIndex(nextPointIndex);\n highlightPoint(nextPoint);\n } else if (series.type === 'bar') {\n const xDomain = xScale.domain as T[];\n const MAX_GROUP_INDEX = xDomain.length - 1;\n\n let nextGroupIndex = 0;\n if (highlightedGroupIndex !== null) {\n // find next group\n nextGroupIndex = highlightedGroupIndex + direction;\n if (nextGroupIndex > MAX_GROUP_INDEX) {\n nextGroupIndex = 0;\n } else if (nextGroupIndex < 0) {\n nextGroupIndex = MAX_GROUP_INDEX;\n }\n }\n\n const nextDomainIndex = nextValidDomainIndex(nextGroupIndex, barGroups, direction);\n setTargetX(xDomain[nextDomainIndex]);\n highlightGroup(nextDomainIndex);\n }\n },\n [\n highlightedSeries,\n visibleSeries,\n scaledSeries,\n highlightedPoint,\n highlightPoint,\n xScale.domain,\n highlightedGroupIndex,\n barGroups,\n highlightGroup,\n ]\n );\n\n const moveToLineGroupIndex = useCallback(\n (index: number) => {\n const point = allUniqueX[index];\n setXIndex(index);\n setTargetX(point.datum?.x || null);\n highlightX({ scaledX: point?.scaledX ?? null, label: point.datum?.x ?? null });\n },\n [allUniqueX, highlightX]\n );\n\n const moveWithinXAxis = useCallback(\n (direction: number) => {\n if (highlightedSeries || isGroupNavigation) {\n moveWithinSeries(direction);\n } else {\n const nextPointGroupIndex = circleIndex(xIndex + direction, [0, allUniqueX.length - 1]);\n moveToLineGroupIndex(nextPointGroupIndex);\n }\n },\n [highlightedSeries, isGroupNavigation, moveWithinSeries, xIndex, allUniqueX.length, moveToLineGroupIndex]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.up &&\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.down &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.space &&\n keyCode !== KeyCode.enter\n ) {\n return;\n }\n\n event.preventDefault();\n\n if (isHandlersDisabled) {\n return;\n }\n\n if (keyCode === KeyCode.down || keyCode === KeyCode.up) {\n moveBetweenSeries(keyCode === KeyCode.down ? 1 : -1);\n } else if (keyCode === KeyCode.left || keyCode === KeyCode.right) {\n moveWithinXAxis(keyCode === KeyCode.right ? 1 : -1);\n } else if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n pinPopover();\n }\n },\n [isHandlersDisabled, moveBetweenSeries, moveWithinXAxis, pinPopover]\n );\n\n return { isGroupNavigation, onFocus, onKeyDown, xIndex };\n}\n\n// Returns given index if it is in range or the opposite range boundary otherwise.\nfunction circleIndex(index: number, [from, to]: [number, number]): number {\n if (index < from) {\n return to;\n }\n if (index > to) {\n return from;\n }\n return index;\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';
2
- export declare type ChartDataTypes = number | string | Date;
3
- export declare type SeriesType = 'line' | 'bar';
4
- export declare type ScaleType = 'linear' | 'log' | 'time' | 'categorical';
5
- export declare type ScaleRange = [number, number];
2
+ export type ChartDataTypes = number | string | Date;
3
+ export type SeriesType = 'line' | 'bar';
4
+ export type ScaleType = 'linear' | 'log' | 'time' | 'categorical';
5
+ export type ScaleRange = [number, number];
6
6
  export interface InternalChartSeries<T> {
7
7
  index: number;
8
8
  color: string;
@@ -78,4 +78,8 @@ export declare namespace MixedLineBarChartProps {
78
78
  export type I18nStrings<T> = CartesianChartProps.I18nStrings<T>;
79
79
  export {};
80
80
  }
81
+ export interface VerticalMarkerX<T> {
82
+ scaledX: number;
83
+ label: T | null;
84
+ }
81
85
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\n\nexport type ChartDataTypes = number | string | Date;\n\nexport type SeriesType = 'line' | 'bar';\nexport type ScaleType = 'linear' | 'log' | 'time' | 'categorical';\nexport type ScaleRange = [number, number];\n\nexport interface InternalChartSeries<T> {\n index: number;\n color: string;\n series: MixedLineBarChartProps.ChartSeries<T>;\n}\n\nexport interface MixedLineBarChartProps<T extends ChartDataTypes>\n extends CartesianChartProps<T, MixedLineBarChartProps.ChartSeries<T>> {\n /**\n * Array that represents the source of data for the displayed chart.\n * Each element can represent a line series, bar series, or a threshold, and can have the following properties:\n *\n * * `title` (string): A human-readable title for this series.\n * * `type` (string): Series type (`\"line\"`, `\"bar\"`, or `\"threshold\"`).\n * * `data` (Array): For line and bar series, an array of data points, represented as objects with `x` and `y` properties.\n * * `y` (number): For threshold series, the value of the threshold.\n * * `color` (string): (Optional) A color hex value for this series. When assigned, it takes priority over the automatically assigned color.\n * * `valueFormatter` (Function): (Optional) A function that formats data values before rendering in the UI, For example, in the details popover.\n */\n series: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>;\n\n /**\n * When set to `true`, bars in the same data point are stacked instead of grouped next to each other.\n */\n stackedBars?: boolean;\n\n /**\n * When set to `true`, the x and y axes are flipped, which causes any bars to be rendered horizontally instead of vertically.\n * This can only be used when the chart consists exclusively of bar series.\n */\n horizontalBars?: boolean;\n\n /**\n * When set to `true`, adds a visual emphasis on the zero baseline axis.\n * See the usage guidelines for more details.\n */\n emphasizeBaselineAxis?: boolean;\n}\n\nexport namespace MixedLineBarChartProps {\n export interface Datum<T> {\n x: T;\n y: number;\n }\n\n interface IDataSeries<T> {\n type: 'line' | 'bar' | 'threshold';\n title: string;\n color?: string;\n\n // This makes sure that the element type of the array is reduced to just one type,\n // even if `T` is a union type, e.g. `number | string`.\n data: T extends unknown ? ReadonlyArray<Datum<T>> : ReadonlyArray<Datum<T>>;\n valueFormatter?: T extends unknown\n ? CartesianChartProps.ValueFormatter<number, T>\n : CartesianChartProps.ValueFormatter<number, T>;\n }\n\n export interface BarDataSeries<T> extends IDataSeries<T> {\n type: 'bar';\n }\n\n export interface LineDataSeries<T> extends IDataSeries<T> {\n type: 'line';\n }\n\n export interface ThresholdSeries<T = any> extends Omit<IDataSeries<never>, 'data' | 'valueFormatter'> {\n type: 'threshold';\n y?: number;\n x?: T;\n valueFormatter?: CartesianChartProps.TickFormatter<number>;\n }\n\n export interface YThresholdSeries extends Omit<ThresholdSeries<never>, 'x'> {\n type: 'threshold';\n y: number;\n valueFormatter?: CartesianChartProps.TickFormatter<number>;\n }\n\n export interface XThresholdSeries<T> extends Omit<ThresholdSeries<T>, 'y' | 'valueFormatter'> {\n type: 'threshold';\n x: T;\n }\n\n export type DataSeries<T> = LineDataSeries<T> | BarDataSeries<T>;\n\n export type ChartSeries<T> = DataSeries<T> | ThresholdSeries<T>;\n\n export type FilterChangeDetail<T> = CartesianChartProps.FilterChangeDetail<ChartSeries<T>>;\n\n export type HighlightChangeDetail<T> = CartesianChartProps.HighlightChangeDetail<ChartSeries<T>>;\n\n export type TickFormatter<T> = CartesianChartProps.TickFormatter<T>;\n\n export type ValueFormatter<YType, XType = null> = CartesianChartProps.ValueFormatter<YType, XType>;\n\n export type I18nStrings<T> = CartesianChartProps.I18nStrings<T>;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\n\nexport type ChartDataTypes = number | string | Date;\n\nexport type SeriesType = 'line' | 'bar';\nexport type ScaleType = 'linear' | 'log' | 'time' | 'categorical';\nexport type ScaleRange = [number, number];\n\nexport interface InternalChartSeries<T> {\n index: number;\n color: string;\n series: MixedLineBarChartProps.ChartSeries<T>;\n}\n\nexport interface MixedLineBarChartProps<T extends ChartDataTypes>\n extends CartesianChartProps<T, MixedLineBarChartProps.ChartSeries<T>> {\n /**\n * Array that represents the source of data for the displayed chart.\n * Each element can represent a line series, bar series, or a threshold, and can have the following properties:\n *\n * * `title` (string): A human-readable title for this series.\n * * `type` (string): Series type (`\"line\"`, `\"bar\"`, or `\"threshold\"`).\n * * `data` (Array): For line and bar series, an array of data points, represented as objects with `x` and `y` properties.\n * * `y` (number): For threshold series, the value of the threshold.\n * * `color` (string): (Optional) A color hex value for this series. When assigned, it takes priority over the automatically assigned color.\n * * `valueFormatter` (Function): (Optional) A function that formats data values before rendering in the UI, For example, in the details popover.\n */\n series: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>;\n\n /**\n * When set to `true`, bars in the same data point are stacked instead of grouped next to each other.\n */\n stackedBars?: boolean;\n\n /**\n * When set to `true`, the x and y axes are flipped, which causes any bars to be rendered horizontally instead of vertically.\n * This can only be used when the chart consists exclusively of bar series.\n */\n horizontalBars?: boolean;\n\n /**\n * When set to `true`, adds a visual emphasis on the zero baseline axis.\n * See the usage guidelines for more details.\n */\n emphasizeBaselineAxis?: boolean;\n}\n\nexport namespace MixedLineBarChartProps {\n export interface Datum<T> {\n x: T;\n y: number;\n }\n\n interface IDataSeries<T> {\n type: 'line' | 'bar' | 'threshold';\n title: string;\n color?: string;\n\n // This makes sure that the element type of the array is reduced to just one type,\n // even if `T` is a union type, e.g. `number | string`.\n data: T extends unknown ? ReadonlyArray<Datum<T>> : ReadonlyArray<Datum<T>>;\n valueFormatter?: T extends unknown\n ? CartesianChartProps.ValueFormatter<number, T>\n : CartesianChartProps.ValueFormatter<number, T>;\n }\n\n export interface BarDataSeries<T> extends IDataSeries<T> {\n type: 'bar';\n }\n\n export interface LineDataSeries<T> extends IDataSeries<T> {\n type: 'line';\n }\n\n export interface ThresholdSeries<T = any> extends Omit<IDataSeries<never>, 'data' | 'valueFormatter'> {\n type: 'threshold';\n y?: number;\n x?: T;\n valueFormatter?: CartesianChartProps.TickFormatter<number>;\n }\n\n export interface YThresholdSeries extends Omit<ThresholdSeries<never>, 'x'> {\n type: 'threshold';\n y: number;\n valueFormatter?: CartesianChartProps.TickFormatter<number>;\n }\n\n export interface XThresholdSeries<T> extends Omit<ThresholdSeries<T>, 'y' | 'valueFormatter'> {\n type: 'threshold';\n x: T;\n }\n\n export type DataSeries<T> = LineDataSeries<T> | BarDataSeries<T>;\n\n export type ChartSeries<T> = DataSeries<T> | ThresholdSeries<T>;\n\n export type FilterChangeDetail<T> = CartesianChartProps.FilterChangeDetail<ChartSeries<T>>;\n\n export type HighlightChangeDetail<T> = CartesianChartProps.HighlightChangeDetail<ChartSeries<T>>;\n\n export type TickFormatter<T> = CartesianChartProps.TickFormatter<T>;\n\n export type ValueFormatter<YType, XType = null> = CartesianChartProps.ValueFormatter<YType, XType>;\n\n export type I18nStrings<T> = CartesianChartProps.I18nStrings<T>;\n}\n\nexport interface VerticalMarkerX<T> {\n scaledX: number;\n label: T | null;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { ChartDataTypes, MixedLineBarChartProps } from './interfaces';
2
2
  import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
3
3
  import { SomeRequired } from '../internal/types';
4
- declare type InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<MixedLineBarChartProps<T>, 'series' | 'height' | 'xScaleType' | 'yScaleType' | 'stackedBars' | 'horizontalBars' | 'statusType' | 'detailPopoverSize' | 'emphasizeBaselineAxis'> & InternalBaseComponentProps;
4
+ type InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<MixedLineBarChartProps<T>, 'series' | 'height' | 'xScaleType' | 'yScaleType' | 'stackedBars' | 'horizontalBars' | 'statusType' | 'detailPopoverSize' | 'emphasizeBaselineAxis'> & InternalBaseComponentProps;
5
5
  export default function InternalMixedLineBarChart<T extends number | string | Date>({ height, xScaleType, yScaleType, xDomain, yDomain, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, stackedBars, horizontalBars, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, emphasizeBaselineAxis, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef, ...props }: InternalMixedLineBarChartProps<T>): JSX.Element;
6
6
  export {};
7
7
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,aAAK,8BAA8B,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAC1E,sBAAsB,CAAC,CAAC,CAAC,EACvB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,uBAAuB,CAC1B,GACC,0BAA0B,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,EAClF,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,cAAc,EACtB,cAAc,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,MAAM,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,8BAA8B,CAAC,CAAC,CAAC,eAmNnC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,KAAK,8BAA8B,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAC1E,sBAAsB,CAAC,CAAC,CAAC,EACvB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,uBAAuB,CAC1B,GACC,0BAA0B,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,EAClF,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,cAAc,EACtB,cAAc,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,MAAM,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,8BAA8B,CAAC,CAAC,CAAC,eAkNnC"}
@@ -117,7 +117,7 @@ export default function InternalMixedLineBarChart(_a) {
117
117
  _b[styles['content--reserve-legend']] = reserveLegendSpace,
118
118
  _b)), style: { minHeight: height } },
119
119
  React.createElement(ChartStatusContainer, { isEmpty: isEmpty, isNoMatch: isNoMatch, showChart: showChart, statusType: statusType, empty: empty, noMatch: noMatch, loadingText: loadingText, errorText: errorText, recoveryText: recoveryText, onRecoveryClick: onRecoveryClick }),
120
- showChart && (React.createElement(ChartContainer, { height: height, xScaleType: xScaleType, yScaleType: yScaleType, xDomain: xDomain, yDomain: yDomain, xTickFormatter: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.xTickFormatter, yTickFormatter: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.yTickFormatter, emphasizeBaselineAxis: emphasizeBaselineAxis, stackedBars: stackedBars, horizontalBars: horizontalBars, series: series, visibleSeries: visibleSeries, highlightedSeries: highlightedSeries, onHighlightChange: onHighlightChange, highlightedPoint: highlightedPoint, setHighlightedPoint: setHighlightedPoint, highlightedGroupIndex: highlightedGroupIndex, setHighlightedGroupIndex: setHighlightedGroupIndex, legendSeries: legendSeries, detailPopoverSize: detailPopoverSize, xTitle: xTitle, yTitle: yTitle, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings, plotContainerRef: containerRef }))),
120
+ showChart && (React.createElement(ChartContainer, { height: height, xScaleType: xScaleType, yScaleType: yScaleType, xDomain: xDomain, yDomain: yDomain, xTickFormatter: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.xTickFormatter, yTickFormatter: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.yTickFormatter, emphasizeBaselineAxis: emphasizeBaselineAxis, stackedBars: stackedBars, horizontalBars: horizontalBars, series: series, visibleSeries: visibleSeries, highlightedSeries: highlightedSeries, onHighlightChange: onHighlightChange, highlightedPoint: highlightedPoint, setHighlightedPoint: setHighlightedPoint, highlightedGroupIndex: highlightedGroupIndex, setHighlightedGroupIndex: setHighlightedGroupIndex, detailPopoverSize: detailPopoverSize, xTitle: xTitle, yTitle: yTitle, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings, plotContainerRef: containerRef }))),
121
121
  showLegend && (React.createElement(InternalBox, { margin: { top: 'm' } },
122
122
  React.createElement(InternalChartLegend, { series: series, visibleSeries: externalVisibleSeries || [], highlightedSeries: legendSeries, onHighlightChange: onHighlightChange, legendTitle: legendTitle, ariaLabel: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.legendAriaLabel, plotContainerRef: containerRef })))));
123
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport InternalBox from '../box/internal';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { warnOnce } from '../internal/logging';\n\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\nimport InternalChartFilters from './chart-filters';\nimport InternalChartLegend from './chart-legend';\nimport ChartContainer from './chart-container';\nimport cartesianStyles from '../internal/components/cartesian-chart/styles.css.js';\nimport styles from './styles.css.js';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport createCategoryColorScale from '../internal/utils/create-category-color-scale';\nimport { ScaledPoint } from './make-scaled-series';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { nodeContains } from '../internal/utils/dom';\nimport { SomeRequired } from '../internal/types';\nimport { isXThreshold, isYThreshold } from './utils';\n\ntype InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<\n MixedLineBarChartProps<T>,\n | 'series'\n | 'height'\n | 'xScaleType'\n | 'yScaleType'\n | 'stackedBars'\n | 'horizontalBars'\n | 'statusType'\n | 'detailPopoverSize'\n | 'emphasizeBaselineAxis'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalMixedLineBarChart<T extends number | string | Date>({\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n stackedBars,\n horizontalBars,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n emphasizeBaselineAxis,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef = null,\n ...props\n}: InternalMixedLineBarChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const gotBarSeries = externalSeries.some(s => s.type === 'bar');\n const gotLineSeries = externalSeries.some(s => s.type === 'line');\n\n if (xScaleType !== 'categorical' && gotBarSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Bar series cannot be used with a ${xScaleType} scale. Use a categorical x axis instead.`\n );\n }\n\n if (horizontalBars && gotLineSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Property horizontalBars can only be used with charts that contain only bar or threshold series.`\n );\n }\n\n for (const s of externalSeries) {\n if (s.type === 'threshold' && s.x !== undefined && s.y !== undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n if (s.type === 'threshold' && s.x === undefined && s.y === undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n }\n }, [xScaleType, horizontalBars, externalSeries]);\n\n const series = useMemo(() => {\n // Generate series colors if not explicitly provided.\n // The thresholds use a dedicated colour scale.\n const colors = createCategoryColorScale(\n externalSeries,\n it => isYThreshold(it) || isXThreshold(it),\n it => it.color || null\n );\n\n return externalSeries.map((s, i) => ({ index: i, color: colors[i], series: s }));\n }, [externalSeries]);\n\n const [highlightedPoint, setHighlightedPoint] = useState<ScaledPoint<T> | null>(null);\n const [highlightedGroupIndex, setHighlightedGroupIndex] = useState<number | null>(null);\n const [highlightedSeries = null, setHighlightedSeries] = useControllable(\n controlledHighlightedSeries,\n controlledOnHighlightChange,\n null,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'highlightedSeries',\n changeHandler: 'onHighlightChange',\n }\n );\n const [legendSeries, setLegendSeries] = useState<MixedLineBarChartProps.ChartSeries<T> | null>(highlightedSeries);\n useEffect(() => {\n setLegendSeries(controlledHighlightedSeries || null);\n }, [controlledHighlightedSeries]);\n\n const [externalVisibleSeries, setExternalVisibleSeries] = useControllable(\n controlledVisibleSeries,\n onFilterChange,\n externalSeries,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'visibleSeries',\n changeHandler: 'onFilterChange',\n }\n );\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousSeries = usePrevious(externalSeries);\n\n const hasPrevious = !!(previousSeries && previousSeries.length);\n const hasCurrent = !!externalSeries.length;\n\n if (hasPrevious && hasCurrent && externalSeries !== previousSeries && !controlledVisibleSeries && !hideFilter) {\n warnOnce(\n 'MixedLineBarChart',\n 'The `series` value passed into the component changed. ' +\n 'This may cause problems with filtering - we recommend that you make the `series` value constant, ' +\n 'or provide a `visibleSeries` value that derives from the current `series` value.'\n );\n }\n }\n\n const visibleSeries = useMemo(\n () => series.filter(s => externalVisibleSeries?.indexOf(s.series) !== -1),\n [series, externalVisibleSeries]\n );\n\n const filterChange = (selectedSeries: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>) => {\n setExternalVisibleSeries(selectedSeries);\n fireNonCancelableEvent(onFilterChange, {\n visibleSeries: selectedSeries,\n });\n };\n\n const onHighlightChange = (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n setHighlightedSeries(series);\n fireNonCancelableEvent(controlledOnHighlightChange, {\n highlightedSeries: series,\n });\n setLegendSeries(series);\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeContains(containerRef.current, event.relatedTarget)) {\n highlightedSeries && onHighlightChange(highlightedSeries);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(null);\n setLegendSeries(null);\n }\n };\n\n const { isEmpty, isNoMatch, showChart } = getChartStatus({\n externalData: externalSeries,\n visibleData: visibleSeries || [],\n statusType,\n });\n const showFilters = statusType === 'finished' && (!isEmpty || isNoMatch);\n const showLegend = !hideLegend && !isEmpty && statusType === 'finished';\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = !showChart && !isNoMatch && (!hideFilter || additionalFilters);\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={mergedRef} onBlur={onBlur}>\n {showFilters && (\n <InternalBox className={cartesianStyles['filter-container']} margin={{ bottom: 'l' }}>\n <InternalChartFilters\n series={series}\n visibleSeries={externalVisibleSeries || []}\n onChange={filterChange}\n i18nStrings={i18nStrings}\n hideFilter={hideFilter}\n additionalFilters={additionalFilters}\n />\n </InternalBox>\n )}\n\n <div\n className={clsx(styles.content, {\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n style={{ minHeight: height }}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <ChartContainer\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n xDomain={xDomain}\n yDomain={yDomain}\n xTickFormatter={i18nStrings?.xTickFormatter}\n yTickFormatter={i18nStrings?.yTickFormatter}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n series={series}\n visibleSeries={visibleSeries}\n highlightedSeries={highlightedSeries}\n onHighlightChange={onHighlightChange}\n highlightedPoint={highlightedPoint}\n setHighlightedPoint={setHighlightedPoint}\n highlightedGroupIndex={highlightedGroupIndex}\n setHighlightedGroupIndex={setHighlightedGroupIndex}\n legendSeries={legendSeries}\n detailPopoverSize={detailPopoverSize}\n xTitle={xTitle}\n yTitle={yTitle}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n plotContainerRef={containerRef}\n />\n )}\n </div>\n\n {showLegend && (\n <InternalBox margin={{ top: 'm' }}>\n <InternalChartLegend\n series={series}\n visibleSeries={externalVisibleSeries || []}\n highlightedSeries={legendSeries}\n onHighlightChange={onHighlightChange}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings?.legendAriaLabel}\n plotContainerRef={containerRef}\n />\n </InternalBox>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport InternalBox from '../box/internal';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { warnOnce } from '../internal/logging';\n\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\nimport InternalChartFilters from './chart-filters';\nimport InternalChartLegend from './chart-legend';\nimport ChartContainer from './chart-container';\nimport cartesianStyles from '../internal/components/cartesian-chart/styles.css.js';\nimport styles from './styles.css.js';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport createCategoryColorScale from '../internal/utils/create-category-color-scale';\nimport { ScaledPoint } from './make-scaled-series';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { nodeContains } from '../internal/utils/dom';\nimport { SomeRequired } from '../internal/types';\nimport { isXThreshold, isYThreshold } from './utils';\n\ntype InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<\n MixedLineBarChartProps<T>,\n | 'series'\n | 'height'\n | 'xScaleType'\n | 'yScaleType'\n | 'stackedBars'\n | 'horizontalBars'\n | 'statusType'\n | 'detailPopoverSize'\n | 'emphasizeBaselineAxis'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalMixedLineBarChart<T extends number | string | Date>({\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n stackedBars,\n horizontalBars,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n emphasizeBaselineAxis,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef = null,\n ...props\n}: InternalMixedLineBarChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const gotBarSeries = externalSeries.some(s => s.type === 'bar');\n const gotLineSeries = externalSeries.some(s => s.type === 'line');\n\n if (xScaleType !== 'categorical' && gotBarSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Bar series cannot be used with a ${xScaleType} scale. Use a categorical x axis instead.`\n );\n }\n\n if (horizontalBars && gotLineSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Property horizontalBars can only be used with charts that contain only bar or threshold series.`\n );\n }\n\n for (const s of externalSeries) {\n if (s.type === 'threshold' && s.x !== undefined && s.y !== undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n if (s.type === 'threshold' && s.x === undefined && s.y === undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n }\n }, [xScaleType, horizontalBars, externalSeries]);\n\n const series = useMemo(() => {\n // Generate series colors if not explicitly provided.\n // The thresholds use a dedicated colour scale.\n const colors = createCategoryColorScale(\n externalSeries,\n it => isYThreshold(it) || isXThreshold(it),\n it => it.color || null\n );\n\n return externalSeries.map((s, i) => ({ index: i, color: colors[i], series: s }));\n }, [externalSeries]);\n\n const [highlightedPoint, setHighlightedPoint] = useState<ScaledPoint<T> | null>(null);\n const [highlightedGroupIndex, setHighlightedGroupIndex] = useState<number | null>(null);\n const [highlightedSeries = null, setHighlightedSeries] = useControllable(\n controlledHighlightedSeries,\n controlledOnHighlightChange,\n null,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'highlightedSeries',\n changeHandler: 'onHighlightChange',\n }\n );\n const [legendSeries, setLegendSeries] = useState<MixedLineBarChartProps.ChartSeries<T> | null>(highlightedSeries);\n useEffect(() => {\n setLegendSeries(controlledHighlightedSeries || null);\n }, [controlledHighlightedSeries]);\n\n const [externalVisibleSeries, setExternalVisibleSeries] = useControllable(\n controlledVisibleSeries,\n onFilterChange,\n externalSeries,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'visibleSeries',\n changeHandler: 'onFilterChange',\n }\n );\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousSeries = usePrevious(externalSeries);\n\n const hasPrevious = !!(previousSeries && previousSeries.length);\n const hasCurrent = !!externalSeries.length;\n\n if (hasPrevious && hasCurrent && externalSeries !== previousSeries && !controlledVisibleSeries && !hideFilter) {\n warnOnce(\n 'MixedLineBarChart',\n 'The `series` value passed into the component changed. ' +\n 'This may cause problems with filtering - we recommend that you make the `series` value constant, ' +\n 'or provide a `visibleSeries` value that derives from the current `series` value.'\n );\n }\n }\n\n const visibleSeries = useMemo(\n () => series.filter(s => externalVisibleSeries?.indexOf(s.series) !== -1),\n [series, externalVisibleSeries]\n );\n\n const filterChange = (selectedSeries: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>) => {\n setExternalVisibleSeries(selectedSeries);\n fireNonCancelableEvent(onFilterChange, {\n visibleSeries: selectedSeries,\n });\n };\n\n const onHighlightChange = (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n setHighlightedSeries(series);\n fireNonCancelableEvent(controlledOnHighlightChange, {\n highlightedSeries: series,\n });\n setLegendSeries(series);\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeContains(containerRef.current, event.relatedTarget)) {\n highlightedSeries && onHighlightChange(highlightedSeries);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(null);\n setLegendSeries(null);\n }\n };\n\n const { isEmpty, isNoMatch, showChart } = getChartStatus({\n externalData: externalSeries,\n visibleData: visibleSeries || [],\n statusType,\n });\n const showFilters = statusType === 'finished' && (!isEmpty || isNoMatch);\n const showLegend = !hideLegend && !isEmpty && statusType === 'finished';\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = !showChart && !isNoMatch && (!hideFilter || additionalFilters);\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={mergedRef} onBlur={onBlur}>\n {showFilters && (\n <InternalBox className={cartesianStyles['filter-container']} margin={{ bottom: 'l' }}>\n <InternalChartFilters\n series={series}\n visibleSeries={externalVisibleSeries || []}\n onChange={filterChange}\n i18nStrings={i18nStrings}\n hideFilter={hideFilter}\n additionalFilters={additionalFilters}\n />\n </InternalBox>\n )}\n\n <div\n className={clsx(styles.content, {\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n style={{ minHeight: height }}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <ChartContainer\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n xDomain={xDomain}\n yDomain={yDomain}\n xTickFormatter={i18nStrings?.xTickFormatter}\n yTickFormatter={i18nStrings?.yTickFormatter}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n series={series}\n visibleSeries={visibleSeries}\n highlightedSeries={highlightedSeries}\n onHighlightChange={onHighlightChange}\n highlightedPoint={highlightedPoint}\n setHighlightedPoint={setHighlightedPoint}\n highlightedGroupIndex={highlightedGroupIndex}\n setHighlightedGroupIndex={setHighlightedGroupIndex}\n detailPopoverSize={detailPopoverSize}\n xTitle={xTitle}\n yTitle={yTitle}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n plotContainerRef={containerRef}\n />\n )}\n </div>\n\n {showLegend && (\n <InternalBox margin={{ top: 'm' }}>\n <InternalChartLegend\n series={series}\n visibleSeries={externalVisibleSeries || []}\n highlightedSeries={legendSeries}\n onHighlightChange={onHighlightChange}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings?.legendAriaLabel}\n plotContainerRef={containerRef}\n />\n </InternalBox>\n )}\n </div>\n );\n}\n"]}
@@ -1,24 +1,24 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "series": "awsui_series_1yz9c_2aodi_93",
5
- "series--bar": "awsui_series--bar_1yz9c_2aodi_94",
6
- "series__rect": "awsui_series__rect_1yz9c_2aodi_94",
7
- "exiting": "awsui_exiting_1yz9c_2aodi_111",
8
- "awsui-motion-fade-out-0": "awsui_awsui-motion-fade-out-0_1yz9c_2aodi_1",
9
- "root": "awsui_root_1yz9c_2aodi_137",
10
- "filter-container": "awsui_filter-container_1yz9c_2aodi_150",
11
- "has-default-filter": "awsui_has-default-filter_1yz9c_2aodi_154",
12
- "chart-container": "awsui_chart-container_1yz9c_2aodi_158",
13
- "chart-container__vertical": "awsui_chart-container__vertical_1yz9c_2aodi_164",
14
- "chart-container__horizontal": "awsui_chart-container__horizontal_1yz9c_2aodi_170",
15
- "content": "awsui_content_1yz9c_2aodi_174",
16
- "content--reserve-filter": "awsui_content--reserve-filter_1yz9c_2aodi_181",
17
- "content--reserve-legend": "awsui_content--reserve-legend_1yz9c_2aodi_185",
18
- "series--highlighted": "awsui_series--highlighted_1yz9c_2aodi_198",
19
- "series__bar--highlighted": "awsui_series__bar--highlighted_1yz9c_2aodi_199",
20
- "series--dimmed": "awsui_series--dimmed_1yz9c_2aodi_203",
21
- "series--threshold": "awsui_series--threshold_1yz9c_2aodi_212",
22
- "bar-group": "awsui_bar-group_1yz9c_2aodi_217"
4
+ "series": "awsui_series_1yz9c_1wjj3_93",
5
+ "series--bar": "awsui_series--bar_1yz9c_1wjj3_94",
6
+ "series__rect": "awsui_series__rect_1yz9c_1wjj3_94",
7
+ "exiting": "awsui_exiting_1yz9c_1wjj3_111",
8
+ "awsui-motion-fade-out-0": "awsui_awsui-motion-fade-out-0_1yz9c_1wjj3_1",
9
+ "root": "awsui_root_1yz9c_1wjj3_137",
10
+ "filter-container": "awsui_filter-container_1yz9c_1wjj3_150",
11
+ "has-default-filter": "awsui_has-default-filter_1yz9c_1wjj3_154",
12
+ "chart-container": "awsui_chart-container_1yz9c_1wjj3_158",
13
+ "chart-container__vertical": "awsui_chart-container__vertical_1yz9c_1wjj3_164",
14
+ "chart-container__horizontal": "awsui_chart-container__horizontal_1yz9c_1wjj3_170",
15
+ "content": "awsui_content_1yz9c_1wjj3_174",
16
+ "content--reserve-filter": "awsui_content--reserve-filter_1yz9c_1wjj3_181",
17
+ "content--reserve-legend": "awsui_content--reserve-legend_1yz9c_1wjj3_185",
18
+ "series--highlighted": "awsui_series--highlighted_1yz9c_1wjj3_198",
19
+ "series__bar--highlighted": "awsui_series__bar--highlighted_1yz9c_1wjj3_199",
20
+ "series--dimmed": "awsui_series--dimmed_1yz9c_1wjj3_203",
21
+ "series--threshold": "awsui_series--threshold_1yz9c_1wjj3_212",
22
+ "bar-group": "awsui_bar-group_1yz9c_1wjj3_217"
23
23
  };
24
24