@cloudscape-design/components 3.0.221 → 3.0.223

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 (1002) hide show
  1. package/alert/index.js +4 -4
  2. package/alert/index.js.map +1 -1
  3. package/alert/internal.js +14 -15
  4. package/alert/internal.js.map +1 -1
  5. package/annotation-context/annotation/annotation-icon.js +1 -2
  6. package/annotation-context/annotation/annotation-icon.js.map +1 -1
  7. package/annotation-context/annotation/annotation-popover.js +6 -7
  8. package/annotation-context/annotation/annotation-popover.js.map +1 -1
  9. package/annotation-context/annotation/annotation-trigger.js +4 -6
  10. package/annotation-context/annotation/annotation-trigger.js.map +1 -1
  11. package/annotation-context/annotation/closed-annotation.js +4 -5
  12. package/annotation-context/annotation/closed-annotation.js.map +1 -1
  13. package/annotation-context/annotation/open-annotation.js +2 -3
  14. package/annotation-context/annotation/open-annotation.js.map +1 -1
  15. package/annotation-context/context.js +7 -7
  16. package/annotation-context/context.js.map +1 -1
  17. package/annotation-context/index.js +62 -69
  18. package/annotation-context/index.js.map +1 -1
  19. package/app-layout/content-wrapper/index.js +2 -3
  20. package/app-layout/content-wrapper/index.js.map +1 -1
  21. package/app-layout/defaults.js +13 -14
  22. package/app-layout/defaults.js.map +1 -1
  23. package/app-layout/drawer.js +16 -18
  24. package/app-layout/drawer.js.map +1 -1
  25. package/app-layout/index.js +111 -113
  26. package/app-layout/index.js.map +1 -1
  27. package/app-layout/mobile-toolbar/index.js +7 -9
  28. package/app-layout/mobile-toolbar/index.js.map +1 -1
  29. package/app-layout/navigation-panel.js +5 -8
  30. package/app-layout/navigation-panel.js.map +1 -1
  31. package/app-layout/notifications/index.js +2 -2
  32. package/app-layout/notifications/index.js.map +1 -1
  33. package/app-layout/toggles/index.js +14 -22
  34. package/app-layout/toggles/index.js.map +1 -1
  35. package/app-layout/tools-and-split-panel.js +6 -9
  36. package/app-layout/tools-and-split-panel.js.map +1 -1
  37. package/app-layout/utils/use-content-height.js +14 -15
  38. package/app-layout/utils/use-content-height.js.map +1 -1
  39. package/app-layout/utils/use-content-width.js +8 -8
  40. package/app-layout/utils/use-content-width.js.map +1 -1
  41. package/app-layout/utils/use-focus-control.js +7 -8
  42. package/app-layout/utils/use-focus-control.js.map +1 -1
  43. package/app-layout/utils/use-observed-element.js +3 -3
  44. package/app-layout/utils/use-observed-element.js.map +1 -1
  45. package/app-layout/utils/use-window-width.js +4 -4
  46. package/app-layout/utils/use-window-width.js.map +1 -1
  47. package/app-layout/visual-refresh/app-bar.js +19 -20
  48. package/app-layout/visual-refresh/app-bar.js.map +1 -1
  49. package/app-layout/visual-refresh/background.js +9 -10
  50. package/app-layout/visual-refresh/background.js.map +1 -1
  51. package/app-layout/visual-refresh/context.js +101 -59
  52. package/app-layout/visual-refresh/context.js.map +1 -1
  53. package/app-layout/visual-refresh/header.js +6 -7
  54. package/app-layout/visual-refresh/header.js.map +1 -1
  55. package/app-layout/visual-refresh/index.js +3 -4
  56. package/app-layout/visual-refresh/index.js.map +1 -1
  57. package/app-layout/visual-refresh/layout.js +18 -21
  58. package/app-layout/visual-refresh/layout.js.map +1 -1
  59. package/app-layout/visual-refresh/main.js +17 -18
  60. package/app-layout/visual-refresh/main.js.map +1 -1
  61. package/app-layout/visual-refresh/navigation.js +22 -24
  62. package/app-layout/visual-refresh/navigation.js.map +1 -1
  63. package/app-layout/visual-refresh/notifications.js +6 -7
  64. package/app-layout/visual-refresh/notifications.js.map +1 -1
  65. package/app-layout/visual-refresh/split-panel.js +36 -43
  66. package/app-layout/visual-refresh/split-panel.js.map +1 -1
  67. package/app-layout/visual-refresh/tools.js +32 -34
  68. package/app-layout/visual-refresh/tools.js.map +1 -1
  69. package/app-layout/visual-refresh/trigger-button.js +5 -8
  70. package/app-layout/visual-refresh/trigger-button.js.map +1 -1
  71. package/area-chart/chart-container.js +18 -19
  72. package/area-chart/chart-container.js.map +1 -1
  73. package/area-chart/elements/area-chart-filter.js +7 -8
  74. package/area-chart/elements/area-chart-filter.js.map +1 -1
  75. package/area-chart/elements/area-chart-legend.js +6 -9
  76. package/area-chart/elements/area-chart-legend.js.map +1 -1
  77. package/area-chart/elements/area-series.js +12 -13
  78. package/area-chart/elements/area-series.js.map +1 -1
  79. package/area-chart/elements/chart-popover.js +4 -6
  80. package/area-chart/elements/chart-popover.js.map +1 -1
  81. package/area-chart/elements/data-series.js +14 -17
  82. package/area-chart/elements/data-series.js.map +1 -1
  83. package/area-chart/elements/highlighted-point.js +6 -7
  84. package/area-chart/elements/highlighted-point.js.map +1 -1
  85. package/area-chart/elements/threshold-series.js +5 -7
  86. package/area-chart/elements/threshold-series.js.map +1 -1
  87. package/area-chart/elements/use-highlight-details.js +28 -30
  88. package/area-chart/elements/use-highlight-details.js.map +1 -1
  89. package/area-chart/elements/vertical-marker.js +6 -7
  90. package/area-chart/elements/vertical-marker.js.map +1 -1
  91. package/area-chart/index.js +4 -4
  92. package/area-chart/index.js.map +1 -1
  93. package/area-chart/internal.js +40 -41
  94. package/area-chart/internal.js.map +1 -1
  95. package/area-chart/model/async-store.js +23 -30
  96. package/area-chart/model/async-store.js.map +1 -1
  97. package/area-chart/model/compute-chart-props.js +11 -12
  98. package/area-chart/model/compute-chart-props.js.map +1 -1
  99. package/area-chart/model/create-series-decorator.js +11 -13
  100. package/area-chart/model/create-series-decorator.js.map +1 -1
  101. package/area-chart/model/interactions-store.js +47 -54
  102. package/area-chart/model/interactions-store.js.map +1 -1
  103. package/area-chart/model/use-chart-model.js +85 -89
  104. package/area-chart/model/use-chart-model.js.map +1 -1
  105. package/area-chart/model/use-filter-props.js +6 -6
  106. package/area-chart/model/use-filter-props.js.map +1 -1
  107. package/area-chart/model/use-highlight-props.js +6 -6
  108. package/area-chart/model/use-highlight-props.js.map +1 -1
  109. package/area-chart/model/utils.js +46 -59
  110. package/area-chart/model/utils.js.map +1 -1
  111. package/attribute-editor/additional-info.js +2 -5
  112. package/attribute-editor/additional-info.js.map +1 -1
  113. package/attribute-editor/index.js +5 -5
  114. package/attribute-editor/index.js.map +1 -1
  115. package/attribute-editor/internal.js +20 -20
  116. package/attribute-editor/internal.js.map +1 -1
  117. package/attribute-editor/row.js +17 -25
  118. package/attribute-editor/row.js.map +1 -1
  119. package/autosuggest/autosuggest-option.js +12 -12
  120. package/autosuggest/autosuggest-option.js.map +1 -1
  121. package/autosuggest/index.js +6 -6
  122. package/autosuggest/index.js.map +1 -1
  123. package/autosuggest/internal.js +39 -39
  124. package/autosuggest/internal.js.map +1 -1
  125. package/autosuggest/load-more-controller.js +10 -14
  126. package/autosuggest/load-more-controller.js.map +1 -1
  127. package/autosuggest/options-controller.js +31 -32
  128. package/autosuggest/options-controller.js.map +1 -1
  129. package/autosuggest/options-list.js +12 -13
  130. package/autosuggest/options-list.js.map +1 -1
  131. package/autosuggest/plain-list.js +15 -17
  132. package/autosuggest/plain-list.js.map +1 -1
  133. package/autosuggest/utils/utils.js +12 -12
  134. package/autosuggest/utils/utils.js.map +1 -1
  135. package/autosuggest/virtual-list.js +14 -16
  136. package/autosuggest/virtual-list.js.map +1 -1
  137. package/badge/index.js +6 -6
  138. package/badge/index.js.map +1 -1
  139. package/bar-chart/index.js +6 -6
  140. package/bar-chart/index.js.map +1 -1
  141. package/box/index.js +4 -4
  142. package/box/index.js.map +1 -1
  143. package/box/internal.js +12 -12
  144. package/box/internal.js.map +1 -1
  145. package/breadcrumb-group/index.js +4 -4
  146. package/breadcrumb-group/index.js.map +1 -1
  147. package/breadcrumb-group/internal.js +24 -25
  148. package/breadcrumb-group/internal.js.map +1 -1
  149. package/breadcrumb-group/item/item.js +32 -34
  150. package/breadcrumb-group/item/item.js.map +1 -1
  151. package/button/icon-helper.js +6 -6
  152. package/button/icon-helper.js.map +1 -1
  153. package/button/index.js +6 -6
  154. package/button/index.js.map +1 -1
  155. package/button/internal.js +32 -33
  156. package/button/internal.js.map +1 -1
  157. package/button-dropdown/category-elements/category-element.js +3 -5
  158. package/button-dropdown/category-elements/category-element.js.map +1 -1
  159. package/button-dropdown/category-elements/expandable-category-element.js +23 -26
  160. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  161. package/button-dropdown/category-elements/mobile-expandable-category-element.js +27 -30
  162. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  163. package/button-dropdown/index.js +6 -6
  164. package/button-dropdown/index.js.map +1 -1
  165. package/button-dropdown/internal.js +28 -29
  166. package/button-dropdown/internal.js.map +1 -1
  167. package/button-dropdown/item-element/index.js +30 -36
  168. package/button-dropdown/item-element/index.js.map +1 -1
  169. package/button-dropdown/items-list.js +3 -4
  170. package/button-dropdown/items-list.js.map +1 -1
  171. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js +2 -4
  172. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  173. package/button-dropdown/tooltip.js +22 -24
  174. package/button-dropdown/tooltip.js.map +1 -1
  175. package/button-dropdown/utils/create-items-tree.js +21 -23
  176. package/button-dropdown/utils/create-items-tree.js.map +1 -1
  177. package/button-dropdown/utils/menu-item.js +6 -9
  178. package/button-dropdown/utils/menu-item.js.map +1 -1
  179. package/button-dropdown/utils/move-highlight.js +3 -4
  180. package/button-dropdown/utils/move-highlight.js.map +1 -1
  181. package/button-dropdown/utils/use-button-dropdown.js +31 -33
  182. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  183. package/button-dropdown/utils/use-hidden-description.js +3 -3
  184. package/button-dropdown/utils/use-hidden-description.js.map +1 -1
  185. package/button-dropdown/utils/use-highlighted-menu.js +40 -42
  186. package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  187. package/button-dropdown/utils/utils.js +5 -9
  188. package/button-dropdown/utils/utils.js.map +1 -1
  189. package/calendar/grid/index.js +25 -28
  190. package/calendar/grid/index.js.map +1 -1
  191. package/calendar/header/header-button.js +4 -6
  192. package/calendar/header/header-button.js.map +1 -1
  193. package/calendar/header/index.js +1 -2
  194. package/calendar/header/index.js.map +1 -1
  195. package/calendar/index.js +4 -4
  196. package/calendar/index.js.map +1 -1
  197. package/calendar/internal.js +27 -27
  198. package/calendar/internal.js.map +1 -1
  199. package/calendar/utils/intl.js +12 -13
  200. package/calendar/utils/intl.js.map +1 -1
  201. package/calendar/utils/navigation.js +3 -3
  202. package/calendar/utils/navigation.js.map +1 -1
  203. package/cards/cards-layout-helper.js +12 -12
  204. package/cards/cards-layout-helper.js.map +1 -1
  205. package/cards/index.js +53 -63
  206. package/cards/index.js.map +1 -1
  207. package/checkbox/index.js +4 -4
  208. package/checkbox/index.js.map +1 -1
  209. package/checkbox/internal.d.ts +1 -0
  210. package/checkbox/internal.d.ts.map +1 -1
  211. package/checkbox/internal.js +9 -9
  212. package/checkbox/internal.js.map +1 -1
  213. package/code-editor/ace-modes.js +1 -1
  214. package/code-editor/ace-modes.js.map +1 -1
  215. package/code-editor/ace-themes.js +2 -2
  216. package/code-editor/ace-themes.js.map +1 -1
  217. package/code-editor/error-screen.js +3 -4
  218. package/code-editor/error-screen.js.map +1 -1
  219. package/code-editor/index.js +61 -65
  220. package/code-editor/index.js.map +1 -1
  221. package/code-editor/listeners.js +5 -5
  222. package/code-editor/listeners.js.map +1 -1
  223. package/code-editor/loading-screen.js +2 -2
  224. package/code-editor/loading-screen.js.map +1 -1
  225. package/code-editor/pane.js +21 -25
  226. package/code-editor/pane.js.map +1 -1
  227. package/code-editor/preferences-modal.js +12 -13
  228. package/code-editor/preferences-modal.js.map +1 -1
  229. package/code-editor/resizable-box/index.js +14 -15
  230. package/code-editor/resizable-box/index.js.map +1 -1
  231. package/code-editor/setup-editor.js +20 -20
  232. package/code-editor/setup-editor.js.map +1 -1
  233. package/code-editor/status-bar.js +19 -22
  234. package/code-editor/status-bar.js.map +1 -1
  235. package/code-editor/tab-button.js +7 -10
  236. package/code-editor/tab-button.js.map +1 -1
  237. package/code-editor/util.js +6 -6
  238. package/code-editor/util.js.map +1 -1
  239. package/collection-preferences/index.js +21 -23
  240. package/collection-preferences/index.js.map +1 -1
  241. package/collection-preferences/utils.js +25 -57
  242. package/collection-preferences/utils.js.map +1 -1
  243. package/collection-preferences/visible-content.js +23 -27
  244. package/collection-preferences/visible-content.js.map +1 -1
  245. package/column-layout/index.js +6 -6
  246. package/column-layout/index.js.map +1 -1
  247. package/column-layout/internal.js +20 -21
  248. package/column-layout/internal.js.map +1 -1
  249. package/column-layout/util.js +2 -2
  250. package/column-layout/util.js.map +1 -1
  251. package/container/index.js +5 -5
  252. package/container/index.js.map +1 -1
  253. package/container/internal.js +30 -31
  254. package/container/internal.js.map +1 -1
  255. package/container/use-sticky-header.js +25 -25
  256. package/container/use-sticky-header.js.map +1 -1
  257. package/content-layout/index.js +2 -3
  258. package/content-layout/index.js.map +1 -1
  259. package/content-layout/internal.js +15 -16
  260. package/content-layout/internal.js.map +1 -1
  261. package/date-input/index.js +3 -4
  262. package/date-input/index.js.map +1 -1
  263. package/date-input/interfaces.d.ts +4 -0
  264. package/date-input/interfaces.d.ts.map +1 -1
  265. package/date-input/interfaces.js.map +1 -1
  266. package/date-input/internal.js +8 -8
  267. package/date-input/internal.js.map +1 -1
  268. package/date-picker/index.js +28 -28
  269. package/date-picker/index.js.map +1 -1
  270. package/date-range-picker/calendar/grids/grid.js +54 -57
  271. package/date-range-picker/calendar/grids/grid.js.map +1 -1
  272. package/date-range-picker/calendar/grids/index.js +27 -28
  273. package/date-range-picker/calendar/grids/index.js.map +1 -1
  274. package/date-range-picker/calendar/header/header-button.js +4 -6
  275. package/date-range-picker/calendar/header/header-button.js.map +1 -1
  276. package/date-range-picker/calendar/header/index.js +6 -7
  277. package/date-range-picker/calendar/header/index.js.map +1 -1
  278. package/date-range-picker/calendar/index.js +40 -45
  279. package/date-range-picker/calendar/index.js.map +1 -1
  280. package/date-range-picker/calendar/range-inputs.js +5 -6
  281. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  282. package/date-range-picker/calendar/utils.js +2 -2
  283. package/date-range-picker/calendar/utils.js.map +1 -1
  284. package/date-range-picker/dropdown.js +29 -34
  285. package/date-range-picker/dropdown.js.map +1 -1
  286. package/date-range-picker/index.js +40 -43
  287. package/date-range-picker/index.js.map +1 -1
  288. package/date-range-picker/mode-switcher.js +2 -3
  289. package/date-range-picker/mode-switcher.js.map +1 -1
  290. package/date-range-picker/relative-range/index.js +36 -40
  291. package/date-range-picker/relative-range/index.js.map +1 -1
  292. package/date-range-picker/time-offset.js +5 -5
  293. package/date-range-picker/time-offset.js.map +1 -1
  294. package/date-range-picker/utils.js +4 -5
  295. package/date-range-picker/utils.js.map +1 -1
  296. package/expandable-section/expandable-section-container.js +5 -5
  297. package/expandable-section/expandable-section-container.js.map +1 -1
  298. package/expandable-section/expandable-section-header.js +18 -23
  299. package/expandable-section/expandable-section-header.js.map +1 -1
  300. package/expandable-section/index.js +4 -4
  301. package/expandable-section/index.js.map +1 -1
  302. package/expandable-section/internal.js +22 -22
  303. package/expandable-section/internal.js.map +1 -1
  304. package/flashbar/collapsible-flashbar.js +103 -118
  305. package/flashbar/collapsible-flashbar.js.map +1 -1
  306. package/flashbar/common.js +26 -35
  307. package/flashbar/common.js.map +1 -1
  308. package/flashbar/constant.js +1 -1
  309. package/flashbar/constant.js.map +1 -1
  310. package/flashbar/flash.js +23 -26
  311. package/flashbar/flash.js.map +1 -1
  312. package/flashbar/index.js +3 -4
  313. package/flashbar/index.js.map +1 -1
  314. package/flashbar/internal/analytics.js +12 -12
  315. package/flashbar/internal/analytics.js.map +1 -1
  316. package/flashbar/non-collapsible-flashbar.js +10 -10
  317. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  318. package/flashbar/utils.js +25 -27
  319. package/flashbar/utils.js.map +1 -1
  320. package/form/index.js +4 -4
  321. package/form/index.js.map +1 -1
  322. package/form/internal.js +5 -6
  323. package/form/internal.js.map +1 -1
  324. package/form-field/index.js +4 -4
  325. package/form-field/index.js.map +1 -1
  326. package/form-field/internal.js +20 -23
  327. package/form-field/internal.js.map +1 -1
  328. package/form-field/util.js +9 -10
  329. package/form-field/util.js.map +1 -1
  330. package/grid/index.js +6 -6
  331. package/grid/index.js.map +1 -1
  332. package/grid/internal.js +14 -15
  333. package/grid/internal.js.map +1 -1
  334. package/header/index.js +4 -4
  335. package/header/index.js.map +1 -1
  336. package/header/internal.js +15 -15
  337. package/header/internal.js.map +1 -1
  338. package/help-panel/index.js +7 -7
  339. package/help-panel/index.js.map +1 -1
  340. package/hotspot/index.js +12 -12
  341. package/hotspot/index.js.map +1 -1
  342. package/icon/index.js +4 -4
  343. package/icon/index.js.map +1 -1
  344. package/icon/internal.js +18 -18
  345. package/icon/internal.js.map +1 -1
  346. package/input/index.js +36 -17
  347. package/input/index.js.map +1 -1
  348. package/input/internal.js +30 -25
  349. package/input/internal.js.map +1 -1
  350. package/input/utils.js +4 -5
  351. package/input/utils.js.map +1 -1
  352. package/internal/animate.js +27 -32
  353. package/internal/animate.js.map +1 -1
  354. package/internal/base-component/index.js +2 -2
  355. package/internal/base-component/index.js.map +1 -1
  356. package/internal/breakpoints.js +7 -12
  357. package/internal/breakpoints.js.map +1 -1
  358. package/internal/components/abstract-switch/index.d.ts +2 -1
  359. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  360. package/internal/components/abstract-switch/index.js +19 -19
  361. package/internal/components/abstract-switch/index.js.map +1 -1
  362. package/internal/components/abstract-switch/styles.css.js +13 -12
  363. package/internal/components/abstract-switch/styles.scoped.css +21 -21
  364. package/internal/components/abstract-switch/styles.selectors.js +13 -12
  365. package/internal/components/autosuggest-input/index.js +38 -38
  366. package/internal/components/autosuggest-input/index.js.map +1 -1
  367. package/internal/components/button-trigger/index.js +7 -7
  368. package/internal/components/button-trigger/index.js.map +1 -1
  369. package/internal/components/cartesian-chart/axis-label.js +1 -2
  370. package/internal/components/cartesian-chart/axis-label.js.map +1 -1
  371. package/internal/components/cartesian-chart/bottom-labels.js +20 -26
  372. package/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  373. package/internal/components/cartesian-chart/constants.js +5 -5
  374. package/internal/components/cartesian-chart/constants.js.map +1 -1
  375. package/internal/components/cartesian-chart/emphasized-baseline.js +4 -5
  376. package/internal/components/cartesian-chart/emphasized-baseline.js.map +1 -1
  377. package/internal/components/cartesian-chart/highlighted-point.js +1 -2
  378. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  379. package/internal/components/cartesian-chart/label-utils.js +20 -24
  380. package/internal/components/cartesian-chart/label-utils.js.map +1 -1
  381. package/internal/components/cartesian-chart/labels-measure.js +6 -7
  382. package/internal/components/cartesian-chart/labels-measure.js.map +1 -1
  383. package/internal/components/cartesian-chart/left-labels.js +13 -17
  384. package/internal/components/cartesian-chart/left-labels.js.map +1 -1
  385. package/internal/components/cartesian-chart/scales.js +21 -26
  386. package/internal/components/cartesian-chart/scales.js.map +1 -1
  387. package/internal/components/cartesian-chart/ticks.js +9 -10
  388. package/internal/components/cartesian-chart/ticks.js.map +1 -1
  389. package/internal/components/cartesian-chart/vertical-grid-lines.js +3 -4
  390. package/internal/components/cartesian-chart/vertical-grid-lines.js.map +1 -1
  391. package/internal/components/cartesian-chart/vertical-marker.js +3 -4
  392. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  393. package/internal/components/chart-filter/index.js +13 -14
  394. package/internal/components/chart-filter/index.js.map +1 -1
  395. package/internal/components/chart-legend/index.js +26 -29
  396. package/internal/components/chart-legend/index.js.map +1 -1
  397. package/internal/components/chart-plot/application-controller.js +21 -25
  398. package/internal/components/chart-plot/application-controller.js.map +1 -1
  399. package/internal/components/chart-plot/focus-outline.js +7 -8
  400. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  401. package/internal/components/chart-plot/index.js +33 -34
  402. package/internal/components/chart-plot/index.js.map +1 -1
  403. package/internal/components/chart-popover/index.js +11 -12
  404. package/internal/components/chart-popover/index.js.map +1 -1
  405. package/internal/components/chart-series-details/index.js +13 -17
  406. package/internal/components/chart-series-details/index.js.map +1 -1
  407. package/internal/components/chart-series-marker/index.js +2 -3
  408. package/internal/components/chart-series-marker/index.js.map +1 -1
  409. package/internal/components/chart-status-container/index.js +8 -10
  410. package/internal/components/chart-status-container/index.js.map +1 -1
  411. package/internal/components/checkbox-icon/index.js +18 -19
  412. package/internal/components/checkbox-icon/index.js.map +1 -1
  413. package/internal/components/dark-ribbon/index.js +13 -14
  414. package/internal/components/dark-ribbon/index.js.map +1 -1
  415. package/internal/components/dropdown/context.js +4 -5
  416. package/internal/components/dropdown/context.js.map +1 -1
  417. package/internal/components/dropdown/dropdown-fit-handler.js +74 -81
  418. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  419. package/internal/components/dropdown/index.js +57 -65
  420. package/internal/components/dropdown/index.js.map +1 -1
  421. package/internal/components/dropdown-footer/index.js +2 -6
  422. package/internal/components/dropdown-footer/index.js.map +1 -1
  423. package/internal/components/dropdown-status/index.js +5 -7
  424. package/internal/components/dropdown-status/index.js.map +1 -1
  425. package/internal/components/filtering-token/index.js +4 -6
  426. package/internal/components/filtering-token/index.js.map +1 -1
  427. package/internal/components/focus-lock/index.js +10 -11
  428. package/internal/components/focus-lock/index.js.map +1 -1
  429. package/internal/components/focus-lock/utils.js +4 -4
  430. package/internal/components/focus-lock/utils.js.map +1 -1
  431. package/internal/components/live-region/index.js +10 -10
  432. package/internal/components/live-region/index.js.map +1 -1
  433. package/internal/components/masked-input/index.js +22 -24
  434. package/internal/components/masked-input/index.js.map +1 -1
  435. package/internal/components/masked-input/keyboard-handler.js +18 -18
  436. package/internal/components/masked-input/keyboard-handler.js.map +1 -1
  437. package/internal/components/masked-input/use-mask.js +24 -28
  438. package/internal/components/masked-input/use-mask.js.map +1 -1
  439. package/internal/components/masked-input/utils/keys.js +4 -6
  440. package/internal/components/masked-input/utils/keys.js.map +1 -1
  441. package/internal/components/masked-input/utils/mask-format.js +103 -113
  442. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  443. package/internal/components/masked-input/utils/strings.js +1 -4
  444. package/internal/components/masked-input/utils/strings.js.map +1 -1
  445. package/internal/components/menu-dropdown/index.js +10 -12
  446. package/internal/components/menu-dropdown/index.js.map +1 -1
  447. package/internal/components/option/highlight-match.js +14 -18
  448. package/internal/components/option/highlight-match.js.map +1 -1
  449. package/internal/components/option/index.js +13 -13
  450. package/internal/components/option/index.js.map +1 -1
  451. package/internal/components/option/option-announcer.js +1 -1
  452. package/internal/components/option/option-announcer.js.map +1 -1
  453. package/internal/components/option/option-parts.js +28 -45
  454. package/internal/components/option/option-parts.js.map +1 -1
  455. package/internal/components/option/utils/filter-options.js +16 -19
  456. package/internal/components/option/utils/filter-options.js.map +1 -1
  457. package/internal/components/option/utils/flatten-options.js +15 -15
  458. package/internal/components/option/utils/flatten-options.js.map +1 -1
  459. package/internal/components/option/utils/prepare-options.js +3 -3
  460. package/internal/components/option/utils/prepare-options.js.map +1 -1
  461. package/internal/components/options-list/index.js +19 -20
  462. package/internal/components/options-list/index.js.map +1 -1
  463. package/internal/components/options-list/utils/test-indexes.js +11 -11
  464. package/internal/components/options-list/utils/test-indexes.js.map +1 -1
  465. package/internal/components/options-list/utils/use-highlight-option.js +17 -21
  466. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  467. package/internal/components/options-list/utils/use-ids.js +2 -2
  468. package/internal/components/options-list/utils/use-ids.js.map +1 -1
  469. package/internal/components/options-list/utils/use-keyboard.js +6 -8
  470. package/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  471. package/internal/components/options-list/utils/use-open-state.js +6 -7
  472. package/internal/components/options-list/utils/use-open-state.js.map +1 -1
  473. package/internal/components/portal/index.js +5 -6
  474. package/internal/components/portal/index.js.map +1 -1
  475. package/internal/components/screenreader-only/index.js +1 -2
  476. package/internal/components/screenreader-only/index.js.map +1 -1
  477. package/internal/components/selectable-item/index.js +25 -26
  478. package/internal/components/selectable-item/index.js.map +1 -1
  479. package/internal/components/tab-trap/index.js +1 -2
  480. package/internal/components/tab-trap/index.js.map +1 -1
  481. package/internal/components/transition/index.js +16 -16
  482. package/internal/components/transition/index.js.map +1 -1
  483. package/internal/components/visual-context/index.js +6 -7
  484. package/internal/components/visual-context/index.js.map +1 -1
  485. package/internal/context/app-layout-context.js +2 -2
  486. package/internal/context/app-layout-context.js.map +1 -1
  487. package/internal/context/form-field-context.js +4 -4
  488. package/internal/context/form-field-context.js.map +1 -1
  489. package/internal/context/split-panel-context.js +3 -3
  490. package/internal/context/split-panel-context.js.map +1 -1
  491. package/internal/debounce.js +6 -11
  492. package/internal/debounce.js.map +1 -1
  493. package/internal/environment.js +1 -1
  494. package/internal/events/index.js +12 -16
  495. package/internal/events/index.js.map +1 -1
  496. package/internal/focus-tracker.js +22 -27
  497. package/internal/focus-tracker.js.map +1 -1
  498. package/internal/generated/custom-css-properties/index.js +2 -2
  499. package/internal/generated/custom-css-properties/index.js.map +1 -1
  500. package/internal/hooks/check-controlled/index.js +1 -1
  501. package/internal/hooks/check-controlled/index.js.map +1 -1
  502. package/internal/hooks/container-queries/use-container-breakpoints.js +2 -2
  503. package/internal/hooks/container-queries/use-container-breakpoints.js.map +1 -1
  504. package/internal/hooks/container-queries/use-container-query.js +5 -6
  505. package/internal/hooks/container-queries/use-container-query.js.map +1 -1
  506. package/internal/hooks/container-queries/use-resize-observer.js +13 -13
  507. package/internal/hooks/container-queries/use-resize-observer.js.map +1 -1
  508. package/internal/hooks/focus-visible/index.js +8 -8
  509. package/internal/hooks/focus-visible/index.js.map +1 -1
  510. package/internal/hooks/forward-focus/index.js +5 -9
  511. package/internal/hooks/forward-focus/index.js.map +1 -1
  512. package/internal/hooks/forward-focus/radio-group.js +7 -7
  513. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  514. package/internal/hooks/use-base-component/component-metadata.js +5 -5
  515. package/internal/hooks/use-base-component/component-metadata.js.map +1 -1
  516. package/internal/hooks/use-base-component/index.js +1 -1
  517. package/internal/hooks/use-base-component/index.js.map +1 -1
  518. package/internal/hooks/use-controllable/index.js +16 -17
  519. package/internal/hooks/use-controllable/index.js.map +1 -1
  520. package/internal/hooks/use-date-cache/index.js +2 -2
  521. package/internal/hooks/use-date-cache/index.js.map +1 -1
  522. package/internal/hooks/use-debounce-callback/index.js +3 -7
  523. package/internal/hooks/use-debounce-callback/index.js.map +1 -1
  524. package/internal/hooks/use-dynamic-overlap/index.js +4 -4
  525. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  526. package/internal/hooks/use-effect-on-update.js +2 -2
  527. package/internal/hooks/use-effect-on-update.js.map +1 -1
  528. package/internal/hooks/use-focus-tracker.js +7 -8
  529. package/internal/hooks/use-focus-tracker.js.map +1 -1
  530. package/internal/hooks/use-has-rendered/index.js +6 -6
  531. package/internal/hooks/use-has-rendered/index.js.map +1 -1
  532. package/internal/hooks/use-merge-refs/index.js +5 -9
  533. package/internal/hooks/use-merge-refs/index.js.map +1 -1
  534. package/internal/hooks/use-mobile/index.js +7 -7
  535. package/internal/hooks/use-mobile/index.js.map +1 -1
  536. package/internal/hooks/use-mouse-down-target.js +5 -5
  537. package/internal/hooks/use-mouse-down-target.js.map +1 -1
  538. package/internal/hooks/use-mutation-observer/index.js +5 -5
  539. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  540. package/internal/hooks/use-portal-mode-classes/index.js +10 -12
  541. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  542. package/internal/hooks/use-previous/index.js +3 -3
  543. package/internal/hooks/use-previous/index.js.map +1 -1
  544. package/internal/hooks/use-scroll-sync/index.js +8 -9
  545. package/internal/hooks/use-scroll-sync/index.js.map +1 -1
  546. package/internal/hooks/use-singleton-handler/index.js +12 -14
  547. package/internal/hooks/use-singleton-handler/index.js.map +1 -1
  548. package/internal/hooks/use-stable-event-handler/index.js +3 -10
  549. package/internal/hooks/use-stable-event-handler/index.js.map +1 -1
  550. package/internal/hooks/use-telemetry/index.js +2 -2
  551. package/internal/hooks/use-telemetry/index.js.map +1 -1
  552. package/internal/hooks/use-telemetry/telemetry.js +3 -4
  553. package/internal/hooks/use-telemetry/telemetry.js.map +1 -1
  554. package/internal/hooks/use-unique-id/index.js +3 -3
  555. package/internal/hooks/use-unique-id/index.js.map +1 -1
  556. package/internal/hooks/use-visual-mode/index.js +11 -11
  557. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  558. package/internal/is-development.js +1 -1
  559. package/internal/is-development.js.map +1 -1
  560. package/internal/logging.js +2 -2
  561. package/internal/logging.js.map +1 -1
  562. package/internal/manifest.json +1 -1
  563. package/internal/metrics/log-clients.js +18 -27
  564. package/internal/metrics/log-clients.js.map +1 -1
  565. package/internal/metrics/metrics-formatters.js +11 -14
  566. package/internal/metrics/metrics-formatters.js.map +1 -1
  567. package/internal/metrics/metrics.js +27 -33
  568. package/internal/metrics/metrics.js.map +1 -1
  569. package/internal/motion.js +2 -2
  570. package/internal/motion.js.map +1 -1
  571. package/internal/styles/colors.js +1 -1
  572. package/internal/styles/colors.js.map +1 -1
  573. package/internal/utils/browser-scrollbar-size.js +5 -5
  574. package/internal/utils/browser-scrollbar-size.js.map +1 -1
  575. package/internal/utils/calculate-once.js +2 -2
  576. package/internal/utils/calculate-once.js.map +1 -1
  577. package/internal/utils/check-safe-url.js +4 -4
  578. package/internal/utils/check-safe-url.js.map +1 -1
  579. package/internal/utils/create-category-color-scale.js +6 -9
  580. package/internal/utils/create-category-color-scale.js.map +1 -1
  581. package/internal/utils/date-time/format-date-range.js +3 -3
  582. package/internal/utils/date-time/format-date-range.js.map +1 -1
  583. package/internal/utils/date-time/format-date.js +4 -4
  584. package/internal/utils/date-time/format-date.js.map +1 -1
  585. package/internal/utils/date-time/format-time.js +5 -5
  586. package/internal/utils/date-time/format-time.js.map +1 -1
  587. package/internal/utils/date-time/format-timezone-offset.js +4 -4
  588. package/internal/utils/date-time/format-timezone-offset.js.map +1 -1
  589. package/internal/utils/date-time/is-iso-date-only.js +1 -1
  590. package/internal/utils/date-time/is-iso-date-only.js.map +1 -1
  591. package/internal/utils/date-time/join-date-time.js +3 -3
  592. package/internal/utils/date-time/join-date-time.js.map +1 -1
  593. package/internal/utils/date-time/parse-date.js +5 -6
  594. package/internal/utils/date-time/parse-date.js.map +1 -1
  595. package/internal/utils/date-time/parse-timezone-offset.js +5 -5
  596. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -1
  597. package/internal/utils/date-time/shift-timezone-offset.js +6 -6
  598. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -1
  599. package/internal/utils/dom.js +12 -12
  600. package/internal/utils/dom.js.map +1 -1
  601. package/internal/utils/external-props.js +3 -3
  602. package/internal/utils/external-props.js.map +1 -1
  603. package/internal/utils/focus-svg-element.js +1 -1
  604. package/internal/utils/focus-svg-element.js.map +1 -1
  605. package/internal/utils/locale/merge-locales.js +1 -1
  606. package/internal/utils/locale/merge-locales.js.map +1 -1
  607. package/internal/utils/locale/normalize-locale.js +3 -3
  608. package/internal/utils/locale/normalize-locale.js.map +1 -1
  609. package/internal/utils/promises.js +7 -11
  610. package/internal/utils/promises.js.map +1 -1
  611. package/internal/utils/scrollable-containers.js +14 -18
  612. package/internal/utils/scrollable-containers.js.map +1 -1
  613. package/internal/utils/strings/join-strings.js +1 -5
  614. package/internal/utils/strings/join-strings.js.map +1 -1
  615. package/internal/utils/strings/pad-left-zeros.js +1 -1
  616. package/internal/utils/strings/pad-left-zeros.js.map +1 -1
  617. package/internal/utils/throttle.js +10 -15
  618. package/internal/utils/throttle.js.map +1 -1
  619. package/internal/utils/use-container-width.js +3 -5
  620. package/internal/utils/use-container-width.js.map +1 -1
  621. package/line-chart/index.js +6 -6
  622. package/line-chart/index.js.map +1 -1
  623. package/link/index.js +5 -5
  624. package/link/index.js.map +1 -1
  625. package/link/internal.js +25 -25
  626. package/link/internal.js.map +1 -1
  627. package/mixed-line-bar-chart/bar-groups.js +3 -4
  628. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  629. package/mixed-line-bar-chart/bar-series.js +24 -33
  630. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  631. package/mixed-line-bar-chart/chart-container.js +123 -138
  632. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  633. package/mixed-line-bar-chart/chart-filters.js +10 -17
  634. package/mixed-line-bar-chart/chart-filters.js.map +1 -1
  635. package/mixed-line-bar-chart/chart-legend.js +9 -13
  636. package/mixed-line-bar-chart/chart-legend.js.map +1 -1
  637. package/mixed-line-bar-chart/chart-popover.js +3 -4
  638. package/mixed-line-bar-chart/chart-popover.js.map +1 -1
  639. package/mixed-line-bar-chart/data-series.js +13 -17
  640. package/mixed-line-bar-chart/data-series.js.map +1 -1
  641. package/mixed-line-bar-chart/domain.js +32 -39
  642. package/mixed-line-bar-chart/domain.js.map +1 -1
  643. package/mixed-line-bar-chart/format-highlighted.js +13 -14
  644. package/mixed-line-bar-chart/format-highlighted.js.map +1 -1
  645. package/mixed-line-bar-chart/hooks/use-mouse-hover.js +32 -34
  646. package/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  647. package/mixed-line-bar-chart/hooks/use-navigation.js +48 -57
  648. package/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  649. package/mixed-line-bar-chart/hooks/use-popover.js +7 -7
  650. package/mixed-line-bar-chart/hooks/use-popover.js.map +1 -1
  651. package/mixed-line-bar-chart/index.js +4 -4
  652. package/mixed-line-bar-chart/index.js.map +1 -1
  653. package/mixed-line-bar-chart/internal.js +47 -49
  654. package/mixed-line-bar-chart/internal.js.map +1 -1
  655. package/mixed-line-bar-chart/line-series.js +19 -24
  656. package/mixed-line-bar-chart/line-series.js.map +1 -1
  657. package/mixed-line-bar-chart/make-scaled-bar-groups.js +10 -11
  658. package/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
  659. package/mixed-line-bar-chart/make-scaled-series.js +30 -38
  660. package/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
  661. package/mixed-line-bar-chart/utils.js +18 -21
  662. package/mixed-line-bar-chart/utils.js.map +1 -1
  663. package/modal/body-scroll.js +4 -4
  664. package/modal/body-scroll.js.map +1 -1
  665. package/modal/index.js +4 -4
  666. package/modal/index.js.map +1 -1
  667. package/modal/internal.js +24 -25
  668. package/modal/internal.js.map +1 -1
  669. package/multiselect/index.js +5 -5
  670. package/multiselect/index.js.map +1 -1
  671. package/multiselect/internal.js +81 -88
  672. package/multiselect/internal.js.map +1 -1
  673. package/package.json +1 -1
  674. package/pagination/index.js +2 -3
  675. package/pagination/index.js.map +1 -1
  676. package/pagination/internal.js +16 -17
  677. package/pagination/internal.js.map +1 -1
  678. package/pagination/utils.js +12 -12
  679. package/pagination/utils.js.map +1 -1
  680. package/pie-chart/index.js +38 -39
  681. package/pie-chart/index.js.map +1 -1
  682. package/pie-chart/labels.js +38 -42
  683. package/pie-chart/labels.js.map +1 -1
  684. package/pie-chart/pie-chart.js +65 -67
  685. package/pie-chart/pie-chart.js.map +1 -1
  686. package/pie-chart/responsive-text.js +9 -10
  687. package/pie-chart/responsive-text.js.map +1 -1
  688. package/pie-chart/segments.js +27 -31
  689. package/pie-chart/segments.js.map +1 -1
  690. package/pie-chart/utils.js +32 -35
  691. package/pie-chart/utils.js.map +1 -1
  692. package/popover/arrow.js +2 -2
  693. package/popover/arrow.js.map +1 -1
  694. package/popover/body.js +16 -19
  695. package/popover/body.js.map +1 -1
  696. package/popover/container.js +52 -55
  697. package/popover/container.js.map +1 -1
  698. package/popover/index.js +6 -6
  699. package/popover/index.js.map +1 -1
  700. package/popover/internal.js +28 -28
  701. package/popover/internal.js.map +1 -1
  702. package/popover/utils/positions.js +54 -66
  703. package/popover/utils/positions.js.map +1 -1
  704. package/progress-bar/index.js +17 -17
  705. package/progress-bar/index.js.map +1 -1
  706. package/progress-bar/internal.js +12 -16
  707. package/progress-bar/internal.js.map +1 -1
  708. package/property-filter/controller.js +117 -125
  709. package/property-filter/controller.js.map +1 -1
  710. package/property-filter/filter-options.js +8 -11
  711. package/property-filter/filter-options.js.map +1 -1
  712. package/property-filter/index.js +50 -50
  713. package/property-filter/index.js.map +1 -1
  714. package/property-filter/property-editor.js +4 -5
  715. package/property-filter/property-editor.js.map +1 -1
  716. package/property-filter/property-filter-autosuggest.js +39 -39
  717. package/property-filter/property-filter-autosuggest.js.map +1 -1
  718. package/property-filter/token-editor.js +55 -66
  719. package/property-filter/token-editor.js.map +1 -1
  720. package/property-filter/token.js +9 -11
  721. package/property-filter/token.js.map +1 -1
  722. package/property-filter/use-load-items.js +8 -12
  723. package/property-filter/use-load-items.js.map +1 -1
  724. package/property-filter/utils.js +13 -18
  725. package/property-filter/utils.js.map +1 -1
  726. package/radio-group/index.js +3 -4
  727. package/radio-group/index.js.map +1 -1
  728. package/radio-group/internal.js +9 -9
  729. package/radio-group/internal.js.map +1 -1
  730. package/radio-group/radio-button.js +12 -15
  731. package/radio-group/radio-button.js.map +1 -1
  732. package/s3-resource-selector/index.js +29 -29
  733. package/s3-resource-selector/index.js.map +1 -1
  734. package/s3-resource-selector/s3-in-context/index.js +16 -18
  735. package/s3-resource-selector/s3-in-context/index.js.map +1 -1
  736. package/s3-resource-selector/s3-in-context/search-input.js +3 -4
  737. package/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  738. package/s3-resource-selector/s3-in-context/use-versions-fetch.js +16 -16
  739. package/s3-resource-selector/s3-in-context/use-versions-fetch.js.map +1 -1
  740. package/s3-resource-selector/s3-in-context/validation.js +6 -6
  741. package/s3-resource-selector/s3-in-context/validation.js.map +1 -1
  742. package/s3-resource-selector/s3-modal/basic-table.js +19 -20
  743. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  744. package/s3-resource-selector/s3-modal/buckets-table.js +11 -13
  745. package/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  746. package/s3-resource-selector/s3-modal/column-formats.js +5 -5
  747. package/s3-resource-selector/s3-modal/column-formats.js.map +1 -1
  748. package/s3-resource-selector/s3-modal/empty-state.js +1 -2
  749. package/s3-resource-selector/s3-modal/empty-state.js.map +1 -1
  750. package/s3-resource-selector/s3-modal/index.js +37 -43
  751. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  752. package/s3-resource-selector/s3-modal/objects-table.js +12 -14
  753. package/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  754. package/s3-resource-selector/s3-modal/table-utils.js +9 -12
  755. package/s3-resource-selector/s3-modal/table-utils.js.map +1 -1
  756. package/s3-resource-selector/s3-modal/versions-table.js +10 -12
  757. package/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  758. package/s3-resource-selector/utils.js +1 -1
  759. package/s3-resource-selector/utils.js.map +1 -1
  760. package/segmented-control/index.js +2 -3
  761. package/segmented-control/index.js.map +1 -1
  762. package/segmented-control/internal-segmented-control.js +16 -17
  763. package/segmented-control/internal-segmented-control.js.map +1 -1
  764. package/segmented-control/internal.js +14 -14
  765. package/segmented-control/internal.js.map +1 -1
  766. package/segmented-control/segment.js +3 -6
  767. package/segmented-control/segment.js.map +1 -1
  768. package/select/index.js +6 -6
  769. package/select/index.js.map +1 -1
  770. package/select/internal.js +58 -58
  771. package/select/internal.js.map +1 -1
  772. package/select/parts/filter.js +4 -4
  773. package/select/parts/filter.js.map +1 -1
  774. package/select/parts/item.js +10 -10
  775. package/select/parts/item.js.map +1 -1
  776. package/select/parts/multiselect-item.js +13 -14
  777. package/select/parts/multiselect-item.js.map +1 -1
  778. package/select/parts/plain-list.js +13 -15
  779. package/select/parts/plain-list.js.map +1 -1
  780. package/select/parts/trigger.js +7 -9
  781. package/select/parts/trigger.js.map +1 -1
  782. package/select/parts/virtual-list.js +27 -33
  783. package/select/parts/virtual-list.js.map +1 -1
  784. package/select/utils/check-option-value-field.js +2 -2
  785. package/select/utils/check-option-value-field.js.map +1 -1
  786. package/select/utils/connect-options.js +6 -7
  787. package/select/utils/connect-options.js.map +1 -1
  788. package/select/utils/get-item-props.js +4 -7
  789. package/select/utils/get-item-props.js.map +1 -1
  790. package/select/utils/render-options.js +13 -15
  791. package/select/utils/render-options.js.map +1 -1
  792. package/select/utils/use-announcement.js +10 -11
  793. package/select/utils/use-announcement.js.map +1 -1
  794. package/select/utils/use-load-items.js +16 -19
  795. package/select/utils/use-load-items.js.map +1 -1
  796. package/select/utils/use-native-search.js +20 -29
  797. package/select/utils/use-native-search.js.map +1 -1
  798. package/select/utils/use-select.js +89 -96
  799. package/select/utils/use-select.js.map +1 -1
  800. package/side-navigation/index.js +10 -10
  801. package/side-navigation/index.js.map +1 -1
  802. package/side-navigation/internal.js +35 -46
  803. package/side-navigation/internal.js.map +1 -1
  804. package/side-navigation/util.js +9 -12
  805. package/side-navigation/util.js.map +1 -1
  806. package/space-between/index.js +4 -4
  807. package/space-between/index.js.map +1 -1
  808. package/space-between/internal.js +7 -7
  809. package/space-between/internal.js.map +1 -1
  810. package/spinner/index.js +4 -4
  811. package/spinner/index.js.map +1 -1
  812. package/spinner/internal.js +4 -4
  813. package/spinner/internal.js.map +1 -1
  814. package/split-panel/bottom.js +22 -25
  815. package/split-panel/bottom.js.map +1 -1
  816. package/split-panel/icons/bottom-icon-refresh.js +11 -13
  817. package/split-panel/icons/bottom-icon-refresh.js.map +1 -1
  818. package/split-panel/icons/bottom-icon.js +1 -1
  819. package/split-panel/icons/bottom-icon.js.map +1 -1
  820. package/split-panel/icons/resize-handler.js +3 -6
  821. package/split-panel/icons/resize-handler.js.map +1 -1
  822. package/split-panel/icons/side-position-refresh.js +12 -14
  823. package/split-panel/icons/side-position-refresh.js.map +1 -1
  824. package/split-panel/icons/side-position.js +1 -1
  825. package/split-panel/icons/side-position.js.map +1 -1
  826. package/split-panel/index.js +65 -65
  827. package/split-panel/index.js.map +1 -1
  828. package/split-panel/preferences-modal.js +9 -9
  829. package/split-panel/preferences-modal.js.map +1 -1
  830. package/split-panel/side.js +12 -15
  831. package/split-panel/side.js.map +1 -1
  832. package/split-panel/utils/size-utils.js +3 -3
  833. package/split-panel/utils/size-utils.js.map +1 -1
  834. package/split-panel/utils/use-keyboard-events.js +13 -17
  835. package/split-panel/utils/use-keyboard-events.js.map +1 -1
  836. package/split-panel/utils/use-pointer-events.js +12 -13
  837. package/split-panel/utils/use-pointer-events.js.map +1 -1
  838. package/status-indicator/index.js +4 -4
  839. package/status-indicator/index.js.map +1 -1
  840. package/status-indicator/internal.js +9 -10
  841. package/status-indicator/internal.js.map +1 -1
  842. package/table/body-cell/click-away.js +9 -10
  843. package/table/body-cell/click-away.js.map +1 -1
  844. package/table/body-cell/index.js +18 -18
  845. package/table/body-cell/index.js.map +1 -1
  846. package/table/body-cell/inline-editor.js +32 -46
  847. package/table/body-cell/inline-editor.js.map +1 -1
  848. package/table/body-cell/td-element.js +2 -4
  849. package/table/body-cell/td-element.js.map +1 -1
  850. package/table/body-cell/use-stable-scroll-position.js +10 -13
  851. package/table/body-cell/use-stable-scroll-position.js.map +1 -1
  852. package/table/header-cell/index.d.ts +4 -2
  853. package/table/header-cell/index.d.ts.map +1 -1
  854. package/table/header-cell/index.js +33 -34
  855. package/table/header-cell/index.js.map +1 -1
  856. package/table/header-cell/utils.js +10 -12
  857. package/table/header-cell/utils.js.map +1 -1
  858. package/table/index.js +5 -5
  859. package/table/index.js.map +1 -1
  860. package/table/internal.d.ts.map +1 -1
  861. package/table/internal.js +94 -118
  862. package/table/internal.js.map +1 -1
  863. package/table/resizer/index.d.ts +5 -1
  864. package/table/resizer/index.d.ts.map +1 -1
  865. package/table/resizer/index.js +40 -39
  866. package/table/resizer/index.js.map +1 -1
  867. package/table/selection-control/index.d.ts +4 -1
  868. package/table/selection-control/index.d.ts.map +1 -1
  869. package/table/selection-control/index.js +11 -11
  870. package/table/selection-control/index.js.map +1 -1
  871. package/table/sticky-header.d.ts +2 -2
  872. package/table/sticky-header.d.ts.map +1 -1
  873. package/table/sticky-header.js +16 -15
  874. package/table/sticky-header.js.map +1 -1
  875. package/table/sticky-scrollbar.js +5 -6
  876. package/table/sticky-scrollbar.js.map +1 -1
  877. package/table/sticky-scrolling.js +10 -10
  878. package/table/sticky-scrolling.js.map +1 -1
  879. package/table/thead.d.ts +11 -3
  880. package/table/thead.d.ts.map +1 -1
  881. package/table/thead.js +13 -13
  882. package/table/thead.js.map +1 -1
  883. package/table/tools-header.js +4 -5
  884. package/table/tools-header.js.map +1 -1
  885. package/table/use-column-widths.js +34 -44
  886. package/table/use-column-widths.js.map +1 -1
  887. package/table/use-row-events.js +10 -11
  888. package/table/use-row-events.js.map +1 -1
  889. package/table/use-selection.js +75 -81
  890. package/table/use-selection.js.map +1 -1
  891. package/table/use-sticky-header.js +16 -16
  892. package/table/use-sticky-header.js.map +1 -1
  893. package/table/use-sticky-scrollbar.js +42 -42
  894. package/table/use-sticky-scrollbar.js.map +1 -1
  895. package/table/use-table-focus-navigation.js +27 -28
  896. package/table/use-table-focus-navigation.js.map +1 -1
  897. package/table/utils.js +7 -7
  898. package/table/utils.js.map +1 -1
  899. package/tabs/index.js +30 -33
  900. package/tabs/index.js.map +1 -1
  901. package/tabs/scroll-utils.js +12 -13
  902. package/tabs/scroll-utils.js.map +1 -1
  903. package/tabs/smooth-scroll.js +17 -17
  904. package/tabs/smooth-scroll.js.map +1 -1
  905. package/tabs/tab-header-bar.js +61 -66
  906. package/tabs/tab-header-bar.js.map +1 -1
  907. package/tag-editor/index.js +59 -72
  908. package/tag-editor/index.js.map +1 -1
  909. package/tag-editor/internal.js +21 -29
  910. package/tag-editor/internal.js.map +1 -1
  911. package/tag-editor/utils.js +7 -8
  912. package/tag-editor/utils.js.map +1 -1
  913. package/tag-editor/validation.js +16 -18
  914. package/tag-editor/validation.js.map +1 -1
  915. package/text-content/index.js +6 -6
  916. package/text-content/index.js.map +1 -1
  917. package/text-filter/index.js +3 -4
  918. package/text-filter/index.js.map +1 -1
  919. package/text-filter/internal.js +10 -10
  920. package/text-filter/internal.js.map +1 -1
  921. package/textarea/index.js +23 -24
  922. package/textarea/index.js.map +1 -1
  923. package/theming/index.js +2 -3
  924. package/theming/index.js.map +1 -1
  925. package/tiles/index.js +3 -4
  926. package/tiles/index.js.map +1 -1
  927. package/tiles/internal.js +17 -17
  928. package/tiles/internal.js.map +1 -1
  929. package/tiles/tile.js +7 -9
  930. package/tiles/tile.js.map +1 -1
  931. package/time-input/index.js +5 -5
  932. package/time-input/index.js.map +1 -1
  933. package/time-input/internal.js +9 -9
  934. package/time-input/internal.js.map +1 -1
  935. package/toggle/index.js +3 -4
  936. package/toggle/index.js.map +1 -1
  937. package/toggle/internal.js +15 -16
  938. package/toggle/internal.js.map +1 -1
  939. package/token-group/dismiss-button.js +5 -7
  940. package/token-group/dismiss-button.js.map +1 -1
  941. package/token-group/index.js +4 -4
  942. package/token-group/index.js.map +1 -1
  943. package/token-group/internal.js +14 -14
  944. package/token-group/internal.js.map +1 -1
  945. package/token-group/toggle.js +7 -9
  946. package/token-group/toggle.js.map +1 -1
  947. package/top-navigation/1.0-beta/index.js +4 -4
  948. package/top-navigation/1.0-beta/index.js.map +1 -1
  949. package/top-navigation/1.0-beta/internal.js +43 -46
  950. package/top-navigation/1.0-beta/internal.js.map +1 -1
  951. package/top-navigation/1.0-beta/parts/overflow-menu.js +16 -17
  952. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  953. package/top-navigation/1.0-beta/parts/utility.js +9 -12
  954. package/top-navigation/1.0-beta/parts/utility.js.map +1 -1
  955. package/top-navigation/1.0-beta/use-top-navigation.js +46 -54
  956. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  957. package/top-navigation/index.js +4 -4
  958. package/top-navigation/index.js.map +1 -1
  959. package/top-navigation/internal.js +64 -71
  960. package/top-navigation/internal.js.map +1 -1
  961. package/top-navigation/parts/overflow-menu/header.js +3 -4
  962. package/top-navigation/parts/overflow-menu/header.js.map +1 -1
  963. package/top-navigation/parts/overflow-menu/index.js +4 -5
  964. package/top-navigation/parts/overflow-menu/index.js.map +1 -1
  965. package/top-navigation/parts/overflow-menu/menu-item.js +56 -61
  966. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  967. package/top-navigation/parts/overflow-menu/router.js +11 -13
  968. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  969. package/top-navigation/parts/overflow-menu/views/submenu.js +6 -8
  970. package/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  971. package/top-navigation/parts/overflow-menu/views/utilities.js +5 -7
  972. package/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  973. package/top-navigation/parts/utility.js +12 -15
  974. package/top-navigation/parts/utility.js.map +1 -1
  975. package/top-navigation/use-top-navigation.js +52 -59
  976. package/top-navigation/use-top-navigation.js.map +1 -1
  977. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js +5 -7
  978. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js.map +1 -1
  979. package/tutorial-panel/components/tutorial-detail-view/index.js +6 -7
  980. package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  981. package/tutorial-panel/components/tutorial-detail-view/task-list.js +8 -15
  982. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  983. package/tutorial-panel/components/tutorial-detail-view/task.js +5 -6
  984. package/tutorial-panel/components/tutorial-detail-view/task.js.map +1 -1
  985. package/tutorial-panel/components/tutorial-list/index.js +19 -22
  986. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  987. package/tutorial-panel/index.js +8 -8
  988. package/tutorial-panel/index.js.map +1 -1
  989. package/wizard/index.js +28 -28
  990. package/wizard/index.js.map +1 -1
  991. package/wizard/internal/analytics.js +32 -42
  992. package/wizard/internal/analytics.js.map +1 -1
  993. package/wizard/unmount.js +6 -13
  994. package/wizard/unmount.js.map +1 -1
  995. package/wizard/wizard-actions.js +7 -8
  996. package/wizard/wizard-actions.js.map +1 -1
  997. package/wizard/wizard-form-header.js +2 -3
  998. package/wizard/wizard-form-header.js.map +1 -1
  999. package/wizard/wizard-form.js +14 -16
  1000. package/wizard/wizard-form.js.map +1 -1
  1001. package/wizard/wizard-navigation.js +19 -25
  1002. package/wizard/wizard-navigation.js.map +1 -1
