@cloudscape-design/components 3.0.221 → 3.0.222

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 (999) 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/internal.js +8 -8
  264. package/date-input/internal.js.map +1 -1
  265. package/date-picker/index.js +28 -28
  266. package/date-picker/index.js.map +1 -1
  267. package/date-range-picker/calendar/grids/grid.js +54 -57
  268. package/date-range-picker/calendar/grids/grid.js.map +1 -1
  269. package/date-range-picker/calendar/grids/index.js +27 -28
  270. package/date-range-picker/calendar/grids/index.js.map +1 -1
  271. package/date-range-picker/calendar/header/header-button.js +4 -6
  272. package/date-range-picker/calendar/header/header-button.js.map +1 -1
  273. package/date-range-picker/calendar/header/index.js +6 -7
  274. package/date-range-picker/calendar/header/index.js.map +1 -1
  275. package/date-range-picker/calendar/index.js +40 -45
  276. package/date-range-picker/calendar/index.js.map +1 -1
  277. package/date-range-picker/calendar/range-inputs.js +5 -6
  278. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  279. package/date-range-picker/calendar/utils.js +2 -2
  280. package/date-range-picker/calendar/utils.js.map +1 -1
  281. package/date-range-picker/dropdown.js +29 -34
  282. package/date-range-picker/dropdown.js.map +1 -1
  283. package/date-range-picker/index.js +40 -43
  284. package/date-range-picker/index.js.map +1 -1
  285. package/date-range-picker/mode-switcher.js +2 -3
  286. package/date-range-picker/mode-switcher.js.map +1 -1
  287. package/date-range-picker/relative-range/index.js +36 -40
  288. package/date-range-picker/relative-range/index.js.map +1 -1
  289. package/date-range-picker/time-offset.js +5 -5
  290. package/date-range-picker/time-offset.js.map +1 -1
  291. package/date-range-picker/utils.js +4 -5
  292. package/date-range-picker/utils.js.map +1 -1
  293. package/expandable-section/expandable-section-container.js +5 -5
  294. package/expandable-section/expandable-section-container.js.map +1 -1
  295. package/expandable-section/expandable-section-header.js +18 -23
  296. package/expandable-section/expandable-section-header.js.map +1 -1
  297. package/expandable-section/index.js +4 -4
  298. package/expandable-section/index.js.map +1 -1
  299. package/expandable-section/internal.js +22 -22
  300. package/expandable-section/internal.js.map +1 -1
  301. package/flashbar/collapsible-flashbar.js +103 -118
  302. package/flashbar/collapsible-flashbar.js.map +1 -1
  303. package/flashbar/common.js +26 -35
  304. package/flashbar/common.js.map +1 -1
  305. package/flashbar/constant.js +1 -1
  306. package/flashbar/constant.js.map +1 -1
  307. package/flashbar/flash.js +23 -26
  308. package/flashbar/flash.js.map +1 -1
  309. package/flashbar/index.js +3 -4
  310. package/flashbar/index.js.map +1 -1
  311. package/flashbar/internal/analytics.js +12 -12
  312. package/flashbar/internal/analytics.js.map +1 -1
  313. package/flashbar/non-collapsible-flashbar.js +10 -10
  314. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  315. package/flashbar/utils.js +25 -27
  316. package/flashbar/utils.js.map +1 -1
  317. package/form/index.js +4 -4
  318. package/form/index.js.map +1 -1
  319. package/form/internal.js +5 -6
  320. package/form/internal.js.map +1 -1
  321. package/form-field/index.js +4 -4
  322. package/form-field/index.js.map +1 -1
  323. package/form-field/internal.js +20 -23
  324. package/form-field/internal.js.map +1 -1
  325. package/form-field/util.js +9 -10
  326. package/form-field/util.js.map +1 -1
  327. package/grid/index.js +6 -6
  328. package/grid/index.js.map +1 -1
  329. package/grid/internal.js +14 -15
  330. package/grid/internal.js.map +1 -1
  331. package/header/index.js +4 -4
  332. package/header/index.js.map +1 -1
  333. package/header/internal.js +15 -15
  334. package/header/internal.js.map +1 -1
  335. package/help-panel/index.js +7 -7
  336. package/help-panel/index.js.map +1 -1
  337. package/hotspot/index.js +12 -12
  338. package/hotspot/index.js.map +1 -1
  339. package/icon/index.js +4 -4
  340. package/icon/index.js.map +1 -1
  341. package/icon/internal.js +18 -18
  342. package/icon/internal.js.map +1 -1
  343. package/input/index.js +36 -17
  344. package/input/index.js.map +1 -1
  345. package/input/internal.js +30 -25
  346. package/input/internal.js.map +1 -1
  347. package/input/utils.js +4 -5
  348. package/input/utils.js.map +1 -1
  349. package/internal/animate.js +27 -32
  350. package/internal/animate.js.map +1 -1
  351. package/internal/base-component/index.js +2 -2
  352. package/internal/base-component/index.js.map +1 -1
  353. package/internal/breakpoints.js +7 -12
  354. package/internal/breakpoints.js.map +1 -1
  355. package/internal/components/abstract-switch/index.d.ts +2 -1
  356. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  357. package/internal/components/abstract-switch/index.js +19 -19
  358. package/internal/components/abstract-switch/index.js.map +1 -1
  359. package/internal/components/abstract-switch/styles.css.js +13 -12
  360. package/internal/components/abstract-switch/styles.scoped.css +21 -21
  361. package/internal/components/abstract-switch/styles.selectors.js +13 -12
  362. package/internal/components/autosuggest-input/index.js +38 -38
  363. package/internal/components/autosuggest-input/index.js.map +1 -1
  364. package/internal/components/button-trigger/index.js +7 -7
  365. package/internal/components/button-trigger/index.js.map +1 -1
  366. package/internal/components/cartesian-chart/axis-label.js +1 -2
  367. package/internal/components/cartesian-chart/axis-label.js.map +1 -1
  368. package/internal/components/cartesian-chart/bottom-labels.js +20 -26
  369. package/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  370. package/internal/components/cartesian-chart/constants.js +5 -5
  371. package/internal/components/cartesian-chart/constants.js.map +1 -1
  372. package/internal/components/cartesian-chart/emphasized-baseline.js +4 -5
  373. package/internal/components/cartesian-chart/emphasized-baseline.js.map +1 -1
  374. package/internal/components/cartesian-chart/highlighted-point.js +1 -2
  375. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  376. package/internal/components/cartesian-chart/label-utils.js +20 -24
  377. package/internal/components/cartesian-chart/label-utils.js.map +1 -1
  378. package/internal/components/cartesian-chart/labels-measure.js +6 -7
  379. package/internal/components/cartesian-chart/labels-measure.js.map +1 -1
  380. package/internal/components/cartesian-chart/left-labels.js +13 -17
  381. package/internal/components/cartesian-chart/left-labels.js.map +1 -1
  382. package/internal/components/cartesian-chart/scales.js +21 -26
  383. package/internal/components/cartesian-chart/scales.js.map +1 -1
  384. package/internal/components/cartesian-chart/ticks.js +9 -10
  385. package/internal/components/cartesian-chart/ticks.js.map +1 -1
  386. package/internal/components/cartesian-chart/vertical-grid-lines.js +3 -4
  387. package/internal/components/cartesian-chart/vertical-grid-lines.js.map +1 -1
  388. package/internal/components/cartesian-chart/vertical-marker.js +3 -4
  389. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  390. package/internal/components/chart-filter/index.js +13 -14
  391. package/internal/components/chart-filter/index.js.map +1 -1
  392. package/internal/components/chart-legend/index.js +26 -29
  393. package/internal/components/chart-legend/index.js.map +1 -1
  394. package/internal/components/chart-plot/application-controller.js +21 -25
  395. package/internal/components/chart-plot/application-controller.js.map +1 -1
  396. package/internal/components/chart-plot/focus-outline.js +7 -8
  397. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  398. package/internal/components/chart-plot/index.js +33 -34
  399. package/internal/components/chart-plot/index.js.map +1 -1
  400. package/internal/components/chart-popover/index.js +11 -12
  401. package/internal/components/chart-popover/index.js.map +1 -1
  402. package/internal/components/chart-series-details/index.js +13 -17
  403. package/internal/components/chart-series-details/index.js.map +1 -1
  404. package/internal/components/chart-series-marker/index.js +2 -3
  405. package/internal/components/chart-series-marker/index.js.map +1 -1
  406. package/internal/components/chart-status-container/index.js +8 -10
  407. package/internal/components/chart-status-container/index.js.map +1 -1
  408. package/internal/components/checkbox-icon/index.js +18 -19
  409. package/internal/components/checkbox-icon/index.js.map +1 -1
  410. package/internal/components/dark-ribbon/index.js +13 -14
  411. package/internal/components/dark-ribbon/index.js.map +1 -1
  412. package/internal/components/dropdown/context.js +4 -5
  413. package/internal/components/dropdown/context.js.map +1 -1
  414. package/internal/components/dropdown/dropdown-fit-handler.js +74 -81
  415. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  416. package/internal/components/dropdown/index.js +57 -65
  417. package/internal/components/dropdown/index.js.map +1 -1
  418. package/internal/components/dropdown-footer/index.js +2 -6
  419. package/internal/components/dropdown-footer/index.js.map +1 -1
  420. package/internal/components/dropdown-status/index.js +5 -7
  421. package/internal/components/dropdown-status/index.js.map +1 -1
  422. package/internal/components/filtering-token/index.js +4 -6
  423. package/internal/components/filtering-token/index.js.map +1 -1
  424. package/internal/components/focus-lock/index.js +10 -11
  425. package/internal/components/focus-lock/index.js.map +1 -1
  426. package/internal/components/focus-lock/utils.js +4 -4
  427. package/internal/components/focus-lock/utils.js.map +1 -1
  428. package/internal/components/live-region/index.js +10 -10
  429. package/internal/components/live-region/index.js.map +1 -1
  430. package/internal/components/masked-input/index.js +22 -24
  431. package/internal/components/masked-input/index.js.map +1 -1
  432. package/internal/components/masked-input/keyboard-handler.js +18 -18
  433. package/internal/components/masked-input/keyboard-handler.js.map +1 -1
  434. package/internal/components/masked-input/use-mask.js +24 -28
  435. package/internal/components/masked-input/use-mask.js.map +1 -1
  436. package/internal/components/masked-input/utils/keys.js +4 -6
  437. package/internal/components/masked-input/utils/keys.js.map +1 -1
  438. package/internal/components/masked-input/utils/mask-format.js +103 -113
  439. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  440. package/internal/components/masked-input/utils/strings.js +1 -4
  441. package/internal/components/masked-input/utils/strings.js.map +1 -1
  442. package/internal/components/menu-dropdown/index.js +10 -12
  443. package/internal/components/menu-dropdown/index.js.map +1 -1
  444. package/internal/components/option/highlight-match.js +14 -18
  445. package/internal/components/option/highlight-match.js.map +1 -1
  446. package/internal/components/option/index.js +13 -13
  447. package/internal/components/option/index.js.map +1 -1
  448. package/internal/components/option/option-announcer.js +1 -1
  449. package/internal/components/option/option-announcer.js.map +1 -1
  450. package/internal/components/option/option-parts.js +28 -45
  451. package/internal/components/option/option-parts.js.map +1 -1
  452. package/internal/components/option/utils/filter-options.js +16 -19
  453. package/internal/components/option/utils/filter-options.js.map +1 -1
  454. package/internal/components/option/utils/flatten-options.js +15 -15
  455. package/internal/components/option/utils/flatten-options.js.map +1 -1
  456. package/internal/components/option/utils/prepare-options.js +3 -3
  457. package/internal/components/option/utils/prepare-options.js.map +1 -1
  458. package/internal/components/options-list/index.js +19 -20
  459. package/internal/components/options-list/index.js.map +1 -1
  460. package/internal/components/options-list/utils/test-indexes.js +11 -11
  461. package/internal/components/options-list/utils/test-indexes.js.map +1 -1
  462. package/internal/components/options-list/utils/use-highlight-option.js +17 -21
  463. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  464. package/internal/components/options-list/utils/use-ids.js +2 -2
  465. package/internal/components/options-list/utils/use-ids.js.map +1 -1
  466. package/internal/components/options-list/utils/use-keyboard.js +6 -8
  467. package/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  468. package/internal/components/options-list/utils/use-open-state.js +6 -7
  469. package/internal/components/options-list/utils/use-open-state.js.map +1 -1
  470. package/internal/components/portal/index.js +5 -6
  471. package/internal/components/portal/index.js.map +1 -1
  472. package/internal/components/screenreader-only/index.js +1 -2
  473. package/internal/components/screenreader-only/index.js.map +1 -1
  474. package/internal/components/selectable-item/index.js +25 -26
  475. package/internal/components/selectable-item/index.js.map +1 -1
  476. package/internal/components/tab-trap/index.js +1 -2
  477. package/internal/components/tab-trap/index.js.map +1 -1
  478. package/internal/components/transition/index.js +16 -16
  479. package/internal/components/transition/index.js.map +1 -1
  480. package/internal/components/visual-context/index.js +6 -7
  481. package/internal/components/visual-context/index.js.map +1 -1
  482. package/internal/context/app-layout-context.js +2 -2
  483. package/internal/context/app-layout-context.js.map +1 -1
  484. package/internal/context/form-field-context.js +4 -4
  485. package/internal/context/form-field-context.js.map +1 -1
  486. package/internal/context/split-panel-context.js +3 -3
  487. package/internal/context/split-panel-context.js.map +1 -1
  488. package/internal/debounce.js +6 -11
  489. package/internal/debounce.js.map +1 -1
  490. package/internal/environment.js +1 -1
  491. package/internal/events/index.js +12 -16
  492. package/internal/events/index.js.map +1 -1
  493. package/internal/focus-tracker.js +22 -27
  494. package/internal/focus-tracker.js.map +1 -1
  495. package/internal/generated/custom-css-properties/index.js +2 -2
  496. package/internal/generated/custom-css-properties/index.js.map +1 -1
  497. package/internal/hooks/check-controlled/index.js +1 -1
  498. package/internal/hooks/check-controlled/index.js.map +1 -1
  499. package/internal/hooks/container-queries/use-container-breakpoints.js +2 -2
  500. package/internal/hooks/container-queries/use-container-breakpoints.js.map +1 -1
  501. package/internal/hooks/container-queries/use-container-query.js +5 -6
  502. package/internal/hooks/container-queries/use-container-query.js.map +1 -1
  503. package/internal/hooks/container-queries/use-resize-observer.js +13 -13
  504. package/internal/hooks/container-queries/use-resize-observer.js.map +1 -1
  505. package/internal/hooks/focus-visible/index.js +8 -8
  506. package/internal/hooks/focus-visible/index.js.map +1 -1
  507. package/internal/hooks/forward-focus/index.js +5 -9
  508. package/internal/hooks/forward-focus/index.js.map +1 -1
  509. package/internal/hooks/forward-focus/radio-group.js +7 -7
  510. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  511. package/internal/hooks/use-base-component/component-metadata.js +5 -5
  512. package/internal/hooks/use-base-component/component-metadata.js.map +1 -1
  513. package/internal/hooks/use-base-component/index.js +1 -1
  514. package/internal/hooks/use-base-component/index.js.map +1 -1
  515. package/internal/hooks/use-controllable/index.js +16 -17
  516. package/internal/hooks/use-controllable/index.js.map +1 -1
  517. package/internal/hooks/use-date-cache/index.js +2 -2
  518. package/internal/hooks/use-date-cache/index.js.map +1 -1
  519. package/internal/hooks/use-debounce-callback/index.js +3 -7
  520. package/internal/hooks/use-debounce-callback/index.js.map +1 -1
  521. package/internal/hooks/use-dynamic-overlap/index.js +4 -4
  522. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  523. package/internal/hooks/use-effect-on-update.js +2 -2
  524. package/internal/hooks/use-effect-on-update.js.map +1 -1
  525. package/internal/hooks/use-focus-tracker.js +7 -8
  526. package/internal/hooks/use-focus-tracker.js.map +1 -1
  527. package/internal/hooks/use-has-rendered/index.js +6 -6
  528. package/internal/hooks/use-has-rendered/index.js.map +1 -1
  529. package/internal/hooks/use-merge-refs/index.js +5 -9
  530. package/internal/hooks/use-merge-refs/index.js.map +1 -1
  531. package/internal/hooks/use-mobile/index.js +7 -7
  532. package/internal/hooks/use-mobile/index.js.map +1 -1
  533. package/internal/hooks/use-mouse-down-target.js +5 -5
  534. package/internal/hooks/use-mouse-down-target.js.map +1 -1
  535. package/internal/hooks/use-mutation-observer/index.js +5 -5
  536. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  537. package/internal/hooks/use-portal-mode-classes/index.js +10 -12
  538. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  539. package/internal/hooks/use-previous/index.js +3 -3
  540. package/internal/hooks/use-previous/index.js.map +1 -1
  541. package/internal/hooks/use-scroll-sync/index.js +8 -9
  542. package/internal/hooks/use-scroll-sync/index.js.map +1 -1
  543. package/internal/hooks/use-singleton-handler/index.js +12 -14
  544. package/internal/hooks/use-singleton-handler/index.js.map +1 -1
  545. package/internal/hooks/use-stable-event-handler/index.js +3 -10
  546. package/internal/hooks/use-stable-event-handler/index.js.map +1 -1
  547. package/internal/hooks/use-telemetry/index.js +2 -2
  548. package/internal/hooks/use-telemetry/index.js.map +1 -1
  549. package/internal/hooks/use-telemetry/telemetry.js +3 -4
  550. package/internal/hooks/use-telemetry/telemetry.js.map +1 -1
  551. package/internal/hooks/use-unique-id/index.js +3 -3
  552. package/internal/hooks/use-unique-id/index.js.map +1 -1
  553. package/internal/hooks/use-visual-mode/index.js +11 -11
  554. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  555. package/internal/is-development.js +1 -1
  556. package/internal/is-development.js.map +1 -1
  557. package/internal/logging.js +2 -2
  558. package/internal/logging.js.map +1 -1
  559. package/internal/manifest.json +1 -1
  560. package/internal/metrics/log-clients.js +18 -27
  561. package/internal/metrics/log-clients.js.map +1 -1
  562. package/internal/metrics/metrics-formatters.js +11 -14
  563. package/internal/metrics/metrics-formatters.js.map +1 -1
  564. package/internal/metrics/metrics.js +27 -33
  565. package/internal/metrics/metrics.js.map +1 -1
  566. package/internal/motion.js +2 -2
  567. package/internal/motion.js.map +1 -1
  568. package/internal/styles/colors.js +1 -1
  569. package/internal/styles/colors.js.map +1 -1
  570. package/internal/utils/browser-scrollbar-size.js +5 -5
  571. package/internal/utils/browser-scrollbar-size.js.map +1 -1
  572. package/internal/utils/calculate-once.js +2 -2
  573. package/internal/utils/calculate-once.js.map +1 -1
  574. package/internal/utils/check-safe-url.js +4 -4
  575. package/internal/utils/check-safe-url.js.map +1 -1
  576. package/internal/utils/create-category-color-scale.js +6 -9
  577. package/internal/utils/create-category-color-scale.js.map +1 -1
  578. package/internal/utils/date-time/format-date-range.js +3 -3
  579. package/internal/utils/date-time/format-date-range.js.map +1 -1
  580. package/internal/utils/date-time/format-date.js +4 -4
  581. package/internal/utils/date-time/format-date.js.map +1 -1
  582. package/internal/utils/date-time/format-time.js +5 -5
  583. package/internal/utils/date-time/format-time.js.map +1 -1
  584. package/internal/utils/date-time/format-timezone-offset.js +4 -4
  585. package/internal/utils/date-time/format-timezone-offset.js.map +1 -1
  586. package/internal/utils/date-time/is-iso-date-only.js +1 -1
  587. package/internal/utils/date-time/is-iso-date-only.js.map +1 -1
  588. package/internal/utils/date-time/join-date-time.js +3 -3
  589. package/internal/utils/date-time/join-date-time.js.map +1 -1
  590. package/internal/utils/date-time/parse-date.js +5 -6
  591. package/internal/utils/date-time/parse-date.js.map +1 -1
  592. package/internal/utils/date-time/parse-timezone-offset.js +5 -5
  593. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -1
  594. package/internal/utils/date-time/shift-timezone-offset.js +6 -6
  595. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -1
  596. package/internal/utils/dom.js +12 -12
  597. package/internal/utils/dom.js.map +1 -1
  598. package/internal/utils/external-props.js +3 -3
  599. package/internal/utils/external-props.js.map +1 -1
  600. package/internal/utils/focus-svg-element.js +1 -1
  601. package/internal/utils/focus-svg-element.js.map +1 -1
  602. package/internal/utils/locale/merge-locales.js +1 -1
  603. package/internal/utils/locale/merge-locales.js.map +1 -1
  604. package/internal/utils/locale/normalize-locale.js +3 -3
  605. package/internal/utils/locale/normalize-locale.js.map +1 -1
  606. package/internal/utils/promises.js +7 -11
  607. package/internal/utils/promises.js.map +1 -1
  608. package/internal/utils/scrollable-containers.js +14 -18
  609. package/internal/utils/scrollable-containers.js.map +1 -1
  610. package/internal/utils/strings/join-strings.js +1 -5
  611. package/internal/utils/strings/join-strings.js.map +1 -1
  612. package/internal/utils/strings/pad-left-zeros.js +1 -1
  613. package/internal/utils/strings/pad-left-zeros.js.map +1 -1
  614. package/internal/utils/throttle.js +10 -15
  615. package/internal/utils/throttle.js.map +1 -1
  616. package/internal/utils/use-container-width.js +3 -5
  617. package/internal/utils/use-container-width.js.map +1 -1
  618. package/line-chart/index.js +6 -6
  619. package/line-chart/index.js.map +1 -1
  620. package/link/index.js +5 -5
  621. package/link/index.js.map +1 -1
  622. package/link/internal.js +25 -25
  623. package/link/internal.js.map +1 -1
  624. package/mixed-line-bar-chart/bar-groups.js +3 -4
  625. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  626. package/mixed-line-bar-chart/bar-series.js +24 -33
  627. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  628. package/mixed-line-bar-chart/chart-container.js +123 -138
  629. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  630. package/mixed-line-bar-chart/chart-filters.js +10 -17
  631. package/mixed-line-bar-chart/chart-filters.js.map +1 -1
  632. package/mixed-line-bar-chart/chart-legend.js +9 -13
  633. package/mixed-line-bar-chart/chart-legend.js.map +1 -1
  634. package/mixed-line-bar-chart/chart-popover.js +3 -4
  635. package/mixed-line-bar-chart/chart-popover.js.map +1 -1
  636. package/mixed-line-bar-chart/data-series.js +13 -17
  637. package/mixed-line-bar-chart/data-series.js.map +1 -1
  638. package/mixed-line-bar-chart/domain.js +32 -39
  639. package/mixed-line-bar-chart/domain.js.map +1 -1
  640. package/mixed-line-bar-chart/format-highlighted.js +13 -14
  641. package/mixed-line-bar-chart/format-highlighted.js.map +1 -1
  642. package/mixed-line-bar-chart/hooks/use-mouse-hover.js +32 -34
  643. package/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  644. package/mixed-line-bar-chart/hooks/use-navigation.js +48 -57
  645. package/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  646. package/mixed-line-bar-chart/hooks/use-popover.js +7 -7
  647. package/mixed-line-bar-chart/hooks/use-popover.js.map +1 -1
  648. package/mixed-line-bar-chart/index.js +4 -4
  649. package/mixed-line-bar-chart/index.js.map +1 -1
  650. package/mixed-line-bar-chart/internal.js +47 -49
  651. package/mixed-line-bar-chart/internal.js.map +1 -1
  652. package/mixed-line-bar-chart/line-series.js +19 -24
  653. package/mixed-line-bar-chart/line-series.js.map +1 -1
  654. package/mixed-line-bar-chart/make-scaled-bar-groups.js +10 -11
  655. package/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
  656. package/mixed-line-bar-chart/make-scaled-series.js +30 -38
  657. package/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
  658. package/mixed-line-bar-chart/utils.js +18 -21
  659. package/mixed-line-bar-chart/utils.js.map +1 -1
  660. package/modal/body-scroll.js +4 -4
  661. package/modal/body-scroll.js.map +1 -1
  662. package/modal/index.js +4 -4
  663. package/modal/index.js.map +1 -1
  664. package/modal/internal.js +24 -25
  665. package/modal/internal.js.map +1 -1
  666. package/multiselect/index.js +5 -5
  667. package/multiselect/index.js.map +1 -1
  668. package/multiselect/internal.js +81 -88
  669. package/multiselect/internal.js.map +1 -1
  670. package/package.json +1 -1
  671. package/pagination/index.js +2 -3
  672. package/pagination/index.js.map +1 -1
  673. package/pagination/internal.js +16 -17
  674. package/pagination/internal.js.map +1 -1
  675. package/pagination/utils.js +12 -12
  676. package/pagination/utils.js.map +1 -1
  677. package/pie-chart/index.js +38 -39
  678. package/pie-chart/index.js.map +1 -1
  679. package/pie-chart/labels.js +38 -42
  680. package/pie-chart/labels.js.map +1 -1
  681. package/pie-chart/pie-chart.js +65 -67
  682. package/pie-chart/pie-chart.js.map +1 -1
  683. package/pie-chart/responsive-text.js +9 -10
  684. package/pie-chart/responsive-text.js.map +1 -1
  685. package/pie-chart/segments.js +27 -31
  686. package/pie-chart/segments.js.map +1 -1
  687. package/pie-chart/utils.js +32 -35
  688. package/pie-chart/utils.js.map +1 -1
  689. package/popover/arrow.js +2 -2
  690. package/popover/arrow.js.map +1 -1
  691. package/popover/body.js +16 -19
  692. package/popover/body.js.map +1 -1
  693. package/popover/container.js +52 -55
  694. package/popover/container.js.map +1 -1
  695. package/popover/index.js +6 -6
  696. package/popover/index.js.map +1 -1
  697. package/popover/internal.js +28 -28
  698. package/popover/internal.js.map +1 -1
  699. package/popover/utils/positions.js +54 -66
  700. package/popover/utils/positions.js.map +1 -1
  701. package/progress-bar/index.js +17 -17
  702. package/progress-bar/index.js.map +1 -1
  703. package/progress-bar/internal.js +12 -16
  704. package/progress-bar/internal.js.map +1 -1
  705. package/property-filter/controller.js +117 -125
  706. package/property-filter/controller.js.map +1 -1
  707. package/property-filter/filter-options.js +8 -11
  708. package/property-filter/filter-options.js.map +1 -1
  709. package/property-filter/index.js +50 -50
  710. package/property-filter/index.js.map +1 -1
  711. package/property-filter/property-editor.js +4 -5
  712. package/property-filter/property-editor.js.map +1 -1
  713. package/property-filter/property-filter-autosuggest.js +39 -39
  714. package/property-filter/property-filter-autosuggest.js.map +1 -1
  715. package/property-filter/token-editor.js +55 -66
  716. package/property-filter/token-editor.js.map +1 -1
  717. package/property-filter/token.js +9 -11
  718. package/property-filter/token.js.map +1 -1
  719. package/property-filter/use-load-items.js +8 -12
  720. package/property-filter/use-load-items.js.map +1 -1
  721. package/property-filter/utils.js +13 -18
  722. package/property-filter/utils.js.map +1 -1
  723. package/radio-group/index.js +3 -4
  724. package/radio-group/index.js.map +1 -1
  725. package/radio-group/internal.js +9 -9
  726. package/radio-group/internal.js.map +1 -1
  727. package/radio-group/radio-button.js +12 -15
  728. package/radio-group/radio-button.js.map +1 -1
  729. package/s3-resource-selector/index.js +29 -29
  730. package/s3-resource-selector/index.js.map +1 -1
  731. package/s3-resource-selector/s3-in-context/index.js +16 -18
  732. package/s3-resource-selector/s3-in-context/index.js.map +1 -1
  733. package/s3-resource-selector/s3-in-context/search-input.js +3 -4
  734. package/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  735. package/s3-resource-selector/s3-in-context/use-versions-fetch.js +16 -16
  736. package/s3-resource-selector/s3-in-context/use-versions-fetch.js.map +1 -1
  737. package/s3-resource-selector/s3-in-context/validation.js +6 -6
  738. package/s3-resource-selector/s3-in-context/validation.js.map +1 -1
  739. package/s3-resource-selector/s3-modal/basic-table.js +19 -20
  740. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  741. package/s3-resource-selector/s3-modal/buckets-table.js +11 -13
  742. package/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  743. package/s3-resource-selector/s3-modal/column-formats.js +5 -5
  744. package/s3-resource-selector/s3-modal/column-formats.js.map +1 -1
  745. package/s3-resource-selector/s3-modal/empty-state.js +1 -2
  746. package/s3-resource-selector/s3-modal/empty-state.js.map +1 -1
  747. package/s3-resource-selector/s3-modal/index.js +37 -43
  748. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  749. package/s3-resource-selector/s3-modal/objects-table.js +12 -14
  750. package/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  751. package/s3-resource-selector/s3-modal/table-utils.js +9 -12
  752. package/s3-resource-selector/s3-modal/table-utils.js.map +1 -1
  753. package/s3-resource-selector/s3-modal/versions-table.js +10 -12
  754. package/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  755. package/s3-resource-selector/utils.js +1 -1
  756. package/s3-resource-selector/utils.js.map +1 -1
  757. package/segmented-control/index.js +2 -3
  758. package/segmented-control/index.js.map +1 -1
  759. package/segmented-control/internal-segmented-control.js +16 -17
  760. package/segmented-control/internal-segmented-control.js.map +1 -1
  761. package/segmented-control/internal.js +14 -14
  762. package/segmented-control/internal.js.map +1 -1
  763. package/segmented-control/segment.js +3 -6
  764. package/segmented-control/segment.js.map +1 -1
  765. package/select/index.js +6 -6
  766. package/select/index.js.map +1 -1
  767. package/select/internal.js +58 -58
  768. package/select/internal.js.map +1 -1
  769. package/select/parts/filter.js +4 -4
  770. package/select/parts/filter.js.map +1 -1
  771. package/select/parts/item.js +10 -10
  772. package/select/parts/item.js.map +1 -1
  773. package/select/parts/multiselect-item.js +13 -14
  774. package/select/parts/multiselect-item.js.map +1 -1
  775. package/select/parts/plain-list.js +13 -15
  776. package/select/parts/plain-list.js.map +1 -1
  777. package/select/parts/trigger.js +7 -9
  778. package/select/parts/trigger.js.map +1 -1
  779. package/select/parts/virtual-list.js +27 -33
  780. package/select/parts/virtual-list.js.map +1 -1
  781. package/select/utils/check-option-value-field.js +2 -2
  782. package/select/utils/check-option-value-field.js.map +1 -1
  783. package/select/utils/connect-options.js +6 -7
  784. package/select/utils/connect-options.js.map +1 -1
  785. package/select/utils/get-item-props.js +4 -7
  786. package/select/utils/get-item-props.js.map +1 -1
  787. package/select/utils/render-options.js +13 -15
  788. package/select/utils/render-options.js.map +1 -1
  789. package/select/utils/use-announcement.js +10 -11
  790. package/select/utils/use-announcement.js.map +1 -1
  791. package/select/utils/use-load-items.js +16 -19
  792. package/select/utils/use-load-items.js.map +1 -1
  793. package/select/utils/use-native-search.js +20 -29
  794. package/select/utils/use-native-search.js.map +1 -1
  795. package/select/utils/use-select.js +89 -96
  796. package/select/utils/use-select.js.map +1 -1
  797. package/side-navigation/index.js +10 -10
  798. package/side-navigation/index.js.map +1 -1
  799. package/side-navigation/internal.js +35 -46
  800. package/side-navigation/internal.js.map +1 -1
  801. package/side-navigation/util.js +9 -12
  802. package/side-navigation/util.js.map +1 -1
  803. package/space-between/index.js +4 -4
  804. package/space-between/index.js.map +1 -1
  805. package/space-between/internal.js +7 -7
  806. package/space-between/internal.js.map +1 -1
  807. package/spinner/index.js +4 -4
  808. package/spinner/index.js.map +1 -1
  809. package/spinner/internal.js +4 -4
  810. package/spinner/internal.js.map +1 -1
  811. package/split-panel/bottom.js +22 -25
  812. package/split-panel/bottom.js.map +1 -1
  813. package/split-panel/icons/bottom-icon-refresh.js +11 -13
  814. package/split-panel/icons/bottom-icon-refresh.js.map +1 -1
  815. package/split-panel/icons/bottom-icon.js +1 -1
  816. package/split-panel/icons/bottom-icon.js.map +1 -1
  817. package/split-panel/icons/resize-handler.js +3 -6
  818. package/split-panel/icons/resize-handler.js.map +1 -1
  819. package/split-panel/icons/side-position-refresh.js +12 -14
  820. package/split-panel/icons/side-position-refresh.js.map +1 -1
  821. package/split-panel/icons/side-position.js +1 -1
  822. package/split-panel/icons/side-position.js.map +1 -1
  823. package/split-panel/index.js +65 -65
  824. package/split-panel/index.js.map +1 -1
  825. package/split-panel/preferences-modal.js +9 -9
  826. package/split-panel/preferences-modal.js.map +1 -1
  827. package/split-panel/side.js +12 -15
  828. package/split-panel/side.js.map +1 -1
  829. package/split-panel/utils/size-utils.js +3 -3
  830. package/split-panel/utils/size-utils.js.map +1 -1
  831. package/split-panel/utils/use-keyboard-events.js +13 -17
  832. package/split-panel/utils/use-keyboard-events.js.map +1 -1
  833. package/split-panel/utils/use-pointer-events.js +12 -13
  834. package/split-panel/utils/use-pointer-events.js.map +1 -1
  835. package/status-indicator/index.js +4 -4
  836. package/status-indicator/index.js.map +1 -1
  837. package/status-indicator/internal.js +9 -10
  838. package/status-indicator/internal.js.map +1 -1
  839. package/table/body-cell/click-away.js +9 -10
  840. package/table/body-cell/click-away.js.map +1 -1
  841. package/table/body-cell/index.js +18 -18
  842. package/table/body-cell/index.js.map +1 -1
  843. package/table/body-cell/inline-editor.js +32 -46
  844. package/table/body-cell/inline-editor.js.map +1 -1
  845. package/table/body-cell/td-element.js +2 -4
  846. package/table/body-cell/td-element.js.map +1 -1
  847. package/table/body-cell/use-stable-scroll-position.js +10 -13
  848. package/table/body-cell/use-stable-scroll-position.js.map +1 -1
  849. package/table/header-cell/index.d.ts +4 -2
  850. package/table/header-cell/index.d.ts.map +1 -1
  851. package/table/header-cell/index.js +33 -34
  852. package/table/header-cell/index.js.map +1 -1
  853. package/table/header-cell/utils.js +10 -12
  854. package/table/header-cell/utils.js.map +1 -1
  855. package/table/index.js +5 -5
  856. package/table/index.js.map +1 -1
  857. package/table/internal.d.ts.map +1 -1
  858. package/table/internal.js +94 -118
  859. package/table/internal.js.map +1 -1
  860. package/table/resizer/index.d.ts +5 -1
  861. package/table/resizer/index.d.ts.map +1 -1
  862. package/table/resizer/index.js +40 -39
  863. package/table/resizer/index.js.map +1 -1
  864. package/table/selection-control/index.d.ts +4 -1
  865. package/table/selection-control/index.d.ts.map +1 -1
  866. package/table/selection-control/index.js +11 -11
  867. package/table/selection-control/index.js.map +1 -1
  868. package/table/sticky-header.d.ts +2 -2
  869. package/table/sticky-header.d.ts.map +1 -1
  870. package/table/sticky-header.js +16 -15
  871. package/table/sticky-header.js.map +1 -1
  872. package/table/sticky-scrollbar.js +5 -6
  873. package/table/sticky-scrollbar.js.map +1 -1
  874. package/table/sticky-scrolling.js +10 -10
  875. package/table/sticky-scrolling.js.map +1 -1
  876. package/table/thead.d.ts +11 -3
  877. package/table/thead.d.ts.map +1 -1
  878. package/table/thead.js +13 -13
  879. package/table/thead.js.map +1 -1
  880. package/table/tools-header.js +4 -5
  881. package/table/tools-header.js.map +1 -1
  882. package/table/use-column-widths.js +34 -44
  883. package/table/use-column-widths.js.map +1 -1
  884. package/table/use-row-events.js +10 -11
  885. package/table/use-row-events.js.map +1 -1
  886. package/table/use-selection.js +75 -81
  887. package/table/use-selection.js.map +1 -1
  888. package/table/use-sticky-header.js +16 -16
  889. package/table/use-sticky-header.js.map +1 -1
  890. package/table/use-sticky-scrollbar.js +42 -42
  891. package/table/use-sticky-scrollbar.js.map +1 -1
  892. package/table/use-table-focus-navigation.js +27 -28
  893. package/table/use-table-focus-navigation.js.map +1 -1
  894. package/table/utils.js +7 -7
  895. package/table/utils.js.map +1 -1
  896. package/tabs/index.js +30 -33
  897. package/tabs/index.js.map +1 -1
  898. package/tabs/scroll-utils.js +12 -13
  899. package/tabs/scroll-utils.js.map +1 -1
  900. package/tabs/smooth-scroll.js +17 -17
  901. package/tabs/smooth-scroll.js.map +1 -1
  902. package/tabs/tab-header-bar.js +61 -66
  903. package/tabs/tab-header-bar.js.map +1 -1
  904. package/tag-editor/index.js +59 -72
  905. package/tag-editor/index.js.map +1 -1
  906. package/tag-editor/internal.js +21 -29
  907. package/tag-editor/internal.js.map +1 -1
  908. package/tag-editor/utils.js +7 -8
  909. package/tag-editor/utils.js.map +1 -1
  910. package/tag-editor/validation.js +16 -18
  911. package/tag-editor/validation.js.map +1 -1
  912. package/text-content/index.js +6 -6
  913. package/text-content/index.js.map +1 -1
  914. package/text-filter/index.js +3 -4
  915. package/text-filter/index.js.map +1 -1
  916. package/text-filter/internal.js +10 -10
  917. package/text-filter/internal.js.map +1 -1
  918. package/textarea/index.js +23 -24
  919. package/textarea/index.js.map +1 -1
  920. package/theming/index.js +2 -3
  921. package/theming/index.js.map +1 -1
  922. package/tiles/index.js +3 -4
  923. package/tiles/index.js.map +1 -1
  924. package/tiles/internal.js +17 -17
  925. package/tiles/internal.js.map +1 -1
  926. package/tiles/tile.js +7 -9
  927. package/tiles/tile.js.map +1 -1
  928. package/time-input/index.js +5 -5
  929. package/time-input/index.js.map +1 -1
  930. package/time-input/internal.js +9 -9
  931. package/time-input/internal.js.map +1 -1
  932. package/toggle/index.js +3 -4
  933. package/toggle/index.js.map +1 -1
  934. package/toggle/internal.js +15 -16
  935. package/toggle/internal.js.map +1 -1
  936. package/token-group/dismiss-button.js +5 -7
  937. package/token-group/dismiss-button.js.map +1 -1
  938. package/token-group/index.js +4 -4
  939. package/token-group/index.js.map +1 -1
  940. package/token-group/internal.js +14 -14
  941. package/token-group/internal.js.map +1 -1
  942. package/token-group/toggle.js +7 -9
  943. package/token-group/toggle.js.map +1 -1
  944. package/top-navigation/1.0-beta/index.js +4 -4
  945. package/top-navigation/1.0-beta/index.js.map +1 -1
  946. package/top-navigation/1.0-beta/internal.js +43 -46
  947. package/top-navigation/1.0-beta/internal.js.map +1 -1
  948. package/top-navigation/1.0-beta/parts/overflow-menu.js +16 -17
  949. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  950. package/top-navigation/1.0-beta/parts/utility.js +9 -12
  951. package/top-navigation/1.0-beta/parts/utility.js.map +1 -1
  952. package/top-navigation/1.0-beta/use-top-navigation.js +46 -54
  953. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  954. package/top-navigation/index.js +4 -4
  955. package/top-navigation/index.js.map +1 -1
  956. package/top-navigation/internal.js +64 -71
  957. package/top-navigation/internal.js.map +1 -1
  958. package/top-navigation/parts/overflow-menu/header.js +3 -4
  959. package/top-navigation/parts/overflow-menu/header.js.map +1 -1
  960. package/top-navigation/parts/overflow-menu/index.js +4 -5
  961. package/top-navigation/parts/overflow-menu/index.js.map +1 -1
  962. package/top-navigation/parts/overflow-menu/menu-item.js +56 -61
  963. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  964. package/top-navigation/parts/overflow-menu/router.js +11 -13
  965. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  966. package/top-navigation/parts/overflow-menu/views/submenu.js +6 -8
  967. package/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  968. package/top-navigation/parts/overflow-menu/views/utilities.js +5 -7
  969. package/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  970. package/top-navigation/parts/utility.js +12 -15
  971. package/top-navigation/parts/utility.js.map +1 -1
  972. package/top-navigation/use-top-navigation.js +52 -59
  973. package/top-navigation/use-top-navigation.js.map +1 -1
  974. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js +5 -7
  975. package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js.map +1 -1
  976. package/tutorial-panel/components/tutorial-detail-view/index.js +6 -7
  977. package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  978. package/tutorial-panel/components/tutorial-detail-view/task-list.js +8 -15
  979. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  980. package/tutorial-panel/components/tutorial-detail-view/task.js +5 -6
  981. package/tutorial-panel/components/tutorial-detail-view/task.js.map +1 -1
  982. package/tutorial-panel/components/tutorial-list/index.js +19 -22
  983. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  984. package/tutorial-panel/index.js +8 -8
  985. package/tutorial-panel/index.js.map +1 -1
  986. package/wizard/index.js +28 -28
  987. package/wizard/index.js.map +1 -1
  988. package/wizard/internal/analytics.js +32 -42
  989. package/wizard/internal/analytics.js.map +1 -1
  990. package/wizard/unmount.js +6 -13
  991. package/wizard/unmount.js.map +1 -1
  992. package/wizard/wizard-actions.js +7 -8
  993. package/wizard/wizard-actions.js.map +1 -1
  994. package/wizard/wizard-form-header.js +2 -3
  995. package/wizard/wizard-form-header.js.map +1 -1
  996. package/wizard/wizard-form.js +14 -16
  997. package/wizard/wizard-form.js.map +1 -1
  998. package/wizard/wizard-navigation.js +19 -25
  999. package/wizard/wizard-navigation.js.map +1 -1
