@cloudscape-design/components 3.0.840 → 3.0.841

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 (601) hide show
  1. package/annotation-context/annotation/annotation-icon.d.ts +2 -1
  2. package/annotation-context/annotation/annotation-icon.d.ts.map +1 -1
  3. package/annotation-context/annotation/annotation-icon.js.map +1 -1
  4. package/annotation-context/annotation/annotation-popover.d.ts +2 -1
  5. package/annotation-context/annotation/annotation-popover.d.ts.map +1 -1
  6. package/annotation-context/annotation/annotation-popover.js.map +1 -1
  7. package/annotation-context/annotation/annotation-trigger.d.ts +1 -1
  8. package/annotation-context/annotation/annotation-trigger.d.ts.map +1 -1
  9. package/annotation-context/annotation/annotation-trigger.js.map +1 -1
  10. package/annotation-context/annotation/closed-annotation.d.ts +2 -1
  11. package/annotation-context/annotation/closed-annotation.d.ts.map +1 -1
  12. package/annotation-context/annotation/closed-annotation.js.map +1 -1
  13. package/annotation-context/annotation/open-annotation.d.ts +2 -1
  14. package/annotation-context/annotation/open-annotation.d.ts.map +1 -1
  15. package/annotation-context/annotation/open-annotation.js.map +1 -1
  16. package/app-layout/classic.d.ts.map +1 -1
  17. package/app-layout/classic.js +7 -3
  18. package/app-layout/classic.js.map +1 -1
  19. package/app-layout/defaults.d.ts +2 -1
  20. package/app-layout/defaults.d.ts.map +1 -1
  21. package/app-layout/defaults.js.map +1 -1
  22. package/app-layout/split-panel/split-panel-forced-position.d.ts +5 -0
  23. package/app-layout/split-panel/split-panel-forced-position.d.ts.map +1 -0
  24. package/app-layout/split-panel/split-panel-forced-position.js +30 -0
  25. package/app-layout/split-panel/split-panel-forced-position.js.map +1 -0
  26. package/app-layout/utils/use-resize.d.ts +1 -1
  27. package/app-layout/utils/use-resize.d.ts.map +1 -1
  28. package/app-layout/utils/use-resize.js.map +1 -1
  29. package/app-layout/utils/use-split-panel-focus-control.d.ts +2 -1
  30. package/app-layout/utils/use-split-panel-focus-control.d.ts.map +1 -1
  31. package/app-layout/utils/use-split-panel-focus-control.js.map +1 -1
  32. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  33. package/app-layout/visual-refresh/context.js +5 -8
  34. package/app-layout/visual-refresh/context.js.map +1 -1
  35. package/app-layout/visual-refresh/drawers.d.ts +0 -8
  36. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  37. package/app-layout/visual-refresh/drawers.js +1 -1
  38. package/app-layout/visual-refresh/drawers.js.map +1 -1
  39. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  40. package/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
  41. package/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  42. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +1 -1
  43. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  44. package/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
  45. package/app-layout/visual-refresh-toolbar/index.js +32 -2
  46. package/app-layout/visual-refresh-toolbar/index.js.map +1 -1
  47. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts +1 -1
  48. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts.map +1 -1
  49. package/app-layout/visual-refresh-toolbar/split-panel/index.js +3 -1
  50. package/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  51. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  52. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +3 -5
  53. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  54. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  55. package/app-layout/visual-refresh-toolbar/toolbar/index.js +4 -1
  56. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  57. package/area-chart/elements/area-series.d.ts +1 -1
  58. package/area-chart/elements/area-series.d.ts.map +1 -1
  59. package/area-chart/elements/area-series.js.map +1 -1
  60. package/area-chart/elements/threshold-series.d.ts +1 -1
  61. package/area-chart/elements/threshold-series.d.ts.map +1 -1
  62. package/area-chart/elements/threshold-series.js.map +1 -1
  63. package/attribute-editor/internal.d.ts.map +1 -1
  64. package/attribute-editor/internal.js +5 -1
  65. package/attribute-editor/internal.js.map +1 -1
  66. package/attribute-editor/row.d.ts +2 -1
  67. package/attribute-editor/row.d.ts.map +1 -1
  68. package/attribute-editor/row.js.map +1 -1
  69. package/autosuggest/analytics-metadata/interfaces.d.ts +0 -4
  70. package/autosuggest/analytics-metadata/interfaces.d.ts.map +1 -1
  71. package/autosuggest/analytics-metadata/interfaces.js.map +1 -1
  72. package/autosuggest/autosuggest-option.d.ts +1 -1
  73. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  74. package/autosuggest/autosuggest-option.js.map +1 -1
  75. package/autosuggest/internal.d.ts +1 -1
  76. package/autosuggest/internal.d.ts.map +1 -1
  77. package/autosuggest/internal.js.map +1 -1
  78. package/autosuggest/load-more-controller.d.ts +3 -2
  79. package/autosuggest/load-more-controller.d.ts.map +1 -1
  80. package/autosuggest/load-more-controller.js.map +1 -1
  81. package/autosuggest/options-list.d.ts +2 -1
  82. package/autosuggest/options-list.d.ts.map +1 -1
  83. package/autosuggest/options-list.js.map +1 -1
  84. package/breadcrumb-group/analytics-metadata/interfaces.d.ts +0 -7
  85. package/breadcrumb-group/analytics-metadata/interfaces.d.ts.map +1 -1
  86. package/breadcrumb-group/analytics-metadata/interfaces.js.map +1 -1
  87. package/button-dropdown/interfaces.d.ts +4 -3
  88. package/button-dropdown/interfaces.d.ts.map +1 -1
  89. package/button-dropdown/interfaces.js.map +1 -1
  90. package/button-dropdown/item-element/index.d.ts +0 -7
  91. package/button-dropdown/item-element/index.d.ts.map +1 -1
  92. package/button-dropdown/item-element/index.js.map +1 -1
  93. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts +1 -1
  94. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts.map +1 -1
  95. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  96. package/button-dropdown/tooltip.d.ts +2 -1
  97. package/button-dropdown/tooltip.d.ts.map +1 -1
  98. package/button-dropdown/tooltip.js.map +1 -1
  99. package/button-dropdown/utils/menu-item.d.ts +3 -2
  100. package/button-dropdown/utils/menu-item.d.ts.map +1 -1
  101. package/button-dropdown/utils/menu-item.js.map +1 -1
  102. package/calendar/grid/index.d.ts +2 -1
  103. package/calendar/grid/index.d.ts.map +1 -1
  104. package/calendar/grid/index.js.map +1 -1
  105. package/code-editor/pane.d.ts +2 -1
  106. package/code-editor/pane.d.ts.map +1 -1
  107. package/code-editor/pane.js.map +1 -1
  108. package/collection-preferences/analytics-metadata/interfaces.d.ts +0 -24
  109. package/collection-preferences/analytics-metadata/interfaces.d.ts.map +1 -1
  110. package/collection-preferences/analytics-metadata/interfaces.js.map +1 -1
  111. package/collection-preferences/content-display/content-display-option.d.ts +1 -1
  112. package/collection-preferences/content-display/content-display-option.d.ts.map +1 -1
  113. package/collection-preferences/content-display/content-display-option.js.map +1 -1
  114. package/collection-preferences/content-display/index.d.ts.map +1 -1
  115. package/collection-preferences/content-display/index.js +18 -42
  116. package/collection-preferences/content-display/index.js.map +1 -1
  117. package/collection-preferences/content-display/styles.css.js +12 -13
  118. package/collection-preferences/content-display/styles.scoped.css +15 -44
  119. package/collection-preferences/content-display/styles.selectors.js +12 -13
  120. package/collection-preferences/styles.css.js +38 -39
  121. package/collection-preferences/styles.scoped.css +42 -71
  122. package/collection-preferences/styles.selectors.js +38 -39
  123. package/copy-to-clipboard/internal.d.ts +2 -1
  124. package/copy-to-clipboard/internal.d.ts.map +1 -1
  125. package/copy-to-clipboard/internal.js.map +1 -1
  126. package/date-range-picker/calendar/grids/index.d.ts +2 -1
  127. package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  128. package/date-range-picker/calendar/grids/index.js.map +1 -1
  129. package/date-range-picker/calendar/grids/monthly-grid.d.ts +2 -1
  130. package/date-range-picker/calendar/grids/monthly-grid.d.ts.map +1 -1
  131. package/date-range-picker/calendar/grids/monthly-grid.js.map +1 -1
  132. package/date-range-picker/calendar/range-inputs.d.ts +1 -1
  133. package/date-range-picker/calendar/range-inputs.d.ts.map +1 -1
  134. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  135. package/date-range-picker/dropdown.d.ts +2 -2
  136. package/date-range-picker/dropdown.d.ts.map +1 -1
  137. package/date-range-picker/dropdown.js +1 -1
  138. package/date-range-picker/dropdown.js.map +1 -1
  139. package/date-range-picker/interfaces.d.ts +2 -1
  140. package/date-range-picker/interfaces.d.ts.map +1 -1
  141. package/date-range-picker/interfaces.js.map +1 -1
  142. package/date-range-picker/relative-range/index.d.ts +2 -1
  143. package/date-range-picker/relative-range/index.d.ts.map +1 -1
  144. package/date-range-picker/relative-range/index.js.map +1 -1
  145. package/drawer/implementation.d.ts +2 -1
  146. package/drawer/implementation.d.ts.map +1 -1
  147. package/drawer/implementation.js.map +1 -1
  148. package/drawer/interfaces.d.ts +2 -1
  149. package/drawer/interfaces.d.ts.map +1 -1
  150. package/drawer/interfaces.js.map +1 -1
  151. package/expandable-section/expandable-section-container.d.ts +2 -1
  152. package/expandable-section/expandable-section-container.d.ts.map +1 -1
  153. package/expandable-section/expandable-section-container.js.map +1 -1
  154. package/expandable-section/expandable-section-header.d.ts +0 -1
  155. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  156. package/expandable-section/expandable-section-header.js +1 -1
  157. package/expandable-section/expandable-section-header.js.map +1 -1
  158. package/expandable-section/internal.d.ts +2 -1
  159. package/expandable-section/internal.d.ts.map +1 -1
  160. package/expandable-section/internal.js.map +1 -1
  161. package/file-token-group/file-token.d.ts +1 -1
  162. package/file-token-group/file-token.d.ts.map +1 -1
  163. package/file-token-group/file-token.js.map +1 -1
  164. package/file-upload/interfaces.d.ts +0 -5
  165. package/file-upload/interfaces.d.ts.map +1 -1
  166. package/file-upload/interfaces.js.map +1 -1
  167. package/flashbar/analytics-metadata/interfaces.d.ts +0 -6
  168. package/flashbar/analytics-metadata/interfaces.d.ts.map +1 -1
  169. package/flashbar/analytics-metadata/interfaces.js.map +1 -1
  170. package/flashbar/collapsible-flashbar.d.ts +0 -1
  171. package/flashbar/collapsible-flashbar.d.ts.map +1 -1
  172. package/flashbar/collapsible-flashbar.js.map +1 -1
  173. package/flashbar/flash.d.ts +2 -1
  174. package/flashbar/flash.d.ts.map +1 -1
  175. package/flashbar/flash.js.map +1 -1
  176. package/flashbar/non-collapsible-flashbar.d.ts +0 -1
  177. package/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
  178. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  179. package/flashbar/utils.d.ts +2 -1
  180. package/flashbar/utils.d.ts.map +1 -1
  181. package/flashbar/utils.js.map +1 -1
  182. package/grid/internal.d.ts +1 -1
  183. package/grid/internal.d.ts.map +1 -1
  184. package/grid/internal.js.map +1 -1
  185. package/help-panel/implementation.d.ts +2 -1
  186. package/help-panel/implementation.d.ts.map +1 -1
  187. package/help-panel/implementation.js.map +1 -1
  188. package/i18n/context.d.ts +1 -1
  189. package/i18n/context.d.ts.map +1 -1
  190. package/i18n/context.js.map +1 -1
  191. package/i18n/testing.d.ts +2 -1
  192. package/i18n/testing.d.ts.map +1 -1
  193. package/i18n/testing.js.map +1 -1
  194. package/internal/analytics/components/analytics-funnel.d.ts +0 -1
  195. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  196. package/internal/analytics/components/analytics-funnel.js +1 -1
  197. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  198. package/internal/analytics/interfaces.d.ts +17 -24
  199. package/internal/analytics/interfaces.d.ts.map +1 -1
  200. package/internal/analytics/interfaces.js.map +1 -1
  201. package/internal/analytics/selectors.d.ts +1 -1
  202. package/internal/analytics/selectors.d.ts.map +1 -1
  203. package/internal/analytics/selectors.js +2 -1
  204. package/internal/analytics/selectors.js.map +1 -1
  205. package/internal/components/autosuggest-input/index.d.ts +2 -2
  206. package/internal/components/autosuggest-input/index.d.ts.map +1 -1
  207. package/internal/components/autosuggest-input/index.js.map +1 -1
  208. package/internal/components/cartesian-chart/highlighted-point.d.ts +1 -1
  209. package/internal/components/cartesian-chart/highlighted-point.d.ts.map +1 -1
  210. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  211. package/internal/components/cartesian-chart/scales.d.ts +4 -5
  212. package/internal/components/cartesian-chart/scales.d.ts.map +1 -1
  213. package/internal/components/cartesian-chart/scales.js +1 -1
  214. package/internal/components/cartesian-chart/scales.js.map +1 -1
  215. package/internal/components/cartesian-chart/vertical-marker.d.ts +1 -1
  216. package/internal/components/cartesian-chart/vertical-marker.d.ts.map +1 -1
  217. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  218. package/internal/components/chart-filter/index.d.ts +1 -1
  219. package/internal/components/chart-filter/index.d.ts.map +1 -1
  220. package/internal/components/chart-filter/index.js.map +1 -1
  221. package/internal/components/chart-legend/index.d.ts +1 -1
  222. package/internal/components/chart-legend/index.d.ts.map +1 -1
  223. package/internal/components/chart-legend/index.js.map +1 -1
  224. package/internal/components/chart-plot/application-controller.d.ts +1 -1
  225. package/internal/components/chart-plot/application-controller.d.ts.map +1 -1
  226. package/internal/components/chart-plot/application-controller.js.map +1 -1
  227. package/internal/components/chart-plot/focus-outline.d.ts +2 -1
  228. package/internal/components/chart-plot/focus-outline.d.ts.map +1 -1
  229. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  230. package/internal/components/chart-plot/index.d.ts +1 -1
  231. package/internal/components/chart-plot/index.d.ts.map +1 -1
  232. package/internal/components/chart-plot/index.js.map +1 -1
  233. package/internal/components/chart-popover/index.d.ts +1 -1
  234. package/internal/components/chart-popover/index.d.ts.map +1 -1
  235. package/internal/components/chart-popover/index.js.map +1 -1
  236. package/internal/components/chart-series-details/index.d.ts +1 -1
  237. package/internal/components/chart-series-details/index.d.ts.map +1 -1
  238. package/internal/components/chart-series-details/index.js.map +1 -1
  239. package/internal/components/checkbox-icon/index.d.ts +1 -10
  240. package/internal/components/checkbox-icon/index.d.ts.map +1 -1
  241. package/internal/components/checkbox-icon/index.js +1 -1
  242. package/internal/components/checkbox-icon/index.js.map +1 -1
  243. package/internal/components/dnd-container/index.d.ts +28 -0
  244. package/internal/components/dnd-container/index.d.ts.map +1 -0
  245. package/internal/components/dnd-container/index.js +67 -0
  246. package/internal/components/dnd-container/index.js.map +1 -0
  247. package/internal/components/dnd-container/interfaces.d.ts +13 -0
  248. package/internal/components/dnd-container/interfaces.d.ts.map +1 -0
  249. package/internal/components/dnd-container/interfaces.js +4 -0
  250. package/internal/components/dnd-container/interfaces.js.map +1 -0
  251. package/internal/components/dnd-container/keyboard-sensor/defaults.d.ts.map +1 -0
  252. package/internal/components/dnd-container/keyboard-sensor/defaults.js.map +1 -0
  253. package/internal/components/dnd-container/keyboard-sensor/index.d.ts.map +1 -0
  254. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.js +1 -1
  255. package/internal/components/dnd-container/keyboard-sensor/index.js.map +1 -0
  256. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts +7 -0
  257. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts.map +1 -0
  258. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/events.js +0 -4
  259. package/internal/components/dnd-container/keyboard-sensor/utilities/events.js.map +1 -0
  260. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.d.ts.map +1 -0
  261. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.js.map +1 -0
  262. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts +8 -0
  263. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts.map +1 -0
  264. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/scroll.js +2 -2
  265. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.js.map +1 -0
  266. package/internal/components/dnd-container/styles.css.js +6 -0
  267. package/internal/components/dnd-container/styles.scoped.css +168 -0
  268. package/internal/components/dnd-container/styles.selectors.js +7 -0
  269. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.d.ts +2 -4
  270. package/internal/components/dnd-container/use-drag-and-drop-reorder.d.ts.map +1 -0
  271. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.js +4 -4
  272. package/internal/components/dnd-container/use-drag-and-drop-reorder.js.map +1 -0
  273. package/internal/components/dnd-container/use-live-announcements.d.ts +11 -0
  274. package/internal/components/dnd-container/use-live-announcements.d.ts.map +1 -0
  275. package/{collection-preferences/content-display → internal/components/dnd-container}/use-live-announcements.js +6 -6
  276. package/internal/components/dnd-container/use-live-announcements.js.map +1 -0
  277. package/internal/components/dropdown/dropdown-fit-handler.d.ts +0 -30
  278. package/internal/components/dropdown/dropdown-fit-handler.d.ts.map +1 -1
  279. package/internal/components/dropdown/dropdown-fit-handler.js +4 -4
  280. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  281. package/internal/components/focus-lock/utils.d.ts +0 -1
  282. package/internal/components/focus-lock/utils.d.ts.map +1 -1
  283. package/internal/components/focus-lock/utils.js +1 -1
  284. package/internal/components/focus-lock/utils.js.map +1 -1
  285. package/internal/components/masked-input/index.d.ts +1 -2
  286. package/internal/components/masked-input/index.d.ts.map +1 -1
  287. package/internal/components/masked-input/index.js +0 -1
  288. package/internal/components/masked-input/index.js.map +1 -1
  289. package/internal/components/masked-input/utils/mask-format.d.ts +1 -1
  290. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  291. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  292. package/internal/components/option/highlight-match.d.ts +2 -1
  293. package/internal/components/option/highlight-match.d.ts.map +1 -1
  294. package/internal/components/option/highlight-match.js.map +1 -1
  295. package/internal/components/option/interfaces.d.ts +3 -2
  296. package/internal/components/option/interfaces.d.ts.map +1 -1
  297. package/internal/components/option/interfaces.js.map +1 -1
  298. package/internal/components/options-list/utils/use-highlight-option.d.ts +2 -1
  299. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  300. package/internal/components/options-list/utils/use-highlight-option.js +2 -2
  301. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  302. package/internal/components/screenreader-only/index.d.ts +2 -1
  303. package/internal/components/screenreader-only/index.d.ts.map +1 -1
  304. package/internal/components/screenreader-only/index.js.map +1 -1
  305. package/internal/components/tab-trap/index.d.ts +2 -1
  306. package/internal/components/tab-trap/index.d.ts.map +1 -1
  307. package/internal/components/tab-trap/index.js.map +1 -1
  308. package/internal/components/transition/index.d.ts +2 -1
  309. package/internal/components/transition/index.d.ts.map +1 -1
  310. package/internal/components/transition/index.js.map +1 -1
  311. package/internal/context/single-tab-stop-navigation-context.d.ts +2 -4
  312. package/internal/context/single-tab-stop-navigation-context.d.ts.map +1 -1
  313. package/internal/context/single-tab-stop-navigation-context.js.map +1 -1
  314. package/internal/context/table-component-context.d.ts +2 -2
  315. package/internal/context/table-component-context.d.ts.map +1 -1
  316. package/internal/context/table-component-context.js +1 -1
  317. package/internal/context/table-component-context.js.map +1 -1
  318. package/internal/environment.js +1 -1
  319. package/internal/environment.json +1 -1
  320. package/internal/hooks/forward-focus/radio-group.d.ts +2 -1
  321. package/internal/hooks/forward-focus/radio-group.d.ts.map +1 -1
  322. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  323. package/internal/hooks/use-dynamic-overlap/index.d.ts +2 -1
  324. package/internal/hooks/use-dynamic-overlap/index.d.ts.map +1 -1
  325. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  326. package/internal/keycode.d.ts +1 -5
  327. package/internal/keycode.d.ts.map +1 -1
  328. package/internal/keycode.js +0 -4
  329. package/internal/keycode.js.map +1 -1
  330. package/internal/manifest.json +1 -1
  331. package/internal/plugins/controllers/action-buttons.d.ts +1 -1
  332. package/internal/plugins/controllers/action-buttons.d.ts.map +1 -1
  333. package/internal/plugins/controllers/action-buttons.js.map +1 -1
  334. package/internal/plugins/controllers/alert-flash-content.d.ts +3 -3
  335. package/internal/plugins/controllers/alert-flash-content.d.ts.map +1 -1
  336. package/internal/plugins/controllers/alert-flash-content.js.map +1 -1
  337. package/internal/plugins/controllers/app-layout-widget.d.ts +1 -1
  338. package/internal/plugins/controllers/app-layout-widget.d.ts.map +1 -1
  339. package/internal/plugins/controllers/app-layout-widget.js.map +1 -1
  340. package/internal/plugins/controllers/drawers.d.ts +4 -4
  341. package/internal/plugins/controllers/drawers.d.ts.map +1 -1
  342. package/internal/plugins/controllers/drawers.js.map +1 -1
  343. package/internal/utils/handle-key.d.ts +2 -1
  344. package/internal/utils/handle-key.d.ts.map +1 -1
  345. package/internal/utils/handle-key.js.map +1 -1
  346. package/internal/utils/throttle.d.ts +2 -1
  347. package/internal/utils/throttle.d.ts.map +1 -1
  348. package/internal/utils/throttle.js.map +1 -1
  349. package/live-region/internal.d.ts +1 -1
  350. package/live-region/internal.d.ts.map +1 -1
  351. package/live-region/internal.js.map +1 -1
  352. package/mixed-line-bar-chart/bar-groups.d.ts +2 -1
  353. package/mixed-line-bar-chart/bar-groups.d.ts.map +1 -1
  354. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  355. package/mixed-line-bar-chart/bar-series.d.ts +2 -1
  356. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  357. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  358. package/mixed-line-bar-chart/data-series.d.ts +2 -1
  359. package/mixed-line-bar-chart/data-series.d.ts.map +1 -1
  360. package/mixed-line-bar-chart/data-series.js.map +1 -1
  361. package/mixed-line-bar-chart/interfaces.d.ts +0 -2
  362. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  363. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  364. package/mixed-line-bar-chart/line-series.d.ts +2 -1
  365. package/mixed-line-bar-chart/line-series.d.ts.map +1 -1
  366. package/mixed-line-bar-chart/line-series.js.map +1 -1
  367. package/modal/index.d.ts.map +1 -1
  368. package/modal/index.js +8 -2
  369. package/modal/index.js.map +1 -1
  370. package/multiselect/analytics-metadata/interfaces.d.ts +0 -4
  371. package/multiselect/analytics-metadata/interfaces.d.ts.map +1 -1
  372. package/multiselect/analytics-metadata/interfaces.js.map +1 -1
  373. package/package.json +1 -1
  374. package/pie-chart/interfaces.d.ts +2 -1
  375. package/pie-chart/interfaces.d.ts.map +1 -1
  376. package/pie-chart/interfaces.js.map +1 -1
  377. package/pie-chart/labels.d.ts +1 -1
  378. package/pie-chart/labels.d.ts.map +1 -1
  379. package/pie-chart/labels.js.map +1 -1
  380. package/pie-chart/pie-chart.d.ts +2 -7
  381. package/pie-chart/pie-chart.d.ts.map +1 -1
  382. package/pie-chart/pie-chart.js.map +1 -1
  383. package/popover/arrow.d.ts +1 -1
  384. package/popover/arrow.d.ts.map +1 -1
  385. package/popover/arrow.js.map +1 -1
  386. package/popover/container.d.ts +2 -1
  387. package/popover/container.d.ts.map +1 -1
  388. package/popover/container.js.map +1 -1
  389. package/prompt-input/internal.d.ts +1 -1
  390. package/prompt-input/internal.d.ts.map +1 -1
  391. package/prompt-input/internal.js.map +1 -1
  392. package/property-filter/analytics-metadata/interfaces.d.ts +0 -15
  393. package/property-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  394. package/property-filter/analytics-metadata/interfaces.js.map +1 -1
  395. package/property-filter/controller.d.ts +0 -1
  396. package/property-filter/controller.d.ts.map +1 -1
  397. package/property-filter/controller.js +1 -1
  398. package/property-filter/controller.js.map +1 -1
  399. package/property-filter/interfaces.d.ts +1 -6
  400. package/property-filter/interfaces.d.ts.map +1 -1
  401. package/property-filter/interfaces.js.map +1 -1
  402. package/property-filter/internal.d.ts +0 -2
  403. package/property-filter/internal.d.ts.map +1 -1
  404. package/property-filter/internal.js.map +1 -1
  405. package/property-filter/utils.d.ts +0 -1
  406. package/property-filter/utils.d.ts.map +1 -1
  407. package/property-filter/utils.js +1 -1
  408. package/property-filter/utils.js.map +1 -1
  409. package/s3-resource-selector/s3-modal/basic-table.d.ts +0 -6
  410. package/s3-resource-selector/s3-modal/basic-table.d.ts.map +1 -1
  411. package/s3-resource-selector/s3-modal/basic-table.js +1 -1
  412. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  413. package/segmented-control/segment.d.ts +2 -1
  414. package/segmented-control/segment.d.ts.map +1 -1
  415. package/segmented-control/segment.js.map +1 -1
  416. package/select/analytics-metadata/interfaces.d.ts +0 -4
  417. package/select/analytics-metadata/interfaces.d.ts.map +1 -1
  418. package/select/analytics-metadata/interfaces.js.map +1 -1
  419. package/select/utils/render-options.d.ts +2 -1
  420. package/select/utils/render-options.d.ts.map +1 -1
  421. package/select/utils/render-options.js.map +1 -1
  422. package/select/utils/use-native-search.d.ts +0 -1
  423. package/select/utils/use-native-search.d.ts.map +1 -1
  424. package/select/utils/use-native-search.js +1 -1
  425. package/select/utils/use-native-search.js.map +1 -1
  426. package/side-navigation/analytics-metadata/interfaces.d.ts +0 -2
  427. package/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -1
  428. package/side-navigation/analytics-metadata/interfaces.js.map +1 -1
  429. package/side-navigation/implementation.d.ts +2 -1
  430. package/side-navigation/implementation.d.ts.map +1 -1
  431. package/side-navigation/implementation.js.map +1 -1
  432. package/side-navigation/parts.d.ts +2 -2
  433. package/side-navigation/parts.d.ts.map +1 -1
  434. package/side-navigation/parts.js.map +1 -1
  435. package/slider/internal.d.ts +2 -1
  436. package/slider/internal.d.ts.map +1 -1
  437. package/slider/internal.js.map +1 -1
  438. package/slider/slider-labels.d.ts +2 -1
  439. package/slider/slider-labels.d.ts.map +1 -1
  440. package/slider/slider-labels.js.map +1 -1
  441. package/slider/tick-marks.d.ts +2 -4
  442. package/slider/tick-marks.d.ts.map +1 -1
  443. package/slider/tick-marks.js.map +1 -1
  444. package/split-panel/bottom.d.ts.map +1 -1
  445. package/split-panel/bottom.js +13 -3
  446. package/split-panel/bottom.js.map +1 -1
  447. package/split-panel/implementation.js +1 -1
  448. package/split-panel/implementation.js.map +1 -1
  449. package/split-panel/styles.css.js +26 -26
  450. package/split-panel/styles.scoped.css +43 -48
  451. package/split-panel/styles.selectors.js +26 -26
  452. package/steps/internal.d.ts +1 -1
  453. package/steps/internal.d.ts.map +1 -1
  454. package/steps/internal.js +1 -1
  455. package/steps/internal.js.map +1 -1
  456. package/table/interfaces.d.ts +3 -2
  457. package/table/interfaces.d.ts.map +1 -1
  458. package/table/interfaces.js.map +1 -1
  459. package/table/internal.js +2 -2
  460. package/table/internal.js.map +1 -1
  461. package/table/progressive-loading/loader-cell.d.ts +2 -1
  462. package/table/progressive-loading/loader-cell.d.ts.map +1 -1
  463. package/table/progressive-loading/loader-cell.js.map +1 -1
  464. package/table/selection/utils.d.ts +0 -1
  465. package/table/selection/utils.d.ts.map +1 -1
  466. package/table/selection/utils.js +1 -1
  467. package/table/selection/utils.js.map +1 -1
  468. package/table/sticky-columns/use-sticky-columns.d.ts +1 -21
  469. package/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  470. package/table/sticky-columns/use-sticky-columns.js +1 -1
  471. package/table/sticky-columns/use-sticky-columns.js.map +1 -1
  472. package/table/table-role/grid-navigation.js +10 -0
  473. package/table/table-role/grid-navigation.js.map +1 -1
  474. package/table/table-role/index.d.ts +1 -1
  475. package/table/table-role/index.d.ts.map +1 -1
  476. package/table/table-role/index.js.map +1 -1
  477. package/table/use-cell-editing.d.ts +1 -1
  478. package/table/use-cell-editing.d.ts.map +1 -1
  479. package/table/use-cell-editing.js.map +1 -1
  480. package/tabs/tab-header-bar.d.ts +2 -1
  481. package/tabs/tab-header-bar.d.ts.map +1 -1
  482. package/tabs/tab-header-bar.js.map +1 -1
  483. package/tag-editor/internal.d.ts +2 -1
  484. package/tag-editor/internal.d.ts.map +1 -1
  485. package/tag-editor/internal.js.map +1 -1
  486. package/test-utils/dom/anchor-navigation/index.d.ts +2 -1
  487. package/test-utils/dom/anchor-navigation/index.js +0 -2
  488. package/test-utils/dom/anchor-navigation/index.js.map +1 -1
  489. package/test-utils/dom/autosuggest/index.d.ts +0 -3
  490. package/test-utils/dom/autosuggest/index.js +1 -2
  491. package/test-utils/dom/autosuggest/index.js.map +1 -1
  492. package/test-utils/dom/cards/index.d.ts +3 -2
  493. package/test-utils/dom/cards/index.js +0 -3
  494. package/test-utils/dom/cards/index.js.map +1 -1
  495. package/test-utils/dom/key-value-pairs/index.d.ts +3 -2
  496. package/test-utils/dom/key-value-pairs/index.js +0 -3
  497. package/test-utils/dom/key-value-pairs/index.js.map +1 -1
  498. package/test-utils/dom/steps/index.d.ts +2 -1
  499. package/test-utils/dom/steps/index.js +0 -2
  500. package/test-utils/dom/steps/index.js.map +1 -1
  501. package/test-utils/dom/tabs/index.d.ts +2 -1
  502. package/test-utils/dom/tabs/index.js +0 -2
  503. package/test-utils/dom/tabs/index.js.map +1 -1
  504. package/test-utils/dom/tag-editor/index.d.ts +2 -1
  505. package/test-utils/dom/tag-editor/index.js +0 -2
  506. package/test-utils/dom/tag-editor/index.js.map +1 -1
  507. package/test-utils/selectors/anchor-navigation/index.d.ts +2 -1
  508. package/test-utils/selectors/anchor-navigation/index.js +0 -2
  509. package/test-utils/selectors/anchor-navigation/index.js.map +1 -1
  510. package/test-utils/selectors/autosuggest/index.d.ts +0 -3
  511. package/test-utils/selectors/autosuggest/index.js +1 -2
  512. package/test-utils/selectors/autosuggest/index.js.map +1 -1
  513. package/test-utils/selectors/cards/index.d.ts +3 -2
  514. package/test-utils/selectors/cards/index.js +0 -3
  515. package/test-utils/selectors/cards/index.js.map +1 -1
  516. package/test-utils/selectors/key-value-pairs/index.d.ts +3 -2
  517. package/test-utils/selectors/key-value-pairs/index.js +0 -3
  518. package/test-utils/selectors/key-value-pairs/index.js.map +1 -1
  519. package/test-utils/selectors/steps/index.d.ts +2 -1
  520. package/test-utils/selectors/steps/index.js +0 -2
  521. package/test-utils/selectors/steps/index.js.map +1 -1
  522. package/test-utils/selectors/tabs/index.d.ts +2 -1
  523. package/test-utils/selectors/tabs/index.js +0 -2
  524. package/test-utils/selectors/tabs/index.js.map +1 -1
  525. package/test-utils/selectors/tag-editor/index.d.ts +2 -1
  526. package/test-utils/selectors/tag-editor/index.js +0 -2
  527. package/test-utils/selectors/tag-editor/index.js.map +1 -1
  528. package/test-utils/tsconfig.tsbuildinfo +1 -1
  529. package/text-filter/analytics-metadata/interfaces.d.ts +0 -2
  530. package/text-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  531. package/text-filter/analytics-metadata/interfaces.js.map +1 -1
  532. package/toggle-button/internal.d.ts +0 -1
  533. package/toggle-button/internal.d.ts.map +1 -1
  534. package/toggle-button/internal.js +0 -1
  535. package/toggle-button/internal.js.map +1 -1
  536. package/token-group/analytics-metadata/interfaces.d.ts +0 -2
  537. package/token-group/analytics-metadata/interfaces.d.ts.map +1 -1
  538. package/token-group/analytics-metadata/interfaces.js.map +1 -1
  539. package/top-navigation/1.0-beta/internal.d.ts +2 -1
  540. package/top-navigation/1.0-beta/internal.d.ts.map +1 -1
  541. package/top-navigation/1.0-beta/internal.js.map +1 -1
  542. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts +2 -1
  543. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts.map +1 -1
  544. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  545. package/top-navigation/1.0-beta/use-top-navigation.d.ts +4 -24
  546. package/top-navigation/1.0-beta/use-top-navigation.d.ts.map +1 -1
  547. package/top-navigation/1.0-beta/use-top-navigation.js +2 -2
  548. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  549. package/top-navigation/internal.d.ts +2 -1
  550. package/top-navigation/internal.d.ts.map +1 -1
  551. package/top-navigation/internal.js.map +1 -1
  552. package/top-navigation/parts/overflow-menu/router.d.ts +1 -10
  553. package/top-navigation/parts/overflow-menu/router.d.ts.map +1 -1
  554. package/top-navigation/parts/overflow-menu/router.js +1 -1
  555. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  556. package/top-navigation/use-top-navigation.d.ts +4 -3
  557. package/top-navigation/use-top-navigation.d.ts.map +1 -1
  558. package/top-navigation/use-top-navigation.js.map +1 -1
  559. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts +2 -1
  560. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts.map +1 -1
  561. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  562. package/tutorial-panel/components/tutorial-list/index.d.ts +2 -1
  563. package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  564. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  565. package/wizard/analytics-metadata/interfaces.d.ts +0 -21
  566. package/wizard/analytics-metadata/interfaces.d.ts.map +1 -1
  567. package/wizard/analytics-metadata/interfaces.js.map +1 -1
  568. package/wizard/wizard-form.d.ts +1 -4
  569. package/wizard/wizard-form.d.ts.map +1 -1
  570. package/wizard/wizard-form.js +1 -1
  571. package/wizard/wizard-form.js.map +1 -1
  572. package/collection-preferences/content-display/draggable-option.d.ts +0 -9
  573. package/collection-preferences/content-display/draggable-option.d.ts.map +0 -1
  574. package/collection-preferences/content-display/draggable-option.js +0 -27
  575. package/collection-preferences/content-display/draggable-option.js.map +0 -1
  576. package/collection-preferences/content-display/keyboard-sensor/defaults.d.ts.map +0 -1
  577. package/collection-preferences/content-display/keyboard-sensor/defaults.js.map +0 -1
  578. package/collection-preferences/content-display/keyboard-sensor/index.d.ts.map +0 -1
  579. package/collection-preferences/content-display/keyboard-sensor/index.js.map +0 -1
  580. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts +0 -11
  581. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts.map +0 -1
  582. package/collection-preferences/content-display/keyboard-sensor/utilities/events.js.map +0 -1
  583. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.d.ts.map +0 -1
  584. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.js.map +0 -1
  585. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts +0 -30
  586. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts.map +0 -1
  587. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.js.map +0 -1
  588. package/collection-preferences/content-display/use-drag-and-drop-reorder.d.ts.map +0 -1
  589. package/collection-preferences/content-display/use-drag-and-drop-reorder.js.map +0 -1
  590. package/collection-preferences/content-display/use-live-announcements.d.ts +0 -12
  591. package/collection-preferences/content-display/use-live-announcements.d.ts.map +0 -1
  592. package/collection-preferences/content-display/use-live-announcements.js.map +0 -1
  593. package/internal/hooks/use-mutation-observer/index.d.ts +0 -8
  594. package/internal/hooks/use-mutation-observer/index.d.ts.map +0 -1
  595. package/internal/hooks/use-mutation-observer/index.js +0 -26
  596. package/internal/hooks/use-mutation-observer/index.js.map +0 -1
  597. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.d.ts +0 -0
  598. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.js +0 -0
  599. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.d.ts +0 -0
  600. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.d.ts +0 -0
  601. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"highlighted-point.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/highlighted-point.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;;AAED,wBAAkD"}