@@ -8,7 +8,7 @@ function isDateDomain(domain) {
8
8
  return domain.length > 0 && domain[0] instanceof Date;
9
9
  }
10
10
  function createNumericScale(type, domain) {
11
- var scale;
11
+ let scale;
12
12
  switch (type) {
13
13
  case 'log':
14
14
  scale = scaleLog();
@@ -22,14 +22,14 @@ function createNumericScale(type, domain) {
22
22
  return scale;
23
23
  }
24
24
  function createTimeScale(domain) {
25
- var scale = scaleTime();
25
+ const scale = scaleTime();
26
26
  if (isDateDomain(domain)) {
27
27
  scale.domain(domain);
28
28
  }
29
29
  return scale;
30
30
  }
31
31
  function createBandScale(domain) {
32
- var scale = scaleBand().padding(0.1);
32
+ const scale = scaleBand().padding(0.1);
33
33
  scale.domain(domain);
34
34
  return scale;
35
35
  }
@@ -44,9 +44,8 @@ export function createScale(type, domain, range) {
44
44
  return { type: 'categorical', scale: createBandScale(domain).range(range) };
45
45
  }
46
46
  }
47
- var ChartScale = /** @class */ (function () {
48
- function ChartScale(scaleType, domain, range, noCategoricalOuterPadding) {
49
- if (noCategoricalOuterPadding === void 0) { noCategoricalOuterPadding = false; }
47
+ export class ChartScale {
48
+ constructor(scaleType, domain, range, noCategoricalOuterPadding = false) {
50
49
  this.scaleType = scaleType;
51
50
  this.domain = domain;
52
51
  this.range = range;
@@ -65,35 +64,31 @@ var ChartScale = /** @class */ (function () {
65
64
  }
66
65
  }
67
66
  }
68
- ChartScale.prototype.cloneScale = function (newScaleType, newDomain, newRange) {
67
+ cloneScale(newScaleType, newDomain, newRange) {
69
68
  return new ChartScale(newScaleType || this.scaleType, newDomain || this.domain, newRange || this.range);
70
- };
71
- ChartScale.prototype.isNumeric = function () {
69
+ }
70
+ isNumeric() {
72
71
  return this.scale.type === 'numeric';
73
- };
74
- ChartScale.prototype.isTime = function () {
72
+ }
73
+ isTime() {
75
74
  return this.scale.type === 'time';
76
- };
77
- ChartScale.prototype.isCategorical = function () {
75
+ }
76
+ isCategorical() {
78
77
  return this.scale.type === 'categorical';
79
- };
80
- return ChartScale;
81
- }());
82
- export { ChartScale };
83
- var NumericChartScale = /** @class */ (function () {
84
- function NumericChartScale(scaleType, domain, range, adjustDomain) {
78
+ }
79
+ }
80
+ export class NumericChartScale {
81
+ constructor(scaleType, domain, range, adjustDomain) {
85
82
  this.scaleType = scaleType;
86
- var scale = createNumericScale(scaleType, domain).range(range);
83
+ const scale = createNumericScale(scaleType, domain).range(range);
87
84
  if (adjustDomain !== null) {
88
85
  scale.nice(adjustDomain);
89
86
  }
90
- this.scale = { type: 'numeric', scale: scale };
87
+ this.scale = { type: 'numeric', scale };
91
88
  this.d3Scale = this.scale.scale;
92
89
  }
93
- NumericChartScale.prototype.isCategorical = function () {
90
+ isCategorical() {
94
91
  return false;
95
- };
96
- return NumericChartScale;
97
- }());
98
- export { NumericChartScale };
92
+ }
93
+ }
99
94
  //# sourceMappingURL=scales.js.map
@@ -1 +1 @@
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 scaleLinear,\n scaleLog,\n scaleTime,\n scaleBand,\n ScaleContinuousNumeric,\n ScaleTime,\n ScaleBand,\n} from '../../vendor/d3-scale';\n\nimport { ChartDataTypes, ChartDomain, ScaleType, ScaleRange } 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 scaleLinear,\n scaleLog,\n scaleTime,\n scaleBand,\n ScaleContinuousNumeric,\n ScaleTime,\n ScaleBand,\n} from '../../vendor/d3-scale';\n\nimport { ChartDataTypes, ChartDomain, ScaleType, ScaleRange } 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"]}
@@ -15,8 +15,8 @@ export function createXTicks(scale, values) {
15
15
  return scale.d3Scale.ticks(values);
16
16
  }
17
17
  else if (scale.isTime()) {
18
- var rawTicks = scale.d3Scale.ticks(values);
19
- var domain = scale.d3Scale.domain();
18
+ const rawTicks = scale.d3Scale.ticks(values);
19
+ const domain = scale.d3Scale.domain();
20
20
  return uniform(rawTicks, domain[domain.length - 1]);
21
21
  }
22
22
  else {
@@ -24,7 +24,7 @@ export function createXTicks(scale, values) {
24
24
  }
25
25
  }
26
26
  export function createYTicks(scale, values) {
27
- var ticks = scale.d3Scale.ticks(values);
27
+ const ticks = scale.d3Scale.ticks(values);
28
28
  // The logarithmic scale sometimes produces a very large amount of (major and minor) ticks,
29
29
  // at which point we need to reduce them significantly for space.
30
30
  if (scale.scaleType === 'log' && ticks.length > 10) {
@@ -44,21 +44,20 @@ function uniform(ticks, max) {
44
44
  return createTwoDayInterval(ticks[0], max);
45
45
  }
46
46
  function isMixedDayInterval(ticks) {
47
- var oneDayInterval = false;
48
- var twoDayInterval = false;
49
- for (var i = 1; i < ticks.length; i++) {
47
+ let oneDayInterval = false;
48
+ let twoDayInterval = false;
49
+ for (let i = 1; i < ticks.length; i++) {
50
50
  oneDayInterval = oneDayInterval || isDayInterval(ticks[i - 1], ticks[i], 1);
51
51
  twoDayInterval = twoDayInterval || isDayInterval(ticks[i - 1], ticks[i], 2);
52
52
  }
53
53
  return oneDayInterval && twoDayInterval;
54
54
  }
55
- function isDayInterval(a, b, difference) {
56
- if (difference === void 0) { difference = 1; }
55
+ function isDayInterval(a, b, difference = 1) {
57
56
  return Math.abs(differenceInDays(a, b)) === difference;
58
57
  }
59
58
  function createTwoDayInterval(start, max) {
60
- var result = [];
61
- var curr = start;
59
+ const result = [];
60
+ let curr = start;
62
61
  while (curr < max) {
63
62
  result.push(curr);
64
63
  curr = add(curr, { days: 2 });
@@ -1 +1 @@
1
- {"version":3,"file":"ticks.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/ticks.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 { ChartScale, NumericChartScale } from '../../components/cartesian-chart/scales';\nimport { differenceInDays, add } from 'date-fns';\nimport { X_TICK_COUNT_RATIO, Y_TICK_COUNT_RATIO } from './constants';\nimport { ChartDataTypes } from './interfaces';\n\n// The number of ticks is currently defined by the length of the scale.\n// The x scale tends to have longer labels, so we're using less ticks for it.\n// These numbers are currently based on first impressions and might change in the future.\n// We might also open up an API in the future to control the amount of ticks displayed.\nexport function getXTickCount(width: number) {\n return Math.ceil(width / X_TICK_COUNT_RATIO);\n}\nexport function getYTickCount(height: number) {\n return Math.ceil(height / Y_TICK_COUNT_RATIO);\n}\n\nexport function createXTicks(scale: ChartScale, values: number): ChartDataTypes[] {\n if (scale.isNumeric()) {\n return scale.d3Scale.ticks(values);\n } else if (scale.isTime()) {\n const rawTicks = scale.d3Scale.ticks(values) as Date[];\n const domain = scale.d3Scale.domain() as Date[];\n return uniform(rawTicks, domain[domain.length - 1]);\n } else {\n return scale.d3Scale.domain();\n }\n}\n\nexport function createYTicks(scale: NumericChartScale, values: number): number[] {\n const ticks = scale.d3Scale.ticks(values);\n\n // The logarithmic scale sometimes produces a very large amount of (major and minor) ticks,\n // at which point we need to reduce them significantly for space.\n if (scale.scaleType === 'log' && ticks.length > 10) {\n return scale.d3Scale.ticks(3);\n }\n\n return ticks;\n}\n\n/**\n * Ensure uniformly-spaced ticks for 2-day intervals. d3-scale generates\n * ticks for even or odd numbers, which causes varying interval lengths\n * between months.\n */\nfunction uniform(ticks: Date[], max: Date): Date[] {\n if (ticks.length < 3 || !isMixedDayInterval(ticks)) {\n return ticks;\n }\n\n return createTwoDayInterval(ticks[0], max);\n}\n\nfunction isMixedDayInterval(ticks: Date[]) {\n let oneDayInterval = false;\n let twoDayInterval = false;\n\n for (let i = 1; i < ticks.length; i++) {\n oneDayInterval = oneDayInterval || isDayInterval(ticks[i - 1], ticks[i], 1);\n twoDayInterval = twoDayInterval || isDayInterval(ticks[i - 1], ticks[i], 2);\n }\n return oneDayInterval && twoDayInterval;\n}\n\nfunction isDayInterval(a: Date, b: Date, difference = 1) {\n return Math.abs(differenceInDays(a, b)) === difference;\n}\n\nfunction createTwoDayInterval(start: Date, max: Date) {\n const result: Date[] = [];\n let curr = start;\n while (curr < max) {\n result.push(curr);\n curr = add(curr, { days: 2 });\n }\n return result;\n}\n"]}
1
+ {"version":3,"file":"ticks.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/ticks.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 { ChartScale, NumericChartScale } from '../../components/cartesian-chart/scales';\nimport { differenceInDays, add } from 'date-fns';\nimport { X_TICK_COUNT_RATIO, Y_TICK_COUNT_RATIO } from './constants';\nimport { ChartDataTypes } from './interfaces';\n\n// The number of ticks is currently defined by the length of the scale.\n// The x scale tends to have longer labels, so we're using less ticks for it.\n// These numbers are currently based on first impressions and might change in the future.\n// We might also open up an API in the future to control the amount of ticks displayed.\nexport function getXTickCount(width: number) {\n return Math.ceil(width / X_TICK_COUNT_RATIO);\n}\nexport function getYTickCount(height: number) {\n return Math.ceil(height / Y_TICK_COUNT_RATIO);\n}\n\nexport function createXTicks(scale: ChartScale, values: number): ChartDataTypes[] {\n if (scale.isNumeric()) {\n return scale.d3Scale.ticks(values);\n } else if (scale.isTime()) {\n const rawTicks = scale.d3Scale.ticks(values) as Date[];\n const domain = scale.d3Scale.domain() as Date[];\n return uniform(rawTicks, domain[domain.length - 1]);\n } else {\n return scale.d3Scale.domain();\n }\n}\n\nexport function createYTicks(scale: NumericChartScale, values: number): number[] {\n const ticks = scale.d3Scale.ticks(values);\n\n // The logarithmic scale sometimes produces a very large amount of (major and minor) ticks,\n // at which point we need to reduce them significantly for space.\n if (scale.scaleType === 'log' && ticks.length > 10) {\n return scale.d3Scale.ticks(3);\n }\n\n return ticks;\n}\n\n/**\n * Ensure uniformly-spaced ticks for 2-day intervals. d3-scale generates\n * ticks for even or odd numbers, which causes varying interval lengths\n * between months.\n */\nfunction uniform(ticks: Date[], max: Date): Date[] {\n if (ticks.length < 3 || !isMixedDayInterval(ticks)) {\n return ticks;\n }\n\n return createTwoDayInterval(ticks[0], max);\n}\n\nfunction isMixedDayInterval(ticks: Date[]) {\n let oneDayInterval = false;\n let twoDayInterval = false;\n\n for (let i = 1; i < ticks.length; i++) {\n oneDayInterval = oneDayInterval || isDayInterval(ticks[i - 1], ticks[i], 1);\n twoDayInterval = twoDayInterval || isDayInterval(ticks[i - 1], ticks[i], 2);\n }\n return oneDayInterval && twoDayInterval;\n}\n\nfunction isDayInterval(a: Date, b: Date, difference = 1) {\n return Math.abs(differenceInDays(a, b)) === difference;\n}\n\nfunction createTwoDayInterval(start: Date, max: Date) {\n const result: Date[] = [];\n let curr = start;\n while (curr < max) {\n result.push(curr);\n curr = add(curr, { days: 2 });\n }\n return result;\n}\n"]}
@@ -3,11 +3,10 @@
3
3
  import React, { memo } from 'react';
4
4
  import styles from './styles.css.js';
5
5
  export default memo(VerticalGridLines);
6
- function VerticalGridLines(_a) {
7
- var ticks = _a.ticks, scale = _a.scale, height = _a.height;
8
- return (React.createElement("g", { "aria-hidden": "true" }, ticks.map(function (tick) {
6
+ function VerticalGridLines({ ticks, scale, height }) {
7
+ return (React.createElement("g", { "aria-hidden": "true" }, ticks.map(tick => {
9
8
  var _a;
10
- var x = (_a = scale.d3Scale(tick)) !== null && _a !== void 0 ? _a : NaN;
9
+ const x = (_a = scale.d3Scale(tick)) !== null && _a !== void 0 ? _a : NaN;
11
10
  return isFinite(x) && React.createElement("line", { key: tick, className: styles.grid, x1: x, y1: 0, x2: x, y2: height });
12
11
  })));
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-grid-lines.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-grid-lines.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,eAAe,IAAI,CAAC,iBAAiB,CAA6B,CAAC;AAEnE,SAAS,iBAAiB,CAAC,EAAuF;QAArF,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA;IAC/C,OAAO,CACL,0CAAe,MAAM,IAClB,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;;QACb,IAAM,CAAC,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC;QACrC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,8BAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAI,CAAC;IACrG,CAAC,CAAC,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, { memo } from 'react';\n\nimport { NumericChartScale } from './scales';\nimport styles from './styles.css.js';\n\nexport default memo(VerticalGridLines) as typeof VerticalGridLines;\n\nfunction VerticalGridLines({ ticks, scale, height }: { ticks: number[]; scale: NumericChartScale; height: number }) {\n return (\n <g aria-hidden=\"true\">\n {ticks.map(tick => {\n const x = scale.d3Scale(tick) ?? NaN;\n return isFinite(x) && <line key={tick} className={styles.grid} x1={x} y1={0} x2={x} y2={height} />;\n })}\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"vertical-grid-lines.js","sourceRoot":"","sources":["../../../../../src/internal/components/cartesian-chart/vertical-grid-lines.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,eAAe,IAAI,CAAC,iBAAiB,CAA6B,CAAC;AAEnE,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAiE;IAChH,OAAO,CACL,0CAAe,MAAM,IAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;QAChB,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC;QACrC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,8BAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAI,CAAC;IACrG,CAAC,CAAC,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, { memo } from 'react';\n\nimport { NumericChartScale } from './scales';\nimport styles from './styles.css.js';\n\nexport default memo(VerticalGridLines) as typeof VerticalGridLines;\n\nfunction VerticalGridLines({ ticks, scale, height }: { ticks: number[]; scale: NumericChartScale; height: number }) {\n return (\n <g aria-hidden=\"true\">\n {ticks.map(tick => {\n const x = scale.d3Scale(tick) ?? NaN;\n return isFinite(x) && <line key={tick} className={styles.grid} x1={x} y1={0} x2={x} y2={height} />;\n })}\n </g>\n );\n}\n"]}
@@ -3,13 +3,12 @@
3
3
  import React, { forwardRef, memo } from 'react';
4
4
  import styles from './styles.css.js';
5
5
  export default memo(forwardRef(VerticalMarker));
6
- function VerticalMarker(_a, ref) {
7
- var height = _a.height, _b = _a.showPoints, showPoints = _b === void 0 ? true : _b, _c = _a.showLine, showLine = _c === void 0 ? true : _c, points = _a.points;
8
- var firstPoint = (points || [])[0];
6
+ function VerticalMarker({ height, showPoints = true, showLine = true, points }, ref) {
7
+ const [firstPoint] = points || [];
9
8
  return (React.createElement("g", null,
10
9
  React.createElement("line", { ref: ref, "aria-hidden": "true", className: styles['vertical-marker'], style: { visibility: showLine && firstPoint ? 'visible' : 'hidden' }, x1: firstPoint === null || firstPoint === void 0 ? void 0 : firstPoint.x, x2: firstPoint === null || firstPoint === void 0 ? void 0 : firstPoint.x, y1: 0, y2: height }),
11
10
  showPoints &&
12
11
  points &&
13
- points.map(function (point) { return (React.createElement("circle", { key: point.key, "aria-hidden": "true", className: styles['vertical-marker-circle'], cx: point.x, cy: point.y, r: 4, stroke: point.color })); })));
12
+ points.map(point => (React.createElement("circle", { key: point.key, "aria-hidden": "true", className: styles['vertical-marker-circle'], cx: point.x, cy: point.y, r: 4, stroke: point.color })))));
14
13
  }
15
14
  //# sourceMappingURL=vertical-marker.js.map
@@ -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,EAA2E,EAC3E,GAA8B;QAD5B,MAAM,YAAA,EAAE,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA,EAAE,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EAAE,MAAM,YAAA;IAG7C,IAAA,UAAU,GAAI,CAAA,MAAM,IAAI,EAAE,CAAA,GAAhB,CAAiB;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,UAAA,KAAK,IAAI,OAAA,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,EAVmB,CAUnB,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\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,4 +1,4 @@
1
- import { __assign, __rest } from "tslib";
1
+ import { __rest } from "tslib";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import clsx from 'clsx';
@@ -10,25 +10,24 @@ import SeriesMarker from '../chart-series-marker';
10
10
  import styles from './styles.css.js';
11
11
  export default memo(ChartFilter);
12
12
  function ChartFilter(_a) {
13
- var series = _a.series, i18nStrings = _a.i18nStrings, selectedSeries = _a.selectedSeries, onChange = _a.onChange, restProps = __rest(_a, ["series", "i18nStrings", "selectedSeries", "onChange"]);
14
- var baseProps = getBaseProps(restProps);
15
- var className = clsx(baseProps.className, styles.root);
16
- var defaultOptions = series.map(function (d, i) { return ({
13
+ var { series, i18nStrings, selectedSeries, onChange } = _a, restProps = __rest(_a, ["series", "i18nStrings", "selectedSeries", "onChange"]);
14
+ const baseProps = getBaseProps(restProps);
15
+ const className = clsx(baseProps.className, styles.root);
16
+ const defaultOptions = series.map((d, i) => ({
17
17
  label: d.label,
18
18
  value: '' + i,
19
19
  datum: d.datum,
20
20
  __customIcon: (React.createElement("span", { className: styles['custom-icon-wrapper'] },
21
- React.createElement(SeriesMarker, { color: d.color, type: d.type })))
22
- }); });
23
- var selectedOptions = defaultOptions.filter(function (option) { return (selectedSeries === null || selectedSeries === void 0 ? void 0 : selectedSeries.indexOf(option.datum)) !== -1; });
24
- var updateSelection = useCallback(function (_a) {
25
- var selectedOptions = _a.detail.selectedOptions;
26
- var selectedSeries = defaultOptions
27
- .filter(function (option) { return selectedOptions.indexOf(option) !== -1; })
28
- .map(function (option) { return option.datum; });
21
+ React.createElement(SeriesMarker, { color: d.color, type: d.type }))),
22
+ }));
23
+ const selectedOptions = defaultOptions.filter(option => (selectedSeries === null || selectedSeries === void 0 ? void 0 : selectedSeries.indexOf(option.datum)) !== -1);
24
+ const updateSelection = useCallback(({ detail: { selectedOptions } }) => {
25
+ const selectedSeries = defaultOptions
26
+ .filter(option => selectedOptions.indexOf(option) !== -1)
27
+ .map(option => option.datum);
29
28
  onChange(selectedSeries);
30
29
  }, [onChange, defaultOptions]);
31
- return (React.createElement(InternalFormField, __assign({}, baseProps, { label: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.filterLabel, className: className }),
30
+ return (React.createElement(InternalFormField, Object.assign({}, baseProps, { label: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.filterLabel, className: className }),
32
31
  React.createElement(InternalMultiselect, { placeholder: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.filterPlaceholder, options: defaultOptions, selectedOptions: selectedOptions, onChange: updateSelection, className: styles['chart-filter'], selectedAriaLabel: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.filterSelectedAriaLabel, hideTokens: true })));
33
32
  }
34
33
  //# sourceMappingURL=index.js.map
@@ -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,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,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;IAAlF,IAAA,MAAM,YAAA,EAAE,WAAW,iBAAA,EAAE,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAK,SAAS,cAA7D,uDAA+D,CAAF;IACnF,IAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzD,IAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,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,EAT0C,CAS1C,CAAC,CAAC;IAEJ,IAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAK,CAAC,CAAC,EAA5C,CAA4C,CAAC,CAAC;IAEtG,IAAM,eAAe,GAAG,WAAW,CACjC,UAAC,EAA+B;YAAnB,eAAe,4BAAA;QAC1B,IAAM,cAAc,GAAG,cAAc;aAClC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAtC,CAAsC,CAAC;aACxD,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,EAAZ,CAAY,CAAC,CAAC;QAC/B,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,EACD,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC3B,CAAC;IAEF,OAAO,CACL,oBAAC,iBAAiB,eAAK,SAAS,IAAE,KAAK,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,SAAS,EAAE,SAAS;QACrF,oBAAC,mBAAmB,IAClB,WAAW,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,EAC3C,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,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 clsx from 'clsx';\nimport React, { useCallback, memo } from 'react';\n\nimport { NonCancelableEventHandler } from '../../events';\nimport InternalFormField from '../../../form-field/internal';\nimport InternalMultiselect from '../../../multiselect/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { MultiselectProps } from '../../../multiselect/interfaces';\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\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 {...baseProps} label={i18nStrings?.filterLabel} className={className}>\n <InternalMultiselect\n placeholder={i18nStrings?.filterPlaceholder}\n options={defaultOptions}\n selectedOptions={selectedOptions}\n onChange={updateSelection}\n className={styles['chart-filter']}\n selectedAriaLabel={i18nStrings?.filterSelectedAriaLabel}\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,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,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;IAEzD,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,oBAAK,SAAS,IAAE,KAAK,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,SAAS,EAAE,SAAS;QACrF,oBAAC,mBAAmB,IAClB,WAAW,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,EAC3C,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,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 clsx from 'clsx';\nimport React, { useCallback, memo } from 'react';\n\nimport { NonCancelableEventHandler } from '../../events';\nimport InternalFormField from '../../../form-field/internal';\nimport InternalMultiselect from '../../../multiselect/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { MultiselectProps } from '../../../multiselect/interfaces';\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\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 {...baseProps} label={i18nStrings?.filterLabel} className={className}>\n <InternalMultiselect\n placeholder={i18nStrings?.filterPlaceholder}\n options={defaultOptions}\n selectedOptions={selectedOptions}\n onChange={updateSelection}\n className={styles['chart-filter']}\n selectedAriaLabel={i18nStrings?.filterSelectedAriaLabel}\n hideTokens={true}\n />\n </InternalFormField>\n );\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { __assign } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import clsx from 'clsx';
@@ -9,25 +8,24 @@ import { KeyCode } from '../../keycode';
9
8
  import SeriesMarker from '../chart-series-marker';
10
9
  import styles from './styles.css.js';
11
10
  export default memo(ChartLegend);
12
- function ChartLegend(_a) {
13
- var series = _a.series, onHighlightChange = _a.onHighlightChange, highlightedSeries = _a.highlightedSeries, legendTitle = _a.legendTitle, ariaLabel = _a.ariaLabel, plotContainerRef = _a.plotContainerRef;
14
- var focusVisible = useFocusVisible();
15
- var containerRef = useRef(null);
16
- var segmentsRef = useRef([]);
17
- var highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
18
- var highlightLeft = function () {
11
+ function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle, ariaLabel, plotContainerRef, }) {
12
+ const focusVisible = useFocusVisible();
13
+ const containerRef = useRef(null);
14
+ const segmentsRef = useRef([]);
15
+ const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
16
+ const highlightLeft = () => {
19
17
  var _a;
20
- var currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
21
- var nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;
18
+ const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
19
+ const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;
22
20
  (_a = segmentsRef.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
23
21
  };
24
- var highlightRight = function () {
22
+ const highlightRight = () => {
25
23
  var _a;
26
- var currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
27
- var nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;
24
+ const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
25
+ const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;
28
26
  (_a = segmentsRef.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
29
27
  };
30
- var handleKeyPress = function (event) {
28
+ const handleKeyPress = (event) => {
31
29
  if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {
32
30
  // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.
33
31
  event.preventDefault();
@@ -41,12 +39,12 @@ function ChartLegend(_a) {
41
39
  }
42
40
  }
43
41
  };
44
- var handleSelection = function (index) {
42
+ const handleSelection = (index) => {
45
43
  if (series[index].datum !== highlightedSeries) {
46
44
  onHighlightChange(series[index].datum);
47
45
  }
48
46
  };
49
- var handleBlur = function (event) {
47
+ const handleBlur = (event) => {
50
48
  var _a;
51
49
  // We need to check if the next element to be focused inside the plot container or not
52
50
  // so we don't clear the selected legend in case we are still focusing elements ( legend elements )
@@ -58,40 +56,39 @@ function ChartLegend(_a) {
58
56
  onHighlightChange(null);
59
57
  }
60
58
  };
61
- var handleMouseOver = function (s) {
59
+ const handleMouseOver = (s) => {
62
60
  if (s !== highlightedSeries) {
63
61
  onHighlightChange(s);
64
62
  }
65
63
  };
66
- var handleMouseLeave = function () {
64
+ const handleMouseLeave = () => {
67
65
  onHighlightChange(null);
68
66
  };
69
67
  return (React.createElement(React.Fragment, null,
70
68
  React.createElement("div", { ref: containerRef, role: "toolbar", "aria-label": legendTitle || ariaLabel, className: styles.root, onKeyDown: handleKeyPress, onBlur: handleBlur },
71
69
  legendTitle && (React.createElement(InternalBox, { fontWeight: "bold", className: styles.title }, legendTitle)),
72
- React.createElement("div", { className: styles.list }, series.map(function (s, index) {
73
- var _a;
74
- var someHighlighted = highlightedSeries !== null;
75
- var isHighlighted = highlightedSeries === s.datum;
76
- var isDimmed = someHighlighted && !isHighlighted;
77
- return (React.createElement("div", __assign({}, focusVisible, { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, (_a = {},
78
- _a[styles['marker--dimmed']] = isDimmed,
79
- _a[styles['marker--highlighted']] = isHighlighted,
80
- _a)), ref: function (elem) {
70
+ React.createElement("div", { className: styles.list }, series.map((s, index) => {
71
+ const someHighlighted = highlightedSeries !== null;
72
+ const isHighlighted = highlightedSeries === s.datum;
73
+ const isDimmed = someHighlighted && !isHighlighted;
74
+ return (React.createElement("div", Object.assign({}, focusVisible, { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, {
75
+ [styles['marker--dimmed']]: isDimmed,
76
+ [styles['marker--highlighted']]: isHighlighted,
77
+ }), ref: elem => {
81
78
  if (elem) {
82
79
  segmentsRef.current[index] = elem;
83
80
  }
84
81
  else {
85
82
  delete segmentsRef.current[index];
86
83
  }
87
- }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: function () { return handleSelection(index); }, onClick: function () { return handleSelection(index); }, onMouseOver: function () { return handleMouseOver(s.datum); }, onMouseLeave: handleMouseLeave }),
84
+ }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: () => handleSelection(index), onClick: () => handleSelection(index), onMouseOver: () => handleMouseOver(s.datum), onMouseLeave: handleMouseLeave }),
88
85
  React.createElement(SeriesMarker, { color: s.color, type: s.type }),
89
86
  " ",
90
87
  s.label));
91
88
  })))));
92
89
  }
93
90
  function findSeriesIndex(series, targetSeries) {
94
- for (var index = 0; index < series.length; index++) {
91
+ for (let index = 0; index < series.length; index++) {
95
92
  if (series[index].datum === targetSeries) {
96
93
  return index;
97
94
  }
@@ -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 clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\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 focusVisible = useFocusVisible();\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\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 highlightRight = () => {\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) => {\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 switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\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 || 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 {...focusVisible}\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":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,YAAuC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAkBrC,eAAe,IAAI,CAAC,WAAW,CAAuB,CAAC;AAEvD,SAAS,WAAW,CAAI,EACtB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,gBAAgB,GACI;IACpB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAA8B,EAAE,CAAC,CAAC;IAE5D,MAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE1E,MAAM,aAAa,GAAG,GAAG,EAAE;;QACzB,MAAM,YAAY,GAAG,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/E,MAAA,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,0CAAE,KAAK,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;;QAC1B,MAAM,YAAY,GAAG,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAA,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,0CAAE,KAAK,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;QACpD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE;YACrE,6GAA6G;YAC7G,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,QAAQ,KAAK,CAAC,OAAO,EAAE;gBACrB,KAAK,OAAO,CAAC,IAAI;oBACf,OAAO,aAAa,EAAE,CAAC;gBAEzB,KAAK,OAAO,CAAC,KAAK;oBAChB,OAAO,cAAc,EAAE,CAAC;gBAE1B;oBACE,OAAO;aACV;SACF;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,iBAAiB,EAAE;YAC7C,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;SACxC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,KAAgC,EAAE,EAAE;;QACtD,sFAAsF;QACtF,mGAAmG;QACnG,4BAA4B;QAC5B,IACE,KAAK,CAAC,aAAa,KAAK,IAAI;YAC5B,CAAC,YAAY,CAAC,OAAO;gBACnB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;gBACnD,CAAC,CAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC,EAC5D;YACA,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAI,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,iBAAiB,EAAE;YAC3B,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL;QACE,6BACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,SAAS,gBACF,WAAW,IAAI,SAAS,EACpC,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,UAAU;YAEjB,WAAW,IAAI,CACd,oBAAC,WAAW,IAAC,UAAU,EAAC,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,KAAK,IACnD,WAAW,CACA,CACf;YAED,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,IACxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACvB,MAAM,eAAe,GAAG,iBAAiB,KAAK,IAAI,CAAC;gBACnD,MAAM,aAAa,GAAG,iBAAiB,KAAK,CAAC,CAAC,KAAK,CAAC;gBACpD,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,aAAa,CAAC;gBACnD,OAAO,CACL,6CACM,YAAY,IAChB,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,KAAK,kBACI,aAAa,EAC3B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC7B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ;wBACpC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,aAAa;qBAC/C,CAAC,EACF,GAAG,EAAE,IAAI,CAAC,EAAE;wBACV,IAAI,IAAI,EAAE;4BACR,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;yBACnC;6BAAM;4BACL,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;yBACnC;oBACH,CAAC,EACD,QAAQ,EACN,KAAK,KAAK,sBAAsB,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAEpG,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,EAC3C,YAAY,EAAE,gBAAgB;oBAE9B,oBAAC,YAAY,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI;;oBAAE,CAAC,CAAC,KAAK,CACnD,CACP,CAAC;YACJ,CAAC,CAAC,CACE,CACF,CACL,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,MAAyC,EAAE,YAAsB;IAC3F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\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 focusVisible = useFocusVisible();\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\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 highlightRight = () => {\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) => {\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 switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\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 || 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 {...focusVisible}\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"]}
@@ -4,14 +4,13 @@ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef,
4
4
  import focusSvgElement from '../../utils/focus-svg-element';
5
5
  import styles from './styles.css.js';
6
6
  export default forwardRef(ApplicationController);
7
- function ApplicationController(_a, ref) {
8
- var activeElementKey = _a.activeElementKey, activeElementRef = _a.activeElementRef, onFocus = _a.onFocus, onBlur = _a.onBlur, onKeyDown = _a.onKeyDown;
9
- var containerRef = useRef(null);
10
- var applicationRef = useRef(null);
11
- var focusTransitionRef = useRef(false);
12
- var _b = useState(false), isFocused = _b[0], setFocused = _b[1];
7
+ function ApplicationController({ activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }, ref) {
8
+ const containerRef = useRef(null);
9
+ const applicationRef = useRef(null);
10
+ const focusTransitionRef = useRef(false);
11
+ const [isFocused, setFocused] = useState(false);
13
12
  // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.
14
- var onApplicationFocus = useCallback(function (event) {
13
+ const onApplicationFocus = useCallback((event) => {
15
14
  if (focusTransitionRef.current === false) {
16
15
  setFocused(true);
17
16
  onFocus && onFocus(event);
@@ -21,7 +20,7 @@ function ApplicationController(_a, ref) {
21
20
  }
22
21
  }, [onFocus]);
23
22
  // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.
24
- var onApplicationBlur = useCallback(function (event) {
23
+ const onApplicationBlur = useCallback((event) => {
25
24
  if (focusTransitionRef.current === false) {
26
25
  setFocused(false);
27
26
  onBlur && onBlur(event);
@@ -29,25 +28,25 @@ function ApplicationController(_a, ref) {
29
28
  muteApplication(applicationRef.current);
30
29
  }
31
30
  }, [onBlur]);
32
- var onApplicationKeyDown = onKeyDown;
33
- useImperativeHandle(ref, function () { return ({
34
- focus: function () { return focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null); }
35
- }); }, [activeElementRef]);
31
+ const onApplicationKeyDown = onKeyDown;
32
+ useImperativeHandle(ref, () => ({
33
+ focus: () => focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null),
34
+ }), [activeElementRef]);
36
35
  // Re-attaches and re-focuses the application for screen readers to treat it as an update.
37
- useEffect(function () {
36
+ useEffect(() => {
38
37
  // Skip if not focused or if the transition is already happening.
39
38
  if (!isFocused || focusTransitionRef.current === true) {
40
39
  return;
41
40
  }
42
41
  // Delay focus juggle to let the last focus event settle in Firefox.
43
42
  // Without the delay the focus is getting lost.
44
- var timeoutId = setTimeout(function () {
43
+ const timeoutId = setTimeout(() => {
45
44
  focusTransitionRef.current = true;
46
45
  containerRef.current.removeChild(applicationRef.current);
47
46
  containerRef.current.appendChild(applicationRef.current);
48
47
  focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null);
49
48
  }, 0);
50
- return function () { return clearTimeout(timeoutId); };
49
+ return () => clearTimeout(timeoutId);
51
50
  }, [isFocused, activeElementKey, activeElementRef]);
52
51
  return (React.createElement("g", { ref: containerRef },
53
52
  React.createElement("g", { tabIndex: -1, ref: applicationRef, onFocus: onApplicationFocus, onBlur: onApplicationBlur, onKeyDown: onApplicationKeyDown, className: styles.application })));
@@ -55,18 +54,16 @@ function ApplicationController(_a, ref) {
55
54
  // Focuses application but before copies aria-attributes from the target.
56
55
  function focusApplication(app, target) {
57
56
  // Remove prev attributes.
58
- for (var _i = 0, _a = getAttributeNames(app); _i < _a.length; _i++) {
59
- var attributeName = _a[_i];
57
+ for (const attributeName of getAttributeNames(app)) {
60
58
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
61
59
  app.removeAttribute(attributeName);
62
60
  }
63
61
  }
64
62
  // Copy new attributes.
65
63
  if (target) {
66
- for (var _b = 0, _c = getAttributeNames(target); _b < _c.length; _b++) {
67
- var attributeName = _c[_b];
64
+ for (const attributeName of getAttributeNames(target)) {
68
65
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
69
- var attributeValue = target.getAttribute(attributeName);
66
+ const attributeValue = target.getAttribute(attributeName);
70
67
  attributeValue && app.setAttribute(attributeName, attributeValue);
71
68
  }
72
69
  }
@@ -81,8 +78,7 @@ function focusApplication(app, target) {
81
78
  // The application is to be only focused programmatically.
82
79
  function muteApplication(app) {
83
80
  // Remove prev attributes.
84
- for (var _i = 0, _a = getAttributeNames(app); _i < _a.length; _i++) {
85
- var attributeName = _a[_i];
81
+ for (const attributeName of getAttributeNames(app)) {
86
82
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
87
83
  app.removeAttribute(attributeName);
88
84
  }
@@ -95,9 +91,9 @@ function muteApplication(app) {
95
91
  // Polyfill for element.getAttributeNames(), IE11
96
92
  // https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames#polyfill
97
93
  function getAttributeNames(element) {
98
- var attributes = element.attributes;
99
- var result = new Array(attributes.length);
100
- for (var i = 0; i < attributes.length; i++) {
94
+ const attributes = element.attributes;
95
+ const result = new Array(attributes.length);
96
+ for (let i = 0; i < attributes.length; i++) {
101
97
  result[i] = attributes[i].name;
102
98
  }
103
99
  return result;