@@ -17,55 +17,53 @@ import { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './uti
17
17
  import Segments from './segments';
18
18
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
19
19
  import ChartPlot from '../internal/components/chart-plot';
20
- export default (function (_a) {
21
- var _b;
22
- var _c;
23
- var variant = _a.variant, size = _a.size, i18nStrings = _a.i18nStrings, ariaLabel = _a.ariaLabel, ariaLabelledby = _a.ariaLabelledby, data = _a.data, visibleData = _a.visibleData, ariaDescription = _a.ariaDescription, innerMetricValue = _a.innerMetricValue, innerMetricDescription = _a.innerMetricDescription, hideTitles = _a.hideTitles, hideDescriptions = _a.hideDescriptions, detailPopoverContent = _a.detailPopoverContent, detailPopoverSize = _a.detailPopoverSize, width = _a.width, additionalFilters = _a.additionalFilters, hideFilter = _a.hideFilter, hideLegend = _a.hideLegend, statusType = _a.statusType, empty = _a.empty, noMatch = _a.noMatch, errorText = _a.errorText, recoveryText = _a.recoveryText, loadingText = _a.loadingText, onRecoveryClick = _a.onRecoveryClick, segmentDescription = _a.segmentDescription, highlightedSegment = _a.highlightedSegment, onHighlightChange = _a.onHighlightChange, legendSegment = _a.legendSegment, pinnedSegment = _a.pinnedSegment, setPinnedSegment = _a.setPinnedSegment;
24
- var plotRef = useRef(null);
25
- var containerRef = useRef(null);
26
- var focusedSegmentRef = useRef(null);
27
- var popoverTrackRef = useRef(null);
28
- var popoverRef = useRef(null);
29
- var isRefresh = useVisualRefresh();
30
- var dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
31
- var radius = dimensions.outerRadius;
32
- var hasLabels = !(hideTitles && hideDescriptions);
33
- var height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));
20
+ export default ({ variant, size, i18nStrings, ariaLabel, ariaLabelledby, data, visibleData, ariaDescription, innerMetricValue, innerMetricDescription, hideTitles, hideDescriptions, detailPopoverContent, detailPopoverSize, width, additionalFilters, hideFilter, hideLegend, statusType, empty, noMatch, errorText, recoveryText, loadingText, onRecoveryClick, segmentDescription, highlightedSegment, onHighlightChange, legendSegment, pinnedSegment, setPinnedSegment, }) => {
21
+ var _a;
22
+ const plotRef = useRef(null);
23
+ const containerRef = useRef(null);
24
+ const focusedSegmentRef = useRef(null);
25
+ const popoverTrackRef = useRef(null);
26
+ const popoverRef = useRef(null);
27
+ const isRefresh = useVisualRefresh();
28
+ const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
29
+ const radius = dimensions.outerRadius;
30
+ const hasLabels = !(hideTitles && hideDescriptions);
31
+ const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));
34
32
  // Inner content is only available for donut charts and the inner description is not displayed for small charts