1
+ {"version":3,"file":"highlighted-point.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/highlighted-point.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;;AAED,wBAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"highlighted-point.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/highlighted-point.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAiBrC,eAAe,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAElD,SAAS,gBAAgB,CACvB,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAyB,EACvF,GAA2B;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2BAAG,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,gBAAc,SAAS,mBAAiB,YAAY,mBAAiB,YAAY;QACtG,gCACE,GAAG,EAAE,KAAK,CAAC,GAAG,iBACF,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,+BAA+B,CAAC,EAClD,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,KAAK,CAAC,KAAK,EACnB,IAAI,EAAE,KAAK,CAAC,KAAK,GACjB,CACA,CACL,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, memo } from 'react';\n\nimport styles from './styles.css.js';\n\ninterface SeriesPoint {\n key: string;\n x: number;\n y: number;\n color: string;\n}\n\nexport interface HighlightedPointProps {\n point: null | SeriesPoint;\n role?: 'group' | 'button';\n ariaLabel?: string;\n ariaHasPopup?: boolean;\n ariaExpanded?: boolean;\n}\n\nexport default memo(forwardRef(HighlightedPoint));\n\nfunction HighlightedPoint(\n { point, role = 'group', ariaLabel, ariaHasPopup, ariaExpanded }: HighlightedPointProps,\n ref: React.Ref<SVGGElement>\n) {\n if (!point) {\n return null;\n }\n\n return (\n <g ref={ref} role={role} aria-label={ariaLabel} aria-haspopup={ariaHasPopup} aria-expanded={ariaExpanded}>\n <circle\n key={point.key}\n aria-hidden=\"true\"\n className={styles['vertical-marker-circle-active']}\n cx={point.x}\n cy={point.y}\n r={4}\n stroke={point.color}\n fill={point.color}\n />\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"highlighted-point.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/highlighted-point.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAiBrC,eAAe,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAElD,SAAS,gBAAgB,CACvB,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAyB,EACvF,GAA2B;IAE3B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2BAAG,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,gBAAc,SAAS,mBAAiB,YAAY,mBAAiB,YAAY;QACtG,gCACE,GAAG,EAAE,KAAK,CAAC,GAAG,iBACF,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,+BAA+B,CAAC,EAClD,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,KAAK,CAAC,KAAK,EACnB,IAAI,EAAE,KAAK,CAAC,KAAK,GACjB,CACA,CACL,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, memo } from 'react';\n\nimport styles from './styles.css.js';\n\ninterface SeriesPoint {\n key: string;\n x: number;\n y: number;\n color: string;\n}\n\ninterface HighlightedPointProps {\n point: null | SeriesPoint;\n role?: 'group' | 'button';\n ariaLabel?: string;\n ariaHasPopup?: boolean;\n ariaExpanded?: boolean;\n}\n\nexport default memo(forwardRef(HighlightedPoint));\n\nfunction HighlightedPoint(\n { point, role = 'group', ariaLabel, ariaHasPopup, ariaExpanded }: HighlightedPointProps,\n ref: React.Ref<SVGGElement>\n) {\n if (!point) {\n return null;\n }\n\n return (\n <g ref={ref} role={role} aria-label={ariaLabel} aria-haspopup={ariaHasPopup} aria-expanded={ariaExpanded}>\n <circle\n key={point.key}\n aria-hidden=\"true\"\n className={styles['vertical-marker-circle-active']}\n cx={point.x}\n cy={point.y}\n r={4}\n stroke={point.color}\n fill={point.color}\n />\n </g>\n );\n}\n"]}
@@ -1,20 +1,19 @@
1
1
  import { ScaleBand, ScaleContinuousNumeric, ScaleTime } from '../../vendor/d3-scale';
2
2
  import { ChartDataTypes, ChartDomain, ScaleRange, ScaleType } from './interfaces';
3
- export interface NumericD3Scale {
3
+ interface NumericD3Scale {
4
4
  type: 'numeric';
5
5
  scale: ScaleContinuousNumeric<number, number>;
6
6
  }
7
- export interface TimeD3Scale {
7
+ interface TimeD3Scale {
8
8
  type: 'time';
9
9
  scale: ScaleTime<number, number>;
10
10
  }
11
- export interface CategoricalD3Scale {
11
+ interface CategoricalD3Scale {
12
12
  type: 'categorical';
13
13
  scale: ScaleBand<ChartDataTypes>;
14
14
  }
15
- export type D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale;
15
+ type D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale;
16
16
  type InternalScale = ScaleContinuousNumeric<number, number> | ScaleBand<ChartDataTypes> | ScaleTime<number, number>;
17
- export declare function createScale(type: ScaleType, domain: ChartDomain<ChartDataTypes>, range: ScaleRange): D3Scale;
18
17
  export declare class ChartScale {
19
18
  readonly scaleType: ScaleType;
20
19
  readonly domain: ChartDomain<ChartDataTypes>;
@@ -1 +1 @@
1
- {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/scales.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAET,sBAAsB,EAGtB,SAAS,EAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAExE,KAAK,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAyCpH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAY5G;AAED,qBAAa,UAAU;aAKH,SAAS,EAAE,SAAS;aACpB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC;aACnC,KAAK,EAAE,UAAU;IANnC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,OAAO,EAAE,aAAa,CAAC;gBAGrB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,EACnC,KAAK,EAAE,UAAU,EACjC,yBAAyB,UAAQ;IAkBnC,UAAU,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU;IAInG,SAAS,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE;IAIrG,MAAM,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;KAAE;IAInF,aAAa,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE;CAG7F;AAED,qBAAa,iBAAiB;aAKV,SAAS,EAAE,QAAQ,GAAG,KAAK;IAJ7C,SAAgB,KAAK,EAAE,cAAc,CAAC;IACtC,SAAgB,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG9C,SAAS,EAAE,QAAQ,GAAG,KAAK,EAC3C,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,IAAI,GAAG,MAAM;IAU7B,aAAa;CAGd"}
1
+ {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/scales.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAET,sBAAsB,EAGtB,SAAS,EAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAElF,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CAClC;AAED,KAAK,OAAO,GAAG,cAAc,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAEjE,KAAK,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAuDpH,qBAAa,UAAU;aAKH,SAAS,EAAE,SAAS;aACpB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC;aACnC,KAAK,EAAE,UAAU;IANnC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,OAAO,EAAE,aAAa,CAAC;gBAGrB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,EACnC,KAAK,EAAE,UAAU,EACjC,yBAAyB,UAAQ;IAkBnC,UAAU,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU;IAInG,SAAS,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE;IAIrG,MAAM,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;KAAE;IAInF,aAAa,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE;CAG7F;AAED,qBAAa,iBAAiB;aAKV,SAAS,EAAE,QAAQ,GAAG,KAAK;IAJ7C,SAAgB,KAAK,EAAE,cAAc,CAAC;IACtC,SAAgB,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG9C,SAAS,EAAE,QAAQ,GAAG,KAAK,EAC3C,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,IAAI,GAAG,MAAM;IAU7B,aAAa;CAGd"}
@@ -33,7 +33,7 @@ function createBandScale(domain) {
33
33
  scale.domain(domain);
34
34
  return scale;
35
35
  }
36
- export function createScale(type, domain, range) {
36
+ function createScale(type, domain, range) {
37
37
  switch (type) {
38
38
  case 'linear':
39
39
  case 'log':
@@ -1 +1 @@
1
- {"version":3,"file":"scales.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/scales.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAEL,SAAS,EAET,WAAW,EACX,QAAQ,EAER,SAAS,GACV,MAAM,uBAAuB,CAAC;AAsB/B,SAAS,eAAe,CAAC,MAAmC;IAC1D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,MAAmC;IACvD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe,EAAE,MAAmC;IAC9E,IAAI,KAA6C,CAAC;IAClD,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK;YACR,KAAK,GAAG,QAAQ,EAAE,CAAC;YACnB,MAAM;QACR;YACE,KAAK,GAAG,WAAW,EAAE,CAAC;KACzB;IAED,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAmC;IAC1D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAmC;IAC1D,MAAM,KAAK,GAAG,SAAS,EAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,MAAmC,EAAE,KAAiB;IACjG,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAEnF,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAEvE,KAAK,aAAa;YAChB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;KAC/E;AACH,CAAC;AAED,MAAM,OAAO,UAAU;IAIrB,YACkB,SAAoB,EACpB,MAAmC,EACnC,KAAiB,EACjC,yBAAyB,GAAG,KAAK;QAHjB,cAAS,GAAT,SAAS,CAAW;QACpB,WAAM,GAAN,MAAM,CAA6B;QACnC,UAAK,GAAL,KAAK,CAAY;QAGjC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEhC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,yBAAyB,EAAE;gBAC7B,yFAAyF;gBACzF,kGAAkG;gBAClG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACjC;SACF;IACH,CAAC;IAED,UAAU,CAAC,YAAwB,EAAE,SAAuC,EAAE,QAAqB;QACjG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;IACpC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IAI5B,YACkB,SAA2B,EAC3C,MAA2B,EAC3B,KAAiB,EACjB,YAA2B;QAHX,cAAS,GAAT,SAAS,CAAkB;QAK3C,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport {\n ScaleBand,\n scaleBand,\n ScaleContinuousNumeric,\n scaleLinear,\n scaleLog,\n ScaleTime,\n scaleTime,\n} from '../../vendor/d3-scale';\nimport { ChartDataTypes, ChartDomain, ScaleRange, ScaleType } from './interfaces';\n\nexport interface NumericD3Scale {\n type: 'numeric';\n scale: ScaleContinuousNumeric<number, number>;\n}\n\nexport interface TimeD3Scale {\n type: 'time';\n scale: ScaleTime<number, number>;\n}\n\nexport interface CategoricalD3Scale {\n type: 'categorical';\n scale: ScaleBand<ChartDataTypes>;\n}\n\nexport type D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale;\n\ntype InternalScale = ScaleContinuousNumeric<number, number> | ScaleBand<ChartDataTypes> | ScaleTime<number, number>;\n\nfunction isNumericDomain(domain: ChartDomain<ChartDataTypes>): domain is number[] {\n return domain.length > 0 && typeof domain[0] === 'number';\n}\n\nfunction isDateDomain(domain: ChartDomain<ChartDataTypes>): domain is Date[] {\n return domain.length > 0 && domain[0] instanceof Date;\n}\n\nfunction createNumericScale(type: ScaleType, domain: ChartDomain<ChartDataTypes>) {\n let scale: ScaleContinuousNumeric<number, number>;\n switch (type) {\n case 'log':\n scale = scaleLog();\n break;\n default:\n scale = scaleLinear();\n }\n\n if (isNumericDomain(domain)) {\n scale.domain(domain);\n }\n\n return scale;\n}\n\nfunction createTimeScale(domain: ChartDomain<ChartDataTypes>) {\n const scale = scaleTime();\n if (isDateDomain(domain)) {\n scale.domain(domain);\n }\n return scale;\n}\n\nfunction createBandScale(domain: ChartDomain<ChartDataTypes>) {\n const scale = scaleBand<ChartDataTypes>().padding(0.1);\n scale.domain(domain);\n return scale;\n}\n\nexport function createScale(type: ScaleType, domain: ChartDomain<ChartDataTypes>, range: ScaleRange): D3Scale {\n switch (type) {\n case 'linear':\n case 'log':\n return { type: 'numeric', scale: createNumericScale(type, domain).range(range) };\n\n case 'time':\n return { type: 'time', scale: createTimeScale(domain).range(range) };\n\n case 'categorical':\n return { type: 'categorical', scale: createBandScale(domain).range(range) };\n }\n}\n\nexport class ChartScale {\n public readonly scale: D3Scale;\n public readonly d3Scale: InternalScale;\n\n constructor(\n public readonly scaleType: ScaleType,\n public readonly domain: ChartDomain<ChartDataTypes>,\n public readonly range: ScaleRange,\n noCategoricalOuterPadding = false\n ) {\n this.scale = createScale(this.scaleType, this.domain, this.range);\n this.d3Scale = this.scale.scale;\n\n if (this.isCategorical()) {\n if (noCategoricalOuterPadding) {\n // Categorical charts with only line (or threshold) series don't need as much out padding\n // compared to a bar series. Increasing the inner padding to push more data points to the outside.\n this.d3Scale.paddingInner(0.7);\n this.d3Scale.paddingOuter(0);\n } else {\n this.d3Scale.paddingInner(0.2);\n this.d3Scale.paddingOuter(0.05);\n }\n }\n }\n\n cloneScale(newScaleType?: ScaleType, newDomain?: ChartDomain<ChartDataTypes>, newRange?: ScaleRange) {\n return new ChartScale(newScaleType || this.scaleType, newDomain || this.domain, newRange || this.range);\n }\n\n isNumeric(): this is { d3Scale: ScaleContinuousNumeric<number, number>; domain: ChartDomain<number> } {\n return this.scale.type === 'numeric';\n }\n\n isTime(): this is { d3Scale: ScaleTime<number, number>; domain: ChartDomain<Date> } {\n return this.scale.type === 'time';\n }\n\n isCategorical(): this is { d3Scale: ScaleBand<ChartDataTypes>; domain: ChartDomain<string> } {\n return this.scale.type === 'categorical';\n }\n}\n\nexport class NumericChartScale {\n public readonly scale: NumericD3Scale;\n public readonly d3Scale: ScaleContinuousNumeric<number, number>;\n\n constructor(\n public readonly scaleType: 'linear' | 'log',\n domain: ChartDomain<number>,\n range: ScaleRange,\n adjustDomain: null | number\n ) {\n const scale = createNumericScale(scaleType, domain).range(range);\n if (adjustDomain !== null) {\n scale.nice(adjustDomain);\n }\n this.scale = { type: 'numeric', scale };\n this.d3Scale = this.scale.scale;\n }\n\n isCategorical() {\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"scales.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/scales.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 {\n ScaleBand,\n scaleBand,\n ScaleContinuousNumeric,\n scaleLinear,\n scaleLog,\n ScaleTime,\n scaleTime,\n} from '../../vendor/d3-scale';\nimport { ChartDataTypes, ChartDomain, ScaleRange, ScaleType } from './interfaces';\n\ninterface NumericD3Scale {\n type: 'numeric';\n scale: ScaleContinuousNumeric<number, number>;\n}\n\ninterface TimeD3Scale {\n type: 'time';\n scale: ScaleTime<number, number>;\n}\n\ninterface CategoricalD3Scale {\n type: 'categorical';\n scale: ScaleBand<ChartDataTypes>;\n}\n\ntype D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale;\n\ntype InternalScale = ScaleContinuousNumeric<number, number> | ScaleBand<ChartDataTypes> | ScaleTime<number, number>;\n\nfunction isNumericDomain(domain: ChartDomain<ChartDataTypes>): domain is number[] {\n return domain.length > 0 && typeof domain[0] === 'number';\n}\n\nfunction isDateDomain(domain: ChartDomain<ChartDataTypes>): domain is Date[] {\n return domain.length > 0 && domain[0] instanceof Date;\n}\n\nfunction createNumericScale(type: ScaleType, domain: ChartDomain<ChartDataTypes>) {\n let scale: ScaleContinuousNumeric<number, number>;\n switch (type) {\n case 'log':\n scale = scaleLog();\n break;\n default:\n scale = scaleLinear();\n }\n\n if (isNumericDomain(domain)) {\n scale.domain(domain);\n }\n\n return scale;\n}\n\nfunction createTimeScale(domain: ChartDomain<ChartDataTypes>) {\n const scale = scaleTime();\n if (isDateDomain(domain)) {\n scale.domain(domain);\n }\n return scale;\n}\n\nfunction createBandScale(domain: ChartDomain<ChartDataTypes>) {\n const scale = scaleBand<ChartDataTypes>().padding(0.1);\n scale.domain(domain);\n return scale;\n}\n\nfunction createScale(type: ScaleType, domain: ChartDomain<ChartDataTypes>, range: ScaleRange): D3Scale {\n switch (type) {\n case 'linear':\n case 'log':\n return { type: 'numeric', scale: createNumericScale(type, domain).range(range) };\n\n case 'time':\n return { type: 'time', scale: createTimeScale(domain).range(range) };\n\n case 'categorical':\n return { type: 'categorical', scale: createBandScale(domain).range(range) };\n }\n}\n\nexport class ChartScale {\n public readonly scale: D3Scale;\n public readonly d3Scale: InternalScale;\n\n constructor(\n public readonly scaleType: ScaleType,\n public readonly domain: ChartDomain<ChartDataTypes>,\n public readonly range: ScaleRange,\n noCategoricalOuterPadding = false\n ) {\n this.scale = createScale(this.scaleType, this.domain, this.range);\n this.d3Scale = this.scale.scale;\n\n if (this.isCategorical()) {\n if (noCategoricalOuterPadding) {\n // Categorical charts with only line (or threshold) series don't need as much out padding\n // compared to a bar series. Increasing the inner padding to push more data points to the outside.\n this.d3Scale.paddingInner(0.7);\n this.d3Scale.paddingOuter(0);\n } else {\n this.d3Scale.paddingInner(0.2);\n this.d3Scale.paddingOuter(0.05);\n }\n }\n }\n\n cloneScale(newScaleType?: ScaleType, newDomain?: ChartDomain<ChartDataTypes>, newRange?: ScaleRange) {\n return new ChartScale(newScaleType || this.scaleType, newDomain || this.domain, newRange || this.range);\n }\n\n isNumeric(): this is { d3Scale: ScaleContinuousNumeric<number, number>; domain: ChartDomain<number> } {\n return this.scale.type === 'numeric';\n }\n\n isTime(): this is { d3Scale: ScaleTime<number, number>; domain: ChartDomain<Date> } {\n return this.scale.type === 'time';\n }\n\n isCategorical(): this is { d3Scale: ScaleBand<ChartDataTypes>; domain: ChartDomain<string> } {\n return this.scale.type === 'categorical';\n }\n}\n\nexport class NumericChartScale {\n public readonly scale: NumericD3Scale;\n public readonly d3Scale: ScaleContinuousNumeric<number, number>;\n\n constructor(\n public readonly scaleType: 'linear' | 'log',\n domain: ChartDomain<number>,\n range: ScaleRange,\n adjustDomain: null | number\n ) {\n const scale = createNumericScale(scaleType, domain).range(range);\n if (adjustDomain !== null) {\n scale.nice(adjustDomain);\n }\n this.scale = { type: 'numeric', scale };\n this.d3Scale = this.scale.scale;\n }\n\n isCategorical() {\n return false;\n }\n}\n"]}
@@ -5,7 +5,7 @@ interface SeriesPoint {
5
5
  y: number;
6
6
  color: string;
7
7
  }
8
- export interface VerticalMarkerProps {
8
+ interface VerticalMarkerProps {
9
9
  height: number;
10
10
  showPoints?: boolean;
11
11
  showLine?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-marker.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-marker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,IAAI,GAAG,SAAS,WAAW,EAAE,CAAC;CACvC;;AAED,wBAAgD"}
1
+ {"version":3,"file":"vertical-marker.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-marker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,IAAI,GAAG,SAAS,WAAW,EAAE,CAAC;CACvC;;AAED,wBAAgD"}
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-marker.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-marker.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAgBrC,eAAe,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAEhD,SAAS,cAAc,CACrB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAuB,EAC3E,GAA8B;IAE9B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;IAElC,OAAO,CACL;QACE,8BACE,GAAG,EAAE,GAAG,iBACI,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EACpC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EACpE,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAC,EACjB,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAC,EACjB,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,MAAM,GACV;QAED,UAAU;YACT,MAAM;YACN,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAClB,gCACE,GAAG,EAAE,KAAK,CAAC,GAAG,iBACF,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,wBAAwB,CAAC,EAC3C,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,KAAK,CAAC,KAAK,GACnB,CACH,CAAC,CACF,CACL,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, memo } from 'react';\n\nimport styles from './styles.css.js';\n\ninterface SeriesPoint {\n key: string;\n x: number;\n y: number;\n color: string;\n}\n\nexport interface VerticalMarkerProps {\n height: number;\n showPoints?: boolean;\n showLine?: boolean;\n points: null | readonly SeriesPoint[];\n}\n\nexport default memo(forwardRef(VerticalMarker));\n\nfunction VerticalMarker(\n { height, showPoints = true, showLine = true, points }: VerticalMarkerProps,\n ref: React.Ref<SVGLineElement>\n) {\n const [firstPoint] = points || [];\n\n return (\n <g>\n <line\n ref={ref}\n aria-hidden=\"true\"\n className={styles['vertical-marker']}\n style={{ visibility: showLine && firstPoint ? 'visible' : 'hidden' }}\n x1={firstPoint?.x}\n x2={firstPoint?.x}\n y1={0}\n y2={height}\n />\n\n {showPoints &&\n points &&\n points.map(point => (\n <circle\n key={point.key}\n aria-hidden=\"true\"\n className={styles['vertical-marker-circle']}\n cx={point.x}\n cy={point.y}\n r={4}\n stroke={point.color}\n />\n ))}\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"vertical-marker.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-marker.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAgBrC,eAAe,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAEhD,SAAS,cAAc,CACrB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAuB,EAC3E,GAA8B;IAE9B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;IAElC,OAAO,CACL;QACE,8BACE,GAAG,EAAE,GAAG,iBACI,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EACpC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EACpE,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAC,EACjB,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAC,EACjB,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,MAAM,GACV;QAED,UAAU;YACT,MAAM;YACN,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAClB,gCACE,GAAG,EAAE,KAAK,CAAC,GAAG,iBACF,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,wBAAwB,CAAC,EAC3C,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,KAAK,CAAC,KAAK,GACnB,CACH,CAAC,CACF,CACL,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, memo } from 'react';\n\nimport styles from './styles.css.js';\n\ninterface SeriesPoint {\n key: string;\n x: number;\n y: number;\n color: string;\n}\n\ninterface VerticalMarkerProps {\n height: number;\n showPoints?: boolean;\n showLine?: boolean;\n points: null | readonly SeriesPoint[];\n}\n\nexport default memo(forwardRef(VerticalMarker));\n\nfunction VerticalMarker(\n { height, showPoints = true, showLine = true, points }: VerticalMarkerProps,\n ref: React.Ref<SVGLineElement>\n) {\n const [firstPoint] = points || [];\n\n return (\n <g>\n <line\n ref={ref}\n aria-hidden=\"true\"\n className={styles['vertical-marker']}\n style={{ visibility: showLine && firstPoint ? 'visible' : 'hidden' }}\n x1={firstPoint?.x}\n x2={firstPoint?.x}\n y1={0}\n y2={height}\n />\n\n {showPoints &&\n points &&\n points.map(point => (\n <circle\n key={point.key}\n aria-hidden=\"true\"\n className={styles['vertical-marker-circle']}\n cx={point.x}\n cy={point.y}\n r={4}\n stroke={point.color}\n />\n ))}\n </g>\n );\n}\n"]}
@@ -6,7 +6,7 @@ interface I18nStrings {
6
6
  filterPlaceholder?: string;
7
7
  filterSelectedAriaLabel?: string;
8
8
  }
9
- export interface ChartFilterItem<T> {
9
+ interface ChartFilterItem<T> {
10
10
  label: string;
11
11
  color: string;
12
12
  type: ChartSeriesMarkerType;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-filter/index.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AAExE,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,kBAAkB;IAC7D,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAgD3G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-filter/index.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AAExE,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,eAAe,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,kBAAkB;IAC7D,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAgD3G"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-filter/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,YAAuC,MAAM,wBAAwB,CAAC;AAE7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAsBrC,eAAe,IAAI,CAAC,WAAW,CAAuB,CAAC;AAEvD,SAAS,WAAW,CAAI,EAAoF;QAApF,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,OAAqC,EAAhC,SAAS,cAA7D,uDAA+D,CAAF;IACnF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,EAAE,GAAG,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CACZ,8BAAM,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC;YAC5C,oBAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,CACzC,CACR;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAK,CAAC,CAAC,CAAC,CAAC;IAEtG,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;QAClC,MAAM,cAAc,GAAG,cAAc;aAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACxD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,EACD,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC3B,CAAC;IAEF,OAAO,CACL,oBAAC,iBAAiB,oBACZ,SAAS,IACb,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC,EAChE,SAAS,EAAE,SAAS;QAEpB,oBAAC,mBAAmB,IAClB,WAAW,EAAE,IAAI,CAAC,+BAA+B,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,EAClF,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,EACjC,iBAAiB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,EACvD,aAAa,EAAC,MAAM,EACpB,UAAU,EAAC,UAAU,EACrB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,IAAI,GAChB,CACgB,CACrB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { memo, useCallback } from 'react';\nimport clsx from 'clsx';\n\nimport InternalFormField from '../../../form-field/internal';\nimport { useInternalI18n } from '../../../i18n/context';\nimport { MultiselectProps } from '../../../multiselect/interfaces';\nimport InternalMultiselect from '../../../multiselect/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { NonCancelableEventHandler } from '../../events';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\n\nimport styles from './styles.css.js';\n\ninterface I18nStrings {\n filterLabel?: string;\n filterPlaceholder?: string;\n filterSelectedAriaLabel?: string;\n}\n\nexport interface ChartFilterItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartFilterProps<T> extends BaseComponentProps {\n series: ReadonlyArray<ChartFilterItem<T>>;\n selectedSeries?: ReadonlyArray<T>;\n onChange: (selectedSeries: ReadonlyArray<T>) => void;\n i18nStrings?: I18nStrings;\n}\n\nexport default memo(ChartFilter) as typeof ChartFilter;\n\nfunction ChartFilter<T>({ series, i18nStrings, selectedSeries, onChange, ...restProps }: ChartFilterProps<T>) {\n const baseProps = getBaseProps(restProps);\n const className = clsx(baseProps.className, styles.root);\n const i18n = useInternalI18n('[charts]');\n\n const defaultOptions = series.map((d, i) => ({\n label: d.label,\n value: '' + i,\n datum: d.datum,\n __customIcon: (\n <span className={styles['custom-icon-wrapper']}>\n <SeriesMarker color={d.color} type={d.type} />\n </span>\n ),\n }));\n\n const selectedOptions = defaultOptions.filter(option => selectedSeries?.indexOf(option.datum) !== -1);\n\n const updateSelection = useCallback<NonCancelableEventHandler<MultiselectProps.MultiselectChangeDetail>>(\n ({ detail: { selectedOptions } }) => {\n const selectedSeries = defaultOptions\n .filter(option => selectedOptions.indexOf(option) !== -1)\n .map(option => option.datum);\n onChange(selectedSeries);\n },\n [onChange, defaultOptions]\n );\n\n return (\n <InternalFormField\n {...baseProps}\n label={i18n('i18nStrings.filterLabel', i18nStrings?.filterLabel)}\n className={className}\n >\n <InternalMultiselect\n placeholder={i18n('i18nStrings.filterPlaceholder', i18nStrings?.filterPlaceholder)}\n options={defaultOptions}\n selectedOptions={selectedOptions}\n onChange={updateSelection}\n className={styles['chart-filter']}\n selectedAriaLabel={i18nStrings?.filterSelectedAriaLabel}\n filteringType=\"none\"\n statusType=\"finished\"\n keepOpen={true}\n hideTokens={true}\n />\n </InternalFormField>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-filter/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,YAAuC,MAAM,wBAAwB,CAAC;AAE7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAsBrC,eAAe,IAAI,CAAC,WAAW,CAAuB,CAAC;AAEvD,SAAS,WAAW,CAAI,EAAoF;QAApF,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,OAAqC,EAAhC,SAAS,cAA7D,uDAA+D,CAAF;IACnF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,EAAE,GAAG,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CACZ,8BAAM,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC;YAC5C,oBAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,CACzC,CACR;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAK,CAAC,CAAC,CAAC,CAAC;IAEtG,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;QAClC,MAAM,cAAc,GAAG,cAAc;aAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACxD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,EACD,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC3B,CAAC;IAEF,OAAO,CACL,oBAAC,iBAAiB,oBACZ,SAAS,IACb,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAC,EAChE,SAAS,EAAE,SAAS;QAEpB,oBAAC,mBAAmB,IAClB,WAAW,EAAE,IAAI,CAAC,+BAA+B,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,EAClF,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,EACjC,iBAAiB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,EACvD,aAAa,EAAC,MAAM,EACpB,UAAU,EAAC,UAAU,EACrB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,IAAI,GAChB,CACgB,CACrB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { memo, useCallback } from 'react';\nimport clsx from 'clsx';\n\nimport InternalFormField from '../../../form-field/internal';\nimport { useInternalI18n } from '../../../i18n/context';\nimport { MultiselectProps } from '../../../multiselect/interfaces';\nimport InternalMultiselect from '../../../multiselect/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { NonCancelableEventHandler } from '../../events';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\n\nimport styles from './styles.css.js';\n\ninterface I18nStrings {\n filterLabel?: string;\n filterPlaceholder?: string;\n filterSelectedAriaLabel?: string;\n}\n\ninterface ChartFilterItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartFilterProps<T> extends BaseComponentProps {\n series: ReadonlyArray<ChartFilterItem<T>>;\n selectedSeries?: ReadonlyArray<T>;\n onChange: (selectedSeries: ReadonlyArray<T>) => void;\n i18nStrings?: I18nStrings;\n}\n\nexport default memo(ChartFilter) as typeof ChartFilter;\n\nfunction ChartFilter<T>({ series, i18nStrings, selectedSeries, onChange, ...restProps }: ChartFilterProps<T>) {\n const baseProps = getBaseProps(restProps);\n const className = clsx(baseProps.className, styles.root);\n const i18n = useInternalI18n('[charts]');\n\n const defaultOptions = series.map((d, i) => ({\n label: d.label,\n value: '' + i,\n datum: d.datum,\n __customIcon: (\n <span className={styles['custom-icon-wrapper']}>\n <SeriesMarker color={d.color} type={d.type} />\n </span>\n ),\n }));\n\n const selectedOptions = defaultOptions.filter(option => selectedSeries?.indexOf(option.datum) !== -1);\n\n const updateSelection = useCallback<NonCancelableEventHandler<MultiselectProps.MultiselectChangeDetail>>(\n ({ detail: { selectedOptions } }) => {\n const selectedSeries = defaultOptions\n .filter(option => selectedOptions.indexOf(option) !== -1)\n .map(option => option.datum);\n onChange(selectedSeries);\n },\n [onChange, defaultOptions]\n );\n\n return (\n <InternalFormField\n {...baseProps}\n label={i18n('i18nStrings.filterLabel', i18nStrings?.filterLabel)}\n className={className}\n >\n <InternalMultiselect\n placeholder={i18n('i18nStrings.filterPlaceholder', i18nStrings?.filterPlaceholder)}\n options={defaultOptions}\n selectedOptions={selectedOptions}\n onChange={updateSelection}\n className={styles['chart-filter']}\n selectedAriaLabel={i18nStrings?.filterSelectedAriaLabel}\n filteringType=\"none\"\n statusType=\"finished\"\n keepOpen={true}\n hideTokens={true}\n />\n </InternalFormField>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ChartSeriesMarkerType } from '../chart-series-marker';
3
- export interface ChartLegendItem<T> {
3
+ interface ChartLegendItem<T> {
4
4
  label: string;
5
5
  color: string;
6
6
  type: ChartSeriesMarkerType;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAO5C,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EACtB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAkHrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAO5C,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,UAAU,eAAe,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EACtB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAkHrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.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, { memo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport InternalBox from '../../../box/internal';\nimport { useInternalI18n } from '../../../i18n/context';\nimport { KeyCode } from '../../keycode';\nimport handleKey from '../../utils/handle-key';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\n\nimport styles from './styles.css.js';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const i18n = useInternalI18n('[charts]');\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightInlineStart = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightInlineEnd = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n handleKey(event, {\n onInlineStart: () => highlightInlineStart(),\n onInlineEnd: () => highlightInlineEnd(),\n });\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || i18n('i18nStrings.legendAriaLabel', ariaLabel)}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.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, { memo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport InternalBox from '../../../box/internal';\nimport { useInternalI18n } from '../../../i18n/context';\nimport { KeyCode } from '../../keycode';\nimport handleKey from '../../utils/handle-key';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\n\nimport styles from './styles.css.js';\n\ninterface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const i18n = useInternalI18n('[charts]');\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightInlineStart = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightInlineEnd = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n handleKey(event, {\n onInlineStart: () => highlightInlineStart(),\n onInlineEnd: () => highlightInlineEnd(),\n });\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || i18n('i18nStrings.legendAriaLabel', ariaLabel)}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  export interface ApplicationRef {
3
3
  focus(): void;
4
4
  }
5
- export interface ApplicationControllerProps {
5
+ interface ApplicationControllerProps {
6
6
  activeElementKey: null | string | number | boolean;
7
7
  activeElementRef?: React.RefObject<SVGGElement>;
8
8
  onFocus?: (event: React.FocusEvent<SVGGElement>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"application-controller.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoF,MAAM,OAAO,CAAC;AAIzG,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC/D;;AAED,wBAAiD"}
1
+ {"version":3,"file":"application-controller.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoF,MAAM,OAAO,CAAC;AAIzG,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,UAAU,0BAA0B;IAClC,gBAAgB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC/D;;AAED,wBAAiD"}
@@ -1 +1 @@
1
- {"version":3,"file":"application-controller.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.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, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport styles from './styles.css.js';\n\nexport interface ApplicationRef {\n focus(): void;\n}\n\nexport interface ApplicationControllerProps {\n activeElementKey: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n onFocus?: (event: React.FocusEvent<SVGGElement>) => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n}\n\nexport default forwardRef(ApplicationController);\n\nfunction ApplicationController(\n { activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }: ApplicationControllerProps,\n ref: React.Ref<ApplicationRef>\n) {\n const containerRef = useRef<SVGGElement>(null);\n const applicationRef = useRef<SVGGElement>(null);\n const focusTransitionRef = useRef(false);\n const [isFocused, setFocused] = useState(false);\n\n // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.\n const onApplicationFocus = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(true);\n onFocus && onFocus(event);\n } else {\n focusTransitionRef.current = false;\n }\n },\n [onFocus]\n );\n // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.\n const onApplicationBlur = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(false);\n onBlur && onBlur(event);\n // The application controller can only be focused programmatically.\n muteApplication(applicationRef.current!);\n }\n },\n [onBlur]\n );\n const onApplicationKeyDown = onKeyDown;\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => focusApplication(applicationRef.current!, activeElementRef?.current || null),\n }),\n [activeElementRef]\n );\n\n // Re-attaches and re-focuses the application for screen readers to treat it as an update.\n useEffect(() => {\n // Skip if not focused or if the transition is already happening.\n if (!isFocused || focusTransitionRef.current === true) {\n return;\n }\n focusTransitionRef.current = true;\n containerRef.current!.removeChild(applicationRef.current!);\n containerRef.current!.appendChild(applicationRef.current!);\n focusApplication(applicationRef.current!, activeElementRef?.current || null);\n }, [isFocused, activeElementKey, activeElementRef]);\n\n return (\n <g ref={containerRef}>\n <g\n tabIndex={-1}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n className={styles.application}\n ></g>\n </g>\n );\n}\n\n// Focuses application but before copies aria-attributes from the target.\nfunction focusApplication(app: SVGGElement, target: null | SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of app.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Copy new attributes.\n if (target) {\n for (const attributeName of target.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n const attributeValue = target.getAttribute(attributeName);\n attributeValue && app.setAttribute(attributeName, attributeValue);\n }\n }\n }\n\n // Make app focusable.\n app.tabIndex = 0;\n app.setAttribute('focusable', 'true');\n app.setAttribute('aria-hidden', 'false');\n\n // Focus app.\n app.focus({ preventScroll: true });\n}\n\n// The application is to be only focused programmatically.\nfunction muteApplication(app: SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of app.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Make app non-focusable.\n app.tabIndex = -1;\n app.setAttribute('focusable', 'false');\n app.setAttribute('aria-hidden', 'true');\n}\n"]}
1
+ {"version":3,"file":"application-controller.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzG,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAcrC,eAAe,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAEjD,SAAS,qBAAqB,CAC5B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAA8B,EAC9F,GAA8B;IAE9B,MAAM,YAAY,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,uGAAuG;IACvG,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAoC,EAAE,EAAE;QACvC,IAAI,kBAAkB,CAAC,OAAO,KAAK,KAAK,EAAE;YACxC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;SACpC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,oGAAoG;IACpG,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAoC,EAAE,EAAE;QACvC,IAAI,kBAAkB,CAAC,OAAO,KAAK,KAAK,EAAE;YACxC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,mEAAmE;YACnE,eAAe,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;SAC1C;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,oBAAoB,GAAG,SAAS,CAAC;IAEvC,mBAAmB,CACjB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAQ,EAAE,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,IAAI,CAAC;KAC1F,CAAC,EACF,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,0FAA0F;IAC1F,SAAS,CAAC,GAAG,EAAE;QACb,iEAAiE;QACjE,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,OAAO,KAAK,IAAI,EAAE;YACrD,OAAO;SACR;QACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,YAAY,CAAC,OAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;QAC3D,YAAY,CAAC,OAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;QAC3D,gBAAgB,CAAC,cAAc,CAAC,OAAQ,EAAE,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,IAAI,CAAC,CAAC;IAC/E,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEpD,OAAO,CACL,2BAAG,GAAG,EAAE,YAAY;QAClB,2BACE,QAAQ,EAAE,CAAC,CAAC,EACZ,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,oBAAoB,EAC/B,SAAS,EAAE,MAAM,CAAC,WAAW,GAC1B,CACH,CACL,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,gBAAgB,CAAC,GAAgB,EAAE,MAA0B;IACpE,0BAA0B;IAC1B,KAAK,MAAM,aAAa,IAAI,GAAG,CAAC,iBAAiB,EAAE,EAAE;QACnD,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;YACpE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACpC;KACF;IAED,uBAAuB;IACvB,IAAI,MAAM,EAAE;QACV,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE;YACtD,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;gBACpE,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC1D,cAAc,IAAI,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;aACnE;SACF;KACF;IAED,sBAAsB;IACtB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAEzC,aAAa;IACb,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,0DAA0D;AAC1D,SAAS,eAAe,CAAC,GAAgB;IACvC,0BAA0B;IAC1B,KAAK,MAAM,aAAa,IAAI,GAAG,CAAC,iBAAiB,EAAE,EAAE;QACnD,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;YACpE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACpC;KACF;IAED,0BAA0B;IAC1B,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport styles from './styles.css.js';\n\nexport interface ApplicationRef {\n focus(): void;\n}\n\ninterface ApplicationControllerProps {\n activeElementKey: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n onFocus?: (event: React.FocusEvent<SVGGElement>) => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n}\n\nexport default forwardRef(ApplicationController);\n\nfunction ApplicationController(\n { activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }: ApplicationControllerProps,\n ref: React.Ref<ApplicationRef>\n) {\n const containerRef = useRef<SVGGElement>(null);\n const applicationRef = useRef<SVGGElement>(null);\n const focusTransitionRef = useRef(false);\n const [isFocused, setFocused] = useState(false);\n\n // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.\n const onApplicationFocus = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(true);\n onFocus && onFocus(event);\n } else {\n focusTransitionRef.current = false;\n }\n },\n [onFocus]\n );\n // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.\n const onApplicationBlur = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(false);\n onBlur && onBlur(event);\n // The application controller can only be focused programmatically.\n muteApplication(applicationRef.current!);\n }\n },\n [onBlur]\n );\n const onApplicationKeyDown = onKeyDown;\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => focusApplication(applicationRef.current!, activeElementRef?.current || null),\n }),\n [activeElementRef]\n );\n\n // Re-attaches and re-focuses the application for screen readers to treat it as an update.\n useEffect(() => {\n // Skip if not focused or if the transition is already happening.\n if (!isFocused || focusTransitionRef.current === true) {\n return;\n }\n focusTransitionRef.current = true;\n containerRef.current!.removeChild(applicationRef.current!);\n containerRef.current!.appendChild(applicationRef.current!);\n focusApplication(applicationRef.current!, activeElementRef?.current || null);\n }, [isFocused, activeElementKey, activeElementRef]);\n\n return (\n <g ref={containerRef}>\n <g\n tabIndex={-1}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n className={styles.application}\n ></g>\n </g>\n );\n}\n\n// Focuses application but before copies aria-attributes from the target.\nfunction focusApplication(app: SVGGElement, target: null | SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of app.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Copy new attributes.\n if (target) {\n for (const attributeName of target.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n const attributeValue = target.getAttribute(attributeName);\n attributeValue && app.setAttribute(attributeName, attributeValue);\n }\n }\n }\n\n // Make app focusable.\n app.tabIndex = 0;\n app.setAttribute('focusable', 'true');\n app.setAttribute('aria-hidden', 'false');\n\n // Focus app.\n app.focus({ preventScroll: true });\n}\n\n// The application is to be only focused programmatically.\nfunction muteApplication(app: SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of app.getAttributeNames()) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Make app non-focusable.\n app.tabIndex = -1;\n app.setAttribute('focusable', 'false');\n app.setAttribute('aria-hidden', 'true');\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Offset } from '../interfaces';
3
- export interface FocusOutlineProps {
3
+ interface FocusOutlineProps {
4
4
  elementKey?: null | string | number | boolean;
5
5
  elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;
6
6
  offset?: Offset;
7
7
  }
8
8
  export default function FocusOutline({ elementKey, elementRef, offset }: FocusOutlineProps): JSX.Element;
9
+ export {};
9
10
  //# sourceMappingURL=focus-outline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focus-outline.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAU,EAAE,EAAE,iBAAiB,eAkB7F"}
1
+ {"version":3,"file":"focus-outline.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAU,EAAE,EAAE,iBAAiB,eAkB7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus-outline.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.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, useRef, useState } from 'react';\n\nimport { isModifierKey } from '@cloudscape-design/component-toolkit/internal';\n\nimport { Offset } from '../interfaces';\n\nimport styles from './styles.css.js';\n\nexport interface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nfunction useFocusVisibleState() {\n const [focusVisible, setFocusVisible] = useState(false);\n useEffect(() => {\n function handleMousedown() {\n return setFocusVisible(false);\n }\n\n function handleKeydown(event: KeyboardEvent) {\n // we do not want to highlight focused element\n // when special keys are pressed\n if (!isModifierKey(event)) {\n setFocusVisible(true);\n }\n }\n\n document.addEventListener('mousedown', handleMousedown);\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('mousedown', handleMousedown);\n document.removeEventListener('keydown', handleKeydown);\n };\n });\n\n return focusVisible;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const focusVisible = useFocusVisibleState();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
1
+ {"version":3,"file":"focus-outline.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.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, useRef, useState } from 'react';\n\nimport { isModifierKey } from '@cloudscape-design/component-toolkit/internal';\n\nimport { Offset } from '../interfaces';\n\nimport styles from './styles.css.js';\n\ninterface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nfunction useFocusVisibleState() {\n const [focusVisible, setFocusVisible] = useState(false);\n useEffect(() => {\n function handleMousedown() {\n return setFocusVisible(false);\n }\n\n function handleKeydown(event: KeyboardEvent) {\n // we do not want to highlight focused element\n // when special keys are pressed\n if (!isModifierKey(event)) {\n setFocusVisible(true);\n }\n }\n\n document.addEventListener('mousedown', handleMousedown);\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('mousedown', handleMousedown);\n document.removeEventListener('keydown', handleKeydown);\n };\n });\n\n return focusVisible;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const focusVisible = useFocusVisibleState();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
@@ -5,7 +5,7 @@ export interface ChartPlotRef {
5
5
  focusPlot(): void;
6
6
  focusApplication(): void;
7
7
  }
8
- export interface ChartPlotProps {
8
+ interface ChartPlotProps {
9
9
  width: number | string;
10
10
  height: number | string;
11
11
  transform?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAOjF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASvC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,IAAI,IAAI,CAAC;IAClB,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC9D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,KAAK,IAAI,CAAC;IACnG,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;EASE;;AACF,wBAAqC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAOjF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASvC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,IAAI,IAAI,CAAC;IAClB,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC9D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,KAAK,IAAI,CAAC;IACnG,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;EASE;;AACF,wBAAqC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/index.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, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useInternalI18n } from '../../../i18n/context';\nimport InternalLiveRegion from '../../../live-region/internal';\nimport { useUniqueId } from '../../hooks/use-unique-id';\nimport { KeyCode } from '../../keycode';\nimport { Offset } from '../interfaces';\nimport ApplicationController, { ApplicationRef } from './application-controller';\nimport FocusOutline from './focus-outline';\n\nimport styles from './styles.css.js';\n\nconst DEFAULT_PLOT_FOCUS_OFFSET = 3;\nconst DEFAULT_ELEMENT_FOCUS_OFFSET = 3;\n\nexport interface ChartPlotRef {\n svg: SVGSVGElement;\n focusPlot(): void;\n focusApplication(): void;\n}\n\nexport interface ChartPlotProps {\n width: number | string;\n height: number | string;\n transform?: string;\n offsetTop?: number;\n offsetBottom?: number;\n offsetLeft?: number;\n offsetRight?: number;\n focusOffset?: number;\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescription?: string;\n ariaDescribedby?: string;\n ariaRoleDescription?: string;\n activeElementKey?: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n activeElementFocusOffset?: Offset;\n ariaLiveRegion?: string;\n isClickable?: boolean;\n isPrecise?: boolean;\n onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseMove?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseOut?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onApplicationFocus?: (event: React.FocusEvent<SVGGElement>, trigger: 'mouse' | 'keyboard') => void;\n onApplicationBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n children: React.ReactNode;\n}\n\n/**\n An extension for the SVG to be used for charts. It includes a controller element to\n handle the focus and keyboard interactions in a way that is supported by screen readers.\n\n The application mimics the aria-activedescendant behavior which is unsupported by Safari. The\n activeElementRef is the pointer to the secondary-focus element and activeElementKey denotes when\n the focus transition was made.\n\n Alternatively, ariaLiveRegion can be used to make announcements.\n*/\nexport default forwardRef(ChartPlot);\n\nfunction ChartPlot(\n {\n width,\n height,\n transform,\n offsetTop,\n offsetBottom,\n offsetLeft,\n offsetRight,\n ariaLabel,\n ariaLabelledby,\n ariaRoleDescription,\n ariaDescription,\n ariaDescribedby,\n activeElementKey,\n activeElementRef,\n ariaLiveRegion,\n isClickable,\n isPrecise,\n children,\n onClick,\n onKeyDown,\n focusOffset = DEFAULT_PLOT_FOCUS_OFFSET,\n activeElementFocusOffset = DEFAULT_ELEMENT_FOCUS_OFFSET,\n onMouseMove,\n onMouseOut,\n onApplicationBlur,\n onApplicationFocus,\n }: ChartPlotProps,\n ref: React.Ref<ChartPlotRef>\n) {\n const i18n = useInternalI18n('[charts]');\n const svgRef = useRef<SVGSVGElement>(null);\n const applicationRef = useRef<ApplicationRef>(null);\n const plotClickedRef = useRef(false);\n const [isPlotFocused, setPlotFocused] = useState(false);\n const [isApplicationFocused, setApplicationFocused] = useState(false);\n\n const internalDescriptionId = useUniqueId('awsui-chart-plot__description');\n const ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');\n\n useImperativeHandle(ref, () => ({\n svg: svgRef.current!,\n focusPlot: () => svgRef.current!.focus(),\n focusApplication: () => applicationRef.current!.focus(),\n }));\n\n const onPlotMouseDown = () => {\n // Record the click was made for the application focus handler.\n plotClickedRef.current = true;\n };\n const onPlotFocus = (event: React.FocusEvent<SVGSVGElement>) => {\n // If focused via click or an element was highlighted,\n // focus the internal application, which will manage and show focus accordingly on its internal elements.\n if (plotClickedRef.current || !!activeElementKey) {\n applicationRef.current!.focus();\n } else if (event.target === svgRef.current) {\n // Otherwise, focus the entire plot if it was focused with the keyboard.\n setPlotFocused(true);\n }\n };\n const onPlotClick = (event: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n onClick && onClick(event);\n };\n const onPlotBlur = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current) {\n setPlotFocused(false);\n }\n };\n // Once one of the expected keys is pressed the focus is delegated to the application controller.\n const onPlotKeyDown = (event: React.KeyboardEvent) => {\n if (isPlotFocused) {\n // Delegate the focus to the application if one of the expected keys was pressed.\n const codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];\n if (codes.indexOf(event.keyCode) !== -1) {\n applicationRef.current!.focus();\n }\n }\n };\n\n const onPlotApplicationFocus = (event: React.FocusEvent<SVGGElement>) => {\n onApplicationFocus && onApplicationFocus(event, plotClickedRef.current ? 'mouse' : 'keyboard');\n // \"Release\" the click reference to not affect the next call of this handler.\n plotClickedRef.current = false;\n setApplicationFocused(true);\n };\n const onPlotApplicationBlur = (event: React.FocusEvent<SVGGElement>) => {\n onApplicationBlur && onApplicationBlur(event);\n setApplicationFocused(false);\n };\n const onApplicationKeyDown = onKeyDown;\n\n const plotFocusable = !isApplicationFocused;\n const plotTabIndex = plotFocusable ? 0 : -1;\n const plotAria = !isApplicationFocused\n ? {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescriptionId,\n 'aria-roledescription': i18n('i18nStrings.chartAriaRoleDescription', ariaRoleDescription),\n }\n : {};\n\n return (\n <>\n <svg\n onMouseMove={onMouseMove}\n onMouseOut={onMouseOut}\n focusable={plotFocusable}\n tabIndex={plotTabIndex}\n role=\"application\"\n aria-hidden=\"false\"\n {...plotAria}\n ref={svgRef}\n style={{\n width,\n height,\n marginTop: offsetTop,\n marginBottom: offsetBottom,\n marginLeft: offsetLeft,\n marginRight: offsetRight,\n }}\n className={clsx(styles.root, {\n [styles.clickable]: isClickable,\n [styles.precise]: isPrecise,\n })}\n onMouseDown={onPlotMouseDown}\n onClick={onPlotClick}\n onFocus={onPlotFocus}\n onBlur={onPlotBlur}\n onKeyDown={onPlotKeyDown}\n >\n <FocusOutline elementRef={svgRef} elementKey={isPlotFocused} offset={focusOffset} />\n\n <g transform={transform}>\n <ApplicationController\n activeElementKey={(isApplicationFocused && activeElementKey) || null}\n activeElementRef={activeElementRef}\n ref={applicationRef}\n onFocus={onPlotApplicationFocus}\n onBlur={onPlotApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n />\n\n {/* Only show description when plot is focusable to avoid repetition in Safari and Firefox */}\n {ariaDescription && plotFocusable && (\n <desc aria-hidden=\"true\" id={internalDescriptionId}>\n {ariaDescription}\n </desc>\n )}\n\n {children}\n\n <FocusOutline\n elementRef={activeElementRef}\n elementKey={isApplicationFocused && activeElementKey}\n offset={activeElementFocusOffset}\n />\n </g>\n </svg>\n\n <InternalLiveRegion hidden={true} tagName=\"span\">\n {ariaLiveRegion}\n </InternalLiveRegion>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,qBAAyC,MAAM,0BAA0B,CAAC;AACjF,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAqCvC;;;;;;;;;EASE;AACF,eAAe,UAAU,CAAC,SAAS,CAAC,CAAC;AAErC,SAAS,SAAS,CAChB,EACE,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,GAAG,yBAAyB,EACvC,wBAAwB,GAAG,4BAA4B,EACvD,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GACH,EACjB,GAA4B;IAE5B,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtE,MAAM,qBAAqB,GAAG,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,CAAC,eAAe,IAAI,qBAAqB,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhH,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC,OAAQ;QACpB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,KAAK,EAAE;QACxC,gBAAgB,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAQ,CAAC,KAAK,EAAE;KACxD,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,+DAA+D;QAC/D,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAsC,EAAE,EAAE;QAC7D,sDAAsD;QACtD,yGAAyG;QACzG,IAAI,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,EAAE;YAChD,cAAc,CAAC,OAAQ,CAAC,KAAK,EAAE,CAAC;SACjC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;YAC1C,wEAAwE;YACxE,cAAc,CAAC,IAAI,CAAC,CAAC;SACtB;IACH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAkD,EAAE,EAAE;QACzE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,KAAsC,EAAE,EAAE;QAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;YACnC,cAAc,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC,CAAC;IACF,iGAAiG;IACjG,MAAM,aAAa,GAAG,CAAC,KAA0B,EAAE,EAAE;QACnD,IAAI,aAAa,EAAE;YACjB,iFAAiF;YACjF,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACpG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvC,cAAc,CAAC,OAAQ,CAAC,KAAK,EAAE,CAAC;aACjC;SACF;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,KAAoC,EAAE,EAAE;QACtE,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/F,6EAA6E;QAC7E,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,CAAC,KAAoC,EAAE,EAAE;QACrE,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,SAAS,CAAC;IAEvC,MAAM,aAAa,GAAG,CAAC,oBAAoB,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,CAAC,oBAAoB;QACpC,CAAC,CAAC;YACE,YAAY,EAAE,SAAS;YACvB,iBAAiB,EAAE,cAAc;YACjC,kBAAkB,EAAE,iBAAiB;YACrC,sBAAsB,EAAE,IAAI,CAAC,sCAAsC,EAAE,mBAAmB,CAAC;SAC1F;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL;QACE,2CACE,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAC,aAAa,iBACN,OAAO,IACf,QAAQ,IACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;gBACL,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,YAAY;gBAC1B,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,WAAW;aACzB,EACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW;gBAC/B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS;aAC5B,CAAC,EACF,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa;YAExB,oBAAC,YAAY,IAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAI;YAEpF,2BAAG,SAAS,EAAE,SAAS;gBACrB,oBAAC,qBAAqB,IACpB,gBAAgB,EAAE,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,IAAI,IAAI,EACpE,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,oBAAoB,GAC/B;gBAGD,eAAe,IAAI,aAAa,IAAI,CACnC,6CAAkB,MAAM,EAAC,EAAE,EAAE,qBAAqB,IAC/C,eAAe,CACX,CACR;gBAEA,QAAQ;gBAET,oBAAC,YAAY,IACX,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,oBAAoB,IAAI,gBAAgB,EACpD,MAAM,EAAE,wBAAwB,GAChC,CACA,CACA;QAEN,oBAAC,kBAAkB,IAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,IAC7C,cAAc,CACI,CACpB,CACJ,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useInternalI18n } from '../../../i18n/context';\nimport InternalLiveRegion from '../../../live-region/internal';\nimport { useUniqueId } from '../../hooks/use-unique-id';\nimport { KeyCode } from '../../keycode';\nimport { Offset } from '../interfaces';\nimport ApplicationController, { ApplicationRef } from './application-controller';\nimport FocusOutline from './focus-outline';\n\nimport styles from './styles.css.js';\n\nconst DEFAULT_PLOT_FOCUS_OFFSET = 3;\nconst DEFAULT_ELEMENT_FOCUS_OFFSET = 3;\n\nexport interface ChartPlotRef {\n svg: SVGSVGElement;\n focusPlot(): void;\n focusApplication(): void;\n}\n\ninterface ChartPlotProps {\n width: number | string;\n height: number | string;\n transform?: string;\n offsetTop?: number;\n offsetBottom?: number;\n offsetLeft?: number;\n offsetRight?: number;\n focusOffset?: number;\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescription?: string;\n ariaDescribedby?: string;\n ariaRoleDescription?: string;\n activeElementKey?: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n activeElementFocusOffset?: Offset;\n ariaLiveRegion?: string;\n isClickable?: boolean;\n isPrecise?: boolean;\n onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseMove?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseOut?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onApplicationFocus?: (event: React.FocusEvent<SVGGElement>, trigger: 'mouse' | 'keyboard') => void;\n onApplicationBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n children: React.ReactNode;\n}\n\n/**\n An extension for the SVG to be used for charts. It includes a controller element to\n handle the focus and keyboard interactions in a way that is supported by screen readers.\n\n The application mimics the aria-activedescendant behavior which is unsupported by Safari. The\n activeElementRef is the pointer to the secondary-focus element and activeElementKey denotes when\n the focus transition was made.\n\n Alternatively, ariaLiveRegion can be used to make announcements.\n*/\nexport default forwardRef(ChartPlot);\n\nfunction ChartPlot(\n {\n width,\n height,\n transform,\n offsetTop,\n offsetBottom,\n offsetLeft,\n offsetRight,\n ariaLabel,\n ariaLabelledby,\n ariaRoleDescription,\n ariaDescription,\n ariaDescribedby,\n activeElementKey,\n activeElementRef,\n ariaLiveRegion,\n isClickable,\n isPrecise,\n children,\n onClick,\n onKeyDown,\n focusOffset = DEFAULT_PLOT_FOCUS_OFFSET,\n activeElementFocusOffset = DEFAULT_ELEMENT_FOCUS_OFFSET,\n onMouseMove,\n onMouseOut,\n onApplicationBlur,\n onApplicationFocus,\n }: ChartPlotProps,\n ref: React.Ref<ChartPlotRef>\n) {\n const i18n = useInternalI18n('[charts]');\n const svgRef = useRef<SVGSVGElement>(null);\n const applicationRef = useRef<ApplicationRef>(null);\n const plotClickedRef = useRef(false);\n const [isPlotFocused, setPlotFocused] = useState(false);\n const [isApplicationFocused, setApplicationFocused] = useState(false);\n\n const internalDescriptionId = useUniqueId('awsui-chart-plot__description');\n const ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');\n\n useImperativeHandle(ref, () => ({\n svg: svgRef.current!,\n focusPlot: () => svgRef.current!.focus(),\n focusApplication: () => applicationRef.current!.focus(),\n }));\n\n const onPlotMouseDown = () => {\n // Record the click was made for the application focus handler.\n plotClickedRef.current = true;\n };\n const onPlotFocus = (event: React.FocusEvent<SVGSVGElement>) => {\n // If focused via click or an element was highlighted,\n // focus the internal application, which will manage and show focus accordingly on its internal elements.\n if (plotClickedRef.current || !!activeElementKey) {\n applicationRef.current!.focus();\n } else if (event.target === svgRef.current) {\n // Otherwise, focus the entire plot if it was focused with the keyboard.\n setPlotFocused(true);\n }\n };\n const onPlotClick = (event: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n onClick && onClick(event);\n };\n const onPlotBlur = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current) {\n setPlotFocused(false);\n }\n };\n // Once one of the expected keys is pressed the focus is delegated to the application controller.\n const onPlotKeyDown = (event: React.KeyboardEvent) => {\n if (isPlotFocused) {\n // Delegate the focus to the application if one of the expected keys was pressed.\n const codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];\n if (codes.indexOf(event.keyCode) !== -1) {\n applicationRef.current!.focus();\n }\n }\n };\n\n const onPlotApplicationFocus = (event: React.FocusEvent<SVGGElement>) => {\n onApplicationFocus && onApplicationFocus(event, plotClickedRef.current ? 'mouse' : 'keyboard');\n // \"Release\" the click reference to not affect the next call of this handler.\n plotClickedRef.current = false;\n setApplicationFocused(true);\n };\n const onPlotApplicationBlur = (event: React.FocusEvent<SVGGElement>) => {\n onApplicationBlur && onApplicationBlur(event);\n setApplicationFocused(false);\n };\n const onApplicationKeyDown = onKeyDown;\n\n const plotFocusable = !isApplicationFocused;\n const plotTabIndex = plotFocusable ? 0 : -1;\n const plotAria = !isApplicationFocused\n ? {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescriptionId,\n 'aria-roledescription': i18n('i18nStrings.chartAriaRoleDescription', ariaRoleDescription),\n }\n : {};\n\n return (\n <>\n <svg\n onMouseMove={onMouseMove}\n onMouseOut={onMouseOut}\n focusable={plotFocusable}\n tabIndex={plotTabIndex}\n role=\"application\"\n aria-hidden=\"false\"\n {...plotAria}\n ref={svgRef}\n style={{\n width,\n height,\n marginTop: offsetTop,\n marginBottom: offsetBottom,\n marginLeft: offsetLeft,\n marginRight: offsetRight,\n }}\n className={clsx(styles.root, {\n [styles.clickable]: isClickable,\n [styles.precise]: isPrecise,\n })}\n onMouseDown={onPlotMouseDown}\n onClick={onPlotClick}\n onFocus={onPlotFocus}\n onBlur={onPlotBlur}\n onKeyDown={onPlotKeyDown}\n >\n <FocusOutline elementRef={svgRef} elementKey={isPlotFocused} offset={focusOffset} />\n\n <g transform={transform}>\n <ApplicationController\n activeElementKey={(isApplicationFocused && activeElementKey) || null}\n activeElementRef={activeElementRef}\n ref={applicationRef}\n onFocus={onPlotApplicationFocus}\n onBlur={onPlotApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n />\n\n {/* Only show description when plot is focusable to avoid repetition in Safari and Firefox */}\n {ariaDescription && plotFocusable && (\n <desc aria-hidden=\"true\" id={internalDescriptionId}>\n {ariaDescription}\n </desc>\n )}\n\n {children}\n\n <FocusOutline\n elementRef={activeElementRef}\n elementKey={isApplicationFocused && activeElementKey}\n offset={activeElementFocusOffset}\n />\n </g>\n </svg>\n\n <InternalLiveRegion hidden={true} tagName=\"span\">\n {ariaLiveRegion}\n </InternalLiveRegion>\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PopoverProps } from '../../../popover/interfaces';
3
- export interface ChartPopoverProps extends PopoverProps {
3
+ interface ChartPopoverProps extends PopoverProps {
4
4
  /** Title of the popover */
5
5
  title?: React.ReactNode;
6
6
  /** References the element the container is positioned against. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-popover/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQ3D,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kEAAkE;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;IACpD;;;;;;;;MAQE;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,+FAA+F;IAC/F,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAE1B,wDAAwD;IACxD,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAEjD,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAEjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE3C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;;AAED,wBAA8C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-popover/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQ3D,UAAU,iBAAkB,SAAQ,YAAY;IAC9C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kEAAkE;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;IACpD;;;;;;;;MAQE;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,+FAA+F;IAC/F,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAE1B,wDAAwD;IACxD,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAEjD,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAEjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE3C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;;AAED,wBAA8C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-popover/index.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, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { nodeContains } from '@cloudscape-design/component-toolkit/dom';\n\nimport PopoverBody from '../../../popover/body';\nimport PopoverContainer from '../../../popover/container';\nimport { PopoverProps } from '../../../popover/interfaces';\nimport { getBaseProps } from '../../base-component';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport { nodeBelongs } from '../../utils/node-belongs';\n\nimport popoverStyles from '../../../popover/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface ChartPopoverProps extends PopoverProps {\n /** Title of the popover */\n title?: React.ReactNode;\n\n /** References the element the container is positioned against. */\n trackRef: React.RefObject<HTMLElement | SVGElement>;\n /**\n Used to update the container position in case track or track position changes:\n \n const trackRef = useRef<Element>(null)\n return (<>\n <Track style={getPosition(selectedItemId)} ref={trackRef} />\n <PopoverContainer trackRef={trackRef} trackKey={selectedItemId} .../>\n </>)\n */\n trackKey?: string | number;\n\n /** Optional container element that prevents any clicks in there from dismissing the popover */\n container: Element | null;\n\n /** Event that is fired when the popover is dismissed */\n onDismiss: (outsideClick?: boolean) => void;\n\n /** Fired when the pointer enters the hoverable area around the popover */\n onMouseEnter?: (event: React.MouseEvent) => void;\n\n /** Fired when the pointer leaves the hoverable area around the popover */\n onMouseLeave?: (event: React.MouseEvent) => void;\n\n onBlur?: (event: React.FocusEvent) => void;\n\n /** Popover content */\n children?: React.ReactNode;\n}\n\nexport default React.forwardRef(ChartPopover);\n\nfunction ChartPopover(\n {\n position = 'right',\n size = 'medium',\n fixedWidth = false,\n dismissButton = false,\n dismissAriaLabel,\n\n children,\n\n title,\n trackRef,\n trackKey,\n onDismiss,\n container,\n\n onMouseEnter,\n onMouseLeave,\n onBlur,\n\n ...restProps\n }: ChartPopoverProps,\n ref: React.Ref<HTMLElement>\n) {\n const baseProps = getBaseProps(restProps);\n const popoverObjectRef = useRef<HTMLDivElement | null>(null);\n\n const popoverRef = useMergeRefs(popoverObjectRef, ref);\n\n useEffect(() => {\n const onDocumentClick = (event: MouseEvent) => {\n if (\n event.target &&\n !nodeBelongs(popoverObjectRef.current, event.target as Element) && // click not in popover\n !nodeContains(container, event.target as Element) // click not in segment\n ) {\n onDismiss(true);\n }\n };\n\n document.addEventListener('mousedown', onDocumentClick, { capture: true });\n return () => {\n document.removeEventListener('mousedown', onDocumentClick, { capture: true });\n };\n }, [container, onDismiss]);\n\n // In chart popovers, dismiss button is present when they are pinned, so both values are equivalent.\n const isPinned = dismissButton;\n\n return (\n <div\n {...baseProps}\n className={clsx(popoverStyles.root, styles.root, baseProps.className)}\n ref={popoverRef}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onBlur={onBlur}\n // The tabIndex makes it so that clicking inside popover assigns this element as blur target.\n // That is necessary in charts to ensure the blur target is within the chart and no cleanup is needed.\n tabIndex={-1}\n >\n <PopoverContainer\n size={size}\n fixedWidth={fixedWidth}\n position={position}\n trackRef={trackRef}\n trackKey={trackKey}\n arrow={position => (\n <div className={clsx(popoverStyles.arrow, popoverStyles[`arrow-position-${position}`])}>\n <div className={popoverStyles['arrow-outer']} />\n <div className={popoverStyles['arrow-inner']} />\n </div>\n )}\n keepPosition={true}\n allowVerticalOverflow={true}\n allowScrollToFit={isPinned}\n >\n <div className={styles['hover-area']}>\n <PopoverBody\n dismissButton={dismissButton}\n dismissAriaLabel={dismissAriaLabel}\n header={title}\n onDismiss={onDismiss}\n overflowVisible=\"content\"\n className={styles['popover-body']}\n >\n {children}\n </PopoverBody>\n </div>\n </PopoverContainer>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-popover/index.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, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { nodeContains } from '@cloudscape-design/component-toolkit/dom';\n\nimport PopoverBody from '../../../popover/body';\nimport PopoverContainer from '../../../popover/container';\nimport { PopoverProps } from '../../../popover/interfaces';\nimport { getBaseProps } from '../../base-component';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport { nodeBelongs } from '../../utils/node-belongs';\n\nimport popoverStyles from '../../../popover/styles.css.js';\nimport styles from './styles.css.js';\n\ninterface ChartPopoverProps extends PopoverProps {\n /** Title of the popover */\n title?: React.ReactNode;\n\n /** References the element the container is positioned against. */\n trackRef: React.RefObject<HTMLElement | SVGElement>;\n /**\n Used to update the container position in case track or track position changes:\n \n const trackRef = useRef<Element>(null)\n return (<>\n <Track style={getPosition(selectedItemId)} ref={trackRef} />\n <PopoverContainer trackRef={trackRef} trackKey={selectedItemId} .../>\n </>)\n */\n trackKey?: string | number;\n\n /** Optional container element that prevents any clicks in there from dismissing the popover */\n container: Element | null;\n\n /** Event that is fired when the popover is dismissed */\n onDismiss: (outsideClick?: boolean) => void;\n\n /** Fired when the pointer enters the hoverable area around the popover */\n onMouseEnter?: (event: React.MouseEvent) => void;\n\n /** Fired when the pointer leaves the hoverable area around the popover */\n onMouseLeave?: (event: React.MouseEvent) => void;\n\n onBlur?: (event: React.FocusEvent) => void;\n\n /** Popover content */\n children?: React.ReactNode;\n}\n\nexport default React.forwardRef(ChartPopover);\n\nfunction ChartPopover(\n {\n position = 'right',\n size = 'medium',\n fixedWidth = false,\n dismissButton = false,\n dismissAriaLabel,\n\n children,\n\n title,\n trackRef,\n trackKey,\n onDismiss,\n container,\n\n onMouseEnter,\n onMouseLeave,\n onBlur,\n\n ...restProps\n }: ChartPopoverProps,\n ref: React.Ref<HTMLElement>\n) {\n const baseProps = getBaseProps(restProps);\n const popoverObjectRef = useRef<HTMLDivElement | null>(null);\n\n const popoverRef = useMergeRefs(popoverObjectRef, ref);\n\n useEffect(() => {\n const onDocumentClick = (event: MouseEvent) => {\n if (\n event.target &&\n !nodeBelongs(popoverObjectRef.current, event.target as Element) && // click not in popover\n !nodeContains(container, event.target as Element) // click not in segment\n ) {\n onDismiss(true);\n }\n };\n\n document.addEventListener('mousedown', onDocumentClick, { capture: true });\n return () => {\n document.removeEventListener('mousedown', onDocumentClick, { capture: true });\n };\n }, [container, onDismiss]);\n\n // In chart popovers, dismiss button is present when they are pinned, so both values are equivalent.\n const isPinned = dismissButton;\n\n return (\n <div\n {...baseProps}\n className={clsx(popoverStyles.root, styles.root, baseProps.className)}\n ref={popoverRef}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onBlur={onBlur}\n // The tabIndex makes it so that clicking inside popover assigns this element as blur target.\n // That is necessary in charts to ensure the blur target is within the chart and no cleanup is needed.\n tabIndex={-1}\n >\n <PopoverContainer\n size={size}\n fixedWidth={fixedWidth}\n position={position}\n trackRef={trackRef}\n trackKey={trackKey}\n arrow={position => (\n <div className={clsx(popoverStyles.arrow, popoverStyles[`arrow-position-${position}`])}>\n <div className={popoverStyles['arrow-outer']} />\n <div className={popoverStyles['arrow-inner']} />\n </div>\n )}\n keepPosition={true}\n allowVerticalOverflow={true}\n allowScrollToFit={isPinned}\n >\n <div className={styles['hover-area']}>\n <PopoverBody\n dismissButton={dismissButton}\n dismissAriaLabel={dismissAriaLabel}\n header={title}\n onDismiss={onDismiss}\n overflowVisible=\"content\"\n className={styles['popover-body']}\n >\n {children}\n </PopoverBody>\n </div>\n </PopoverContainer>\n </div>\n );\n}\n"]}
@@ -13,7 +13,7 @@ export interface ChartSeriesDetailItem extends ChartDetailPair {
13
13
  expandableId?: string;
14
14
  }
15
15
  export type ExpandedSeries = Set<string>;
16
- export interface ChartSeriesDetailsProps extends BaseComponentProps {
16
+ interface ChartSeriesDetailsProps extends BaseComponentProps {
17
17
  details: ReadonlyArray<ChartSeriesDetailItem>;
18
18
  expandedSeries?: ExpandedSeries;
19
19
  setPopoverText?: (s: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-series-details/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAoB,SAAS,EAAqB,MAAM,OAAO,CAAC;AAI9E,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AAExE,OAA0B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAKlF,UAAU,eAAe;IACvB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;CAClB;AAUD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;AAED,wBAAoD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-series-details/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAoB,SAAS,EAAqB,MAAM,OAAO,CAAC;AAI9E,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AAExE,OAA0B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAKlF,UAAU,eAAe;IACvB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;CAClB;AAUD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAEzC,UAAU,uBAAwB,SAAQ,kBAAkB;IAC1D,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;AAED,wBAAoD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-series-details/index.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, { forwardRef, memo, ReactNode, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport InternalExpandableSection from '../../../expandable-section/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport ChartSeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport getSeriesDetailsText from './series-details-text';\n\nimport styles from './styles.css.js';\n\ninterface ChartDetailPair {\n key: ReactNode;\n value: ReactNode;\n}\n\ninterface ListItemProps {\n itemKey: ReactNode;\n value: ReactNode;\n subItems?: ReadonlyArray<ChartDetailPair>;\n markerType?: ChartSeriesMarkerType;\n color?: string;\n}\n\nexport interface ChartSeriesDetailItem extends ChartDetailPair {\n markerType?: ChartSeriesMarkerType;\n color?: string;\n isDimmed?: boolean;\n subItems?: ReadonlyArray<ChartDetailPair>;\n expandableId?: string;\n}\nexport type ExpandedSeries = Set<string>;\n\nexport interface ChartSeriesDetailsProps extends BaseComponentProps {\n details: ReadonlyArray<ChartSeriesDetailItem>;\n expandedSeries?: ExpandedSeries;\n setPopoverText?: (s: string) => void;\n setExpandedState?: (seriesTitle: string, state: boolean) => void;\n compactList?: boolean;\n}\n\nexport default memo(forwardRef(ChartSeriesDetails));\n\nfunction ChartSeriesDetails(\n { details, expandedSeries, setPopoverText, setExpandedState, compactList, ...restProps }: ChartSeriesDetailsProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const baseProps = getBaseProps(restProps);\n const className = clsx(baseProps.className, styles.root);\n const detailsRef = useRef<HTMLDivElement | null>(null);\n const mergedRef = useMergeRefs(ref, detailsRef);\n\n // Once the component has rendered, pass its content in plain text\n // so that it can be used by screen readers.\n useEffect(() => {\n if (setPopoverText) {\n if (detailsRef.current) {\n setPopoverText(getSeriesDetailsText(detailsRef.current));\n }\n return () => {\n setPopoverText('');\n };\n }\n }, [details, setPopoverText]);\n\n const isExpanded = (seriesTitle: string) => !!expandedSeries && expandedSeries.has(seriesTitle);\n\n return (\n <div {...baseProps} className={className} ref={mergedRef}>\n <ul className={clsx(styles.list, compactList && styles.compact)}>\n {details.map(({ key, value, markerType, color, isDimmed, subItems, expandableId }, index) => (\n <li\n key={index}\n className={clsx({\n [styles.dimmed]: isDimmed,\n [styles['list-item']]: true,\n [styles['with-sub-items']]: subItems?.length,\n [styles.expandable]: !!expandableId,\n })}\n >\n {subItems?.length && !!expandableId ? (\n <ExpandableSeries\n itemKey={key}\n value={value}\n markerType={markerType}\n color={color}\n subItems={subItems}\n expanded={isExpanded(expandableId)}\n setExpandedState={state => setExpandedState && setExpandedState(expandableId, state)}\n />\n ) : (\n <NonExpandableSeries\n itemKey={key}\n value={value}\n markerType={markerType}\n color={color}\n subItems={subItems}\n />\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n\nfunction SubItems({\n items,\n expandable,\n expanded,\n}: {\n items: ReadonlyArray<ChartDetailPair>;\n expandable?: boolean;\n expanded?: boolean;\n}) {\n return (\n <ul className={clsx(styles['sub-items'], expandable && styles.expandable)}>\n {items.map(({ key, value }, index) => (\n <li\n key={index}\n className={clsx(\n styles['inner-list-item'],\n styles['key-value-pair'],\n (expanded || !expandable) && styles.announced\n )}\n >\n <span className={styles.key}>{key}</span>\n <span className={styles.value}>{value}</span>\n </li>\n ))}\n </ul>\n );\n}\n\nfunction ExpandableSeries({\n itemKey,\n value,\n subItems,\n markerType,\n color,\n expanded,\n setExpandedState,\n}: ListItemProps &\n Required<Pick<ListItemProps, 'subItems'>> & {\n expanded: boolean;\n setExpandedState: (state: boolean) => void;\n }) {\n return (\n <div className={styles['expandable-section']}>\n {markerType && color && <ChartSeriesMarker type={markerType} color={color} />}\n <div className={styles['full-width']}>\n <InternalExpandableSection\n variant=\"compact\"\n headerText={itemKey}\n headerActions={<span className={clsx(styles.value, styles.expandable)}>{value}</span>}\n expanded={expanded}\n onChange={({ detail }) => setExpandedState(detail.expanded)}\n >\n <SubItems items={subItems} expandable={true} expanded={expanded} />\n </InternalExpandableSection>\n </div>\n </div>\n );\n}\n\nfunction NonExpandableSeries({ itemKey, value, subItems, markerType, color }: ListItemProps) {\n return (\n <>\n <div className={clsx(styles['key-value-pair'], styles.announced)}>\n <div className={styles.key}>\n {markerType && color && <ChartSeriesMarker type={markerType} color={color} />}\n <span>{itemKey}</span>\n </div>\n <span className={styles.value}>{value}</span>\n </div>\n {subItems && <SubItems items={subItems} />}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-series-details/index.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, { forwardRef, memo, ReactNode, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport InternalExpandableSection from '../../../expandable-section/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport ChartSeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport getSeriesDetailsText from './series-details-text';\n\nimport styles from './styles.css.js';\n\ninterface ChartDetailPair {\n key: ReactNode;\n value: ReactNode;\n}\n\ninterface ListItemProps {\n itemKey: ReactNode;\n value: ReactNode;\n subItems?: ReadonlyArray<ChartDetailPair>;\n markerType?: ChartSeriesMarkerType;\n color?: string;\n}\n\nexport interface ChartSeriesDetailItem extends ChartDetailPair {\n markerType?: ChartSeriesMarkerType;\n color?: string;\n isDimmed?: boolean;\n subItems?: ReadonlyArray<ChartDetailPair>;\n expandableId?: string;\n}\nexport type ExpandedSeries = Set<string>;\n\ninterface ChartSeriesDetailsProps extends BaseComponentProps {\n details: ReadonlyArray<ChartSeriesDetailItem>;\n expandedSeries?: ExpandedSeries;\n setPopoverText?: (s: string) => void;\n setExpandedState?: (seriesTitle: string, state: boolean) => void;\n compactList?: boolean;\n}\n\nexport default memo(forwardRef(ChartSeriesDetails));\n\nfunction ChartSeriesDetails(\n { details, expandedSeries, setPopoverText, setExpandedState, compactList, ...restProps }: ChartSeriesDetailsProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const baseProps = getBaseProps(restProps);\n const className = clsx(baseProps.className, styles.root);\n const detailsRef = useRef<HTMLDivElement | null>(null);\n const mergedRef = useMergeRefs(ref, detailsRef);\n\n // Once the component has rendered, pass its content in plain text\n // so that it can be used by screen readers.\n useEffect(() => {\n if (setPopoverText) {\n if (detailsRef.current) {\n setPopoverText(getSeriesDetailsText(detailsRef.current));\n }\n return () => {\n setPopoverText('');\n };\n }\n }, [details, setPopoverText]);\n\n const isExpanded = (seriesTitle: string) => !!expandedSeries && expandedSeries.has(seriesTitle);\n\n return (\n <div {...baseProps} className={className} ref={mergedRef}>\n <ul className={clsx(styles.list, compactList && styles.compact)}>\n {details.map(({ key, value, markerType, color, isDimmed, subItems, expandableId }, index) => (\n <li\n key={index}\n className={clsx({\n [styles.dimmed]: isDimmed,\n [styles['list-item']]: true,\n [styles['with-sub-items']]: subItems?.length,\n [styles.expandable]: !!expandableId,\n })}\n >\n {subItems?.length && !!expandableId ? (\n <ExpandableSeries\n itemKey={key}\n value={value}\n markerType={markerType}\n color={color}\n subItems={subItems}\n expanded={isExpanded(expandableId)}\n setExpandedState={state => setExpandedState && setExpandedState(expandableId, state)}\n />\n ) : (\n <NonExpandableSeries\n itemKey={key}\n value={value}\n markerType={markerType}\n color={color}\n subItems={subItems}\n />\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n}\n\nfunction SubItems({\n items,\n expandable,\n expanded,\n}: {\n items: ReadonlyArray<ChartDetailPair>;\n expandable?: boolean;\n expanded?: boolean;\n}) {\n return (\n <ul className={clsx(styles['sub-items'], expandable && styles.expandable)}>\n {items.map(({ key, value }, index) => (\n <li\n key={index}\n className={clsx(\n styles['inner-list-item'],\n styles['key-value-pair'],\n (expanded || !expandable) && styles.announced\n )}\n >\n <span className={styles.key}>{key}</span>\n <span className={styles.value}>{value}</span>\n </li>\n ))}\n </ul>\n );\n}\n\nfunction ExpandableSeries({\n itemKey,\n value,\n subItems,\n markerType,\n color,\n expanded,\n setExpandedState,\n}: ListItemProps &\n Required<Pick<ListItemProps, 'subItems'>> & {\n expanded: boolean;\n setExpandedState: (state: boolean) => void;\n }) {\n return (\n <div className={styles['expandable-section']}>\n {markerType && color && <ChartSeriesMarker type={markerType} color={color} />}\n <div className={styles['full-width']}>\n <InternalExpandableSection\n variant=\"compact\"\n headerText={itemKey}\n headerActions={<span className={clsx(styles.value, styles.expandable)}>{value}</span>}\n expanded={expanded}\n onChange={({ detail }) => setExpandedState(detail.expanded)}\n >\n <SubItems items={subItems} expandable={true} expanded={expanded} />\n </InternalExpandableSection>\n </div>\n </div>\n );\n}\n\nfunction NonExpandableSeries({ itemKey, value, subItems, markerType, color }: ListItemProps) {\n return (\n <>\n <div className={clsx(styles['key-value-pair'], styles.announced)}>\n <div className={styles.key}>\n {markerType && color && <ChartSeriesMarker type={markerType} color={color} />}\n <span>{itemKey}</span>\n </div>\n <span className={styles.value}>{value}</span>\n </div>\n {subItems && <SubItems items={subItems} />}\n </>\n );\n}\n"]}