35
- var hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));
36
- var innerMetricId = useUniqueId('awsui-pie-chart__inner');
37
- var _d = useState(false), isTooltipOpen = _d[0], setTooltipOpen = _d[1];
38
- var _e = useState(), tooltipData = _e[0], setTooltipData = _e[1];
39
- var _f = useMemo(function () {
40
- var dataSum = visibleData.reduce(function (sum, d) { return sum + d.datum.value; }, 0);
41
- var pieFactory = pie()
33
+ const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));
34
+ const innerMetricId = useUniqueId('awsui-pie-chart__inner');
35
+ const [isTooltipOpen, setTooltipOpen] = useState(false);
36
+ const [tooltipData, setTooltipData] = useState();
37
+ const { pieData, dataSum } = useMemo(() => {
38
+ const dataSum = visibleData.reduce((sum, d) => sum + d.datum.value, 0);
39
+ const pieFactory = pie()
42
40
  // Minimum 1% segment size
43
- .value(function (d) { return (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value); })
41
+ .value(d => (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value))
44
42
  .sort(null);
45
43
  // Filter out segments with value of zero or below
46
- var pieData = pieFactory(visibleData.filter(function (d) { return d.datum.value > 0; }));
47
- return { pieData: pieData, dataSum: dataSum };
48
- }, [visibleData]), pieData = _f.pieData, dataSum = _f.dataSum;
49
- var highlightedSegmentIndex = useMemo(function () {
50
- for (var index = 0; index < pieData.length; index++) {
44
+ const pieData = pieFactory(visibleData.filter(d => d.datum.value > 0));
45
+ return { pieData, dataSum };
46
+ }, [visibleData]);
47
+ const highlightedSegmentIndex = useMemo(() => {
48
+ for (let index = 0; index < pieData.length; index++) {
51
49
  if (pieData[index].data.datum === highlightedSegment) {
52
50
  return index;
53
51
  }
54
52
  }
55
53
  return null;
56
54
  }, [pieData, highlightedSegment]);
57
- var detailFunction = detailPopoverContent || defaultDetails(i18nStrings);
58
- var details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];
59
- var tooltipContent = tooltipData && React.createElement(SeriesDetails, { details: details });
60
- var _g = getChartStatus({ externalData: data, visibleData: pieData, statusType: statusType }), isEmpty = _g.isEmpty, showChart = _g.showChart;
55
+ const detailFunction = detailPopoverContent || defaultDetails(i18nStrings);
56
+ const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];
57
+ const tooltipContent = tooltipData && React.createElement(SeriesDetails, { details: details });
58
+ const { isEmpty, showChart } = getChartStatus({ externalData: data, visibleData: pieData, statusType });
61
59
  // Pie charts have a special condition for empty/noMatch due to how zero-value segments are handled.
62
- var isNoMatch = isEmpty && visibleData.length !== data.length;
63
- var reserveLegendSpace = !showChart && !hideLegend;
64
- var reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);
65
- var popoverDismissedRecently = useRef(false);
66
- var escapePressed = useRef(false);
67
- var highlightSegment = useCallback(function (internalDatum) {
68
- var segment = internalDatum.datum;
60
+ const isNoMatch = isEmpty && visibleData.length !== data.length;
61
+ const reserveLegendSpace = !showChart && !hideLegend;
62
+ const reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);
63
+ const popoverDismissedRecently = useRef(false);
64
+ const escapePressed = useRef(false);
65
+ const highlightSegment = useCallback((internalDatum) => {
66
+ const segment = internalDatum.datum;
69
67
  if (segment !== highlightedSegment) {
70
68
  onHighlightChange(segment);
71
69
  }
@@ -76,28 +74,28 @@ export default (function (_a) {
76
74
  color: internalDatum.color,
77
75
  index: internalDatum.index,
78
76
  label: internalDatum.datum.title,
79
- markerType: 'rectangle'
77
+ markerType: 'rectangle',
80
78
  },
81
- trackRef: popoverTrackRef
79
+ trackRef: popoverTrackRef,
82
80
  });
83
81
  setTooltipOpen(true);
84
82
  }
85
83
  }, [highlightedSegment, setTooltipOpen, onHighlightChange]);
86
- var clearHighlightedSegment = useCallback(function () {
84
+ const clearHighlightedSegment = useCallback(() => {
87
85
  setTooltipOpen(false);
88
86
  onHighlightChange(null);
89
87
  }, [onHighlightChange, setTooltipOpen]);
90
- useEffect(function () {
91
- var onKeyDown = function (event) {
88
+ useEffect(() => {
89
+ const onKeyDown = (event) => {
92
90
  if (event.key === 'Escape') {
93
91
  clearHighlightedSegment();
94
92
  escapePressed.current = true;
95
93
  }
96
94
  };
97
95
  document.addEventListener('keydown', onKeyDown);
98
- return function () { return document.removeEventListener('keydown', onKeyDown); };
96
+ return () => document.removeEventListener('keydown', onKeyDown);
99
97
  }, [clearHighlightedSegment]);
100
- var onMouseDown = useCallback(function (internalDatum) {
98
+ const onMouseDown = useCallback((internalDatum) => {
101
99
  if (pinnedSegment === internalDatum.datum) {
102
100
  setPinnedSegment(null);
103
101
  clearHighlightedSegment();
@@ -107,7 +105,7 @@ export default (function (_a) {
107
105
  highlightSegment(internalDatum);
108
106
  }
109
107
  }, [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]);
110
- var onMouseOver = useCallback(function (internalDatum) {
108
+ const onMouseOver = useCallback((internalDatum) => {
111
109
  if (escapePressed.current) {
112
110
  escapePressed.current = false;
113
111
  return;
@@ -117,15 +115,15 @@ export default (function (_a) {
117
115
  }
118
116
  highlightSegment(internalDatum);
119
117
  }, [pinnedSegment, highlightSegment]);
120
- var onMouseOut = useCallback(function (event) {
118
+ const onMouseOut = useCallback((event) => {
121
119
  var _a;
122
120
  if (pinnedSegment !== null || ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget))) {
123
121
  return;
124
122
  }
125
123
  clearHighlightedSegment();
126
124
  }, [pinnedSegment, clearHighlightedSegment]);
127
- var onKeyDown = useCallback(function (event) {
128
- var keyCode = event.keyCode;
125
+ const onKeyDown = useCallback((event) => {
126
+ const keyCode = event.keyCode;
129
127
  if (keyCode !== KeyCode.right &&
130
128
  keyCode !== KeyCode.left &&
131
129
  keyCode !== KeyCode.enter &&
@@ -133,8 +131,8 @@ export default (function (_a) {
133
131
  return;
134
132
  }
135
133
  event.preventDefault();
136
- var nextIndex = highlightedSegmentIndex || 0;
137
- var MAX = pieData.length - 1;
134
+ let nextIndex = highlightedSegmentIndex || 0;
135
+ const MAX = pieData.length - 1;
138
136
  if (keyCode === KeyCode.right) {
139
137
  nextIndex++;
140
138
  if (nextIndex > MAX) {
@@ -152,19 +150,19 @@ export default (function (_a) {
152
150
  }
153
151
  highlightSegment(pieData[nextIndex].data);
154
152
  }, [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]);
155
- var onFocus = useCallback(function (_event, target) {
153
+ const onFocus = useCallback((_event, target) => {
156
154
  // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.
157
155
  // Normally we would check `event.relatedTarget` for the previously focused element,
158
156
  // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.
159
157
  if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {
160
158
  return;
161
159
  }
162
- var segment = highlightedSegment || legendSegment || pieData[0].data.datum;
163
- var matched = pieData.filter(function (d) { return d.data.datum === segment; });
160
+ const segment = highlightedSegment || legendSegment || pieData[0].data.datum;
161
+ const matched = pieData.filter(d => d.data.datum === segment);
164
162
  highlightSegment(matched[0].data);
165
163
  }, [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]);
166
- var onBlur = useCallback(function (event) {
167
- var blurTarget = event.relatedTarget || event.target;
164
+ const onBlur = useCallback((event) => {
165
+ const blurTarget = event.relatedTarget || event.target;
168
166
  if (blurTarget === null || !(blurTarget instanceof Element) || !nodeContains(containerRef.current, blurTarget)) {
169
167
  // We only need to close the tooltip and remove the pinned segment so that we keep track of the current
170
168
  // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case
@@ -173,12 +171,12 @@ export default (function (_a) {
173
171
  setPinnedSegment(null);
174
172
  }
175
173
  }, [setPinnedSegment]);
176
- var onPopoverDismiss = function (outsideClick) {
174
+ const onPopoverDismiss = (outsideClick) => {
177
175
  setTooltipOpen(false);
178
176
  setPinnedSegment(null);
179
177
  if (!outsideClick) {
180
178
  // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.
181
- setTimeout(function () {
179
+ setTimeout(() => {
182
180
  popoverDismissedRecently.current = true;
183
181
  plotRef.current.focusApplication();
184
182
  popoverDismissedRecently.current = false;
@@ -188,20 +186,20 @@ export default (function (_a) {
188
186
  onHighlightChange(null);
189
187
  }
190
188
  };
191
- var onPopoverLeave = function (event) {
189
+ const onPopoverLeave = (event) => {
192
190
  if (pinnedSegment !== null || focusedSegmentRef.current.contains(event.relatedTarget)) {
193
191
  return;
194
192
  }
195
193
  clearHighlightedSegment();
196
194
  };
197
- return (React.createElement("div", { className: clsx(styles.content, styles["content--".concat(size)], (_b = {},
198
- _b[styles['content--without-labels']] = !hasLabels,
199
- _b[styles['content--reserve-filter']] = reserveFilterSpace,
200
- _b[styles['content--reserve-legend']] = reserveLegendSpace,
201
- _b)) },
195
+ return (React.createElement("div", { className: clsx(styles.content, styles[`content--${size}`], {
196
+ [styles['content--without-labels']]: !hasLabels,
197
+ [styles['content--reserve-filter']]: reserveFilterSpace,
198
+ [styles['content--reserve-legend']]: reserveLegendSpace,
199
+ }) },
202
200
  React.createElement(ChartStatusContainer, { isEmpty: isEmpty, isNoMatch: isNoMatch, showChart: showChart, statusType: statusType, empty: empty, noMatch: noMatch, loadingText: loadingText, errorText: errorText, recoveryText: recoveryText, onRecoveryClick: onRecoveryClick }),
203
201
  showChart && (React.createElement("div", { className: styles['chart-container'], ref: containerRef },
204
- React.createElement(ChartPlot, { ref: plotRef, width: width, height: height, transform: "translate(".concat(width / 2, " ").concat(height / 2, ")"), isPrecise: true, isClickable: !isTooltipOpen, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, ariaDescribedby: hasInnerContent ? innerMetricId : undefined, ariaRoleDescription: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.chartAriaRoleDescription, ariaLiveRegion: tooltipContent, activeElementRef: focusedSegmentRef, activeElementKey: highlightedSegmentIndex === null || highlightedSegmentIndex === void 0 ? void 0 : highlightedSegmentIndex.toString(), onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onMouseOut: onMouseOut },
202
+ React.createElement(ChartPlot, { ref: plotRef, width: width, height: height, transform: `translate(${width / 2} ${height / 2})`, isPrecise: true, isClickable: !isTooltipOpen, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, ariaDescribedby: hasInnerContent ? innerMetricId : undefined, ariaRoleDescription: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.chartAriaRoleDescription, ariaLiveRegion: tooltipContent, activeElementRef: focusedSegmentRef, activeElementKey: highlightedSegmentIndex === null || highlightedSegmentIndex === void 0 ? void 0 : highlightedSegmentIndex.toString(), onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onMouseOut: onMouseOut },
205
203
  React.createElement(Segments, { pieData: pieData, size: size, variant: variant, focusedSegmentRef: focusedSegmentRef, popoverTrackRef: popoverTrackRef, highlightedSegment: highlightedSegment, segmentAriaRoleDescription: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.segmentAriaRoleDescription, onMouseDown: onMouseDown, onMouseOver: onMouseOver, onMouseOut: onMouseOut }),
206
204
  hasLabels && (React.createElement(Labels, { pieData: pieData, size: size, segmentDescription: segmentDescription, visibleDataSum: dataSum, hideTitles: hideTitles, hideDescriptions: hideDescriptions, highlightedSegment: highlightedSegment, containerRef: containerRef }))),
207
205
  hasInnerContent && (React.createElement("div", { className: styles['inner-content'], id: innerMetricId },
@@ -210,6 +208,6 @@ export default (function (_a) {
210
208
  isTooltipOpen && tooltipData && (React.createElement(ChartPopover, { ref: popoverRef, title: tooltipData.series && (React.createElement(InternalBox, { className: styles['popover-header'], variant: "strong" },
211
209
  React.createElement(SeriesMarker, { color: tooltipData.series.color, type: tooltipData.series.markerType }),
212
210
  ' ',
213
- tooltipData.series.label)), trackRef: tooltipData.trackRef, trackKey: tooltipData.series.index, dismissButton: pinnedSegment !== null, dismissAriaLabel: i18nStrings.detailPopoverDismissAriaLabel, onDismiss: onPopoverDismiss, container: ((_c = plotRef.current) === null || _c === void 0 ? void 0 : _c.svg) || null, size: detailPopoverSize, onMouseLeave: onPopoverLeave }, tooltipContent))))));
214
- });
211
+ tooltipData.series.label)), trackRef: tooltipData.trackRef, trackKey: tooltipData.series.index, dismissButton: pinnedSegment !== null, dismissAriaLabel: i18nStrings.detailPopoverDismissAriaLabel, onDismiss: onPopoverDismiss, container: ((_a = plotRef.current) === null || _a === void 0 ? void 0 : _a.svg) || null, size: detailPopoverSize, onMouseLeave: onPopoverLeave }, tooltipContent))))));
212
+ };
215
213
  //# sourceMappingURL=pie-chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pie-chart.js","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { pie } from 'd3-shape';\n\nimport { KeyCode } from '../internal/keycode';\nimport { nodeContains } from '../internal/utils/dom';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions' | 'statusType'\n > {\n visibleData: Array<InternalChartDatum<T>>;\n width: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n variant,\n size,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n data,\n visibleData,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n width,\n additionalFilters,\n hideFilter,\n hideLegend,\n statusType,\n empty,\n noMatch,\n errorText,\n recoveryText,\n loadingText,\n onRecoveryClick,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n const isRefresh = useVisualRefresh();\n\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const { pieData, dataSum } = useMemo(() => {\n const dataSum = visibleData.reduce((sum, d) => sum + d.datum.value, 0);\n\n const pieFactory = pie<InternalChartDatum<T>>()\n // Minimum 1% segment size\n .value(d => (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value))\n .sort(null);\n\n // Filter out segments with value of zero or below\n const pieData = pieFactory(visibleData.filter(d => d.datum.value > 0));\n\n return { pieData, dataSum };\n }, [visibleData]);\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailFunction = detailPopoverContent || defaultDetails(i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const { isEmpty, showChart } = getChartStatus({ externalData: data, visibleData: pieData, statusType });\n\n // Pie charts have a special condition for empty/noMatch due to how zero-value segments are handled.\n const isNoMatch = isEmpty && visibleData.length !== data.length;\n\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.enter &&\n keyCode !== KeyCode.space\n ) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeContains(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n } else {\n onHighlightChange(null);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div\n className={clsx(styles.content, styles[`content--${size}`], {\n [styles['content--without-labels']]: !hasLabels,\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <div className={styles['chart-container']} ref={containerRef}>\n <ChartPlot\n ref={plotRef}\n width={width}\n height={height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n size={size}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n size={size}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox variant={size === 'small' ? 'h3' : 'h1'} tagOverride=\"div\" color=\"inherit\" padding=\"n\">\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n </ChartPopover>\n )}\n </div>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"pie-chart.js","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { pie } from 'd3-shape';\n\nimport { KeyCode } from '../internal/keycode';\nimport { nodeContains } from '../internal/utils/dom';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions' | 'statusType'\n > {\n visibleData: Array<InternalChartDatum<T>>;\n width: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n variant,\n size,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n data,\n visibleData,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n width,\n additionalFilters,\n hideFilter,\n hideLegend,\n statusType,\n empty,\n noMatch,\n errorText,\n recoveryText,\n loadingText,\n onRecoveryClick,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n const isRefresh = useVisualRefresh();\n\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const { pieData, dataSum } = useMemo(() => {\n const dataSum = visibleData.reduce((sum, d) => sum + d.datum.value, 0);\n\n const pieFactory = pie<InternalChartDatum<T>>()\n // Minimum 1% segment size\n .value(d => (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value))\n .sort(null);\n\n // Filter out segments with value of zero or below\n const pieData = pieFactory(visibleData.filter(d => d.datum.value > 0));\n\n return { pieData, dataSum };\n }, [visibleData]);\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailFunction = detailPopoverContent || defaultDetails(i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const { isEmpty, showChart } = getChartStatus({ externalData: data, visibleData: pieData, statusType });\n\n // Pie charts have a special condition for empty/noMatch due to how zero-value segments are handled.\n const isNoMatch = isEmpty && visibleData.length !== data.length;\n\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.enter &&\n keyCode !== KeyCode.space\n ) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeContains(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n } else {\n onHighlightChange(null);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div\n className={clsx(styles.content, styles[`content--${size}`], {\n [styles['content--without-labels']]: !hasLabels,\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <div className={styles['chart-container']} ref={containerRef}>\n <ChartPlot\n ref={plotRef}\n width={width}\n height={height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n size={size}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n size={size}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox variant={size === 'small' ? 'h3' : 'h1'} tagOverride=\"div\" color=\"inherit\" padding=\"n\">\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n </ChartPopover>\n )}\n </div>\n )}\n </div>\n );\n};\n"]}
@@ -2,19 +2,18 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { memo, useEffect, useRef } from 'react';
4
4
  export default memo(ResponsiveText);
5
- function ResponsiveText(_a) {
6
- var x = _a.x, y = _a.y, rightSide = _a.rightSide, className = _a.className, children = _a.children, containerBoundaries = _a.containerBoundaries;
7
- var actualRef = useRef(null);
8
- var virtualRef = useRef(null);
5
+ function ResponsiveText({ x, y, rightSide, className, children, containerBoundaries }) {
6
+ const actualRef = useRef(null);
7
+ const virtualRef = useRef(null);
9
8
  // Determine the visible width of the text and if necessary truncate it until it fits.
10
- useEffect(function () {
9
+ useEffect(() => {
11
10
  // The debouncing is necessary for visual smoothness.
12
- var timeoutId = setTimeout(function () {
13
- var groupRect = virtualRef.current.getBoundingClientRect();
14
- var visibleWidth = containerBoundaries ? getVisibleWidth(groupRect, containerBoundaries) : 0;
11
+ const timeoutId = setTimeout(() => {
12
+ const groupRect = virtualRef.current.getBoundingClientRect();
13
+ const visibleWidth = containerBoundaries ? getVisibleWidth(groupRect, containerBoundaries) : 0;
15
14
  renderTextContent(actualRef.current, children, visibleWidth);
16
15
  }, 25);
17
- return function () { return clearTimeout(timeoutId); };
16
+ return () => clearTimeout(timeoutId);
18
17
  });
19
18
  return (React.createElement(React.Fragment, null,
20
19
  React.createElement("text", { ref: virtualRef, x: x, y: y, style: { textAnchor: rightSide ? 'start' : 'end', visibility: 'hidden' }, "aria-hidden": "true", className: className }, children),
@@ -32,7 +31,7 @@ function getVisibleWidth(element, container) {
32
31
  }
33
32
  }
34
33
  function renderTextContent(textNode, text, visibleWidth) {
35
- var visibleLength = text.length;
34
+ let visibleLength = text.length;
36
35
  while (visibleLength >= 0) {
37
36
  textNode.textContent = truncateText(text, visibleLength);
38
37
  if (!textNode.getComputedTextLength || textNode.getComputedTextLength() <= visibleWidth) {
@@ -1 +1 @@
1
- {"version":3,"file":"responsive-text.js","sourceRoot":"","sources":["../../../src/pie-chart/responsive-text.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { memo, useEffect, useRef } from 'react';\n\ninterface ResponsiveTextProps {\n x: number;\n y: number;\n rightSide?: boolean;\n className?: string;\n children: string;\n containerBoundaries: null | { left: number; right: number };\n}\n\nexport default memo(ResponsiveText);\n\nfunction ResponsiveText({ x, y, rightSide, className, children, containerBoundaries }: ResponsiveTextProps) {\n const actualRef = useRef<SVGTextElement>(null);\n const virtualRef = useRef<SVGTextElement>(null);\n\n // Determine the visible width of the text and if necessary truncate it until it fits.\n useEffect(() => {\n // The debouncing is necessary for visual smoothness.\n const timeoutId = setTimeout(() => {\n const groupRect = virtualRef.current!.getBoundingClientRect();\n const visibleWidth = containerBoundaries ? getVisibleWidth(groupRect, containerBoundaries) : 0;\n renderTextContent(actualRef.current!, children, visibleWidth);\n }, 25);\n return () => clearTimeout(timeoutId);\n });\n\n return (\n <>\n {/* Invisible sample text used for measurement */}\n <text\n ref={virtualRef}\n x={x}\n y={y}\n style={{ textAnchor: rightSide ? 'start' : 'end', visibility: 'hidden' }}\n aria-hidden=\"true\"\n className={className}\n >\n {children}\n </text>\n\n {/* Text node to render truncated text into */}\n <text ref={actualRef} x={x} y={y} style={{ textAnchor: rightSide ? 'start' : 'end' }} className={className}>\n {children}\n </text>\n </>\n );\n}\n\nfunction getVisibleWidth(element: { left: number; right: number }, container: { left: number; right: number }): number {\n if (element.left < container.left) {\n return element.right - container.left;\n } else if (element.right > container.right) {\n return container.right - element.left;\n } else {\n return container.right - container.left;\n }\n}\n\nfunction renderTextContent(textNode: SVGTextElement, text: string, visibleWidth: number) {\n let visibleLength = text.length;\n while (visibleLength >= 0) {\n textNode.textContent = truncateText(text, visibleLength);\n if (!textNode.getComputedTextLength || textNode.getComputedTextLength() <= visibleWidth) {\n return;\n } else {\n visibleLength--;\n }\n }\n}\n\nfunction truncateText(text: string, maxLength: number) {\n if (text.length === maxLength) {\n return text;\n }\n return text.slice(0, maxLength) + '…';\n}\n"]}
1
+ {"version":3,"file":"responsive-text.js","sourceRoot":"","sources":["../../../src/pie-chart/responsive-text.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAWvD,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC;AAEpC,SAAS,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAuB;IACxG,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,qDAAqD;QACrD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,iBAAiB,CAAC,SAAS,CAAC,OAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChE,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO,CACL;QAEE,8BACE,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAC5D,MAAM,EAClB,SAAS,EAAE,SAAS,IAEnB,QAAQ,CACJ;QAGP,8BAAM,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,IACvG,QAAQ,CACJ,CACN,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAwC,EAAE,SAA0C;IAC3G,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE;QACjC,OAAO,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;KACvC;SAAM,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;QAC1C,OAAO,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;KACvC;SAAM;QACL,OAAO,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;KACzC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAwB,EAAE,IAAY,EAAE,YAAoB;IACrF,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IAChC,OAAO,aAAa,IAAI,CAAC,EAAE;QACzB,QAAQ,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB,EAAE,IAAI,YAAY,EAAE;YACvF,OAAO;SACR;aAAM;YACL,aAAa,EAAE,CAAC;SACjB;KACF;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,SAAiB;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { memo, useEffect, useRef } from 'react';\n\ninterface ResponsiveTextProps {\n x: number;\n y: number;\n rightSide?: boolean;\n className?: string;\n children: string;\n containerBoundaries: null | { left: number; right: number };\n}\n\nexport default memo(ResponsiveText);\n\nfunction ResponsiveText({ x, y, rightSide, className, children, containerBoundaries }: ResponsiveTextProps) {\n const actualRef = useRef<SVGTextElement>(null);\n const virtualRef = useRef<SVGTextElement>(null);\n\n // Determine the visible width of the text and if necessary truncate it until it fits.\n useEffect(() => {\n // The debouncing is necessary for visual smoothness.\n const timeoutId = setTimeout(() => {\n const groupRect = virtualRef.current!.getBoundingClientRect();\n const visibleWidth = containerBoundaries ? getVisibleWidth(groupRect, containerBoundaries) : 0;\n renderTextContent(actualRef.current!, children, visibleWidth);\n }, 25);\n return () => clearTimeout(timeoutId);\n });\n\n return (\n <>\n {/* Invisible sample text used for measurement */}\n <text\n ref={virtualRef}\n x={x}\n y={y}\n style={{ textAnchor: rightSide ? 'start' : 'end', visibility: 'hidden' }}\n aria-hidden=\"true\"\n className={className}\n >\n {children}\n </text>\n\n {/* Text node to render truncated text into */}\n <text ref={actualRef} x={x} y={y} style={{ textAnchor: rightSide ? 'start' : 'end' }} className={className}>\n {children}\n </text>\n </>\n );\n}\n\nfunction getVisibleWidth(element: { left: number; right: number }, container: { left: number; right: number }): number {\n if (element.left < container.left) {\n return element.right - container.left;\n } else if (element.right > container.right) {\n return container.right - element.left;\n } else {\n return container.right - container.left;\n }\n}\n\nfunction renderTextContent(textNode: SVGTextElement, text: string, visibleWidth: number) {\n let visibleLength = text.length;\n while (visibleLength >= 0) {\n textNode.textContent = truncateText(text, visibleLength);\n if (!textNode.getComputedTextLength || textNode.getComputedTextLength() <= visibleWidth) {\n return;\n } else {\n visibleLength--;\n }\n }\n}\n\nfunction truncateText(text: string, maxLength: number) {\n if (text.length === maxLength) {\n return text;\n }\n return text.slice(0, maxLength) + '…';\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 React, { useMemo } from 'react';
@@ -7,53 +6,50 @@ import { dimensionsBySize, refreshDimensionsBySize } from './utils';
7
6
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
8
7
  import styles from './styles.css.js';
9
8
  import clsx from 'clsx';
10
- export default function Segments(_a) {
11
- var pieData = _a.pieData, highlightedSegment = _a.highlightedSegment, size = _a.size, variant = _a.variant, focusedSegmentRef = _a.focusedSegmentRef, popoverTrackRef = _a.popoverTrackRef, segmentAriaRoleDescription = _a.segmentAriaRoleDescription, onMouseDown = _a.onMouseDown, onMouseOver = _a.onMouseOver, onMouseOut = _a.onMouseOut;
12
- var isRefresh = useVisualRefresh();
13
- var _b = useMemo(function () {
14
- var dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
15
- var radius = dimensions.outerRadius;
16
- var innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;
17
- var cornerRadius = dimensions.cornerRadius || 0;
18
- var arcFactory = arc()
9
+ export default function Segments({ pieData, highlightedSegment, size, variant, focusedSegmentRef, popoverTrackRef, segmentAriaRoleDescription, onMouseDown, onMouseOver, onMouseOut, }) {
10
+ const isRefresh = useVisualRefresh();
11
+ const { arcFactory, highlightedArcFactory } = useMemo(() => {
12
+ const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
13
+ const radius = dimensions.outerRadius;
14
+ const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;
15
+ const cornerRadius = dimensions.cornerRadius || 0;
16
+ const arcFactory = arc()
19
17
  .innerRadius(innerRadius)
20
18
  .outerRadius(radius)
21
19
  .cornerRadius(cornerRadius);
22
- var highlightedArcFactory = arc()
20
+ const highlightedArcFactory = arc()
23
21
  .innerRadius(radius + 4)
24
22
  .outerRadius(radius + 6);
25
23
  return {
26
- arcFactory: arcFactory,
27
- highlightedArcFactory: highlightedArcFactory
24
+ arcFactory,
25
+ highlightedArcFactory,
28
26
  };
29
- }, [size, variant, isRefresh]), arcFactory = _b.arcFactory, highlightedArcFactory = _b.highlightedArcFactory;
30
- var centroid = useMemo(function () {
31
- for (var _i = 0, pieData_1 = pieData; _i < pieData_1.length; _i++) {
32
- var datum = pieData_1[_i];
27
+ }, [size, variant, isRefresh]);
28
+ const centroid = useMemo(() => {
29
+ for (const datum of pieData) {
33
30
  if (datum.data.datum === highlightedSegment) {
34
- var _a = arcFactory.centroid(datum), centroidLeft = _a[0], centroidTop = _a[1];
31
+ const [centroidLeft, centroidTop] = arcFactory.centroid(datum);
35
32
  return { cx: centroidLeft, cy: centroidTop };
36
33
  }
37
34
  }
38
35
  return null;
39
36
  }, [highlightedSegment, pieData, arcFactory]);
40
- return (React.createElement("g", { onMouseLeave: function (event) { return onMouseOut(event); } },
41
- pieData.map(function (datum) {
42
- var _a;
43
- var isHighlighted = highlightedSegment === datum.data.datum;
44
- var isDimmed = highlightedSegment !== null && !isHighlighted;
45
- var arcPath = arcFactory(datum) || undefined;
46
- var highlightedPath = highlightedArcFactory(datum) || undefined;
47
- return (React.createElement("g", { key: datum.data.index, onMouseDown: function (e) {
37
+ return (React.createElement("g", { onMouseLeave: event => onMouseOut(event) },
38
+ pieData.map(datum => {
39
+ const isHighlighted = highlightedSegment === datum.data.datum;
40
+ const isDimmed = highlightedSegment !== null && !isHighlighted;
41
+ const arcPath = arcFactory(datum) || undefined;
42
+ const highlightedPath = highlightedArcFactory(datum) || undefined;
43
+ return (React.createElement("g", { key: datum.data.index, onMouseDown: e => {
48
44
  onMouseDown(datum.data);
49
45
  e.preventDefault();
50
- }, onMouseOver: function () { return onMouseOver(datum.data); }, className: clsx(styles.segment, (_a = {},
51
- _a[styles['segment--highlighted']] = isHighlighted,
52
- _a[styles['segment--dimmed']] = isDimmed,
53
- _a)), ref: isHighlighted ? focusedSegmentRef : undefined, "aria-label": "".concat(datum.data.datum.title, " (").concat(datum.data.datum.value, ")"), role: "button", "aria-roledescription": segmentAriaRoleDescription },
46
+ }, onMouseOver: () => onMouseOver(datum.data), className: clsx(styles.segment, {
47
+ [styles['segment--highlighted']]: isHighlighted,
48
+ [styles['segment--dimmed']]: isDimmed,
49
+ }), ref: isHighlighted ? focusedSegmentRef : undefined, "aria-label": `${datum.data.datum.title} (${datum.data.datum.value})`, role: "button", "aria-roledescription": segmentAriaRoleDescription },
54
50
  React.createElement("path", { d: arcPath, fill: datum.data.color, className: styles.segment__path, "aria-hidden": "true" }),
55
51
  React.createElement("path", { d: highlightedPath, fill: datum.data.color, className: clsx(styles.segment__path, styles.segment__highlight), "aria-hidden": "true" })));
56
52
  }),
57
- React.createElement("circle", __assign({}, centroid, { ref: popoverTrackRef, r: "1", opacity: "0", "aria-hidden": "true" }))));
53
+ React.createElement("circle", Object.assign({}, centroid, { ref: popoverTrackRef, r: "1", opacity: "0", "aria-hidden": "true" }))));
58
54
  }
59
55
  //# sourceMappingURL=segments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../../src/pie-chart/segments.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n size: NonNullable<PieChartProps['size']>;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n size,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const isRefresh = useVisualRefresh();\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [size, variant, isRefresh]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={segmentAriaRoleDescription}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}
1
+ {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../../src/pie-chart/segments.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useMemo } from 'react';\nimport { arc, PieArcDatum } from 'd3-shape';\n\nimport { PieChartProps } from './interfaces';\nimport { dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport { InternalChartDatum } from './pie-chart';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport clsx from 'clsx';\n\ninterface SegmentsProps<T> {\n pieData: Array<PieArcDatum<InternalChartDatum<T>>>;\n highlightedSegment: T | null;\n size: NonNullable<PieChartProps['size']>;\n variant: PieChartProps['variant'];\n focusedSegmentRef: React.RefObject<SVGGElement>;\n popoverTrackRef: React.RefObject<SVGCircleElement>;\n segmentAriaRoleDescription?: string;\n\n onMouseDown: (datum: InternalChartDatum<T>) => void;\n onMouseOver: (datum: InternalChartDatum<T>) => void;\n onMouseOut: (event: React.MouseEvent<SVGElement>) => void;\n}\n\nexport default function Segments<T extends PieChartProps.Datum>({\n pieData,\n highlightedSegment,\n size,\n variant,\n focusedSegmentRef,\n popoverTrackRef,\n segmentAriaRoleDescription,\n onMouseDown,\n onMouseOver,\n onMouseOut,\n}: SegmentsProps<T>) {\n const isRefresh = useVisualRefresh();\n\n const { arcFactory, highlightedArcFactory } = useMemo(() => {\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n const innerRadius = variant === 'pie' ? 0 : dimensions.innerRadius;\n const cornerRadius = dimensions.cornerRadius || 0;\n\n const arcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(innerRadius)\n .outerRadius(radius)\n .cornerRadius(cornerRadius);\n\n const highlightedArcFactory = arc<PieArcDatum<InternalChartDatum<any>>>()\n .innerRadius(radius + 4)\n .outerRadius(radius + 6);\n\n return {\n arcFactory,\n highlightedArcFactory,\n };\n }, [size, variant, isRefresh]);\n\n const centroid = useMemo(() => {\n for (const datum of pieData) {\n if (datum.data.datum === highlightedSegment) {\n const [centroidLeft, centroidTop] = arcFactory.centroid(datum);\n return { cx: centroidLeft, cy: centroidTop };\n }\n }\n return null;\n }, [highlightedSegment, pieData, arcFactory]);\n\n return (\n <g onMouseLeave={event => onMouseOut(event)}>\n {pieData.map(datum => {\n const isHighlighted = highlightedSegment === datum.data.datum;\n const isDimmed = highlightedSegment !== null && !isHighlighted;\n const arcPath = arcFactory(datum) || undefined;\n const highlightedPath = highlightedArcFactory(datum) || undefined;\n return (\n <g\n key={datum.data.index}\n onMouseDown={e => {\n onMouseDown(datum.data);\n e.preventDefault();\n }}\n onMouseOver={() => onMouseOver(datum.data)}\n className={clsx(styles.segment, {\n [styles['segment--highlighted']]: isHighlighted,\n [styles['segment--dimmed']]: isDimmed,\n })}\n ref={isHighlighted ? focusedSegmentRef : undefined}\n aria-label={`${datum.data.datum.title} (${datum.data.datum.value})`}\n role=\"button\"\n aria-roledescription={segmentAriaRoleDescription}\n >\n <path d={arcPath} fill={datum.data.color} className={styles.segment__path} aria-hidden=\"true\" />\n <path\n d={highlightedPath}\n fill={datum.data.color}\n className={clsx(styles.segment__path, styles.segment__highlight)}\n aria-hidden=\"true\"\n />\n </g>\n );\n })}\n\n <circle {...centroid} ref={popoverTrackRef} r=\"1\" opacity=\"0\" aria-hidden=\"true\" />\n </g>\n );\n}\n"]}