@oracle/oraclejet-preact 20.0.3 → 20.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1847) hide show
  1. package/amd/BarChart-e3c190b5.js +2 -0
  2. package/amd/BarChart-e3c190b5.js.map +1 -0
  3. package/amd/BaseCardView-16fda4c3.js +2 -0
  4. package/amd/BaseCardView-16fda4c3.js.map +1 -0
  5. package/amd/BaseDiagram-b9695479.js +2 -0
  6. package/amd/BaseDiagram-b9695479.js.map +1 -0
  7. package/amd/ButtonSetButton-ded680bb.js +2 -0
  8. package/amd/ButtonSetButton-ded680bb.js.map +1 -0
  9. package/amd/ButtonSetIconButton-c4dcbd9a.js +2 -0
  10. package/amd/ButtonSetIconButton-c4dcbd9a.js.map +1 -0
  11. package/amd/ButtonSetItem-4d644b7d.js +2 -0
  12. package/amd/ButtonSetItem-4d644b7d.js.map +1 -0
  13. package/amd/CardFlexView-d3eb7373.js +2 -0
  14. package/amd/CardFlexView-d3eb7373.js.map +1 -0
  15. package/amd/CardGridView-842f70cd.js +2 -0
  16. package/amd/CardGridView-842f70cd.js.map +1 -0
  17. package/amd/Chart-00a1b01f.js +2 -0
  18. package/amd/Chart-00a1b01f.js.map +1 -0
  19. package/amd/ComboChart-36e22cb8.js +2 -0
  20. package/amd/ComboChart-36e22cb8.js.map +1 -0
  21. package/amd/ContainerDiagram-6f41a26a.js +2 -0
  22. package/amd/ContainerDiagram-6f41a26a.js.map +1 -0
  23. package/amd/DatePicker-cf0e3fcd.js +2 -0
  24. package/amd/DatePicker-cf0e3fcd.js.map +1 -0
  25. package/amd/DatePickerHeader-406aa5c6.js +2 -0
  26. package/amd/DatePickerHeader-406aa5c6.js.map +1 -0
  27. package/amd/Diagram-6072b867.js +2 -0
  28. package/amd/Diagram-6072b867.js.map +1 -0
  29. package/amd/Dropdown-7cc463f6.js +2 -0
  30. package/amd/Dropdown-7cc463f6.js.map +1 -0
  31. package/amd/IconMenuButton-ec28ecfb.js +2 -0
  32. package/amd/IconMenuButton-ec28ecfb.js.map +1 -0
  33. package/amd/IconSwitchButton-28f4854a.js +2 -0
  34. package/amd/IconSwitchButton-28f4854a.js.map +1 -0
  35. package/amd/IconToggleButton-56035aa0.js +2 -0
  36. package/amd/IconToggleButton-56035aa0.js.map +1 -0
  37. package/amd/InlineSelectSingle-a1c1f520.js +2 -0
  38. package/amd/InlineSelectSingle-a1c1f520.js.map +1 -0
  39. package/amd/InputColor-bde91b03.js +2 -0
  40. package/amd/InputColor-bde91b03.js.map +1 -0
  41. package/amd/InputDatePicker-3351af0f.js +2 -0
  42. package/amd/InputDatePicker-3351af0f.js.map +1 -0
  43. package/amd/InputPassword-59369c13.js +2 -0
  44. package/amd/InputPassword-59369c13.js.map +1 -0
  45. package/amd/InputSensitiveText-ad79acc4.js +2 -0
  46. package/amd/InputSensitiveText-ad79acc4.js.map +1 -0
  47. package/amd/Legend-482f99eb.js +2 -0
  48. package/amd/Legend-482f99eb.js.map +1 -0
  49. package/amd/LineAreaChart-6f5dabc1.js +2 -0
  50. package/amd/LineAreaChart-6f5dabc1.js.map +1 -0
  51. package/amd/Link-20f7e72d.js +2 -0
  52. package/amd/Link-20f7e72d.js.map +1 -0
  53. package/amd/LinkVariants.styles.css +0 -1
  54. package/amd/LinkVariants.styles2.css +0 -1
  55. package/amd/ListView-dfbd3f41.js +2 -0
  56. package/amd/ListView-dfbd3f41.js.map +1 -0
  57. package/amd/Menu-0c8295f2.js +2 -0
  58. package/amd/Menu-0c8295f2.js.map +1 -0
  59. package/amd/MenuButton-1fbc486e.js +2 -0
  60. package/amd/MenuButton-1fbc486e.js.map +1 -0
  61. package/amd/MenuItem-f3de5e35.js +2 -0
  62. package/amd/MenuItem-f3de5e35.js.map +1 -0
  63. package/amd/MonthView-effa60a5.js +2 -0
  64. package/amd/MonthView-effa60a5.js.map +1 -0
  65. package/amd/NavigationListItem-0e162c3e.js +2 -0
  66. package/amd/NavigationListItem-0e162c3e.js.map +1 -0
  67. package/amd/NavigationListLinkItem-161049bb.js +2 -0
  68. package/amd/NavigationListLinkItem-161049bb.js.map +1 -0
  69. package/amd/OverflowTabBar-aa6557e2.js +2 -0
  70. package/amd/OverflowTabBar-aa6557e2.js.map +1 -0
  71. package/amd/OverflowTabBarItem-f05a778f.js +2 -0
  72. package/amd/OverflowTabBarItem-f05a778f.js.map +1 -0
  73. package/amd/PRIVATE_BaseCardView.js +1 -1
  74. package/amd/PRIVATE_BaseDiagram.js +1 -1
  75. package/amd/PRIVATE_Chart.js +1 -1
  76. package/amd/PRIVATE_DatePickerHeader.js +1 -1
  77. package/amd/PRIVATE_FormControls.js +1 -1
  78. package/amd/PRIVATE_IconSwitchButton.js +1 -1
  79. package/amd/PRIVATE_MonthView.js +1 -1
  80. package/amd/PRIVATE_MonthYearGridView.js +1 -1
  81. package/amd/PRIVATE_RevealToggleIcon.js +1 -1
  82. package/amd/PRIVATE_SelectCommon.js +1 -1
  83. package/amd/PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js +1 -1
  84. package/amd/PRIVATE_StyledDatePickerButton.js +1 -1
  85. package/amd/PRIVATE_Table.js +1 -1
  86. package/amd/PRIVATE_TableList.js +1 -1
  87. package/amd/PRIVATE_TruncatingLink.js +1 -1
  88. package/amd/PictoChart-c303675a.js +2 -0
  89. package/amd/PictoChart-c303675a.js.map +1 -0
  90. package/amd/PieChart-df15d363.js +2 -0
  91. package/amd/PieChart-df15d363.js.map +1 -0
  92. package/amd/RemovableNavigationListItem-e298c5de.js +2 -0
  93. package/amd/RemovableNavigationListItem-e298c5de.js.map +1 -0
  94. package/amd/ReorderableTabBar-e82d2982.js +2 -0
  95. package/amd/ReorderableTabBar-e82d2982.js.map +1 -0
  96. package/amd/RevealToggleIcon-be164a7b.js +2 -0
  97. package/amd/RevealToggleIcon-be164a7b.js.map +1 -0
  98. package/amd/ScatterChart-88bc2872.js +2 -0
  99. package/amd/ScatterChart-88bc2872.js.map +1 -0
  100. package/amd/SectionalLegend-3bae380b.js +2 -0
  101. package/amd/SectionalLegend-3bae380b.js.map +1 -0
  102. package/amd/SectionedContent-878a2df1.js +2 -0
  103. package/amd/SectionedContent-878a2df1.js.map +1 -0
  104. package/amd/SelectMenuItem-5bd09f45.js +2 -0
  105. package/amd/SelectMenuItem-5bd09f45.js.map +1 -0
  106. package/amd/SelectMobileFieldInput-d8be9c82.js +2 -0
  107. package/amd/SelectMobileFieldInput-d8be9c82.js.map +1 -0
  108. package/amd/SelectMultiple-467c640d.js +2 -0
  109. package/amd/SelectMultiple-467c640d.js.map +1 -0
  110. package/amd/SelectSingle-a600e403.js +2 -0
  111. package/amd/SelectSingle-a600e403.js.map +1 -0
  112. package/amd/SplitMenuButton-42f95b11.js +2 -0
  113. package/amd/SplitMenuButton-42f95b11.js.map +1 -0
  114. package/amd/StyledDatePickerButton-416ddc14.js +2 -0
  115. package/amd/StyledDatePickerButton-416ddc14.js.map +1 -0
  116. package/amd/StyledDatePickerButtonStyles.styles.css +18 -12
  117. package/amd/Submenu-f8ab8c2e.js +2 -0
  118. package/amd/Submenu-f8ab8c2e.js.map +1 -0
  119. package/amd/TabBar-61d65c39.js +2 -0
  120. package/amd/TabBar-61d65c39.js.map +1 -0
  121. package/amd/TabBarContextMenu-6977866c.js +2 -0
  122. package/amd/TabBarContextMenu-6977866c.js.map +1 -0
  123. package/amd/TabBarMixed-092116bd.js +2 -0
  124. package/amd/TabBarMixed-092116bd.js.map +1 -0
  125. package/amd/Table-225ba4db.js +2 -0
  126. package/amd/Table-225ba4db.js.map +1 -0
  127. package/amd/TableView-f7990126.js +2 -0
  128. package/amd/TableView-f7990126.js.map +1 -0
  129. package/amd/TagCloud-69af60c1.js +2 -0
  130. package/amd/TagCloud-69af60c1.js.map +1 -0
  131. package/amd/Theme-redwood/theme.css +178 -178
  132. package/amd/Theme-stable/theme.css +351 -351
  133. package/amd/ToggleButton-c9e433d4.js +2 -0
  134. package/amd/ToggleButton-c9e433d4.js.map +1 -0
  135. package/amd/ToggleButtonLabel-367494b8.js +2 -0
  136. package/amd/ToggleButtonLabel-367494b8.js.map +1 -0
  137. package/amd/TruncatingLink-2e947915.js +2 -0
  138. package/amd/TruncatingLink-2e947915.js.map +1 -0
  139. package/amd/UNSAFE_BarChart/__test__/BarChart.spec.js +1 -1
  140. package/amd/UNSAFE_BarChart.js +1 -1
  141. package/amd/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
  142. package/amd/UNSAFE_ButtonSetButton.js +1 -1
  143. package/amd/UNSAFE_ButtonSetIconButton.js +1 -1
  144. package/amd/UNSAFE_ButtonSetItem.js +1 -1
  145. package/amd/UNSAFE_CardFlexView.js +1 -1
  146. package/amd/UNSAFE_CardGridView.js +1 -1
  147. package/amd/UNSAFE_ComboChart.js +1 -1
  148. package/amd/UNSAFE_ContainerDiagram.js +1 -1
  149. package/amd/UNSAFE_DatePicker.js +1 -1
  150. package/amd/UNSAFE_Diagram.js +1 -1
  151. package/amd/UNSAFE_Dropdown.js +1 -1
  152. package/amd/UNSAFE_IconMenuButton.js +1 -1
  153. package/amd/UNSAFE_IconToggleButton.js +1 -1
  154. package/amd/UNSAFE_InlineSelectSingle.js +1 -1
  155. package/amd/UNSAFE_InputColor.js +1 -1
  156. package/amd/UNSAFE_InputDatePicker.js +1 -1
  157. package/amd/UNSAFE_InputPassword.js +1 -1
  158. package/amd/UNSAFE_InputSensitiveText.js +1 -1
  159. package/amd/UNSAFE_LabelledLink.js +1 -1
  160. package/amd/UNSAFE_LabelledLink.js.map +1 -1
  161. package/amd/UNSAFE_Legend.js +1 -1
  162. package/amd/UNSAFE_LineAreaChart.js +1 -1
  163. package/amd/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  164. package/amd/UNSAFE_Link.js +1 -1
  165. package/amd/UNSAFE_ListView.js +1 -1
  166. package/amd/UNSAFE_Menu.js +1 -1
  167. package/amd/UNSAFE_MenuButton.js +1 -1
  168. package/amd/UNSAFE_NavigationList.js +1 -1
  169. package/amd/UNSAFE_NavigationListCommon.js +1 -1
  170. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  171. package/amd/UNSAFE_PictoChart.js +1 -1
  172. package/amd/UNSAFE_PieChart/__test__/PieChart.spec.js +1 -1
  173. package/amd/UNSAFE_PieChart.js +1 -1
  174. package/amd/UNSAFE_ReorderableTabBar.js +1 -1
  175. package/amd/UNSAFE_ScatterChart.js +1 -1
  176. package/amd/UNSAFE_SectionalLegend.js +1 -1
  177. package/amd/UNSAFE_SelectMultiple.js +1 -1
  178. package/amd/UNSAFE_SelectSingle.js +1 -1
  179. package/amd/UNSAFE_SplitMenuButton.js +1 -1
  180. package/amd/UNSAFE_TabBar.js +1 -1
  181. package/amd/UNSAFE_TabBarCommon.js +1 -1
  182. package/amd/UNSAFE_TabBarMixed.js +1 -1
  183. package/amd/UNSAFE_TableView.js +1 -1
  184. package/amd/UNSAFE_TagCloud.js +1 -1
  185. package/amd/UNSAFE_ToggleButton.js +1 -1
  186. package/amd/UNSAFE_ToggleButtonLabel.js +1 -1
  187. package/amd/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
  188. package/amd/YearsGridView-09b45b4e.js +2 -0
  189. package/amd/YearsGridView-09b45b4e.js.map +1 -0
  190. package/amd/hooks/PRIVATE_useChartContextMenu.js +1 -1
  191. package/amd/hooks/PRIVATE_useChartMarquee.js +1 -1
  192. package/amd/hooks/PRIVATE_useMiddleEllipsis.js +2 -0
  193. package/amd/hooks/PRIVATE_useMiddleEllipsis.js.map +1 -0
  194. package/amd/hooks/PRIVATE_useTabBar.js +1 -1
  195. package/amd/hooks/PRIVATE_useVisContextMenu.js +1 -1
  196. package/amd/hooks/PRIVATE_useVisDragModeControls.js +1 -1
  197. package/amd/listViewSelectionTests-e7898c59.js +2 -0
  198. package/amd/listViewSelectionTests-e7898c59.js.map +1 -0
  199. package/amd/useChartContextMenu-9abf418f.js +2 -0
  200. package/amd/useChartContextMenu-9abf418f.js.map +1 -0
  201. package/amd/useChartMarquee-ec70d86c.js +2 -0
  202. package/amd/useChartMarquee-ec70d86c.js.map +1 -0
  203. package/amd/useContextMenu-49bd8ffb.js +2 -0
  204. package/amd/useContextMenu-49bd8ffb.js.map +1 -0
  205. package/amd/useDisplayValue-8b0c1851.js +2 -0
  206. package/amd/useDisplayValue-8b0c1851.js.map +1 -0
  207. package/amd/useLegendContextMenu-90023a78.js +2 -0
  208. package/amd/useLegendContextMenu-90023a78.js.map +1 -0
  209. package/amd/useMiddleEllipsis-9ade43e6.js +2 -0
  210. package/amd/useMiddleEllipsis-9ade43e6.js.map +1 -0
  211. package/amd/useSelectCommon-af642fe7.js +2 -0
  212. package/amd/useSelectCommon-af642fe7.js.map +1 -0
  213. package/amd/useTabBar-430d9e32.js +2 -0
  214. package/amd/useTabBar-430d9e32.js.map +1 -0
  215. package/amd/useVisDragModeControls-c1d2abc6.js +2 -0
  216. package/amd/useVisDragModeControls-c1d2abc6.js.map +1 -0
  217. package/cjs/BaseButton-15b86552.js +86 -0
  218. package/cjs/BaseButton-15b86552.js.map +1 -0
  219. package/cjs/BaseCardView-ba63723a.js +6 -6
  220. package/cjs/BaseDiagram-576c2a13.js +2956 -0
  221. package/cjs/BaseDiagram-576c2a13.js.map +1 -0
  222. package/cjs/BaseRichSelection-c7cad1af.js +9 -9
  223. package/cjs/BaseSelector-2dc69917.js +1 -1
  224. package/cjs/BaseSwatchView-76da473f.js +2 -2
  225. package/cjs/Button-d79df225.js +24 -0
  226. package/cjs/Button-d79df225.js.map +1 -0
  227. package/cjs/ButtonSet-ed013090.js +2 -2
  228. package/cjs/ButtonSetButton-a7384fb3.js +35 -0
  229. package/cjs/ButtonSetButton-a7384fb3.js.map +1 -0
  230. package/cjs/ButtonSetIconButton-345ead86.js +40 -0
  231. package/cjs/ButtonSetIconButton-345ead86.js.map +1 -0
  232. package/cjs/ButtonSetItem-1f2f6742.js +67 -0
  233. package/cjs/ButtonSetItem-1f2f6742.js.map +1 -0
  234. package/cjs/Center-a23cf0cd.js +18 -0
  235. package/cjs/Center-a23cf0cd.js.map +1 -0
  236. package/cjs/Chart-3360191e.js +754 -0
  237. package/cjs/Chart-3360191e.js.map +1 -0
  238. package/cjs/CheckboxControl-d37c7764.js +6 -6
  239. package/cjs/CheckboxRadioField-24e06523.js +6 -6
  240. package/cjs/CheckboxRadioLabelValueLayout-0ed43779.js +1 -1
  241. package/cjs/CheckboxSetContext-c62db26d.js +12 -0
  242. package/cjs/CheckboxSetContext-c62db26d.js.map +1 -0
  243. package/cjs/Chip-b2dd59ed.js +1 -1
  244. package/cjs/ClearIcon-f61fc0b9.js +1 -1
  245. package/cjs/CollapseIcon-9fbe13a9.js +1 -1
  246. package/cjs/Collapsible-9315585f.js +2 -2
  247. package/cjs/ColorPalette-9f041744.js +83 -0
  248. package/cjs/ColorPalette-9f041744.js.map +1 -0
  249. package/cjs/ColorPicker-24ca67b6.js +25 -0
  250. package/cjs/ColorPicker-24ca67b6.js.map +1 -0
  251. package/cjs/ColorSwatch-cddebd6b.js +4 -4
  252. package/cjs/CompactLabelAssistance-f7b3b814.js +95 -0
  253. package/cjs/CompactLabelAssistance-f7b3b814.js.map +1 -0
  254. package/cjs/CompactUserAssistance-a5f1bb2b.js +5 -5
  255. package/cjs/ComponentMessageContainer-b692adf3.js +4 -4
  256. package/cjs/DatePicker-c4d49200.js +601 -0
  257. package/cjs/DatePicker-c4d49200.js.map +1 -0
  258. package/cjs/DatePickerHeader-9bcd2308.js +48 -0
  259. package/cjs/DatePickerHeader-9bcd2308.js.map +1 -0
  260. package/cjs/Dialog-871d9a7c.js +389 -0
  261. package/cjs/Dialog-871d9a7c.js.map +1 -0
  262. package/cjs/DirectionalCollapseArrowIcon-392d6599.js +1 -1
  263. package/cjs/DirectionalExpandArrowIcon-ff9f6f78.js +1 -1
  264. package/cjs/Dropdown-b73f547b.js +337 -0
  265. package/cjs/Dropdown-b73f547b.js.map +1 -0
  266. package/cjs/EmbeddedIconButton-f2e69758.js +13 -0
  267. package/cjs/EmbeddedIconButton-f2e69758.js.map +1 -0
  268. package/cjs/EnvironmentProvider-932667b2.js +61 -0
  269. package/cjs/EnvironmentProvider-932667b2.js.map +1 -0
  270. package/cjs/Expander-f4c574e5.js +1 -1
  271. package/cjs/Flex-ec48072d.js +32 -0
  272. package/cjs/Flex-ec48072d.js.map +1 -0
  273. package/cjs/Floating-de219e52.js +467 -0
  274. package/cjs/Floating-de219e52.js.map +1 -0
  275. package/cjs/Grid-156807d4.js +29 -0
  276. package/cjs/Grid-156807d4.js.map +1 -0
  277. package/cjs/GroupLoadingIndicator-7e035ba2.js +1 -1
  278. package/cjs/HighlightText-93f2fea0.js +33 -0
  279. package/cjs/HighlightText-93f2fea0.js.map +1 -0
  280. package/cjs/Icon-56789beb.js +3 -3
  281. package/cjs/IconButton-7503293b.js +4 -4
  282. package/cjs/IconSwitchButton-550d6ced.js +44 -0
  283. package/cjs/IconSwitchButton-550d6ced.js.map +1 -0
  284. package/cjs/IconToggleButton-b7a72539.js +43 -0
  285. package/cjs/IconToggleButton-b7a72539.js.map +1 -0
  286. package/cjs/IconUserAssistance-848c227c.js +76 -0
  287. package/cjs/IconUserAssistance-848c227c.js.map +1 -0
  288. package/cjs/InlineHelp-2add2d34.js +1 -1
  289. package/cjs/InlineUserAssistance-cfaa3d3e.js +5 -5
  290. package/cjs/InputDateMask-c7baadd4.js +7 -7
  291. package/cjs/Label-eb654b0e.js +8 -8
  292. package/cjs/LabelValueLayout-d67109b3.js +1 -1
  293. package/cjs/Layer-06e11b9c.js +94 -0
  294. package/cjs/Layer-06e11b9c.js.map +1 -0
  295. package/cjs/LayerHost-21391a0d.js +46 -0
  296. package/cjs/LayerHost-21391a0d.js.map +1 -0
  297. package/cjs/LayerManager-fd7f4d2f.js +36 -0
  298. package/cjs/LayerManager-fd7f4d2f.js.map +1 -0
  299. package/cjs/Link-f8403e9f.js +35 -0
  300. package/cjs/Link-f8403e9f.js.map +1 -0
  301. package/cjs/LinkVariants.styles.css +0 -1
  302. package/cjs/LinkVariants.styles2.css +0 -1
  303. package/cjs/List-afcfa338.js +5 -5
  304. package/cjs/LiveRegion-60535481.js +41 -0
  305. package/cjs/LiveRegion-60535481.js.map +1 -0
  306. package/cjs/MaxLengthLiveRegion-82e6c492.js +28 -0
  307. package/cjs/MaxLengthLiveRegion-82e6c492.js.map +1 -0
  308. package/cjs/Message-258e59da.js +2 -2
  309. package/cjs/MessageLayer-a18a7c26.js +61 -0
  310. package/cjs/MessageLayer-a18a7c26.js.map +1 -0
  311. package/cjs/MessagesManager-cba4bc60.js +3 -3
  312. package/cjs/Modal-b751b643.js +3 -3
  313. package/cjs/MonthView-25653876.js +231 -0
  314. package/cjs/MonthView-25653876.js.map +1 -0
  315. package/cjs/NavigationListItem-ef597eb9.js +312 -0
  316. package/cjs/NavigationListItem-ef597eb9.js.map +1 -0
  317. package/cjs/NavigationListLinkItem-62c3912e.js +237 -0
  318. package/cjs/NavigationListLinkItem-62c3912e.js.map +1 -0
  319. package/cjs/NumberInputText-36164d46.js +6 -6
  320. package/cjs/OverflowTabBarItem-4053a20b.js +262 -0
  321. package/cjs/OverflowTabBarItem-4053a20b.js.map +1 -0
  322. package/cjs/PRIVATE_BaseCardView.js +22 -22
  323. package/cjs/PRIVATE_BaseDiagram.js +38 -38
  324. package/cjs/PRIVATE_BaseSelector.js +17 -17
  325. package/cjs/PRIVATE_BaseSwatchView.js +18 -18
  326. package/cjs/PRIVATE_Chart.js +48 -48
  327. package/cjs/PRIVATE_CheckboxControl.js +25 -25
  328. package/cjs/PRIVATE_CheckboxRadioField.js +27 -27
  329. package/cjs/PRIVATE_ClearIcon.js +18 -18
  330. package/cjs/PRIVATE_CollapsibleNavigationList.js +20 -20
  331. package/cjs/PRIVATE_DatePickerHeader.js +23 -23
  332. package/cjs/PRIVATE_DatePickerLayout.js +4 -4
  333. package/cjs/PRIVATE_EmbeddedIconButton.js +6 -6
  334. package/cjs/PRIVATE_Expander.js +19 -19
  335. package/cjs/PRIVATE_FormControls.js +21 -21
  336. package/cjs/PRIVATE_IconSwitchButton.js +19 -19
  337. package/cjs/PRIVATE_Icons/CheckboxCrossed.js +16 -16
  338. package/cjs/PRIVATE_Icons/CheckboxMixed.js +16 -16
  339. package/cjs/PRIVATE_Icons/CheckboxOff.js +16 -16
  340. package/cjs/PRIVATE_Icons/CheckboxOn.js +16 -16
  341. package/cjs/PRIVATE_Icons/DragV.js +16 -16
  342. package/cjs/PRIVATE_Icons/None.js +16 -16
  343. package/cjs/PRIVATE_List.js +21 -21
  344. package/cjs/PRIVATE_Message.js +20 -20
  345. package/cjs/PRIVATE_MessageLayer.js +12 -12
  346. package/cjs/PRIVATE_MonthView.js +81 -8
  347. package/cjs/PRIVATE_MonthView.js.map +1 -1
  348. package/cjs/PRIVATE_MonthYearGridView.js +8 -8
  349. package/cjs/PRIVATE_PlotArea.js +5 -5
  350. package/cjs/PRIVATE_RevealToggleIcon.js +21 -21
  351. package/cjs/PRIVATE_RichSelectionCommon.js +28 -28
  352. package/cjs/PRIVATE_SelectCommon.js +34 -34
  353. package/cjs/PRIVATE_StyledCard.js +3 -3
  354. package/cjs/PRIVATE_StyledCheckbox.js +16 -16
  355. package/cjs/PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js +1 -1
  356. package/cjs/PRIVATE_StyledDatePickerButton.js +1 -1
  357. package/cjs/PRIVATE_StyledSwitch.js +4 -4
  358. package/cjs/PRIVATE_SwatchFlexView.js +18 -18
  359. package/cjs/PRIVATE_Table.js +38 -38
  360. package/cjs/PRIVATE_TableDisplay.js +19 -19
  361. package/cjs/PRIVATE_TableList.js +27 -27
  362. package/cjs/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
  363. package/cjs/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
  364. package/cjs/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
  365. package/cjs/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
  366. package/cjs/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
  367. package/cjs/PRIVATE_ThemedIcons/CheckboxCrossedIcon.js +16 -16
  368. package/cjs/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
  369. package/cjs/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
  370. package/cjs/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
  371. package/cjs/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
  372. package/cjs/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
  373. package/cjs/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
  374. package/cjs/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
  375. package/cjs/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
  376. package/cjs/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
  377. package/cjs/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
  378. package/cjs/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
  379. package/cjs/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
  380. package/cjs/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
  381. package/cjs/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
  382. package/cjs/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
  383. package/cjs/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
  384. package/cjs/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
  385. package/cjs/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
  386. package/cjs/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
  387. package/cjs/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
  388. package/cjs/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
  389. package/cjs/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
  390. package/cjs/PRIVATE_ThemedIcons/None.js +16 -16
  391. package/cjs/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
  392. package/cjs/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
  393. package/cjs/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
  394. package/cjs/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
  395. package/cjs/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
  396. package/cjs/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
  397. package/cjs/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
  398. package/cjs/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
  399. package/cjs/PRIVATE_TimeComponent.js +19 -19
  400. package/cjs/PRIVATE_TruncatingLink.js +20 -17
  401. package/cjs/PRIVATE_TruncatingLink.js.map +1 -1
  402. package/cjs/PRIVATE_VisOverview.js +16 -16
  403. package/cjs/PRIVATE_VisStatusMessage.js +5 -5
  404. package/cjs/PRIVATE_VisTabularDatatip.js +4 -4
  405. package/cjs/Popup-6de390dd.js +300 -0
  406. package/cjs/Popup-6de390dd.js.map +1 -0
  407. package/cjs/ProgressButtonLabelLayout-2e429893.js +3 -3
  408. package/cjs/ProgressCircle-f9c43168.js +50 -0
  409. package/cjs/ProgressCircle-f9c43168.js.map +1 -0
  410. package/cjs/RadioItem-c74ac827.js +6 -6
  411. package/cjs/ReadonlyTextFieldInput-60965d77.js +1 -1
  412. package/cjs/ReferenceLineArea-d00d2b33.js +592 -0
  413. package/cjs/ReferenceLineArea-d00d2b33.js.map +1 -0
  414. package/cjs/RevealToggleIcon-6a86726c.js +28 -0
  415. package/cjs/RevealToggleIcon-6a86726c.js.map +1 -0
  416. package/cjs/SectionedContent-463bf70e.js +68 -0
  417. package/cjs/SectionedContent-463bf70e.js.map +1 -0
  418. package/cjs/SelectMenuGroupContext-002c9144.js +563 -0
  419. package/cjs/SelectMenuGroupContext-002c9144.js.map +1 -0
  420. package/cjs/SelectMobileFieldInput-2adf002d.js +248 -0
  421. package/cjs/SelectMobileFieldInput-2adf002d.js.map +1 -0
  422. package/cjs/SelectorAll-2905a1c9.js +53 -0
  423. package/cjs/SelectorAll-2905a1c9.js.map +1 -0
  424. package/cjs/Sheet-1d6e8cf8.js +2 -2
  425. package/cjs/SortControl-8c15705b.js +3 -3
  426. package/cjs/StyledCard-13c323e4.js +1 -1
  427. package/cjs/StyledDatePickerButton-f20c0596.js +34 -0
  428. package/cjs/StyledDatePickerButton-f20c0596.js.map +1 -0
  429. package/cjs/StyledDatePickerButtonStyles.styles.css +18 -12
  430. package/cjs/StyledLabelValueLayout-3ee66ef1.js +22 -0
  431. package/cjs/StyledLabelValueLayout-3ee66ef1.js.map +1 -0
  432. package/cjs/StyledSwitch-17127a03.js +2 -2
  433. package/cjs/StyledTextField-7839c90d.js +5 -5
  434. package/cjs/Submenu-fb652ff4.js +251 -0
  435. package/cjs/Submenu-fb652ff4.js.map +1 -0
  436. package/cjs/TabBar-1e6a97b5.js +73 -0
  437. package/cjs/TabBar-1e6a97b5.js.map +1 -0
  438. package/cjs/TabBarContextMenu-f7acee3d.js +102 -0
  439. package/cjs/TabBarContextMenu-f7acee3d.js.map +1 -0
  440. package/cjs/TabBarLayout-ca8af14b.js +1 -1
  441. package/cjs/TabBarLinkItem-8f54f16d.js +15 -0
  442. package/cjs/TabBarLinkItem-8f54f16d.js.map +1 -0
  443. package/cjs/Table-daa93733.js +4114 -0
  444. package/cjs/Table-daa93733.js.map +1 -0
  445. package/cjs/TableColGroup-b7e1e296.js +1 -1
  446. package/cjs/TextArea-85d34b3e.js +229 -0
  447. package/cjs/TextArea-85d34b3e.js.map +1 -0
  448. package/cjs/TextField-5c164264.js +3 -3
  449. package/cjs/Theme-redwood/theme.css +145 -145
  450. package/cjs/Theme-stable/theme.css +138 -138
  451. package/cjs/TimeComponentCanvas2D-baa58795.js +6 -6
  452. package/cjs/ToggleButton-0ec0c75b.js +30 -0
  453. package/cjs/ToggleButton-0ec0c75b.js.map +1 -0
  454. package/cjs/ToggleButtonLabel-ce19879c.js +77 -0
  455. package/cjs/ToggleButtonLabel-ce19879c.js.map +1 -0
  456. package/cjs/TruncatingLink-f6a80ee5.js +95 -0
  457. package/cjs/TruncatingLink-f6a80ee5.js.map +1 -0
  458. package/cjs/TruncatingText-ac1f6793.js +1 -1
  459. package/cjs/UNSAFE_AccordionItemMultiple.js +18 -18
  460. package/cjs/UNSAFE_AccordionItemSingle.js +18 -18
  461. package/cjs/UNSAFE_ActionCard.js +2 -2
  462. package/cjs/UNSAFE_BarChart.js +49 -49
  463. package/cjs/UNSAFE_BareButton.js +2 -2
  464. package/cjs/UNSAFE_BaseButton.js +5 -5
  465. package/cjs/UNSAFE_Button.js +6 -6
  466. package/cjs/UNSAFE_ButtonSet.js +4 -4
  467. package/cjs/UNSAFE_ButtonSetButton.js +7 -7
  468. package/cjs/UNSAFE_ButtonSetIconButton.js +19 -19
  469. package/cjs/UNSAFE_ButtonSetItem.js +22 -22
  470. package/cjs/UNSAFE_ButtonSetMultiple.js +4 -4
  471. package/cjs/UNSAFE_ButtonSetSingle.js +4 -4
  472. package/cjs/UNSAFE_Card.js +3 -3
  473. package/cjs/UNSAFE_CardFlexView.js +22 -22
  474. package/cjs/UNSAFE_CardGridView.js +22 -22
  475. package/cjs/UNSAFE_Center.js +5 -5
  476. package/cjs/UNSAFE_Checkbox.js +25 -25
  477. package/cjs/UNSAFE_CheckboxItem.js +71 -132
  478. package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
  479. package/cjs/UNSAFE_CheckboxRadioField.js +4 -4
  480. package/cjs/UNSAFE_CheckboxSet.js +75 -46
  481. package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
  482. package/cjs/UNSAFE_Chip.js +2 -2
  483. package/cjs/UNSAFE_Collapsible.js +18 -18
  484. package/cjs/UNSAFE_ColorPalette.js +95 -95
  485. package/cjs/UNSAFE_ColorPicker.js +77 -77
  486. package/cjs/UNSAFE_ColorSwatch.js +17 -17
  487. package/cjs/UNSAFE_ComboChart.js +49 -49
  488. package/cjs/UNSAFE_ComponentMessage.js +20 -20
  489. package/cjs/UNSAFE_ContainerDiagram.js +38 -38
  490. package/cjs/UNSAFE_ConveyorBelt.js +18 -18
  491. package/cjs/UNSAFE_DatePicker.js +54 -31
  492. package/cjs/UNSAFE_DatePicker.js.map +1 -1
  493. package/cjs/UNSAFE_Diagram.js +38 -38
  494. package/cjs/UNSAFE_Dialog.js +22 -22
  495. package/cjs/UNSAFE_DragHandle.js +17 -17
  496. package/cjs/UNSAFE_DrawerLayout.js +12 -12
  497. package/cjs/UNSAFE_DrawerPopup.js +11 -11
  498. package/cjs/UNSAFE_Dropdown.js +15 -15
  499. package/cjs/UNSAFE_Environment.js +4 -4
  500. package/cjs/UNSAFE_ExpandableList.js +25 -25
  501. package/cjs/UNSAFE_FilePicker.js +4 -4
  502. package/cjs/UNSAFE_FlatTreeView.js +25 -25
  503. package/cjs/UNSAFE_Flex.js +4 -4
  504. package/cjs/UNSAFE_Floating.js +11 -11
  505. package/cjs/UNSAFE_FormLayout.js +2 -2
  506. package/cjs/UNSAFE_Gantt.js +23 -23
  507. package/cjs/UNSAFE_Grid.js +4 -4
  508. package/cjs/UNSAFE_HighlightText.js +4 -4
  509. package/cjs/UNSAFE_Icon.js +16 -16
  510. package/cjs/UNSAFE_IconButton.js +17 -17
  511. package/cjs/UNSAFE_IconMenuButton.js +26 -26
  512. package/cjs/UNSAFE_IconProgressButton.js +21 -21
  513. package/cjs/UNSAFE_IconToggleButton.js +19 -19
  514. package/cjs/UNSAFE_Indexer.js +19 -19
  515. package/cjs/UNSAFE_InlineSelectSingle.js +34 -34
  516. package/cjs/UNSAFE_InputColor.js +42 -42
  517. package/cjs/UNSAFE_InputDateMask.js +26 -26
  518. package/cjs/UNSAFE_InputDatePicker.js +149 -127
  519. package/cjs/UNSAFE_InputDatePicker.js.map +1 -1
  520. package/cjs/UNSAFE_InputPassword.js +29 -29
  521. package/cjs/UNSAFE_InputSensitiveText.js +30 -30
  522. package/cjs/UNSAFE_InputText.js +28 -28
  523. package/cjs/UNSAFE_InputTimeMask.js +26 -26
  524. package/cjs/UNSAFE_Label.js +25 -25
  525. package/cjs/UNSAFE_LabelValueLayout.js +4 -4
  526. package/cjs/UNSAFE_LabelledLink.js +36 -31
  527. package/cjs/UNSAFE_LabelledLink.js.map +1 -1
  528. package/cjs/UNSAFE_Layer.js +8 -8
  529. package/cjs/UNSAFE_Legend.js +30 -30
  530. package/cjs/UNSAFE_LineAreaChart.js +49 -49
  531. package/cjs/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  532. package/cjs/UNSAFE_Link.js +3 -3
  533. package/cjs/UNSAFE_ListItemLayout.js +4 -4
  534. package/cjs/UNSAFE_ListView.js +29 -29
  535. package/cjs/UNSAFE_LiveRegion.js +4 -4
  536. package/cjs/UNSAFE_Menu.js +28 -28
  537. package/cjs/UNSAFE_MenuButton.js +26 -26
  538. package/cjs/UNSAFE_MessageBanner.js +20 -20
  539. package/cjs/UNSAFE_MessageToast.js +22 -22
  540. package/cjs/UNSAFE_MeterBar.js +16 -16
  541. package/cjs/UNSAFE_MeterCircle.js +17 -17
  542. package/cjs/UNSAFE_Modal.js +8 -8
  543. package/cjs/UNSAFE_NavigationList.js +38 -40
  544. package/cjs/UNSAFE_NavigationList.js.map +1 -1
  545. package/cjs/UNSAFE_NavigationListCommon.js +33 -34
  546. package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
  547. package/cjs/UNSAFE_NumberInputText.js +28 -28
  548. package/cjs/UNSAFE_OverflowTabBar.js +85 -88
  549. package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
  550. package/cjs/UNSAFE_PictoChart.js +27 -27
  551. package/cjs/UNSAFE_PieChart.js +28 -28
  552. package/cjs/UNSAFE_Popup.js +18 -18
  553. package/cjs/UNSAFE_ProgressBar.js +4 -4
  554. package/cjs/UNSAFE_ProgressButton.js +21 -21
  555. package/cjs/UNSAFE_ProgressButtonLabelLayout.js +10 -10
  556. package/cjs/UNSAFE_ProgressCircle.js +4 -4
  557. package/cjs/UNSAFE_RadioItem.js +25 -25
  558. package/cjs/UNSAFE_RadioSet.js +27 -27
  559. package/cjs/UNSAFE_RatingGauge.js +18 -18
  560. package/cjs/UNSAFE_ReorderableTabBar.js +44 -57
  561. package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
  562. package/cjs/UNSAFE_RichCheckboxSet.js +64 -68
  563. package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
  564. package/cjs/UNSAFE_RichRadioSet.js +29 -29
  565. package/cjs/UNSAFE_RichSelectionItem.js +112 -175
  566. package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
  567. package/cjs/UNSAFE_ScatterChart.js +49 -49
  568. package/cjs/UNSAFE_SectionalLegend.js +30 -30
  569. package/cjs/UNSAFE_SelectMultiple.js +38 -38
  570. package/cjs/UNSAFE_SelectSingle.js +38 -38
  571. package/cjs/UNSAFE_SelectionCard.js +3 -3
  572. package/cjs/UNSAFE_Selector.js +17 -17
  573. package/cjs/UNSAFE_SelectorAll.js +19 -19
  574. package/cjs/UNSAFE_Sheet.js +11 -11
  575. package/cjs/UNSAFE_SortControl.js +20 -20
  576. package/cjs/UNSAFE_SplitMenuButton.js +27 -27
  577. package/cjs/UNSAFE_SplitMenuButton.js.map +1 -1
  578. package/cjs/UNSAFE_Switch.js +26 -26
  579. package/cjs/UNSAFE_TabBar.js +87 -90
  580. package/cjs/UNSAFE_TabBar.js.map +1 -1
  581. package/cjs/UNSAFE_TabBarCommon.js +100 -103
  582. package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
  583. package/cjs/UNSAFE_TabBarMixed.js +61 -64
  584. package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
  585. package/cjs/UNSAFE_TableView.js +38 -38
  586. package/cjs/UNSAFE_TagCloud.js +28 -28
  587. package/cjs/UNSAFE_TextArea.js +119 -234
  588. package/cjs/UNSAFE_TextArea.js.map +1 -1
  589. package/cjs/UNSAFE_TextAreaAutosize.js +30 -30
  590. package/cjs/UNSAFE_TextAreaAutosize.js.map +1 -1
  591. package/cjs/UNSAFE_TextField.js +20 -20
  592. package/cjs/UNSAFE_ToggleButton.js +7 -7
  593. package/cjs/UNSAFE_ToggleButtonLabel.js +1 -1
  594. package/cjs/UNSAFE_Toolbar.js +4 -4
  595. package/cjs/UNSAFE_Train.js +17 -17
  596. package/cjs/UNSAFE_TruncatingBadge.js +17 -17
  597. package/cjs/UNSAFE_TruncatingText.js +17 -17
  598. package/cjs/UNSAFE_UserAssistance.js +26 -26
  599. package/cjs/UNSAFE_View.js +7 -7
  600. package/cjs/UNSAFE_VirtualizedListView.js +21 -21
  601. package/cjs/UNSAFE_VisInvalidDataMessage.js +6 -6
  602. package/cjs/UNSAFE_VisNoDataMessage.js +6 -6
  603. package/cjs/UNSAFE_VisProgressiveLoader.js +5 -5
  604. package/cjs/UNSAFE_WindowOverlay.js +4 -4
  605. package/cjs/View-67ff7d0e.js +170 -0
  606. package/cjs/View-67ff7d0e.js.map +1 -0
  607. package/cjs/VisStatusMessage-3ca153ac.js +31 -0
  608. package/cjs/VisStatusMessage-3ca153ac.js.map +1 -0
  609. package/cjs/VisTabularDatatip-e79da9de.js +26 -0
  610. package/cjs/VisTabularDatatip-e79da9de.js.map +1 -0
  611. package/cjs/WindowOverlay-b9595d88.js +112 -0
  612. package/cjs/WindowOverlay-b9595d88.js.map +1 -0
  613. package/cjs/YearsGridView-9fd78c0f.js +190 -0
  614. package/cjs/YearsGridView-9fd78c0f.js.map +1 -0
  615. package/cjs/hoc/PRIVATE_withDirectionIcon.js +4 -4
  616. package/cjs/hoc/PRIVATE_withThemeIcon.js +3 -3
  617. package/cjs/hoc/UNSAFE_withThemeProps.js +3 -3
  618. package/cjs/hooks/PRIVATE_useChartContextMenu.js +26 -26
  619. package/cjs/hooks/PRIVATE_useChartDatatip.js +14 -14
  620. package/cjs/hooks/PRIVATE_useChartEvents.js +19 -19
  621. package/cjs/hooks/PRIVATE_useChartMarquee.js +26 -26
  622. package/cjs/hooks/PRIVATE_useCollectionFocusRing.js +17 -17
  623. package/cjs/hooks/PRIVATE_useCssVars.js +7 -7
  624. package/cjs/hooks/PRIVATE_useCurrentKey.js +4 -4
  625. package/cjs/hooks/PRIVATE_useDatatip.js +12 -12
  626. package/cjs/hooks/PRIVATE_useDetectHorizontalOverflow.js +16 -16
  627. package/cjs/hooks/PRIVATE_useFloating.js +4 -4
  628. package/cjs/hooks/PRIVATE_useItemAction.js +17 -17
  629. package/cjs/hooks/PRIVATE_useListCommon.js +19 -19
  630. package/cjs/hooks/PRIVATE_useMiddleEllipsis.js +12 -0
  631. package/cjs/hooks/PRIVATE_useMiddleEllipsis.js.map +1 -0
  632. package/cjs/hooks/PRIVATE_useOutsideMousedown.js +9 -9
  633. package/cjs/hooks/PRIVATE_useRadioFocusManager.js +4 -4
  634. package/cjs/hooks/PRIVATE_useReorderable.js +19 -19
  635. package/cjs/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  636. package/cjs/hooks/PRIVATE_useSelection.js +4 -4
  637. package/cjs/hooks/PRIVATE_useTabBar.js +29 -29
  638. package/cjs/hooks/PRIVATE_useTabbableModeSet.js +17 -17
  639. package/cjs/hooks/PRIVATE_useTooltipOnTruncation.js +17 -17
  640. package/cjs/hooks/PRIVATE_useVisContextMenu.js +25 -25
  641. package/cjs/hooks/PRIVATE_useVisDragModeControls.js +25 -25
  642. package/cjs/hooks/PRIVATE_useVisEvents.js +4 -4
  643. package/cjs/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  644. package/cjs/hooks/PRIVATE_useVisSelection.js +15 -15
  645. package/cjs/hooks/UNSAFE_useBareButton.js +2 -2
  646. package/cjs/hooks/UNSAFE_useColorScheme.js +3 -3
  647. package/cjs/hooks/UNSAFE_useCurrentBgColor.js +2 -2
  648. package/cjs/hooks/UNSAFE_useDensity.js +3 -3
  649. package/cjs/hooks/UNSAFE_useHiddenTestMethod.js +3 -3
  650. package/cjs/hooks/UNSAFE_useOutsideClick.js +8 -8
  651. package/cjs/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  652. package/cjs/hooks/UNSAFE_useScale.js +3 -3
  653. package/cjs/hooks/UNSAFE_useTestId.js +3 -3
  654. package/cjs/hooks/UNSAFE_useTheme.js +3 -3
  655. package/cjs/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  656. package/cjs/hooks/UNSAFE_useTooltip.js +17 -17
  657. package/cjs/hooks/UNSAFE_useTranslationBundle.js +3 -3
  658. package/cjs/hooks/UNSAFE_useUser.js +3 -3
  659. package/cjs/popupUtils-79656e59.js +31 -0
  660. package/cjs/popupUtils-79656e59.js.map +1 -0
  661. package/cjs/tooltipUtils-c554343d.js +115 -0
  662. package/cjs/tooltipUtils-c554343d.js.map +1 -0
  663. package/cjs/useBareButton-463210c9.js +1 -1
  664. package/cjs/useCellNavigation-09201a92.js +1 -1
  665. package/cjs/useChartContextMenu-c961873c.js +125 -0
  666. package/cjs/useChartContextMenu-c961873c.js.map +1 -0
  667. package/cjs/useChartDatatip-0ead533e.js +341 -0
  668. package/cjs/useChartDatatip-0ead533e.js.map +1 -0
  669. package/cjs/useChartMarquee-ade8e91c.js +306 -0
  670. package/cjs/useChartMarquee-ade8e91c.js.map +1 -0
  671. package/cjs/useColorScheme-852ec82e.js +21 -0
  672. package/cjs/useColorScheme-852ec82e.js.map +1 -0
  673. package/cjs/useContextMenu-c02f8dee.js +119 -0
  674. package/cjs/useContextMenu-c02f8dee.js.map +1 -0
  675. package/cjs/useCssVars-b7192b44.js +60 -0
  676. package/cjs/useCssVars-b7192b44.js.map +1 -0
  677. package/cjs/useCurrentKey-b66cf089.js +85 -0
  678. package/cjs/useCurrentKey-b66cf089.js.map +1 -0
  679. package/cjs/useDatatip-3462cc49.js +96 -0
  680. package/cjs/useDatatip-3462cc49.js.map +1 -0
  681. package/cjs/useDensity-2a45f4dd.js +21 -0
  682. package/cjs/useDensity-2a45f4dd.js.map +1 -0
  683. package/cjs/useDisplayValue-047ff360.js +82 -0
  684. package/cjs/useDisplayValue-047ff360.js.map +1 -0
  685. package/cjs/useExpandCollapse-359c0224.js +72 -0
  686. package/cjs/useExpandCollapse-359c0224.js.map +1 -0
  687. package/cjs/useFloating-c408d4be.js +1926 -0
  688. package/cjs/useFloating-c408d4be.js.map +1 -0
  689. package/cjs/useHiddenTestMethod-620e91e0.js +30 -0
  690. package/cjs/useHiddenTestMethod-620e91e0.js.map +1 -0
  691. package/cjs/useKeyboardEvents-d9528b16.js +88 -0
  692. package/cjs/useKeyboardEvents-d9528b16.js.map +1 -0
  693. package/cjs/useLegendContextMenu-b7993cf0.js +285 -0
  694. package/cjs/useLegendContextMenu-b7993cf0.js.map +1 -0
  695. package/cjs/useMeterDatatip-fdab9ee5.js +76 -0
  696. package/cjs/useMeterDatatip-fdab9ee5.js.map +1 -0
  697. package/cjs/useMiddleEllipsis-792e61a9.js +230 -0
  698. package/cjs/useMiddleEllipsis-792e61a9.js.map +1 -0
  699. package/cjs/useNavigation-fa3f5a50.js +1 -1
  700. package/cjs/useOutsideClick-5c31ee35.js +117 -0
  701. package/cjs/useOutsideClick-5c31ee35.js.map +1 -0
  702. package/cjs/useOutsideMousedown-eda95637.js +50 -0
  703. package/cjs/useOutsideMousedown-eda95637.js.map +1 -0
  704. package/cjs/usePopupAnimation-985e90a2.js +87 -0
  705. package/cjs/usePopupAnimation-985e90a2.js.map +1 -0
  706. package/cjs/usePrefixSuffix-a6a1b772.js +72 -0
  707. package/cjs/usePrefixSuffix-a6a1b772.js.map +1 -0
  708. package/cjs/useRadioFocusManager-58e51026.js +110 -0
  709. package/cjs/useRadioFocusManager-58e51026.js.map +1 -0
  710. package/cjs/useReorderableItem-969a3eac.js +299 -0
  711. package/cjs/useReorderableItem-969a3eac.js.map +1 -0
  712. package/cjs/useRovingTabIndexContainer-46b897fd.js +108 -0
  713. package/cjs/useRovingTabIndexContainer-46b897fd.js.map +1 -0
  714. package/cjs/useScale-529046e3.js +21 -0
  715. package/cjs/useScale-529046e3.js.map +1 -0
  716. package/cjs/useSelectCommon-728573f9.js +507 -0
  717. package/cjs/useSelectCommon-728573f9.js.map +1 -0
  718. package/cjs/useSelectDrill-813d4fbe.js +114 -0
  719. package/cjs/useSelectDrill-813d4fbe.js.map +1 -0
  720. package/cjs/useSelection-0b3dd2cf.js +188 -0
  721. package/cjs/useSelection-0b3dd2cf.js.map +1 -0
  722. package/cjs/useSelection-0ef0ee3c.js +260 -0
  723. package/cjs/useSelection-0ef0ee3c.js.map +1 -0
  724. package/cjs/useTabBar-114caa2f.js +309 -0
  725. package/cjs/useTabBar-114caa2f.js.map +1 -0
  726. package/cjs/useTestId-a8b07506.js +23 -0
  727. package/cjs/useTestId-a8b07506.js.map +1 -0
  728. package/cjs/useTheme-71e406b0.js +21 -0
  729. package/cjs/useTheme-71e406b0.js.map +1 -0
  730. package/cjs/useThemeInterpolations-ca3ddfd9.js +71 -0
  731. package/cjs/useThemeInterpolations-ca3ddfd9.js.map +1 -0
  732. package/cjs/useTooltip-d1200aff.js +51 -0
  733. package/cjs/useTooltip-d1200aff.js.map +1 -0
  734. package/cjs/useTooltipControlled-0dc34549.js +376 -0
  735. package/cjs/useTooltipControlled-0dc34549.js.map +1 -0
  736. package/cjs/useTooltipOnTruncation-d8253c7e.js +29 -0
  737. package/cjs/useTooltipOnTruncation-d8253c7e.js.map +1 -0
  738. package/cjs/useTranslationBundle-990e7928.js +31 -0
  739. package/cjs/useTranslationBundle-990e7928.js.map +1 -0
  740. package/cjs/useUser-cc045b3e.js +21 -0
  741. package/cjs/useUser-cc045b3e.js.map +1 -0
  742. package/cjs/useVisDragModeControls-737aa2dd.js +89 -0
  743. package/cjs/useVisDragModeControls-737aa2dd.js.map +1 -0
  744. package/cjs/useVisEvents-4ad7b798.js +155 -0
  745. package/cjs/useVisEvents-4ad7b798.js.map +1 -0
  746. package/cjs/utils/PRIVATE_collectionUtils.js +17 -17
  747. package/cjs/utils/PRIVATE_tabBarUtils.js +17 -17
  748. package/cjs/utils/PRIVATE_tooltipUtils.js +14 -14
  749. package/cjs/utils/PRIVATE_visTestUtils.js +4 -4
  750. package/cjs/utils/UNSAFE_popupUtils.js +8 -8
  751. package/cjs/withDirectionIcon-a14b071b.js +16 -0
  752. package/cjs/withDirectionIcon-a14b071b.js.map +1 -0
  753. package/cjs/withThemeProps-894a40fc.js +2 -2
  754. package/es/BaseButton-243d200f.js +84 -0
  755. package/es/BaseButton-243d200f.js.map +1 -0
  756. package/es/BaseCardView-85b9a71e.js +631 -0
  757. package/es/BaseCardView-85b9a71e.js.map +1 -0
  758. package/es/BaseDiagram-19f481a0.js +2954 -0
  759. package/es/BaseDiagram-19f481a0.js.map +1 -0
  760. package/es/BaseRichSelection-223d9830.js +9 -9
  761. package/es/BaseSelector-7cbc48bc.js +1 -1
  762. package/es/BaseSwatchView-2e1e6bd2.js +2 -2
  763. package/es/Button-a76ecfa8.js +22 -0
  764. package/es/Button-a76ecfa8.js.map +1 -0
  765. package/es/ButtonSet-b7464e9a.js +2 -2
  766. package/es/ButtonSetButton-5e07834a.js +33 -0
  767. package/es/ButtonSetButton-5e07834a.js.map +1 -0
  768. package/es/ButtonSetIconButton-7e6573a0.js +38 -0
  769. package/es/ButtonSetIconButton-7e6573a0.js.map +1 -0
  770. package/es/ButtonSetItem-08dd9bd2.js +65 -0
  771. package/es/ButtonSetItem-08dd9bd2.js.map +1 -0
  772. package/es/Center-3860fe60.js +16 -0
  773. package/es/Center-3860fe60.js.map +1 -0
  774. package/es/Chart-aeda6a0c.js +752 -0
  775. package/es/Chart-aeda6a0c.js.map +1 -0
  776. package/es/CheckboxControl-c008372a.js +6 -6
  777. package/es/CheckboxRadioField-a387b3cb.js +6 -6
  778. package/es/CheckboxRadioLabelValueLayout-e3845f16.js +1 -1
  779. package/es/CheckboxSet-3aab5935.js +1 -1
  780. package/es/Chip-4efea02e.js +1 -1
  781. package/es/ClearIcon-f85ea340.js +1 -1
  782. package/es/CollapseIcon-84f6ba8e.js +1 -1
  783. package/es/Collapsible-2608ce3b.js +2 -2
  784. package/es/ColorPalette-950c6fc6.js +2 -2
  785. package/es/ColorPicker-8c297849.js +23 -0
  786. package/es/ColorPicker-8c297849.js.map +1 -0
  787. package/es/ColorSwatch-8339ee2f.js +4 -4
  788. package/es/CompactLabelAssistance-50ff3f7e.js +92 -0
  789. package/es/CompactLabelAssistance-50ff3f7e.js.map +1 -0
  790. package/es/CompactUserAssistance-6aa8894b.js +5 -5
  791. package/es/ComponentMessageContainer-d16c8b1f.js +4 -4
  792. package/es/DatePicker-6861ae90.js +599 -0
  793. package/es/DatePicker-6861ae90.js.map +1 -0
  794. package/es/DatePickerHeader-1a050945.js +46 -0
  795. package/es/DatePickerHeader-1a050945.js.map +1 -0
  796. package/es/DiagramStyles.styles2.css +10 -16
  797. package/es/DiagramStyles.styles3.css +16 -10
  798. package/es/Dialog-d1de5b06.js +387 -0
  799. package/es/Dialog-d1de5b06.js.map +1 -0
  800. package/es/DirectionalCollapseArrowIcon-132761da.js +1 -1
  801. package/es/DirectionalExpandArrowIcon-5bc45cad.js +1 -1
  802. package/es/Dropdown-f7992670.js +322 -0
  803. package/es/Dropdown-f7992670.js.map +1 -0
  804. package/es/EmbeddedIconButton-9f0e56b7.js +11 -0
  805. package/es/EmbeddedIconButton-9f0e56b7.js.map +1 -0
  806. package/es/EnvironmentProvider-6cf8ed37.js +58 -0
  807. package/es/EnvironmentProvider-6cf8ed37.js.map +1 -0
  808. package/es/Expander-1347e769.js +1 -1
  809. package/es/Flex-fc483125.js +30 -0
  810. package/es/Flex-fc483125.js.map +1 -0
  811. package/es/Floating-be4c0cb6.js +465 -0
  812. package/es/Floating-be4c0cb6.js.map +1 -0
  813. package/es/Grid-6f92d323.js +27 -0
  814. package/es/Grid-6f92d323.js.map +1 -0
  815. package/es/GroupLoadingIndicator-19c6545a.js +1 -1
  816. package/es/HighlightText-dd484ffd.js +31 -0
  817. package/es/HighlightText-dd484ffd.js.map +1 -0
  818. package/es/Icon-4983d06e.js +3 -3
  819. package/es/IconButton-7f91481c.js +4 -4
  820. package/es/IconSwitchButton-0ef3178f.js +42 -0
  821. package/es/IconSwitchButton-0ef3178f.js.map +1 -0
  822. package/es/IconToggleButton-7d9efcb3.js +41 -0
  823. package/es/IconToggleButton-7d9efcb3.js.map +1 -0
  824. package/es/IconUserAssistance-6abc7837.js +74 -0
  825. package/es/IconUserAssistance-6abc7837.js.map +1 -0
  826. package/es/InlineHelp-9eaac91c.js +1 -1
  827. package/es/InlineUserAssistance-890293dd.js +5 -5
  828. package/es/InputDateMask-ec27aee7.js +7 -7
  829. package/es/Label-5d1ae8d7.js +8 -8
  830. package/es/LabelValueLayout-c6b9945a.js +1 -1
  831. package/es/Layer-6c27170e.js +91 -0
  832. package/es/Layer-6c27170e.js.map +1 -0
  833. package/es/LayerHost-3cf255a6.js +41 -0
  834. package/es/LayerHost-3cf255a6.js.map +1 -0
  835. package/es/LayerManager-e30fbfd6.js +34 -0
  836. package/es/LayerManager-e30fbfd6.js.map +1 -0
  837. package/es/Link-db2fdeab.js +33 -0
  838. package/es/Link-db2fdeab.js.map +1 -0
  839. package/es/LinkVariants.styles.css +0 -1
  840. package/es/LinkVariants.styles2.css +0 -1
  841. package/es/List-4636ba9b.js +5 -5
  842. package/es/LiveRegion-2e8830ae.js +39 -0
  843. package/es/LiveRegion-2e8830ae.js.map +1 -0
  844. package/es/MaxLengthLiveRegion-8f552ae2.js +26 -0
  845. package/es/MaxLengthLiveRegion-8f552ae2.js.map +1 -0
  846. package/es/Message-510c2db8.js +2 -2
  847. package/es/MessageLayer-1dbdc0b6.js +58 -0
  848. package/es/MessageLayer-1dbdc0b6.js.map +1 -0
  849. package/es/MessagesManager-47000438.js +3 -3
  850. package/es/Modal-c0f730b8.js +3 -3
  851. package/es/MonthView-6628071f.js +229 -0
  852. package/es/MonthView-6628071f.js.map +1 -0
  853. package/es/NavigationListItem-3a9e0951.js +291 -0
  854. package/es/NavigationListItem-3a9e0951.js.map +1 -0
  855. package/es/NavigationListLinkItem-e28fd846.js +5 -5
  856. package/es/NumberInputText-60be5757.js +6 -6
  857. package/es/OverflowTabBarItem-ee746856.js +257 -0
  858. package/es/OverflowTabBarItem-ee746856.js.map +1 -0
  859. package/es/PRIVATE_BaseCardView.js +23 -23
  860. package/es/PRIVATE_BaseDiagram.js +38 -38
  861. package/es/PRIVATE_BaseSelector.js +17 -17
  862. package/es/PRIVATE_BaseSwatchView.js +18 -18
  863. package/es/PRIVATE_Chart.js +45 -45
  864. package/es/PRIVATE_CheckboxControl.js +25 -25
  865. package/es/PRIVATE_CheckboxRadioField.js +27 -27
  866. package/es/PRIVATE_ClearIcon.js +18 -18
  867. package/es/PRIVATE_CollapsibleNavigationList.js +20 -20
  868. package/es/PRIVATE_DatePickerHeader.js +23 -23
  869. package/es/PRIVATE_DatePickerLayout.js +4 -4
  870. package/es/PRIVATE_EmbeddedIconButton.js +6 -6
  871. package/es/PRIVATE_Expander.js +19 -19
  872. package/es/PRIVATE_FormControls.js +21 -21
  873. package/es/PRIVATE_IconSwitchButton.js +19 -19
  874. package/es/PRIVATE_Icons/CheckboxCrossed.js +16 -16
  875. package/es/PRIVATE_Icons/CheckboxMixed.js +16 -16
  876. package/es/PRIVATE_Icons/CheckboxOff.js +16 -16
  877. package/es/PRIVATE_Icons/CheckboxOn.js +16 -16
  878. package/es/PRIVATE_Icons/DragV.js +16 -16
  879. package/es/PRIVATE_Icons/None.js +16 -16
  880. package/es/PRIVATE_List.js +21 -21
  881. package/es/PRIVATE_Message.js +20 -20
  882. package/es/PRIVATE_MessageLayer.js +12 -12
  883. package/es/PRIVATE_MonthView.js +81 -8
  884. package/es/PRIVATE_MonthView.js.map +1 -1
  885. package/es/PRIVATE_MonthYearGridView.js +8 -8
  886. package/es/PRIVATE_PlotArea.js +5 -5
  887. package/es/PRIVATE_RevealToggleIcon.js +21 -21
  888. package/es/PRIVATE_RichSelectionCommon.js +28 -28
  889. package/es/PRIVATE_SelectCommon.js +34 -34
  890. package/es/PRIVATE_StyledCard.js +3 -3
  891. package/es/PRIVATE_StyledCheckbox.js +16 -16
  892. package/es/PRIVATE_StyledDatePickerButton/themes/StyledDatePickerButtonStyles.css.js +1 -1
  893. package/es/PRIVATE_StyledDatePickerButton.js +1 -1
  894. package/es/PRIVATE_StyledSwitch.js +4 -4
  895. package/es/PRIVATE_SwatchFlexView.js +18 -18
  896. package/es/PRIVATE_Table.js +38 -38
  897. package/es/PRIVATE_TableDisplay.js +19 -19
  898. package/es/PRIVATE_TableList.js +31 -31
  899. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
  900. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
  901. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
  902. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
  903. package/es/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
  904. package/es/PRIVATE_ThemedIcons/CheckboxCrossedIcon.js +16 -16
  905. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
  906. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
  907. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
  908. package/es/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
  909. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
  910. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
  911. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
  912. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
  913. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
  914. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
  915. package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
  916. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
  917. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
  918. package/es/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
  919. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
  920. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
  921. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
  922. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
  923. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
  924. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
  925. package/es/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
  926. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
  927. package/es/PRIVATE_ThemedIcons/None.js +16 -16
  928. package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
  929. package/es/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
  930. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
  931. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
  932. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
  933. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
  934. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
  935. package/es/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
  936. package/es/PRIVATE_TimeComponent.js +19 -19
  937. package/es/PRIVATE_TruncatingLink.js +20 -17
  938. package/es/PRIVATE_TruncatingLink.js.map +1 -1
  939. package/es/PRIVATE_VisOverview.js +16 -16
  940. package/es/PRIVATE_VisStatusMessage.js +5 -5
  941. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  942. package/es/Popup-22d51095.js +298 -0
  943. package/es/Popup-22d51095.js.map +1 -0
  944. package/es/ProgressButtonLabelLayout-69549cf9.js +3 -3
  945. package/es/ProgressCircle-bce87dad.js +48 -0
  946. package/es/ProgressCircle-bce87dad.js.map +1 -0
  947. package/es/RadioItem-94909632.js +6 -6
  948. package/es/ReadonlyTextFieldInput-106ce959.js +1 -1
  949. package/es/ReferenceLineArea-cc72b070.js +586 -0
  950. package/es/ReferenceLineArea-cc72b070.js.map +1 -0
  951. package/es/RevealToggleIcon-c5d9d731.js +26 -0
  952. package/es/RevealToggleIcon-c5d9d731.js.map +1 -0
  953. package/es/SectionedContent-ac90a3d0.js +65 -0
  954. package/es/SectionedContent-ac90a3d0.js.map +1 -0
  955. package/es/SegmentStyles.styles.css +12 -9
  956. package/es/SegmentStyles.styles2.css +9 -12
  957. package/es/SelectMenuGroupContext-130a850c.js +554 -0
  958. package/es/SelectMenuGroupContext-130a850c.js.map +1 -0
  959. package/es/SelectMobileFieldInput-5ca800d5.js +241 -0
  960. package/es/SelectMobileFieldInput-5ca800d5.js.map +1 -0
  961. package/es/SelectorAll-3d39196b.js +51 -0
  962. package/es/SelectorAll-3d39196b.js.map +1 -0
  963. package/es/Sheet-f9f8a4a4.js +2 -2
  964. package/es/SortControl-1044fcd9.js +3 -3
  965. package/es/StyledCard-77623731.js +1 -1
  966. package/es/StyledDatePickerButton-a7782821.js +32 -0
  967. package/es/StyledDatePickerButton-a7782821.js.map +1 -0
  968. package/es/StyledDatePickerButtonStyles.styles.css +18 -12
  969. package/es/StyledLabelValueLayout-bddfb884.js +18 -0
  970. package/es/StyledLabelValueLayout-bddfb884.js.map +1 -0
  971. package/es/StyledSwitch-dbf29d95.js +2 -2
  972. package/es/StyledTextField-7605d76a.js +5 -5
  973. package/es/Submenu-fa7c2b4f.js +247 -0
  974. package/es/Submenu-fa7c2b4f.js.map +1 -0
  975. package/es/TabBar-fd31ca03.js +69 -0
  976. package/es/TabBar-fd31ca03.js.map +1 -0
  977. package/es/TabBarContextMenu-3bf4dc64.js +99 -0
  978. package/es/TabBarContextMenu-3bf4dc64.js.map +1 -0
  979. package/es/TabBarLayout-9b67d1b6.js +1 -1
  980. package/es/TabBarLinkItem-43854314.js +13 -0
  981. package/es/TabBarLinkItem-43854314.js.map +1 -0
  982. package/es/Table-535987d0.js +4112 -0
  983. package/es/Table-535987d0.js.map +1 -0
  984. package/es/TableColGroup-d74bd4f5.js +1 -1
  985. package/es/TextField-7884fcd7.js +3 -3
  986. package/es/Theme-redwood/theme.css +432 -432
  987. package/es/Theme-stable/theme.css +474 -474
  988. package/es/TimeComponentCanvas2D-cfb0066d.js +6 -6
  989. package/es/ToggleButton-65f5d293.js +28 -0
  990. package/es/ToggleButton-65f5d293.js.map +1 -0
  991. package/es/ToggleButtonLabel-bf4e1599.js +75 -0
  992. package/es/ToggleButtonLabel-bf4e1599.js.map +1 -0
  993. package/es/TrainVariants.styles.css +6 -6
  994. package/es/TrainVariants.styles2.css +6 -6
  995. package/es/TruncatingLink-6aaf40b9.js +93 -0
  996. package/es/TruncatingLink-6aaf40b9.js.map +1 -0
  997. package/es/TruncatingText-1bf00351.js +1 -1
  998. package/es/UNSAFE_AccordionItemMultiple.js +18 -18
  999. package/es/UNSAFE_AccordionItemSingle.js +18 -18
  1000. package/es/UNSAFE_ActionCard.js +2 -2
  1001. package/es/UNSAFE_BarChart.js +46 -46
  1002. package/es/UNSAFE_BareButton.js +2 -2
  1003. package/es/UNSAFE_BaseButton.js +5 -5
  1004. package/es/UNSAFE_Button.js +6 -6
  1005. package/es/UNSAFE_ButtonSet.js +4 -4
  1006. package/es/UNSAFE_ButtonSetButton.js +7 -7
  1007. package/es/UNSAFE_ButtonSetIconButton.js +19 -19
  1008. package/es/UNSAFE_ButtonSetItem.js +22 -22
  1009. package/es/UNSAFE_ButtonSetMultiple.js +4 -4
  1010. package/es/UNSAFE_ButtonSetSingle.js +4 -4
  1011. package/es/UNSAFE_Card.js +3 -3
  1012. package/es/UNSAFE_CardFlexView.js +23 -23
  1013. package/es/UNSAFE_CardGridView.js +23 -23
  1014. package/es/UNSAFE_Center.js +5 -5
  1015. package/es/UNSAFE_Checkbox.js +25 -25
  1016. package/es/UNSAFE_CheckboxItem.js +27 -27
  1017. package/es/UNSAFE_CheckboxRadioField.js +4 -4
  1018. package/es/UNSAFE_CheckboxSet.js +26 -26
  1019. package/es/UNSAFE_Chip.js +2 -2
  1020. package/es/UNSAFE_Collapsible.js +18 -18
  1021. package/es/UNSAFE_ColorPalette.js +19 -19
  1022. package/es/UNSAFE_ColorPicker.js +21 -21
  1023. package/es/UNSAFE_ColorSwatch.js +17 -17
  1024. package/es/UNSAFE_ComboChart.js +46 -46
  1025. package/es/UNSAFE_ComponentMessage.js +20 -20
  1026. package/es/UNSAFE_ContainerDiagram/themes/DiagramStyles.css.js +1 -1
  1027. package/es/UNSAFE_ContainerDiagram.js +38 -38
  1028. package/es/UNSAFE_ConveyorBelt.js +18 -18
  1029. package/es/UNSAFE_DatePicker.js +54 -31
  1030. package/es/UNSAFE_DatePicker.js.map +1 -1
  1031. package/es/UNSAFE_Diagram/themes/DiagramStyles.css.js +1 -1
  1032. package/es/UNSAFE_Diagram.js +38 -38
  1033. package/es/UNSAFE_Dialog.js +22 -22
  1034. package/es/UNSAFE_DragHandle.js +17 -17
  1035. package/es/UNSAFE_DrawerLayout.js +12 -12
  1036. package/es/UNSAFE_DrawerPopup.js +11 -11
  1037. package/es/UNSAFE_Dropdown.js +15 -15
  1038. package/es/UNSAFE_Environment.js +4 -4
  1039. package/es/UNSAFE_ExpandableList.js +25 -25
  1040. package/es/UNSAFE_FilePicker.js +4 -4
  1041. package/es/UNSAFE_FlatTreeView.js +25 -25
  1042. package/es/UNSAFE_Flex.js +4 -4
  1043. package/es/UNSAFE_Floating.js +11 -11
  1044. package/es/UNSAFE_FormLayout.js +2 -2
  1045. package/es/UNSAFE_Gantt.js +23 -23
  1046. package/es/UNSAFE_Grid.js +4 -4
  1047. package/es/UNSAFE_HighlightText.js +4 -4
  1048. package/es/UNSAFE_Icon.js +16 -16
  1049. package/es/UNSAFE_IconButton.js +17 -17
  1050. package/es/UNSAFE_IconMenuButton.js +26 -26
  1051. package/es/UNSAFE_IconProgressButton.js +21 -21
  1052. package/es/UNSAFE_IconToggleButton.js +19 -19
  1053. package/es/UNSAFE_Indexer.js +19 -19
  1054. package/es/UNSAFE_InlineSelectSingle.js +34 -34
  1055. package/es/UNSAFE_InputColor.js +32 -32
  1056. package/es/UNSAFE_InputDateMask/themes/SegmentStyles.css.js +1 -1
  1057. package/es/UNSAFE_InputDateMask.js +27 -27
  1058. package/es/UNSAFE_InputDatePicker.js +64 -42
  1059. package/es/UNSAFE_InputDatePicker.js.map +1 -1
  1060. package/es/UNSAFE_InputPassword.js +29 -29
  1061. package/es/UNSAFE_InputSensitiveText.js +30 -30
  1062. package/es/UNSAFE_InputText.js +28 -28
  1063. package/es/UNSAFE_InputTimeMask/themes/SegmentStyles.css.js +1 -1
  1064. package/es/UNSAFE_InputTimeMask.js +27 -27
  1065. package/es/UNSAFE_Label.js +25 -25
  1066. package/es/UNSAFE_LabelValueLayout.js +4 -4
  1067. package/es/UNSAFE_LabelledLink.js +36 -31
  1068. package/es/UNSAFE_LabelledLink.js.map +1 -1
  1069. package/es/UNSAFE_Layer.js +8 -8
  1070. package/es/UNSAFE_Legend.js +30 -30
  1071. package/es/UNSAFE_LineAreaChart.js +46 -46
  1072. package/es/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  1073. package/es/UNSAFE_Link.js +3 -3
  1074. package/es/UNSAFE_ListItemLayout.js +4 -4
  1075. package/es/UNSAFE_ListView.js +75 -75
  1076. package/es/UNSAFE_LiveRegion.js +4 -4
  1077. package/es/UNSAFE_Menu.js +29 -29
  1078. package/es/UNSAFE_MenuButton.js +26 -26
  1079. package/es/UNSAFE_MessageBanner.js +20 -20
  1080. package/es/UNSAFE_MessageToast.js +22 -22
  1081. package/es/UNSAFE_MeterBar.js +16 -16
  1082. package/es/UNSAFE_MeterCircle.js +17 -17
  1083. package/es/UNSAFE_Modal.js +8 -8
  1084. package/es/UNSAFE_NavigationList.js +42 -42
  1085. package/es/UNSAFE_NavigationListCommon.js +20 -20
  1086. package/es/UNSAFE_NumberInputText.js +28 -28
  1087. package/es/UNSAFE_OverflowTabBar.js +42 -42
  1088. package/es/UNSAFE_PictoChart.js +27 -27
  1089. package/es/UNSAFE_PieChart.js +28 -28
  1090. package/es/UNSAFE_Popup.js +18 -18
  1091. package/es/UNSAFE_ProgressBar.js +4 -4
  1092. package/es/UNSAFE_ProgressButton.js +21 -21
  1093. package/es/UNSAFE_ProgressButtonLabelLayout.js +10 -10
  1094. package/es/UNSAFE_ProgressCircle.js +4 -4
  1095. package/es/UNSAFE_RadioItem.js +25 -25
  1096. package/es/UNSAFE_RadioSet.js +27 -27
  1097. package/es/UNSAFE_RatingGauge.js +18 -18
  1098. package/es/UNSAFE_ReorderableTabBar.js +42 -42
  1099. package/es/UNSAFE_RichCheckboxSet.js +28 -28
  1100. package/es/UNSAFE_RichRadioSet.js +29 -29
  1101. package/es/UNSAFE_RichSelectionItem.js +30 -30
  1102. package/es/UNSAFE_ScatterChart.js +46 -46
  1103. package/es/UNSAFE_SectionalLegend.js +30 -30
  1104. package/es/UNSAFE_SelectMultiple.js +38 -38
  1105. package/es/UNSAFE_SelectSingle.js +38 -38
  1106. package/es/UNSAFE_SelectionCard.js +3 -3
  1107. package/es/UNSAFE_Selector.js +17 -17
  1108. package/es/UNSAFE_SelectorAll.js +19 -19
  1109. package/es/UNSAFE_Sheet.js +11 -11
  1110. package/es/UNSAFE_SortControl.js +20 -20
  1111. package/es/UNSAFE_SplitMenuButton.js +27 -27
  1112. package/es/UNSAFE_SplitMenuButton.js.map +1 -1
  1113. package/es/UNSAFE_Switch.js +26 -26
  1114. package/es/UNSAFE_TabBar.js +43 -43
  1115. package/es/UNSAFE_TabBarCommon.js +33 -33
  1116. package/es/UNSAFE_TabBarMixed.js +41 -41
  1117. package/es/UNSAFE_TableView.js +38 -38
  1118. package/es/UNSAFE_TagCloud.js +28 -28
  1119. package/es/UNSAFE_TextArea.js +237 -117
  1120. package/es/UNSAFE_TextArea.js.map +1 -1
  1121. package/es/UNSAFE_TextAreaAutosize.js +28 -28
  1122. package/es/UNSAFE_TextField.js +20 -20
  1123. package/es/UNSAFE_ToggleButton.js +7 -7
  1124. package/es/UNSAFE_ToggleButtonLabel.js +1 -1
  1125. package/es/UNSAFE_Toolbar.js +4 -4
  1126. package/es/UNSAFE_Train/themes/redwood/TrainTheme.js +1 -1
  1127. package/es/UNSAFE_Train/themes/redwood/TrainVariants.css.js +1 -1
  1128. package/es/UNSAFE_Train/themes/stable/TrainTheme.js +1 -1
  1129. package/es/UNSAFE_Train/themes/stable/TrainVariants.css.js +1 -1
  1130. package/es/UNSAFE_Train.js +18 -18
  1131. package/es/UNSAFE_TruncatingBadge.js +17 -17
  1132. package/es/UNSAFE_TruncatingText.js +17 -17
  1133. package/es/UNSAFE_UserAssistance.js +26 -26
  1134. package/es/UNSAFE_View.js +7 -7
  1135. package/es/UNSAFE_VirtualizedListView.js +21 -21
  1136. package/es/UNSAFE_VisInvalidDataMessage.js +6 -6
  1137. package/es/UNSAFE_VisNoDataMessage.js +6 -6
  1138. package/es/UNSAFE_VisProgressiveLoader.js +5 -5
  1139. package/es/UNSAFE_WindowOverlay.js +4 -4
  1140. package/es/View-818f2f31.js +167 -0
  1141. package/es/View-818f2f31.js.map +1 -0
  1142. package/es/VisStatusMessage-09c532e3.js +29 -0
  1143. package/es/VisStatusMessage-09c532e3.js.map +1 -0
  1144. package/es/VisTabularDatatip-f45069f1.js +24 -0
  1145. package/es/VisTabularDatatip-f45069f1.js.map +1 -0
  1146. package/es/WindowOverlay-467c2d12.js +110 -0
  1147. package/es/WindowOverlay-467c2d12.js.map +1 -0
  1148. package/es/YearsGridView-27d6fa06.js +187 -0
  1149. package/es/YearsGridView-27d6fa06.js.map +1 -0
  1150. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  1151. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  1152. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  1153. package/es/hooks/PRIVATE_useChartContextMenu.js +26 -26
  1154. package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
  1155. package/es/hooks/PRIVATE_useChartEvents.js +19 -19
  1156. package/es/hooks/PRIVATE_useChartMarquee.js +26 -26
  1157. package/es/hooks/PRIVATE_useCollectionFocusRing.js +17 -17
  1158. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  1159. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  1160. package/es/hooks/PRIVATE_useDatatip.js +12 -12
  1161. package/es/hooks/PRIVATE_useDetectHorizontalOverflow.js +16 -16
  1162. package/es/hooks/PRIVATE_useFloating.js +4 -4
  1163. package/es/hooks/PRIVATE_useItemAction.js +17 -17
  1164. package/es/hooks/PRIVATE_useListCommon.js +19 -19
  1165. package/es/hooks/PRIVATE_useMiddleEllipsis.js +4 -0
  1166. package/es/hooks/PRIVATE_useMiddleEllipsis.js.map +1 -0
  1167. package/es/hooks/PRIVATE_useOutsideMousedown.js +9 -9
  1168. package/es/hooks/PRIVATE_useRadioFocusManager.js +4 -4
  1169. package/es/hooks/PRIVATE_useReorderable.js +19 -19
  1170. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  1171. package/es/hooks/PRIVATE_useSelection.js +4 -4
  1172. package/es/hooks/PRIVATE_useTabBar.js +29 -29
  1173. package/es/hooks/PRIVATE_useTabbableModeSet.js +17 -17
  1174. package/es/hooks/PRIVATE_useTooltipOnTruncation.js +17 -17
  1175. package/es/hooks/PRIVATE_useVisContextMenu.js +25 -25
  1176. package/es/hooks/PRIVATE_useVisDragModeControls.js +25 -25
  1177. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  1178. package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  1179. package/es/hooks/PRIVATE_useVisSelection.js +15 -15
  1180. package/es/hooks/UNSAFE_useBareButton.js +2 -2
  1181. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  1182. package/es/hooks/UNSAFE_useCurrentBgColor.js +2 -2
  1183. package/es/hooks/UNSAFE_useDensity.js +3 -3
  1184. package/es/hooks/UNSAFE_useHiddenTestMethod.js +3 -3
  1185. package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
  1186. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  1187. package/es/hooks/UNSAFE_useScale.js +3 -3
  1188. package/es/hooks/UNSAFE_useTestId.js +3 -3
  1189. package/es/hooks/UNSAFE_useTheme.js +3 -3
  1190. package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  1191. package/es/hooks/UNSAFE_useTooltip.js +17 -17
  1192. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  1193. package/es/hooks/UNSAFE_useUser.js +3 -3
  1194. package/es/popupUtils-7774330e.js +29 -0
  1195. package/es/popupUtils-7774330e.js.map +1 -0
  1196. package/es/tooltipUtils-90fb656f.js +110 -0
  1197. package/es/tooltipUtils-90fb656f.js.map +1 -0
  1198. package/es/useBareButton-ff4bd21e.js +1 -1
  1199. package/es/useCellNavigation-0565b6dd.js +1 -1
  1200. package/es/useChartContextMenu-933091d8.js +123 -0
  1201. package/es/useChartContextMenu-933091d8.js.map +1 -0
  1202. package/es/useChartDatatip-cba78e0f.js +336 -0
  1203. package/es/useChartDatatip-cba78e0f.js.map +1 -0
  1204. package/es/useChartMarquee-914929b6.js +304 -0
  1205. package/es/useChartMarquee-914929b6.js.map +1 -0
  1206. package/es/useColorScheme-67245285.js +19 -0
  1207. package/es/useColorScheme-67245285.js.map +1 -0
  1208. package/es/useContextMenu-8a1230a3.js +116 -0
  1209. package/es/useContextMenu-8a1230a3.js.map +1 -0
  1210. package/es/useCssVars-048a52d8.js +58 -0
  1211. package/es/useCssVars-048a52d8.js.map +1 -0
  1212. package/es/useCurrentKey-38e5f097.js +83 -0
  1213. package/es/useCurrentKey-38e5f097.js.map +1 -0
  1214. package/es/useDatatip-ef5c47a7.js +94 -0
  1215. package/es/useDatatip-ef5c47a7.js.map +1 -0
  1216. package/es/useDensity-969273f3.js +19 -0
  1217. package/es/useDensity-969273f3.js.map +1 -0
  1218. package/es/useDisplayValue-29f03329.js +78 -0
  1219. package/es/useDisplayValue-29f03329.js.map +1 -0
  1220. package/es/useExpandCollapse-51f9bb4b.js +70 -0
  1221. package/es/useExpandCollapse-51f9bb4b.js.map +1 -0
  1222. package/es/useFloating-c74a7f54.js +1916 -0
  1223. package/es/useFloating-c74a7f54.js.map +1 -0
  1224. package/es/useHiddenTestMethod-ec7b3989.js +28 -0
  1225. package/es/useHiddenTestMethod-ec7b3989.js.map +1 -0
  1226. package/es/useKeyboardEvents-a1495728.js +85 -0
  1227. package/es/useKeyboardEvents-a1495728.js.map +1 -0
  1228. package/es/useLegendContextMenu-6ea00771.js +279 -0
  1229. package/es/useLegendContextMenu-6ea00771.js.map +1 -0
  1230. package/es/useMeterDatatip-f61ca3e0.js +73 -0
  1231. package/es/useMeterDatatip-f61ca3e0.js.map +1 -0
  1232. package/es/useMiddleEllipsis-b073ca6b.js +228 -0
  1233. package/es/useMiddleEllipsis-b073ca6b.js.map +1 -0
  1234. package/es/useNavigation-b257c33a.js +1 -1
  1235. package/es/useOutsideClick-01f3d3e1.js +115 -0
  1236. package/es/useOutsideClick-01f3d3e1.js.map +1 -0
  1237. package/es/useOutsideMousedown-e0866d58.js +48 -0
  1238. package/es/useOutsideMousedown-e0866d58.js.map +1 -0
  1239. package/es/usePopupAnimation-7c5db425.js +85 -0
  1240. package/es/usePopupAnimation-7c5db425.js.map +1 -0
  1241. package/es/usePrefixSuffix-95fc00fd.js +70 -0
  1242. package/es/usePrefixSuffix-95fc00fd.js.map +1 -0
  1243. package/es/useRadioFocusManager-d9eecfb4.js +108 -0
  1244. package/es/useRadioFocusManager-d9eecfb4.js.map +1 -0
  1245. package/es/useReorderableItem-06bd7a7b.js +296 -0
  1246. package/es/useReorderableItem-06bd7a7b.js.map +1 -0
  1247. package/es/useRovingTabIndexContainer-c0356f5d.js +106 -0
  1248. package/es/useRovingTabIndexContainer-c0356f5d.js.map +1 -0
  1249. package/es/useScale-93490e54.js +19 -0
  1250. package/es/useScale-93490e54.js.map +1 -0
  1251. package/es/useSelectCommon-c70bb10f.js +489 -0
  1252. package/es/useSelectCommon-c70bb10f.js.map +1 -0
  1253. package/es/useSelectDrill-2f855daa.js +111 -0
  1254. package/es/useSelectDrill-2f855daa.js.map +1 -0
  1255. package/es/useSelection-10ed8060.js +186 -0
  1256. package/es/useSelection-10ed8060.js.map +1 -0
  1257. package/es/useSelection-d6fefa3d.js +258 -0
  1258. package/es/useSelection-d6fefa3d.js.map +1 -0
  1259. package/es/useTabBar-27e8c4ea.js +305 -0
  1260. package/es/useTabBar-27e8c4ea.js.map +1 -0
  1261. package/es/useTestId-ab1bede6.js +21 -0
  1262. package/es/useTestId-ab1bede6.js.map +1 -0
  1263. package/es/useTextAreaAltEnter-ac460f4c.js +61 -0
  1264. package/es/useTextAreaAltEnter-ac460f4c.js.map +1 -0
  1265. package/es/useTheme-c2cfbc29.js +19 -0
  1266. package/es/useTheme-c2cfbc29.js.map +1 -0
  1267. package/es/useThemeInterpolations-5f358139.js +68 -0
  1268. package/es/useThemeInterpolations-5f358139.js.map +1 -0
  1269. package/es/useTooltip-ab739df0.js +49 -0
  1270. package/es/useTooltip-ab739df0.js.map +1 -0
  1271. package/es/useTooltipControlled-b7f30aee.js +373 -0
  1272. package/es/useTooltipControlled-b7f30aee.js.map +1 -0
  1273. package/es/useTooltipOnTruncation-31afc3f2.js +27 -0
  1274. package/es/useTooltipOnTruncation-31afc3f2.js.map +1 -0
  1275. package/es/useTranslationBundle-bc6e0896.js +29 -0
  1276. package/es/useTranslationBundle-bc6e0896.js.map +1 -0
  1277. package/es/useUser-e543b73c.js +19 -0
  1278. package/es/useUser-e543b73c.js.map +1 -0
  1279. package/es/useVisDragModeControls-6865056f.js +87 -0
  1280. package/es/useVisDragModeControls-6865056f.js.map +1 -0
  1281. package/es/useVisEvents-0edc925f.js +153 -0
  1282. package/es/useVisEvents-0edc925f.js.map +1 -0
  1283. package/es/utils/PRIVATE_collectionUtils.js +17 -17
  1284. package/es/utils/PRIVATE_tabBarUtils.js +17 -17
  1285. package/es/utils/PRIVATE_tooltipUtils.js +14 -14
  1286. package/es/utils/PRIVATE_visTestUtils.js +4 -4
  1287. package/es/utils/UNSAFE_popupUtils.js +8 -8
  1288. package/es/withDirectionIcon-b725a6d7.js +14 -0
  1289. package/es/withDirectionIcon-b725a6d7.js.map +1 -0
  1290. package/es/withThemeProps-dbd4fedf.js +2 -2
  1291. package/package.json +2 -2
  1292. package/types/UNSAFE_Dropdown/Dropdown.d.ts +5 -1
  1293. package/types/UNSAFE_LabelledLink/LabelledLink.d.ts +5 -1
  1294. package/types/UNSAFE_Link/themes/LinkStyles.css.d.ts +0 -1
  1295. package/types/UNSAFE_Link/themes/redwood/LinkVariants.css.d.ts +0 -1
  1296. package/types/UNSAFE_Link/themes/stable/LinkVariants.css.d.ts +0 -1
  1297. package/types/UNSAFE_Menu/DropdownMenu.d.ts +1 -0
  1298. package/amd/BarChart-f429b382.js +0 -2
  1299. package/amd/BarChart-f429b382.js.map +0 -1
  1300. package/amd/BaseCardView-b8119561.js +0 -2
  1301. package/amd/BaseCardView-b8119561.js.map +0 -1
  1302. package/amd/BaseDiagram-00ea8628.js +0 -2
  1303. package/amd/BaseDiagram-00ea8628.js.map +0 -1
  1304. package/amd/ButtonSetButton-fa0256aa.js +0 -2
  1305. package/amd/ButtonSetButton-fa0256aa.js.map +0 -1
  1306. package/amd/ButtonSetIconButton-9010f20c.js +0 -2
  1307. package/amd/ButtonSetIconButton-9010f20c.js.map +0 -1
  1308. package/amd/ButtonSetItem-4b29107a.js +0 -2
  1309. package/amd/ButtonSetItem-4b29107a.js.map +0 -1
  1310. package/amd/CardFlexView-aa2f3de8.js +0 -2
  1311. package/amd/CardFlexView-aa2f3de8.js.map +0 -1
  1312. package/amd/CardGridView-85f90c75.js +0 -2
  1313. package/amd/CardGridView-85f90c75.js.map +0 -1
  1314. package/amd/Chart-57965de4.js +0 -2
  1315. package/amd/Chart-57965de4.js.map +0 -1
  1316. package/amd/ComboChart-c42ed049.js +0 -2
  1317. package/amd/ComboChart-c42ed049.js.map +0 -1
  1318. package/amd/ContainerDiagram-678f9746.js +0 -2
  1319. package/amd/ContainerDiagram-678f9746.js.map +0 -1
  1320. package/amd/DatePicker-bf521b1c.js +0 -2
  1321. package/amd/DatePicker-bf521b1c.js.map +0 -1
  1322. package/amd/DatePickerHeader-82f4f285.js +0 -2
  1323. package/amd/DatePickerHeader-82f4f285.js.map +0 -1
  1324. package/amd/Diagram-492f8b21.js +0 -2
  1325. package/amd/Diagram-492f8b21.js.map +0 -1
  1326. package/amd/Dropdown-7eca9554.js +0 -2
  1327. package/amd/Dropdown-7eca9554.js.map +0 -1
  1328. package/amd/IconMenuButton-82b8431d.js +0 -2
  1329. package/amd/IconMenuButton-82b8431d.js.map +0 -1
  1330. package/amd/IconSwitchButton-c44e0edf.js +0 -2
  1331. package/amd/IconSwitchButton-c44e0edf.js.map +0 -1
  1332. package/amd/IconToggleButton-0ab34b44.js +0 -2
  1333. package/amd/IconToggleButton-0ab34b44.js.map +0 -1
  1334. package/amd/InlineSelectSingle-87bc8a45.js +0 -2
  1335. package/amd/InlineSelectSingle-87bc8a45.js.map +0 -1
  1336. package/amd/InputColor-58e3fce3.js +0 -2
  1337. package/amd/InputColor-58e3fce3.js.map +0 -1
  1338. package/amd/InputDatePicker-7227a858.js +0 -2
  1339. package/amd/InputDatePicker-7227a858.js.map +0 -1
  1340. package/amd/InputPassword-450915c8.js +0 -2
  1341. package/amd/InputPassword-450915c8.js.map +0 -1
  1342. package/amd/InputSensitiveText-d94d24f0.js +0 -2
  1343. package/amd/InputSensitiveText-d94d24f0.js.map +0 -1
  1344. package/amd/Legend-47a1bf23.js +0 -2
  1345. package/amd/Legend-47a1bf23.js.map +0 -1
  1346. package/amd/LineAreaChart-48efb7f7.js +0 -2
  1347. package/amd/LineAreaChart-48efb7f7.js.map +0 -1
  1348. package/amd/Link-a8fad252.js +0 -2
  1349. package/amd/Link-a8fad252.js.map +0 -1
  1350. package/amd/ListView-2678b2af.js +0 -2
  1351. package/amd/ListView-2678b2af.js.map +0 -1
  1352. package/amd/Menu-1b8fefc5.js +0 -2
  1353. package/amd/Menu-1b8fefc5.js.map +0 -1
  1354. package/amd/MenuButton-2fe1ef2c.js +0 -2
  1355. package/amd/MenuButton-2fe1ef2c.js.map +0 -1
  1356. package/amd/MenuItem-85e4ffdc.js +0 -2
  1357. package/amd/MenuItem-85e4ffdc.js.map +0 -1
  1358. package/amd/MonthView-96fafba4.js +0 -2
  1359. package/amd/MonthView-96fafba4.js.map +0 -1
  1360. package/amd/NavigationList-a6bb123d.js +0 -2
  1361. package/amd/NavigationList-a6bb123d.js.map +0 -1
  1362. package/amd/NavigationListItem-10bf6656.js +0 -2
  1363. package/amd/NavigationListItem-10bf6656.js.map +0 -1
  1364. package/amd/NavigationListLinkItem-df1826e6.js +0 -2
  1365. package/amd/NavigationListLinkItem-df1826e6.js.map +0 -1
  1366. package/amd/OverflowTabBar-f8bf9356.js +0 -2
  1367. package/amd/OverflowTabBar-f8bf9356.js.map +0 -1
  1368. package/amd/OverflowTabBarItem-0aa39512.js +0 -2
  1369. package/amd/OverflowTabBarItem-0aa39512.js.map +0 -1
  1370. package/amd/PictoChart-ab426a71.js +0 -2
  1371. package/amd/PictoChart-ab426a71.js.map +0 -1
  1372. package/amd/PieChart-57ffe4c0.js +0 -2
  1373. package/amd/PieChart-57ffe4c0.js.map +0 -1
  1374. package/amd/RemovableNavigationListItem-60593d4c.js +0 -2
  1375. package/amd/RemovableNavigationListItem-60593d4c.js.map +0 -1
  1376. package/amd/ReorderableTabBar-19a503c7.js +0 -2
  1377. package/amd/ReorderableTabBar-19a503c7.js.map +0 -1
  1378. package/amd/RevealToggleIcon-093f60c4.js +0 -2
  1379. package/amd/RevealToggleIcon-093f60c4.js.map +0 -1
  1380. package/amd/ScatterChart-6427e7ec.js +0 -2
  1381. package/amd/ScatterChart-6427e7ec.js.map +0 -1
  1382. package/amd/SectionalLegend-bd980f3f.js +0 -2
  1383. package/amd/SectionalLegend-bd980f3f.js.map +0 -1
  1384. package/amd/SectionedContent-74559d9d.js +0 -2
  1385. package/amd/SectionedContent-74559d9d.js.map +0 -1
  1386. package/amd/SelectMenuItem-affab9f3.js +0 -2
  1387. package/amd/SelectMenuItem-affab9f3.js.map +0 -1
  1388. package/amd/SelectMobileFieldInput-4795a794.js +0 -2
  1389. package/amd/SelectMobileFieldInput-4795a794.js.map +0 -1
  1390. package/amd/SelectMultiple-e216b16c.js +0 -2
  1391. package/amd/SelectMultiple-e216b16c.js.map +0 -1
  1392. package/amd/SelectSingle-d53cf202.js +0 -2
  1393. package/amd/SelectSingle-d53cf202.js.map +0 -1
  1394. package/amd/SplitMenuButton-76adec12.js +0 -2
  1395. package/amd/SplitMenuButton-76adec12.js.map +0 -1
  1396. package/amd/StyledDatePickerButton-bceb62e1.js +0 -2
  1397. package/amd/StyledDatePickerButton-bceb62e1.js.map +0 -1
  1398. package/amd/Submenu-52ec8bfb.js +0 -2
  1399. package/amd/Submenu-52ec8bfb.js.map +0 -1
  1400. package/amd/TabBar-92bac52f.js +0 -2
  1401. package/amd/TabBar-92bac52f.js.map +0 -1
  1402. package/amd/TabBarContextMenu-6a167e27.js +0 -2
  1403. package/amd/TabBarContextMenu-6a167e27.js.map +0 -1
  1404. package/amd/TabBarMixed-5b5a5047.js +0 -2
  1405. package/amd/TabBarMixed-5b5a5047.js.map +0 -1
  1406. package/amd/Table-74566993.js +0 -2
  1407. package/amd/Table-74566993.js.map +0 -1
  1408. package/amd/TableView-3d82855c.js +0 -2
  1409. package/amd/TableView-3d82855c.js.map +0 -1
  1410. package/amd/TagCloud-c10a166e.js +0 -2
  1411. package/amd/TagCloud-c10a166e.js.map +0 -1
  1412. package/amd/ToggleButton-b77486fe.js +0 -2
  1413. package/amd/ToggleButton-b77486fe.js.map +0 -1
  1414. package/amd/ToggleButtonLabel-87364773.js +0 -2
  1415. package/amd/ToggleButtonLabel-87364773.js.map +0 -1
  1416. package/amd/TruncatingLink-591e7ff1.js +0 -2
  1417. package/amd/TruncatingLink-591e7ff1.js.map +0 -1
  1418. package/amd/YearsGridView-561c3074.js +0 -2
  1419. package/amd/YearsGridView-561c3074.js.map +0 -1
  1420. package/amd/listViewSelectionTests-7d18f09e.js +0 -2
  1421. package/amd/listViewSelectionTests-7d18f09e.js.map +0 -1
  1422. package/amd/useChartContextMenu-abadeabc.js +0 -2
  1423. package/amd/useChartContextMenu-abadeabc.js.map +0 -1
  1424. package/amd/useChartMarquee-3865426f.js +0 -2
  1425. package/amd/useChartMarquee-3865426f.js.map +0 -1
  1426. package/amd/useContextMenu-67972d45.js +0 -2
  1427. package/amd/useContextMenu-67972d45.js.map +0 -1
  1428. package/amd/useDisplayValue-9b671893.js +0 -2
  1429. package/amd/useDisplayValue-9b671893.js.map +0 -1
  1430. package/amd/useLegendContextMenu-55fedade.js +0 -2
  1431. package/amd/useLegendContextMenu-55fedade.js.map +0 -1
  1432. package/amd/useNavigationListItem-582f5564.js +0 -2
  1433. package/amd/useNavigationListItem-582f5564.js.map +0 -1
  1434. package/amd/useSelectCommon-f33709d2.js +0 -2
  1435. package/amd/useSelectCommon-f33709d2.js.map +0 -1
  1436. package/amd/useTabBar-b05edef0.js +0 -2
  1437. package/amd/useTabBar-b05edef0.js.map +0 -1
  1438. package/amd/useVisDragModeControls-5f059d09.js +0 -2
  1439. package/amd/useVisDragModeControls-5f059d09.js.map +0 -1
  1440. package/cjs/BaseButton-d8f96bfa.js +0 -86
  1441. package/cjs/BaseButton-d8f96bfa.js.map +0 -1
  1442. package/cjs/BaseDiagram-ce4f1a20.js +0 -2956
  1443. package/cjs/BaseDiagram-ce4f1a20.js.map +0 -1
  1444. package/cjs/Button-020e0381.js +0 -24
  1445. package/cjs/Button-020e0381.js.map +0 -1
  1446. package/cjs/ButtonSetButton-569e0efb.js +0 -35
  1447. package/cjs/ButtonSetButton-569e0efb.js.map +0 -1
  1448. package/cjs/ButtonSetIconButton-3778ac7b.js +0 -40
  1449. package/cjs/ButtonSetIconButton-3778ac7b.js.map +0 -1
  1450. package/cjs/ButtonSetItem-4322c957.js +0 -67
  1451. package/cjs/ButtonSetItem-4322c957.js.map +0 -1
  1452. package/cjs/Center-9a0ee4f3.js +0 -18
  1453. package/cjs/Center-9a0ee4f3.js.map +0 -1
  1454. package/cjs/Chart-966da017.js +0 -754
  1455. package/cjs/Chart-966da017.js.map +0 -1
  1456. package/cjs/CheckboxSet-6865f4fd.js +0 -55
  1457. package/cjs/CheckboxSet-6865f4fd.js.map +0 -1
  1458. package/cjs/ColorPalette-b14114d8.js +0 -83
  1459. package/cjs/ColorPalette-b14114d8.js.map +0 -1
  1460. package/cjs/ColorPicker-8f0b6000.js +0 -25
  1461. package/cjs/ColorPicker-8f0b6000.js.map +0 -1
  1462. package/cjs/CompactLabelAssistance-e910bb56.js +0 -95
  1463. package/cjs/CompactLabelAssistance-e910bb56.js.map +0 -1
  1464. package/cjs/DatePicker-b60f8a7e.js +0 -601
  1465. package/cjs/DatePicker-b60f8a7e.js.map +0 -1
  1466. package/cjs/DatePickerHeader-1010204c.js +0 -48
  1467. package/cjs/DatePickerHeader-1010204c.js.map +0 -1
  1468. package/cjs/Dialog-8b65180c.js +0 -389
  1469. package/cjs/Dialog-8b65180c.js.map +0 -1
  1470. package/cjs/Dropdown-1ba432a8.js +0 -333
  1471. package/cjs/Dropdown-1ba432a8.js.map +0 -1
  1472. package/cjs/EmbeddedIconButton-cc159a01.js +0 -13
  1473. package/cjs/EmbeddedIconButton-cc159a01.js.map +0 -1
  1474. package/cjs/EnvironmentProvider-5f2435e6.js +0 -61
  1475. package/cjs/EnvironmentProvider-5f2435e6.js.map +0 -1
  1476. package/cjs/Flex-3a257bc3.js +0 -32
  1477. package/cjs/Flex-3a257bc3.js.map +0 -1
  1478. package/cjs/Floating-79cbe5ad.js +0 -467
  1479. package/cjs/Floating-79cbe5ad.js.map +0 -1
  1480. package/cjs/Grid-cef20569.js +0 -29
  1481. package/cjs/Grid-cef20569.js.map +0 -1
  1482. package/cjs/HighlightText-f4535f3d.js +0 -33
  1483. package/cjs/HighlightText-f4535f3d.js.map +0 -1
  1484. package/cjs/IconSwitchButton-9b0df2d6.js +0 -44
  1485. package/cjs/IconSwitchButton-9b0df2d6.js.map +0 -1
  1486. package/cjs/IconToggleButton-d2147159.js +0 -43
  1487. package/cjs/IconToggleButton-d2147159.js.map +0 -1
  1488. package/cjs/IconUserAssistance-89913ad1.js +0 -76
  1489. package/cjs/IconUserAssistance-89913ad1.js.map +0 -1
  1490. package/cjs/Layer-b60deb1b.js +0 -94
  1491. package/cjs/Layer-b60deb1b.js.map +0 -1
  1492. package/cjs/LayerHost-3cd73603.js +0 -46
  1493. package/cjs/LayerHost-3cd73603.js.map +0 -1
  1494. package/cjs/LayerManager-c535d963.js +0 -36
  1495. package/cjs/LayerManager-c535d963.js.map +0 -1
  1496. package/cjs/Link-cc34e4c1.js +0 -35
  1497. package/cjs/Link-cc34e4c1.js.map +0 -1
  1498. package/cjs/LiveRegion-62ce9ac7.js +0 -41
  1499. package/cjs/LiveRegion-62ce9ac7.js.map +0 -1
  1500. package/cjs/MaxLengthLiveRegion-0a6ba765.js +0 -28
  1501. package/cjs/MaxLengthLiveRegion-0a6ba765.js.map +0 -1
  1502. package/cjs/MessageLayer-8e6e3d98.js +0 -61
  1503. package/cjs/MessageLayer-8e6e3d98.js.map +0 -1
  1504. package/cjs/MonthView-a2661a58.js +0 -210
  1505. package/cjs/MonthView-a2661a58.js.map +0 -1
  1506. package/cjs/NavigationList-d0d74565.js +0 -307
  1507. package/cjs/NavigationList-d0d74565.js.map +0 -1
  1508. package/cjs/NavigationListItem-b0b03089.js +0 -12
  1509. package/cjs/NavigationListItem-b0b03089.js.map +0 -1
  1510. package/cjs/NavigationListLinkItem-317a5200.js +0 -146
  1511. package/cjs/NavigationListLinkItem-317a5200.js.map +0 -1
  1512. package/cjs/OverflowTabBarItem-19ad4971.js +0 -264
  1513. package/cjs/OverflowTabBarItem-19ad4971.js.map +0 -1
  1514. package/cjs/Popup-de16d915.js +0 -300
  1515. package/cjs/Popup-de16d915.js.map +0 -1
  1516. package/cjs/ProgressCircle-cac3c03a.js +0 -50
  1517. package/cjs/ProgressCircle-cac3c03a.js.map +0 -1
  1518. package/cjs/ReferenceLineArea-7bc34276.js +0 -592
  1519. package/cjs/ReferenceLineArea-7bc34276.js.map +0 -1
  1520. package/cjs/RevealToggleIcon-a6a4f8db.js +0 -28
  1521. package/cjs/RevealToggleIcon-a6a4f8db.js.map +0 -1
  1522. package/cjs/SectionedContent-5eff5dce.js +0 -68
  1523. package/cjs/SectionedContent-5eff5dce.js.map +0 -1
  1524. package/cjs/SelectMenuGroupContext-a349d259.js +0 -551
  1525. package/cjs/SelectMenuGroupContext-a349d259.js.map +0 -1
  1526. package/cjs/SelectMobileFieldInput-cbf57541.js +0 -248
  1527. package/cjs/SelectMobileFieldInput-cbf57541.js.map +0 -1
  1528. package/cjs/SelectorAll-9118eb07.js +0 -53
  1529. package/cjs/SelectorAll-9118eb07.js.map +0 -1
  1530. package/cjs/StyledDatePickerButton-becd2a7d.js +0 -33
  1531. package/cjs/StyledDatePickerButton-becd2a7d.js.map +0 -1
  1532. package/cjs/StyledLabelValueLayout-48da61b9.js +0 -22
  1533. package/cjs/StyledLabelValueLayout-48da61b9.js.map +0 -1
  1534. package/cjs/Submenu-8e92469f.js +0 -251
  1535. package/cjs/Submenu-8e92469f.js.map +0 -1
  1536. package/cjs/TabBar-d84e222e.js +0 -79
  1537. package/cjs/TabBar-d84e222e.js.map +0 -1
  1538. package/cjs/TabBarContextMenu-d9bf65c2.js +0 -102
  1539. package/cjs/TabBarContextMenu-d9bf65c2.js.map +0 -1
  1540. package/cjs/TabBarLinkItem-e924f83b.js +0 -15
  1541. package/cjs/TabBarLinkItem-e924f83b.js.map +0 -1
  1542. package/cjs/Table-a102e1ee.js +0 -4114
  1543. package/cjs/Table-a102e1ee.js.map +0 -1
  1544. package/cjs/ToggleButton-5ebfe20e.js +0 -30
  1545. package/cjs/ToggleButton-5ebfe20e.js.map +0 -1
  1546. package/cjs/ToggleButtonLabel-c8f36317.js +0 -73
  1547. package/cjs/ToggleButtonLabel-c8f36317.js.map +0 -1
  1548. package/cjs/TruncatingLink-867da10e.js +0 -58
  1549. package/cjs/TruncatingLink-867da10e.js.map +0 -1
  1550. package/cjs/View-ed116d78.js +0 -170
  1551. package/cjs/View-ed116d78.js.map +0 -1
  1552. package/cjs/VisStatusMessage-07e63c6e.js +0 -31
  1553. package/cjs/VisStatusMessage-07e63c6e.js.map +0 -1
  1554. package/cjs/VisTabularDatatip-abfef042.js +0 -26
  1555. package/cjs/VisTabularDatatip-abfef042.js.map +0 -1
  1556. package/cjs/WindowOverlay-85d999fa.js +0 -112
  1557. package/cjs/WindowOverlay-85d999fa.js.map +0 -1
  1558. package/cjs/YearsGridView-d0d4e8e1.js +0 -190
  1559. package/cjs/YearsGridView-d0d4e8e1.js.map +0 -1
  1560. package/cjs/popupUtils-1d123cbe.js +0 -31
  1561. package/cjs/popupUtils-1d123cbe.js.map +0 -1
  1562. package/cjs/tooltipUtils-2bc15136.js +0 -115
  1563. package/cjs/tooltipUtils-2bc15136.js.map +0 -1
  1564. package/cjs/useChartContextMenu-af989b4f.js +0 -125
  1565. package/cjs/useChartContextMenu-af989b4f.js.map +0 -1
  1566. package/cjs/useChartDatatip-1bceba5d.js +0 -341
  1567. package/cjs/useChartDatatip-1bceba5d.js.map +0 -1
  1568. package/cjs/useChartMarquee-ede5cae4.js +0 -306
  1569. package/cjs/useChartMarquee-ede5cae4.js.map +0 -1
  1570. package/cjs/useColorScheme-f8b1447d.js +0 -21
  1571. package/cjs/useColorScheme-f8b1447d.js.map +0 -1
  1572. package/cjs/useContextMenu-2500df06.js +0 -119
  1573. package/cjs/useContextMenu-2500df06.js.map +0 -1
  1574. package/cjs/useCssVars-8e83d496.js +0 -60
  1575. package/cjs/useCssVars-8e83d496.js.map +0 -1
  1576. package/cjs/useCurrentKey-1b9e3382.js +0 -85
  1577. package/cjs/useCurrentKey-1b9e3382.js.map +0 -1
  1578. package/cjs/useDatatip-b7b4f13f.js +0 -96
  1579. package/cjs/useDatatip-b7b4f13f.js.map +0 -1
  1580. package/cjs/useDensity-0b9fd9ca.js +0 -21
  1581. package/cjs/useDensity-0b9fd9ca.js.map +0 -1
  1582. package/cjs/useDisplayValue-4ace417c.js +0 -82
  1583. package/cjs/useDisplayValue-4ace417c.js.map +0 -1
  1584. package/cjs/useExpandCollapse-ef990199.js +0 -72
  1585. package/cjs/useExpandCollapse-ef990199.js.map +0 -1
  1586. package/cjs/useFloating-c753a7f9.js +0 -1926
  1587. package/cjs/useFloating-c753a7f9.js.map +0 -1
  1588. package/cjs/useHiddenTestMethod-eae1d48b.js +0 -30
  1589. package/cjs/useHiddenTestMethod-eae1d48b.js.map +0 -1
  1590. package/cjs/useKeyboardEvents-0ab70381.js +0 -88
  1591. package/cjs/useKeyboardEvents-0ab70381.js.map +0 -1
  1592. package/cjs/useLegendContextMenu-2cf579d7.js +0 -285
  1593. package/cjs/useLegendContextMenu-2cf579d7.js.map +0 -1
  1594. package/cjs/useMeterDatatip-92ca91d9.js +0 -76
  1595. package/cjs/useMeterDatatip-92ca91d9.js.map +0 -1
  1596. package/cjs/useNavigationListItem-b97e76d5.js +0 -104
  1597. package/cjs/useNavigationListItem-b97e76d5.js.map +0 -1
  1598. package/cjs/useOutsideClick-dbf3d604.js +0 -117
  1599. package/cjs/useOutsideClick-dbf3d604.js.map +0 -1
  1600. package/cjs/useOutsideMousedown-70f36cca.js +0 -50
  1601. package/cjs/useOutsideMousedown-70f36cca.js.map +0 -1
  1602. package/cjs/usePopupAnimation-f3b34413.js +0 -87
  1603. package/cjs/usePopupAnimation-f3b34413.js.map +0 -1
  1604. package/cjs/usePrefixSuffix-23d1cc33.js +0 -72
  1605. package/cjs/usePrefixSuffix-23d1cc33.js.map +0 -1
  1606. package/cjs/useRadioFocusManager-a11750e7.js +0 -110
  1607. package/cjs/useRadioFocusManager-a11750e7.js.map +0 -1
  1608. package/cjs/useReorderableItem-64be8d2b.js +0 -299
  1609. package/cjs/useReorderableItem-64be8d2b.js.map +0 -1
  1610. package/cjs/useRovingTabIndexContainer-0ce4681d.js +0 -108
  1611. package/cjs/useRovingTabIndexContainer-0ce4681d.js.map +0 -1
  1612. package/cjs/useScale-db16c2b8.js +0 -21
  1613. package/cjs/useScale-db16c2b8.js.map +0 -1
  1614. package/cjs/useSelectCommon-27afecfa.js +0 -507
  1615. package/cjs/useSelectCommon-27afecfa.js.map +0 -1
  1616. package/cjs/useSelectDrill-0b4b47ec.js +0 -114
  1617. package/cjs/useSelectDrill-0b4b47ec.js.map +0 -1
  1618. package/cjs/useSelection-37939f09.js +0 -260
  1619. package/cjs/useSelection-37939f09.js.map +0 -1
  1620. package/cjs/useSelection-da64e28e.js +0 -188
  1621. package/cjs/useSelection-da64e28e.js.map +0 -1
  1622. package/cjs/useTabBar-35b73d10.js +0 -309
  1623. package/cjs/useTabBar-35b73d10.js.map +0 -1
  1624. package/cjs/useTestId-4f53d561.js +0 -23
  1625. package/cjs/useTestId-4f53d561.js.map +0 -1
  1626. package/cjs/useTextAreaAltEnter-11424062.js +0 -64
  1627. package/cjs/useTextAreaAltEnter-11424062.js.map +0 -1
  1628. package/cjs/useTheme-2a034a21.js +0 -21
  1629. package/cjs/useTheme-2a034a21.js.map +0 -1
  1630. package/cjs/useThemeInterpolations-a37b37d9.js +0 -71
  1631. package/cjs/useThemeInterpolations-a37b37d9.js.map +0 -1
  1632. package/cjs/useTooltip-34accecc.js +0 -51
  1633. package/cjs/useTooltip-34accecc.js.map +0 -1
  1634. package/cjs/useTooltipControlled-0a95856c.js +0 -376
  1635. package/cjs/useTooltipControlled-0a95856c.js.map +0 -1
  1636. package/cjs/useTooltipOnTruncation-8867b10e.js +0 -29
  1637. package/cjs/useTooltipOnTruncation-8867b10e.js.map +0 -1
  1638. package/cjs/useTranslationBundle-12dd087d.js +0 -31
  1639. package/cjs/useTranslationBundle-12dd087d.js.map +0 -1
  1640. package/cjs/useUser-1295b5cb.js +0 -21
  1641. package/cjs/useUser-1295b5cb.js.map +0 -1
  1642. package/cjs/useVisDragModeControls-2443a4e0.js +0 -89
  1643. package/cjs/useVisDragModeControls-2443a4e0.js.map +0 -1
  1644. package/cjs/useVisEvents-334c2c8d.js +0 -155
  1645. package/cjs/useVisEvents-334c2c8d.js.map +0 -1
  1646. package/cjs/withDirectionIcon-4940a248.js +0 -16
  1647. package/cjs/withDirectionIcon-4940a248.js.map +0 -1
  1648. package/es/BaseButton-41068c85.js +0 -84
  1649. package/es/BaseButton-41068c85.js.map +0 -1
  1650. package/es/BaseCardView-b3d8bae0.js +0 -634
  1651. package/es/BaseCardView-b3d8bae0.js.map +0 -1
  1652. package/es/BaseDiagram-b5b22e53.js +0 -2954
  1653. package/es/BaseDiagram-b5b22e53.js.map +0 -1
  1654. package/es/Button-956f51c7.js +0 -22
  1655. package/es/Button-956f51c7.js.map +0 -1
  1656. package/es/ButtonSetButton-8685c752.js +0 -33
  1657. package/es/ButtonSetButton-8685c752.js.map +0 -1
  1658. package/es/ButtonSetIconButton-c8ed85f9.js +0 -38
  1659. package/es/ButtonSetIconButton-c8ed85f9.js.map +0 -1
  1660. package/es/ButtonSetItem-280755f3.js +0 -65
  1661. package/es/ButtonSetItem-280755f3.js.map +0 -1
  1662. package/es/Center-71a03e65.js +0 -16
  1663. package/es/Center-71a03e65.js.map +0 -1
  1664. package/es/Chart-8c63da28.js +0 -752
  1665. package/es/Chart-8c63da28.js.map +0 -1
  1666. package/es/ColorPicker-ae648c4c.js +0 -23
  1667. package/es/ColorPicker-ae648c4c.js.map +0 -1
  1668. package/es/CompactLabelAssistance-e2fcfcab.js +0 -92
  1669. package/es/CompactLabelAssistance-e2fcfcab.js.map +0 -1
  1670. package/es/DatePicker-7287f0f9.js +0 -599
  1671. package/es/DatePicker-7287f0f9.js.map +0 -1
  1672. package/es/DatePickerHeader-f8cf86bb.js +0 -46
  1673. package/es/DatePickerHeader-f8cf86bb.js.map +0 -1
  1674. package/es/Dialog-83368f52.js +0 -387
  1675. package/es/Dialog-83368f52.js.map +0 -1
  1676. package/es/Dropdown-019aba37.js +0 -318
  1677. package/es/Dropdown-019aba37.js.map +0 -1
  1678. package/es/EmbeddedIconButton-46434710.js +0 -11
  1679. package/es/EmbeddedIconButton-46434710.js.map +0 -1
  1680. package/es/EnvironmentProvider-6a0a8212.js +0 -58
  1681. package/es/EnvironmentProvider-6a0a8212.js.map +0 -1
  1682. package/es/Flex-03129963.js +0 -30
  1683. package/es/Flex-03129963.js.map +0 -1
  1684. package/es/Floating-4a82db94.js +0 -465
  1685. package/es/Floating-4a82db94.js.map +0 -1
  1686. package/es/Grid-9e4b4f19.js +0 -27
  1687. package/es/Grid-9e4b4f19.js.map +0 -1
  1688. package/es/HighlightText-0205faef.js +0 -31
  1689. package/es/HighlightText-0205faef.js.map +0 -1
  1690. package/es/IconSwitchButton-05f1f602.js +0 -42
  1691. package/es/IconSwitchButton-05f1f602.js.map +0 -1
  1692. package/es/IconToggleButton-808818f5.js +0 -41
  1693. package/es/IconToggleButton-808818f5.js.map +0 -1
  1694. package/es/IconUserAssistance-61978211.js +0 -74
  1695. package/es/IconUserAssistance-61978211.js.map +0 -1
  1696. package/es/Layer-535577b5.js +0 -91
  1697. package/es/Layer-535577b5.js.map +0 -1
  1698. package/es/LayerHost-7931b424.js +0 -41
  1699. package/es/LayerHost-7931b424.js.map +0 -1
  1700. package/es/LayerManager-52a26c55.js +0 -34
  1701. package/es/LayerManager-52a26c55.js.map +0 -1
  1702. package/es/Link-8503aab2.js +0 -33
  1703. package/es/Link-8503aab2.js.map +0 -1
  1704. package/es/LiveRegion-cebac18d.js +0 -39
  1705. package/es/LiveRegion-cebac18d.js.map +0 -1
  1706. package/es/MaxLengthLiveRegion-8099fde5.js +0 -26
  1707. package/es/MaxLengthLiveRegion-8099fde5.js.map +0 -1
  1708. package/es/MessageLayer-2a7fdec7.js +0 -58
  1709. package/es/MessageLayer-2a7fdec7.js.map +0 -1
  1710. package/es/MonthView-4b2b483a.js +0 -208
  1711. package/es/MonthView-4b2b483a.js.map +0 -1
  1712. package/es/NavigationListItem-340ab770.js +0 -309
  1713. package/es/NavigationListItem-340ab770.js.map +0 -1
  1714. package/es/OverflowTabBarItem-aa0ce915.js +0 -257
  1715. package/es/OverflowTabBarItem-aa0ce915.js.map +0 -1
  1716. package/es/Popup-992b6c27.js +0 -298
  1717. package/es/Popup-992b6c27.js.map +0 -1
  1718. package/es/ProgressCircle-46084d0b.js +0 -48
  1719. package/es/ProgressCircle-46084d0b.js.map +0 -1
  1720. package/es/ReferenceLineArea-53129f72.js +0 -586
  1721. package/es/ReferenceLineArea-53129f72.js.map +0 -1
  1722. package/es/RevealToggleIcon-2d622d8f.js +0 -26
  1723. package/es/RevealToggleIcon-2d622d8f.js.map +0 -1
  1724. package/es/SectionedContent-30e5bf98.js +0 -65
  1725. package/es/SectionedContent-30e5bf98.js.map +0 -1
  1726. package/es/SelectMenuGroupContext-aa1fe822.js +0 -542
  1727. package/es/SelectMenuGroupContext-aa1fe822.js.map +0 -1
  1728. package/es/SelectMobileFieldInput-345c4d45.js +0 -241
  1729. package/es/SelectMobileFieldInput-345c4d45.js.map +0 -1
  1730. package/es/SelectorAll-de7ba2e1.js +0 -51
  1731. package/es/SelectorAll-de7ba2e1.js.map +0 -1
  1732. package/es/StyledDatePickerButton-78f2f6e8.js +0 -31
  1733. package/es/StyledDatePickerButton-78f2f6e8.js.map +0 -1
  1734. package/es/StyledLabelValueLayout-bb05f474.js +0 -18
  1735. package/es/StyledLabelValueLayout-bb05f474.js.map +0 -1
  1736. package/es/Submenu-cbd77756.js +0 -247
  1737. package/es/Submenu-cbd77756.js.map +0 -1
  1738. package/es/TabBar-67ca442c.js +0 -71
  1739. package/es/TabBar-67ca442c.js.map +0 -1
  1740. package/es/TabBarContextMenu-c3326d67.js +0 -99
  1741. package/es/TabBarContextMenu-c3326d67.js.map +0 -1
  1742. package/es/TabBarLinkItem-e7be54fa.js +0 -13
  1743. package/es/TabBarLinkItem-e7be54fa.js.map +0 -1
  1744. package/es/Table-2f197c6a.js +0 -4112
  1745. package/es/Table-2f197c6a.js.map +0 -1
  1746. package/es/TextArea-93ce78a7.js +0 -225
  1747. package/es/TextArea-93ce78a7.js.map +0 -1
  1748. package/es/ToggleButton-bb69cf10.js +0 -28
  1749. package/es/ToggleButton-bb69cf10.js.map +0 -1
  1750. package/es/ToggleButtonLabel-7f53fbee.js +0 -71
  1751. package/es/ToggleButtonLabel-7f53fbee.js.map +0 -1
  1752. package/es/TruncatingLink-298c6343.js +0 -56
  1753. package/es/TruncatingLink-298c6343.js.map +0 -1
  1754. package/es/View-5bdd9b3c.js +0 -167
  1755. package/es/View-5bdd9b3c.js.map +0 -1
  1756. package/es/VisStatusMessage-e2d629bb.js +0 -29
  1757. package/es/VisStatusMessage-e2d629bb.js.map +0 -1
  1758. package/es/VisTabularDatatip-85b00c1b.js +0 -24
  1759. package/es/VisTabularDatatip-85b00c1b.js.map +0 -1
  1760. package/es/WindowOverlay-7264c44a.js +0 -110
  1761. package/es/WindowOverlay-7264c44a.js.map +0 -1
  1762. package/es/YearsGridView-6c18094a.js +0 -187
  1763. package/es/YearsGridView-6c18094a.js.map +0 -1
  1764. package/es/popupUtils-51366a29.js +0 -29
  1765. package/es/popupUtils-51366a29.js.map +0 -1
  1766. package/es/tooltipUtils-af0abd38.js +0 -110
  1767. package/es/tooltipUtils-af0abd38.js.map +0 -1
  1768. package/es/useChartContextMenu-5de82cd7.js +0 -123
  1769. package/es/useChartContextMenu-5de82cd7.js.map +0 -1
  1770. package/es/useChartDatatip-8dd22b71.js +0 -336
  1771. package/es/useChartDatatip-8dd22b71.js.map +0 -1
  1772. package/es/useChartMarquee-761eb7db.js +0 -304
  1773. package/es/useChartMarquee-761eb7db.js.map +0 -1
  1774. package/es/useColorScheme-c4f6caab.js +0 -19
  1775. package/es/useColorScheme-c4f6caab.js.map +0 -1
  1776. package/es/useContextMenu-730d6c12.js +0 -116
  1777. package/es/useContextMenu-730d6c12.js.map +0 -1
  1778. package/es/useCssVars-bc2527ac.js +0 -58
  1779. package/es/useCssVars-bc2527ac.js.map +0 -1
  1780. package/es/useCurrentKey-5f865bbd.js +0 -83
  1781. package/es/useCurrentKey-5f865bbd.js.map +0 -1
  1782. package/es/useDatatip-4895a07a.js +0 -94
  1783. package/es/useDatatip-4895a07a.js.map +0 -1
  1784. package/es/useDensity-1acb0153.js +0 -19
  1785. package/es/useDensity-1acb0153.js.map +0 -1
  1786. package/es/useDisplayValue-65bbc74e.js +0 -78
  1787. package/es/useDisplayValue-65bbc74e.js.map +0 -1
  1788. package/es/useExpandCollapse-5739cfd2.js +0 -70
  1789. package/es/useExpandCollapse-5739cfd2.js.map +0 -1
  1790. package/es/useFloating-b9d680f7.js +0 -1916
  1791. package/es/useFloating-b9d680f7.js.map +0 -1
  1792. package/es/useHiddenTestMethod-f3f25093.js +0 -28
  1793. package/es/useHiddenTestMethod-f3f25093.js.map +0 -1
  1794. package/es/useKeyboardEvents-9aae7ea3.js +0 -85
  1795. package/es/useKeyboardEvents-9aae7ea3.js.map +0 -1
  1796. package/es/useLegendContextMenu-a678b26f.js +0 -279
  1797. package/es/useLegendContextMenu-a678b26f.js.map +0 -1
  1798. package/es/useMeterDatatip-538a4d53.js +0 -73
  1799. package/es/useMeterDatatip-538a4d53.js.map +0 -1
  1800. package/es/useOutsideClick-b777a43e.js +0 -115
  1801. package/es/useOutsideClick-b777a43e.js.map +0 -1
  1802. package/es/useOutsideMousedown-c45c22c0.js +0 -48
  1803. package/es/useOutsideMousedown-c45c22c0.js.map +0 -1
  1804. package/es/usePopupAnimation-96d2bc83.js +0 -85
  1805. package/es/usePopupAnimation-96d2bc83.js.map +0 -1
  1806. package/es/usePrefixSuffix-f981b65f.js +0 -70
  1807. package/es/usePrefixSuffix-f981b65f.js.map +0 -1
  1808. package/es/useRadioFocusManager-36eb283e.js +0 -108
  1809. package/es/useRadioFocusManager-36eb283e.js.map +0 -1
  1810. package/es/useReorderableItem-857636b7.js +0 -296
  1811. package/es/useReorderableItem-857636b7.js.map +0 -1
  1812. package/es/useRovingTabIndexContainer-5992e107.js +0 -106
  1813. package/es/useRovingTabIndexContainer-5992e107.js.map +0 -1
  1814. package/es/useScale-434ad939.js +0 -19
  1815. package/es/useScale-434ad939.js.map +0 -1
  1816. package/es/useSelectCommon-a3c69d60.js +0 -489
  1817. package/es/useSelectCommon-a3c69d60.js.map +0 -1
  1818. package/es/useSelectDrill-f669e729.js +0 -111
  1819. package/es/useSelectDrill-f669e729.js.map +0 -1
  1820. package/es/useSelection-65134722.js +0 -258
  1821. package/es/useSelection-65134722.js.map +0 -1
  1822. package/es/useSelection-82bec039.js +0 -186
  1823. package/es/useSelection-82bec039.js.map +0 -1
  1824. package/es/useTabBar-c5558e77.js +0 -305
  1825. package/es/useTabBar-c5558e77.js.map +0 -1
  1826. package/es/useTestId-f24ac480.js +0 -21
  1827. package/es/useTestId-f24ac480.js.map +0 -1
  1828. package/es/useTheme-0e7497db.js +0 -19
  1829. package/es/useTheme-0e7497db.js.map +0 -1
  1830. package/es/useThemeInterpolations-e144e8ec.js +0 -68
  1831. package/es/useThemeInterpolations-e144e8ec.js.map +0 -1
  1832. package/es/useTooltip-94af94d4.js +0 -49
  1833. package/es/useTooltip-94af94d4.js.map +0 -1
  1834. package/es/useTooltipControlled-f2cfa454.js +0 -373
  1835. package/es/useTooltipControlled-f2cfa454.js.map +0 -1
  1836. package/es/useTooltipOnTruncation-94282e75.js +0 -27
  1837. package/es/useTooltipOnTruncation-94282e75.js.map +0 -1
  1838. package/es/useTranslationBundle-4822502f.js +0 -29
  1839. package/es/useTranslationBundle-4822502f.js.map +0 -1
  1840. package/es/useUser-06d34d19.js +0 -19
  1841. package/es/useUser-06d34d19.js.map +0 -1
  1842. package/es/useVisDragModeControls-af64848c.js +0 -87
  1843. package/es/useVisDragModeControls-af64848c.js.map +0 -1
  1844. package/es/useVisEvents-256dee29.js +0 -153
  1845. package/es/useVisEvents-256dee29.js.map +0 -1
  1846. package/es/withDirectionIcon-a8d84a3d.js +0 -14
  1847. package/es/withDirectionIcon-a8d84a3d.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseDiagram-00ea8628.js","sources":["../../src/PRIVATE_BaseDiagram/utils/diagramUtils.ts","../../src/PRIVATE_BaseDiagram/DiagramLabel.tsx","../../src/PRIVATE_BaseDiagram/DiagramNodeElement.tsx","../../src/PRIVATE_BaseDiagram/DiagramLinkElement.tsx","../../src/PRIVATE_BaseDiagram/utils/zoomUtils.ts","../../src/PRIVATE_BaseDiagram/DiagramLabelLayer.tsx","../../src/PRIVATE_BaseDiagram/DiagramLinkLayer.tsx","../../src/PRIVATE_BaseDiagram/DiagramPromotedLinkElement.tsx","../../src/PRIVATE_BaseDiagram/DiagramPromotedLinkLayer.tsx","../../src/PRIVATE_BaseDiagram/DiagramNodeLayer.tsx","../../src/PRIVATE_BaseDiagram/DiagramLayers.tsx","../../src/PRIVATE_BaseDiagram/utils/panUtils.ts","../../src/PRIVATE_BaseDiagram/DiagramPanZoomContainer.tsx","../../src/PRIVATE_BaseDiagram/utils/navUtils.ts","../../src/PRIVATE_BaseDiagram/hooks/useDiagramNavigation.ts","../../src/PRIVATE_BaseDiagram/hooks/useEvents.ts","../../src/PRIVATE_BaseDiagram/hooks/useDiagramDatatip.ts","../../src/PRIVATE_BaseDiagram/hooks/usePointerGesture.ts","../../src/PRIVATE_BaseDiagram/hooks/useDragPan.ts","../../src/PRIVATE_BaseDiagram/hooks/useDrag.ts","../../src/PRIVATE_BaseDiagram/hooks/usePinch.ts","../../src/PRIVATE_BaseDiagram/hooks/usePinchZoom.ts","../../src/PRIVATE_BaseDiagram/hooks/usePanZoom.ts","../../src/PRIVATE_BaseDiagram/hooks/useWheelZoom.ts","../../src/PRIVATE_BaseDiagram/hooks/useWheel.ts","../../src/PRIVATE_BaseDiagram/hooks/useDiagramContextMenu.ts","../../src/PRIVATE_BaseDiagram/BaseDiagramWithDimensions.tsx","../../src/PRIVATE_BaseDiagram/hooks/useDiagramSelection.ts","../../src/PRIVATE_BaseDiagram/utils/contextMenuUtils.ts","../../src/PRIVATE_BaseDiagram/BaseDiagram.tsx"],"sourcesContent":["import type {\n DiagramNodeData,\n DiagramLinkData,\n ItemInfo,\n Bounds,\n Position,\n Dimensions,\n DatatipContext,\n DiagramLabelStyles,\n DiagramLabelPosition,\n DiagramLayoutOutput,\n PromotedLinkId\n} from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport type { BundleType } from '#resources/nls/bundle';\nimport type { Font, GetTextDimensionsType, TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { generateAriaLabel } from '#utils/UNSAFE_visUtils/accUtils';\nimport { DatatipConfig } from '#utils/UNSAFE_visTypes/common';\nimport { addKey, containsKey, Keys, removeKey } from '#utils/UNSAFE_keys';\n\n/**\n * Constructs the json object to be passed into the layout function\n */\nexport function constructLayoutJSON<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodeItems: Map<K1, D1>,\n linkItems: Map<K2, D2>,\n promotedLinks: PromotedLinkId<K1, D2>[],\n dimensions: Map<K1, Dimensions>,\n width: number,\n height: number,\n zoom: number,\n nodeIdToParentMap: Map<K1, K1>,\n rootRef?: RefObject<HTMLDivElement>,\n getTextDimensions?: GetTextDimensionsType\n) {\n const labelDims: Map<K1 | K2, TextDimensions> = new Map();\n const nodeValues = Array.from(nodeItems.values());\n const linkValues = Array.from(linkItems.values());\n if (getTextDimensions) {\n getLabelProps(nodeValues, linkValues, labelDims, getTextDimensions);\n }\n\n const linkKeys = Array.from(linkItems.keys());\n for (const id of linkKeys) {\n const item = linkItems.get(id as K2);\n if (item && getTextDimensions && item.label) {\n const label = item.label;\n const fontProps = _getFontProps(item.labelStyle);\n labelDims.set(id as K1 | K2, getTextDimensions(label, fontProps));\n }\n }\n const getLabelDimensions = function (data: D1 | D2) {\n return labelDims.get(data.id);\n };\n const getNodeDimensions = function (data: D1) {\n return dimensions.get(data.id);\n };\n const getRelativeNodeBounds = function (id: K1, containerId?: K1) {\n const absPos = getAbsoluteNodePosition(id, containerId, rootRef);\n if (absPos) {\n return {\n x: absPos.x / zoom,\n y: absPos.y / zoom,\n width: absPos.width / zoom,\n height: absPos.height / zoom\n };\n } else {\n return undefined;\n }\n };\n\n const getContainerId = function (startNode: K1, endNode: K1) {\n return getCommonAncestorId(startNode, endNode, nodeIdToParentMap);\n };\n\n const getPromotedLinks = function () {\n return promotedLinks;\n };\n\n return {\n layoutJSON: {\n getNodeDimensions: getNodeDimensions,\n getLabelDimensions: getLabelDimensions,\n getContainerId,\n getRelativeNodeBounds,\n getPromotedLinks,\n componentSize: {\n width: width,\n height: height\n }\n },\n labelDims: labelDims\n };\n}\n\nfunction normalizeBounds(bounds: Bounds, zoom: number) {\n return {\n x: bounds.x / zoom,\n y: bounds.y / zoom,\n width: bounds.width / zoom,\n height: bounds.height / zoom\n };\n}\n\nfunction getAbsoluteLinkBounds<K1, K2, D2>(\n itemId: K2 | PromotedLinkId<K1, D2>,\n referenceId: K1 | undefined,\n bounds: Map<K2 | PromotedLinkId<K1, D2>, Bounds | Dimensions>,\n zoom: number,\n rootRef?: RefObject<HTMLDivElement>,\n isPromoted?: boolean\n) {\n if (rootRef && rootRef.current) {\n let linkElement;\n if (isPromoted) {\n const id = `${(itemId as PromotedLinkId<K1, D2>).startNode}_${\n (itemId as PromotedLinkId<K1, D2>).endNode\n }`;\n linkElement = rootRef.current.querySelector(`[data-oj-private-promoted-link=${id}]`);\n } else {\n linkElement = rootRef.current.querySelector(`[data-oj-private-link=${itemId}]`);\n }\n let nodeContainer;\n if (referenceId) {\n nodeContainer = rootRef.current.querySelector(`[data-oj-private-node=${referenceId}]`);\n }\n const dims = bounds.get(itemId);\n if (linkElement && nodeContainer && dims) {\n const linkBoundingRect = normalizeBounds(linkElement.getBoundingClientRect(), zoom);\n const diagramBoundingRect = normalizeBounds(nodeContainer.getBoundingClientRect(), zoom);\n return {\n x: linkBoundingRect.x - diagramBoundingRect.x,\n y: linkBoundingRect.y - diagramBoundingRect.y,\n width: dims.width,\n height: dims.height\n };\n }\n }\n return null;\n}\n\nexport function getBounds<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodes: D1[],\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n nodeBounds: Map<K1, Bounds>,\n linkDimensions: Map<K2, Dimensions>,\n promotedLinkDimensions: Map<string, Dimensions>,\n zoom: number,\n rootRef?: RefObject<HTMLDivElement>\n) {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let id;\n let topId;\n let leftId;\n for (let i = 0; i < nodes.length; i++) {\n id = nodes[i].id;\n const bounds = nodeBounds.get(id);\n if (bounds) {\n if (minX > bounds.x) {\n minX = bounds.x;\n leftId = id;\n }\n if (minY > bounds.y) {\n minY = bounds.y;\n topId = id;\n }\n if (maxX < bounds.x + bounds.width) {\n maxX = bounds.x + bounds.width;\n }\n if (maxY < bounds.y + bounds.height) {\n maxY = bounds.y + bounds.height;\n }\n }\n }\n const nodeMinX = minX;\n const nodeMinY = minY;\n let linkMinX = 0;\n let linkMinY = 0;\n let linkMaxX = maxX - minX;\n let linkMaxY = maxY - minY;\n\n for (let i = 0; i < links.length; i++) {\n id = links[i].id;\n //Top and left bounds are relative to the current most top and left nodes\n const topBounds = getAbsoluteLinkBounds(id, topId, linkDimensions, zoom, rootRef);\n const leftBounds = getAbsoluteLinkBounds(id, leftId, linkDimensions, zoom, rootRef);\n if (leftBounds) {\n if (leftBounds.x < linkMinX) {\n linkMinX = leftBounds.x;\n }\n if (linkMaxX < leftBounds.x + leftBounds.width) {\n linkMaxX = leftBounds.x + leftBounds.width;\n }\n }\n if (topBounds) {\n if (topBounds.y < linkMinY) {\n linkMinY = topBounds.y;\n }\n if (linkMaxY < topBounds.y + topBounds.height) {\n linkMaxY = topBounds.y + topBounds.height;\n }\n }\n }\n\n for (let i = 0; i < promotedLinks.length; i++) {\n id = promotedLinks[i];\n //Top and left bounds are relative to the current most top and left nodes\n const topBounds = getAbsoluteLinkBounds(id, topId, promotedLinkDimensions, zoom, rootRef, true);\n const leftBounds = getAbsoluteLinkBounds(\n id,\n leftId,\n promotedLinkDimensions,\n zoom,\n rootRef,\n true\n );\n if (leftBounds) {\n if (leftBounds.x < linkMinX) {\n linkMinX = leftBounds.x;\n }\n if (linkMaxX < leftBounds.x + leftBounds.width) {\n linkMaxX = leftBounds.x + leftBounds.width;\n }\n }\n if (topBounds) {\n if (topBounds.y < linkMinY) {\n linkMinY = topBounds.y;\n }\n if (linkMaxY < topBounds.y + topBounds.height) {\n linkMaxY = topBounds.y + topBounds.height;\n }\n }\n }\n return {\n minX: nodeMinX,\n minY: nodeMinY,\n contentWidth: maxX - minX,\n contentHeight: maxY - minY,\n bounds: { x: linkMinX, y: linkMinY, width: linkMaxX - linkMinX, height: linkMaxY - linkMinY }\n };\n}\n\nfunction getAbsoluteNodePosition<K1>(\n nodeId: K1,\n containerId?: K1,\n rootRef?: RefObject<HTMLDivElement>\n) {\n if (rootRef && rootRef.current) {\n const nodeElement = rootRef.current.querySelector(`[data-oj-private-node=${nodeId}]`);\n let nodeContainer;\n if (containerId) {\n nodeContainer = rootRef.current.querySelector(`[data-oj-private-child=${containerId}]`);\n } else {\n nodeContainer = rootRef.current.querySelector('[data-oj-private-node-container]');\n }\n if (nodeElement && nodeContainer) {\n const nodeBoundingRect = nodeElement.getBoundingClientRect();\n const nodeContainerRect = nodeContainer.getBoundingClientRect();\n return {\n x: nodeBoundingRect.x - nodeContainerRect.x,\n y: nodeBoundingRect.y - nodeContainerRect.y,\n width: nodeBoundingRect.width,\n height: nodeBoundingRect.height\n };\n }\n }\n return null;\n}\n\nfunction getLabelProps<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramNodeData<K2, K1>\n>(\n nodeItems: D1[],\n linkItems: D2[],\n labelDims: Map<K1 | K2, TextDimensions>,\n getTextDimensions: GetTextDimensionsType\n) {\n nodeItems.forEach((value) => {\n if (value.nodes) {\n getNodeLabelProps<K1, K2, D1>(value.nodes, labelDims, getTextDimensions);\n }\n if (value.label) {\n const label = value.label;\n const fontProps = _getFontProps(value.labelStyle);\n labelDims.set(value.id as K1, getTextDimensions(label, fontProps));\n }\n });\n linkItems.forEach((value) => {\n if (value.label) {\n const label = value.label;\n const fontProps = _getFontProps(value.labelStyle);\n labelDims.set(value.id as K2, getTextDimensions(label, fontProps));\n }\n });\n}\n\nfunction getNodeLabelProps<K1, K2, D1 extends DiagramNodeData<K1, D1>>(\n nodeItems: D1[],\n labelDims: Map<K1 | K2, TextDimensions>,\n getTextDimensions: GetTextDimensionsType\n) {\n nodeItems.forEach((value) => {\n if (value.nodes) {\n getNodeLabelProps<K1, K2, D1>(value.nodes, labelDims, getTextDimensions);\n }\n if (value.label) {\n const label = value.label;\n const fontProps = _getFontProps(value.labelStyle);\n labelDims.set(value.id as K1, getTextDimensions(label, fontProps));\n }\n });\n}\n\n/**\n * Deconstructs the output of the layout function\n */\nexport function deconstructLayoutJSON<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(layoutJSON: DiagramLayoutOutput<K1, K2>, nodeData: D1[], linkData: D2[]) {\n const positions: Map<K1, Position> = new Map();\n const nodeLabelPos: Map<K1, DiagramLabelPosition> = new Map();\n const linkLabelPos: Map<K2, DiagramLabelPosition> = new Map();\n findPoints(layoutJSON, nodeData, positions, nodeLabelPos);\n const links = layoutJSON.links;\n let link;\n if (links) {\n for (let i = 0; i < linkData.length; i++) {\n link = links[linkData[i].id];\n if (link && link.label) linkLabelPos.set(linkData[i].id, link.label);\n }\n }\n return {\n nodePoints: positions,\n nodeLabelPos: nodeLabelPos,\n linkLabelPos: linkLabelPos\n };\n}\n\nfunction findPoints<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>\n>(\n output: DiagramLayoutOutput<K1, K2>,\n nodeData: D1[],\n positions: Map<K1, Position>,\n nodeLabelPos: Map<K1, DiagramLabelPosition>\n) {\n const nodes = output.nodes;\n let node;\n if (nodes) {\n for (let i = 0; i < nodeData.length; i++) {\n const data = nodeData[i];\n const id = data.id;\n if (data.nodes) {\n findPoints(output, data.nodes, positions, nodeLabelPos);\n }\n node = nodes[id];\n if (node) {\n positions.set(id, node.position);\n if (node.label) {\n nodeLabelPos.set(id, node.label);\n }\n }\n }\n }\n}\n\n/**\n * Merges the node points into the dimensions\n */\nexport function mergeDimensions<K1>(\n dimensions: Map<K1, Dimensions>,\n nodePoints: Map<K1, Position>,\n rootRef?: RefObject<HTMLDivElement>\n) {\n const nodeBounds: Map<K1, Bounds> = new Map();\n const nodeAbsBounds: Map<K1, Bounds> = new Map();\n dimensions.forEach((value, key) => {\n const point = nodePoints.get(key);\n const absPoint = getAbsoluteNodePosition(key, undefined, rootRef);\n if (point) {\n nodeBounds.set(key, { x: point.x, y: point.y, width: value.width, height: value.height });\n }\n if (absPoint) {\n nodeAbsBounds.set(key, { x: absPoint.x, y: absPoint.y, width: value.width, height: value.height });\n }\n });\n return { nodeBounds, nodeAbsBounds };\n}\n\n/**\n * Deep equality check for whether two arrays of bounds are the same\n */\nexport function isEqualBounds<K1>(bounds1: Map<K1, Bounds>, bounds2: Map<K1, Bounds>) {\n if (bounds1.size !== bounds2.size) return false;\n let equal = true;\n bounds1.forEach((value, key) => {\n const b2Value = bounds2.get(key);\n if (!b2Value) equal = false;\n else if (\n Math.abs(value.x - b2Value.x) > 0.5 ||\n Math.abs(value.y - b2Value.y) > 0.5 ||\n Math.abs(value.width - b2Value.width) > 0.5 ||\n Math.abs(value.height - b2Value.height) > 0.5\n )\n equal = false;\n });\n return equal;\n}\n\n/**\n * Returns the text for the diagram datatip.\n */\nexport function getDatatipContent<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodesMap: Map<K1, D1>,\n linksMap: Map<K2, D2>,\n focusedItem?: ItemInfo<K1, K2, D2>,\n hoveredItem?: ItemInfo<K1, K2, D2>,\n datatip?: DatatipConfig<DatatipContext<K1, D1, D2>>\n) {\n let itemInfo;\n const isPointerActive = hoveredItem?.isCurrent;\n if (isPointerActive && hoveredItem.id != null) {\n itemInfo = hoveredItem;\n }\n if (focusedItem && focusedItem.isCurrent) {\n itemInfo = focusedItem;\n }\n if (itemInfo && datatip) {\n let context: DatatipContext<K1, D1, D2>;\n switch (itemInfo.type) {\n case 'node': {\n context = { data: nodesMap.get(itemInfo.id as K1) as D1, type: 'node' };\n break;\n }\n case 'link': {\n context = { data: linksMap.get(itemInfo.id as K2) as D2, type: 'link' };\n break;\n }\n default: {\n context = { id: itemInfo.id as PromotedLinkId<K1, D2>, type: 'promotedLink' };\n }\n }\n\n return datatip(context);\n }\n if (itemInfo) {\n const text = (\n itemInfo.type === 'node' ? nodesMap.get(itemInfo.id as K1) : linksMap.get(itemInfo.id as K2)\n )?.accessibleLabel;\n return {\n content: text\n };\n }\n return;\n}\n\n/**\n * Creates a map with key id and value node or link data\n */\nexport function createLinksMap<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n items: (D2 | DiagramLinkData<string, K1>)[]\n) {\n const itemIdToDataMap = new Map();\n const itemIdToIndexMap = new Map();\n const itemIndexToIdMap = new Map();\n const itemIdToParentMap = new Map();\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n itemIdToDataMap.set(item.id, item);\n itemIdToIndexMap.set(item.id, i);\n itemIndexToIdMap.set(i, item.id);\n }\n return {\n itemIdToDataMap,\n itemIdToIndexMap,\n itemIndexToIdMap,\n itemIdToParentMap\n };\n}\n\n/**\n * Creates a map with key id and value node or link data\n */\nexport function createPromotedLinksMap<K1, D2>(items: PromotedLinkId<K1, D2>[]) {\n const promotedLinkMap = new Map();\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n promotedLinkMap.set(`${item.startNode}_${item.endNode}`, item);\n }\n return promotedLinkMap;\n}\n\n/**\n * Creates a map with key id and value node or link data\n */\nexport function createNodesMap<K1, D1 extends DiagramNodeData<K1, D1>>(\n items: D1[],\n expanded: Keys<K1>\n) {\n const itemIdToDataMap = new Map();\n const itemIdToIndexMap = new Map();\n const itemIndexToIdMap = new Map();\n const itemIdToParentMap = new Map();\n const allContainerNodes = [];\n const allVisibleNodes = [];\n const allVisibleNodesData = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const index = String(i);\n itemIdToDataMap.set(item.id, item);\n itemIdToIndexMap.set(item.id, index);\n itemIndexToIdMap.set(index, item.id);\n allVisibleNodes.push(item.id);\n allVisibleNodesData.push(item);\n if ((item as D1).nodes) {\n allContainerNodes.push(item);\n if (containsKey(expanded, item.id)) {\n _createItemMap<K1, D1>(\n (item as D1).nodes!,\n itemIdToDataMap,\n itemIdToIndexMap,\n itemIndexToIdMap,\n itemIdToParentMap,\n allContainerNodes,\n expanded,\n allVisibleNodes,\n item.id as K1,\n String(i)\n );\n }\n }\n }\n return {\n itemIdToDataMap,\n itemIdToIndexMap,\n itemIndexToIdMap,\n itemIdToParentMap,\n allContainerNodes,\n allVisibleNodes\n };\n}\n\nfunction _createItemMap<K1, D1 extends DiagramNodeData<K1, D1>>(\n items: D1[],\n itemIdToDataMap: Map<K1, D1>,\n itemIdToIndexMap: Map<K1, string>,\n itemIndexToIdMap: Map<string, K1>,\n itemIdToParentMap: Map<K1, K1>,\n allContainerNodes: D1[],\n expanded: Keys<K1>,\n allVisibleNodes: K1[],\n parentId: K1,\n parentIndex: string\n) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const index = `${parentIndex}_${i}`;\n itemIdToDataMap.set(item.id, item);\n itemIdToIndexMap.set(item.id, index);\n itemIndexToIdMap.set(index, item.id);\n itemIdToParentMap.set(item.id, parentId);\n allVisibleNodes.push(item.id);\n if (item.nodes) {\n allContainerNodes.push(item);\n if (containsKey(expanded, item.id)) {\n _createItemMap(\n item.nodes,\n itemIdToDataMap,\n itemIdToIndexMap,\n itemIndexToIdMap,\n itemIdToParentMap,\n allContainerNodes,\n expanded,\n allVisibleNodes,\n item.id,\n index\n );\n }\n }\n }\n}\n\n/**\n * Filter out links with no start or end nodes\n */\nexport function filterLinksWithNoStartOrEndNodes<K2, K1, D1, D2 extends DiagramLinkData<K2, K1>>(\n links: D2[],\n nodesMap: Map<K1, D1>\n) {\n const newLinks: D2[] = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n if (nodesMap.get(link.startNode) && nodesMap.get(link.endNode)) {\n newLinks.push(link);\n }\n }\n return newLinks;\n}\n\n/**\n * Pulls out the dimensions from an array of bounds\n */\nexport function getDimensionsFromBounds<K1>(bounds: Map<K1, Bounds>) {\n const dims: Map<K1, Dimensions> = new Map();\n bounds.forEach((value, key) => {\n dims.set(key, { width: value.width, height: value.height });\n });\n return dims;\n}\n\n/**\n * Returns the center position of the node or link\n * For links, draws a straight line between the centers of the start/end node\n * and returns the center of that line\n */\nexport function getFocusedItemBounds<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n focusedItemInfo: ItemInfo<K1, K2, D2>,\n bounds: Map<K1, Bounds>,\n links: D2[],\n linkIdToIndexMap: Map<K2, number>,\n rootRef?: RefObject<HTMLDivElement>\n) {\n if (focusedItemInfo.type === 'node') {\n // Return the first element if cannot find the Node index\n const position = getAbsoluteNodePosition(focusedItemInfo.id as K1, undefined, rootRef);\n const nodeBounds = bounds.get(focusedItemInfo.id as K1) || bounds.values().next().value!;\n return {\n x: position ? position.x : nodeBounds.x,\n y: position ? position.y : nodeBounds.y,\n width: nodeBounds.width,\n height: nodeBounds.height\n };\n } else {\n // Center of a straight line between start/end node centers\n const link =\n focusedItemInfo.type === 'promotedLink'\n ? focusedItemInfo.id\n : links[linkIdToIndexMap.get(focusedItemInfo.id as K2) || 0];\n const startNB = bounds.get(link.startNode) || bounds.values().next().value!;\n const endNB = bounds.get(link.endNode) || bounds.values().next().value!;\n const startNCenter = {\n x: startNB.x + startNB.width / 2,\n y: startNB.y + startNB.height / 2\n };\n const endNCenter = { x: endNB.x + endNB.width / 2, y: endNB.y + endNB.height / 2 };\n\n const minX = Math.min(startNCenter.x, endNCenter.x);\n const minY = Math.min(startNCenter.y, endNCenter.y);\n return {\n x: minX,\n y: minY,\n width: Math.abs(startNCenter.x - endNCenter.x),\n height: Math.abs(startNCenter.y - endNCenter.y)\n };\n }\n}\n\n/**\n * Returns the bounds of the diagram content\n */\nexport function getContentBounds<K1>(nodeBounds: Map<K1, Bounds>, labelBounds?: Bounds): Bounds {\n if (nodeBounds.size === 0) return { x: 0, width: Infinity, y: 0, height: Infinity };\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let dims;\n nodeBounds.forEach((value) => {\n dims = value;\n minX = dims.x < minX ? dims.x : minX;\n minY = dims.y < minY ? dims.y : minY;\n maxX = dims.x + dims.width > maxX ? dims.x + dims.width : maxX;\n maxY = dims.y + dims.height > maxY ? dims.y + dims.height : maxY;\n });\n if (labelBounds) {\n minX = labelBounds.x < minX ? labelBounds.x : minX;\n minY = labelBounds.y < minY ? labelBounds.y : minY;\n maxX = labelBounds.x + labelBounds.width > maxX ? labelBounds.x + labelBounds.width : maxX;\n maxY = labelBounds.y + labelBounds.height > maxY ? labelBounds.y + labelBounds.height : maxY;\n }\n return { x: minX, width: maxX - minX, y: minY, height: maxY - minY };\n}\n\n/**\n * Returns the label bounds\n */\nexport function getAllLabelBounds<K1, K2, D1 extends DiagramNodeData<K1, D1>>(\n labelDims: Map<K1 | K2, TextDimensions>,\n nodeLabelPos: Map<K1, DiagramLabelPosition> = new Map(),\n linkLabelPos: Map<K2, DiagramLabelPosition> = new Map(),\n isRTL: boolean,\n rootRef?: RefObject<HTMLDivElement>\n) {\n if (nodeLabelPos.size === 0) return undefined;\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let dims;\n let nodeBound;\n\n nodeLabelPos.forEach((value, key) => {\n dims = getLabelBounds(value, labelDims.get(key)!, isRTL);\n nodeBound = getAbsoluteNodePosition(key, null, rootRef);\n if (nodeBound) {\n minX = dims.x + nodeBound.x < minX ? dims.x + nodeBound.x : minX;\n minY = dims.y + nodeBound.y < minY ? dims.y + nodeBound.y : minY;\n maxX = dims.x + dims.width + nodeBound.x > maxX ? dims.x + dims.width + nodeBound.x : maxX;\n maxY = dims.y + dims.height + nodeBound.y > maxY ? dims.y + dims.height + nodeBound.y : maxY;\n }\n });\n linkLabelPos.forEach((value, key) => {\n dims = getLabelBounds(value, labelDims.get(key)!, isRTL);\n if (dims) {\n minX = dims.x < minX ? dims.x : minX;\n minY = dims.y < minY ? dims.y : minY;\n maxX = dims.x + dims.width > maxX ? dims.x + dims.width : maxX;\n maxY = dims.y + dims.height > maxY ? dims.y + dims.height : maxY;\n }\n });\n return { x: minX, width: maxX - minX, y: minY, height: maxY - minY };\n}\n\nfunction getLabelBounds(label: DiagramLabelPosition, dims: TextDimensions, isRTL: boolean) {\n const labelPos = getLabelPosition(dims, label, isRTL);\n const isRotating = label.rotationAngle;\n if (!isRotating) {\n return { x: labelPos.x, y: labelPos.y, width: dims.width, height: dims.height };\n } else {\n // Find the 4 corners of the label bounds relative to the rotation point\n const rotationPoint = label.rotationPoint\n ? label.rotationPoint\n : { x: dims.width / 2, y: dims.height / 2 };\n const angle = label.rotationAngle!;\n const topLeft = getCoordsRelToRotPoint({ x: 0, y: 0 }, rotationPoint);\n const topRight = getCoordsRelToRotPoint({ x: dims.width, y: 0 }, rotationPoint);\n const bottomLeft = getCoordsRelToRotPoint({ x: 0, y: dims.height }, rotationPoint);\n const bottomRight = getCoordsRelToRotPoint({ x: dims.width, y: dims.height }, rotationPoint);\n const rotTopLeft = rotatePoint(topLeft, angle);\n const rotBotLeft = rotatePoint(bottomLeft, angle);\n const rotTopRight = rotatePoint(topRight, angle);\n const rotBotRight = rotatePoint(bottomRight, angle);\n const points = [rotTopLeft, rotBotLeft, rotTopRight, rotBotRight].map((pos: Position) => {\n return {\n x: pos.x + labelPos.x + rotationPoint.x,\n y: pos.y + labelPos.y + rotationPoint.y\n };\n });\n return getBoundsFromPoints(points);\n }\n}\n\nfunction getCoordsRelToRotPoint(labelPoint: Position, rotPoint: Position) {\n return { x: labelPoint.x - rotPoint.x, y: labelPoint.y - rotPoint.y };\n}\n\nfunction rotatePoint(pos: Position, angle: number) {\n return {\n x: pos.x * Math.cos(angle) - pos.y * Math.sin(angle),\n y: pos.x * Math.sin(angle) + pos.y * Math.cos(angle)\n };\n}\n\nfunction getBoundsFromPoints(points: Position[]) {\n let minX = points[0].x;\n let minY = points[0].y;\n let maxX = points[0].x;\n let maxY = points[0].y;\n for (let i = 1; i < points.length; i++) {\n const point = points[i];\n if (point.x < minX) minX = point.x;\n else if (point.x > maxX) maxX = point.x;\n if (point.y < minY) minY = point.y;\n else if (point.y > maxY) maxY = point.y;\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\n\n/**\n * Returns the position of the label\n * @param dimensions\n * @param positionProps\n * @returns position of the label\n */\nexport function getLabelPosition(\n dimensions: TextDimensions,\n positionProps: DiagramLabelPosition,\n isRTL: boolean\n) {\n const position = positionProps.position;\n const hAlign = positionProps.hAlign ? positionProps.hAlign : isRTL ? 'right' : 'left';\n const vAlign = positionProps.vAlign;\n let x, y;\n if (hAlign === 'center') {\n x = position.x - dimensions.width / 2;\n } else if (hAlign === 'right') {\n x = position.x - dimensions.width;\n } else {\n x = position.x;\n }\n\n if (vAlign === 'middle') {\n y = position.y - dimensions.height / 2;\n } else if (vAlign === 'bottom') {\n y = position.y - dimensions.height;\n } else if (vAlign === 'baseline') {\n y = position.y + dimensions.y;\n } else {\n y = position.y;\n }\n return {\n x: x,\n y: y\n };\n}\n\n/**\n * Compares if two ItemInfo are equal\n */\nexport function isEqualItem<K1, K2, D2>(\n item1?: ItemInfo<K1, K2, D2>,\n item2?: ItemInfo<K1, K2, D2>\n) {\n return item1?.id === item2?.id && item1?.type === item2?.type;\n}\n\n/**\n * Returns the item info of the data-oj-node or data-oj-link attribute for a given element.\n */\nexport function getNavigableInfo<K1, K2, D2>(\n element: HTMLElement,\n promotedLinkMap: Map<string, PromotedLinkId<K1, D2>>,\n rootElementRef?: RefObject<HTMLDivElement>\n): ItemInfo<K1, K2, D2> {\n let type;\n let elem = element;\n let navigableId;\n while (!navigableId) {\n if (elem.dataset['ojPrivateNode']) {\n type = 'node';\n navigableId = elem.dataset['ojPrivateNode'];\n } else if (elem.dataset['ojPrivateLink']) {\n navigableId = elem.dataset['ojPrivateLink'];\n type = 'link';\n } else if (elem.dataset['ojPrivatePromotedLink']) {\n navigableId = promotedLinkMap.get(elem.dataset['ojPrivatePromotedLink']);\n type = 'promotedLink';\n }\n if (!navigableId) {\n if (elem.parentElement && elem.parentElement !== rootElementRef?.current) {\n elem = elem.parentElement;\n } else {\n break;\n }\n }\n }\n return {\n id: navigableId as K1 | K2,\n type: type\n } as ItemInfo<K1, K2, D2>;\n}\n\n/**\n * Returns the id of the node the expand collapse button belongs to\n */\nexport function expCollapseButtonId<K1>(\n element: HTMLElement,\n rootElementRef?: RefObject<HTMLDivElement>\n): K1 | undefined {\n let elem = element;\n let id;\n while (!id) {\n id = elem.dataset['ojPrivateButton'] as K1;\n if (!id) {\n if (\n elem.parentElement &&\n !elem.parentElement.dataset['ojPrivateNode'] &&\n elem.parentElement !== rootElementRef?.current\n ) {\n elem = elem.parentElement;\n } else {\n break;\n }\n }\n }\n return id;\n}\n\n/**\n * Returns the aria label\n */\nexport function getItemAriaLabel(\n translations: BundleType,\n supportsSelection: boolean,\n states: {\n isSelected?: boolean,\n isIndirect?: boolean,\n isExpanded?: boolean,\n isCollapsed?: boolean\n },\n accessibleLabel?: string,\n) {\n return generateAriaLabel(translations, accessibleLabel || '', {\n isSelected: !supportsSelection ? undefined : states.isSelected,\n isIndirect: states.isIndirect,\n isExpanded: states.isExpanded,\n isCollapsed: states.isCollapsed\n });\n}\n\n/**\n * Returns the font props for a node or link\n */\nfunction _getFontProps(styles?: DiagramLabelStyles) {\n const fontProps: Font = {};\n if (!styles) return fontProps;\n if (styles.fontFamily) fontProps.fontFamily = styles.fontFamily;\n if (styles.fontSize) fontProps.fontSize = styles.fontSize;\n if (styles.fontStyle) fontProps.fontStyle = styles.fontStyle;\n if (styles.fontWeight) fontProps.fontWeight = styles.fontWeight;\n return fontProps;\n}\n\n/**\n * Returns whether the node is a leaf node\n */\n\nexport function isLeafNode<K1, D1 extends DiagramNodeData<K1, D1>>(nodeData: D1) {\n return !nodeData.nodes;\n}\n\nexport function isContainerReady<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodeData: D1,\n nodeBounds: Map<K1, Bounds>,\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n linkDimensions: Map<K2, Dimensions>,\n promotedLinkDimensions: Map<string, Dimensions>\n) {\n const nodes = nodeData.nodes!;\n for (let i = 0; i < nodes?.length; i++) {\n const child = nodes[i].id;\n if (!nodeBounds.get(child)) {\n return false;\n }\n }\n for (let i = 0; i < links.length; i++) {\n const link = links[i].id;\n const linkDims = linkDimensions.get(link);\n if (!linkDims || (linkDims.width === 0 && linkDims.height === 0)) {\n return false;\n }\n }\n for (let i = 0; i < promotedLinks.length; i++) {\n const link = promotedLinks[i];\n const linkDims = promotedLinkDimensions.get(getPromotedString(link));\n if (!linkDims || (linkDims.width === 0 && linkDims.height === 0)) {\n return false;\n }\n }\n return true;\n}\n\nexport function getPromotedString<K1, D2>(id: PromotedLinkId<K1, D2>) {\n return `${id.startNode}_${id.endNode}`;\n}\n\nexport function comparePromotedLinks<K1, D2>(\n link1: PromotedLinkId<K1, D2>,\n link2: PromotedLinkId<K1, D2>\n) {\n return link1.startNode === link2.startNode && link1.endNode === link2.endNode;\n}\n\nexport function isPromoted<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n link: D2 | PromotedLinkId<K1, D2>\n) {\n return !('id' in link);\n}\n\nfunction getCommonAncestorId<K1>(startId: K1, endId: K1, nodeIdToParentMap: Map<K1, K1>) {\n const startAnc = _getAncestorIds(startId, nodeIdToParentMap);\n const endAnc = _getAncestorIds(endId, nodeIdToParentMap);\n for (let i = 0; i < startAnc.length; i++) {\n if (endAnc.indexOf(startAnc[i]) > -1) {\n return startAnc[i];\n }\n }\n return undefined;\n}\n\nexport function getLinksForNode<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n containerId: K1 | undefined,\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n nodeIdToParentMap: Map<K1, K1>\n) {\n // front links are in front of nodes\n const frontLinks = [];\n const backLinks = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const ancId = getCommonAncestorId(link.startNode, link.endNode, nodeIdToParentMap);\n if (ancId === containerId) {\n if (!nodeIdToParentMap.get(link.startNode) && !nodeIdToParentMap.get(link.endNode))\n backLinks.push(link);\n else frontLinks.push(link);\n }\n }\n const frontPromotedLinks = [];\n const backPromotedLinks = [];\n for (let i = 0; i < promotedLinks.length; i++) {\n const link = promotedLinks[i];\n const ancId = getCommonAncestorId(link.startNode, link.endNode, nodeIdToParentMap);\n if (ancId === containerId) {\n if (!nodeIdToParentMap.get(link.startNode) && !nodeIdToParentMap.get(link.endNode))\n backPromotedLinks.push(link);\n else frontPromotedLinks.push(link);\n }\n }\n return { frontLinks, frontPromotedLinks, backLinks, backPromotedLinks };\n}\n\nfunction _getAncestorIds<K1, D1 extends DiagramNodeData<K1, D1>>(nodeId: K1, nodes: Map<K1, K1>) {\n const ancestors = [];\n let anc = nodes.get(nodeId);\n while (anc !== undefined) {\n ancestors.push(anc);\n anc = nodes.get(anc);\n }\n return ancestors;\n}\n\nexport function containerLinksReady<\n K1 extends string | number,\n K2 extends string | number,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>(containerLinks: (D2 | PromotedLinkId<K1, D2>)[], layoutOutput: L) {\n const nodes = layoutOutput.nodes;\n for (let i = 0; i < containerLinks.length; i++) {\n const link = containerLinks[i];\n if (!(nodes[link.startNode] && nodes[link.endNode])) {\n return false;\n }\n }\n return true;\n}\n\nexport function changeExpanded<K1>(id: K1, expanded: Keys<K1>) {\n if (containsKey(expanded, id)) {\n return removeKey(expanded, id, false);\n } else {\n return addKey(expanded, id);\n }\n}\n\nexport function getPromotedLinks<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(links: D2[], expanded: Keys<K1>, allContainerNodes: D1[], allVisibleNodes: K1[]) {\n const collapsed: D1[] = [];\n allContainerNodes.forEach((node: D1) => {\n if (!containsKey(expanded, node.id)) {\n collapsed.push(node);\n }\n });\n const promotedLinks = [];\n const linkToPromotedMap = new Map<K2, string>();\n const promotedToLinkMap = new Map<string, D2[]>();\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const linkId = link.id;\n const startVisible = allVisibleNodes.includes(link.startNode)\n ? link.startNode\n : firstVisibleAncestor(link.startNode, collapsed);\n const endVisible = allVisibleNodes.includes(link.endNode)\n ? link.endNode\n : firstVisibleAncestor(link.endNode, collapsed);\n if (\n startVisible &&\n endVisible &&\n (startVisible !== link.startNode || endVisible !== link.endNode) &&\n startVisible !== endVisible\n ) {\n const promotedLinkId = `${startVisible}_${endVisible}`;\n let subLinks = promotedToLinkMap.get(promotedLinkId);\n if (subLinks) {\n subLinks.push(link);\n } else {\n const promotedLink = {\n id: promotedLinkId,\n startNode: startVisible,\n endNode: endVisible\n };\n promotedLinks.push(promotedLink);\n subLinks = [link];\n }\n promotedToLinkMap.set(promotedLinkId, subLinks);\n linkToPromotedMap.set(linkId, promotedLinkId);\n }\n }\n const finalPromoted = [];\n for (let i = 0; i < promotedLinks.length; i++) {\n const promotedLink = promotedLinks[i];\n finalPromoted.push({\n startNode: promotedLink.startNode,\n endNode: promotedLink.endNode,\n links: promotedToLinkMap.get(promotedLink.id)!\n });\n }\n return finalPromoted;\n}\n\n// One of the start/end node position changed causing the link position to change\nexport function linkPositionChanged<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n nodeBounds: Map<K1, Bounds>,\n bounds: Map<K1, Bounds>,\n links: D2[]\n) {\n const nodesWithLinks: K1[] = [];\n links.forEach((value) => {\n if (!nodesWithLinks.includes(value.startNode)) {\n nodesWithLinks.push(value.startNode);\n }\n if (!nodesWithLinks.includes(value.endNode)) {\n nodesWithLinks.push(value.endNode);\n }\n });\n let rerender = false;\n nodeBounds.forEach((value, key) => {\n const b2Value = bounds.get(key);\n let equal = true;\n if (!b2Value) equal = false;\n else if (\n Math.abs(value.x - b2Value.x) > 0.5 ||\n Math.abs(value.y - b2Value.y) > 0.5 ||\n Math.abs(value.width - b2Value.width) > 0.5 ||\n Math.abs(value.height - b2Value.height) > 0.5\n ) {\n equal = false;\n }\n if (!equal && nodesWithLinks.includes(key)) {\n rerender = true;\n }\n });\n return rerender;\n}\n\nexport function getChildInfo<K1, D1 extends DiagramNodeData<K1, D1>>(\n id: K1,\n nodeIdToDataMap: Map<K1, D1>\n) {\n const nodes = nodeIdToDataMap.get(id)?.nodes;\n if (nodes && nodes.length > 0) {\n return nodes[0];\n }\n return undefined;\n}\n\nfunction firstVisibleAncestor<K1, D1 extends DiagramNodeData<K1, D1>>(nodeId: K1, collapsed: D1[]) {\n const isDescendant = (chId: K1, data?: D1[]) => {\n if (data) {\n for (let i = 0; i < data.length; i++) {\n if (data[i].id === chId || isDescendant(chId, data[i].nodes)) {\n return true;\n }\n }\n }\n return false;\n };\n for (let i = 0; i < collapsed.length; i++) {\n const node = collapsed[i];\n if (isDescendant(nodeId, node.nodes)) {\n return node.id;\n }\n }\n return null;\n}\n","import type { DiagramLabelPosition, DiagramLabelStyles } from './diagram.types';\nimport { getLabelPosition } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { labelStyles } from './themes/DiagramStyles.css';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { Property } from 'csstype';\n\n/**\n * Props for the label component\n */\ntype LabelProps = {\n styles?: LabelStyles;\n text: string;\n position: DiagramLabelPosition;\n dimensions: TextDimensions;\n isRTL: boolean;\n};\n\n/**\n * Label styles\n */\ntype LabelStyles = DiagramLabelStyles & {\n borderStyle?: Property.BorderStyle;\n};\n\nexport const DiagramLabel = ({ text, position, styles, dimensions, isRTL }: LabelProps) => {\n const { labelStyle, labelBorderStyle } = labelStyles;\n\n const labelPosition = getLabelPosition(dimensions, position, isRTL);\n const labelRotation = getLabelRotation(position);\n return (\n <div\n class={classNames([labelStyle, styles && styles.borderColor && labelBorderStyle])}\n style={{\n top: labelPosition.y,\n left: labelPosition.x,\n ...styles,\n ...labelRotation\n }}>\n {text}\n </div>\n );\n};\n\n/**\n * Returns the label rotation props\n * @param position\n * @returns rotation props\n */\nfunction getLabelRotation(position: DiagramLabelPosition) {\n const rotationAngle = position.rotationAngle;\n const rotationPoint = position.rotationPoint;\n const rotation: {\n transform?: string;\n 'transform-origin'?: string;\n } = {};\n if (rotationAngle) {\n rotation['transform'] = `rotate(${rotationAngle}deg)`;\n }\n if (rotationPoint) {\n rotation['transform-origin'] = `${rotationPoint.x}px ${rotationPoint.y}px`;\n }\n return rotation;\n}\n","import type {\n Position,\n NodeState,\n NodeRendererContext,\n DiagramLabelPosition,\n DiagramNodeData\n} from './diagram.types';\nimport { useResizeObserver } from '#hooks/UNSAFE_useResizeObserver';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { getItemAriaLabel } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { buttonStyle, itemStyles, layerStyles } from './themes/DiagramStyles.css';\nimport { ComponentChildren } from 'preact';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { DiagramLabel } from './DiagramLabel';\nimport { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { EmbeddedIconButton } from '#PRIVATE_EmbeddedIconButton';\nimport { Plus } from '#UNSAFE_RedwoodIcons/Plus';\nimport { Minus } from '#UNSAFE_RedwoodIcons/Minus';\n\n/**\n * Props for node component\n */\ntype NodeProps<K1, K2, D1> = {\n id: K1;\n position?: Position;\n state: NodeState;\n isDimmed?: boolean;\n activeId?: string;\n accessibleLabel?: string;\n data: D1;\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n onNodeSizeChanged: (width: number, height: number, id: K1) => void;\n supportsSelection: boolean;\n content?: { content: ComponentChildren; width: number; height: number };\n labelPosition?: DiagramLabelPosition;\n labelDimensions?: Map<K1 | K2, TextDimensions>;\n};\n\nexport const DiagramNodeElement = <K1, K2, D1 extends DiagramNodeData<K1, D1>>({\n id,\n state,\n position,\n activeId,\n nodeRenderer,\n onNodeSizeChanged,\n data,\n accessibleLabel,\n isDimmed,\n supportsSelection,\n content,\n labelPosition,\n labelDimensions\n}: NodeProps<K1, K2, D1>) => {\n const { nodeStyles, dimmedItemStyle } = itemStyles;\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const ref = useRef<HTMLDivElement>(null);\n // TODO JET-62472 change to one resize observer function\n const optionsRef = useRef({ box: 'border-box' as const });\n\n useResizeObserver(\n ref,\n useCallback(\n (entry: ResizeObserverEntry) => {\n const boxSize = entry.borderBoxSize;\n const width = boxSize[0].inlineSize;\n const height = boxSize[0].blockSize;\n onNodeSizeChanged(width, height, id);\n },\n [id, onNodeSizeChanged]\n ),\n optionsRef.current\n );\n const nodePos = position ? position : { x: 0, y: 0 };\n const { direction } = useUser();\n const hasLabel = data.label && labelPosition && labelDimensions;\n const expander = (\n <div data-oj-private-button={id} class={buttonStyle}>\n <EmbeddedIconButton aria-hidden={true} size=\"xs\">\n {content ? <Minus /> : <Plus />}\n </EmbeddedIconButton>\n </div>\n );\n const context = {\n state: state,\n data: data,\n childContext: content,\n expander: expander\n };\n return (\n <div\n ref={ref}\n key={id}\n class={nodeStyles}\n data-oj-private-node={id}\n role={content ? 'group' : \"img\"}\n aria-label={getItemAriaLabel(\n translations,\n supportsSelection,\n {\n isSelected: state.isSelected,\n isExpanded: content !== undefined,\n isCollapsed: (content === undefined) && (data.nodes !== undefined)\n },\n accessibleLabel\n )}\n style={{\n top: nodePos.y,\n left: nodePos.x\n }}\n id={state.isFocused || state.isHovered ? activeId : undefined}>\n <div class={classNames([isDimmed ? dimmedItemStyle : undefined])}>\n {nodeRenderer(context)}\n </div>\n {hasLabel ? (\n <div class={layerStyles}>\n <DiagramLabel\n styles={data.labelStyle}\n text={data.label!}\n position={labelPosition!}\n dimensions={labelDimensions.get(id)!}\n isRTL={direction === 'rtl'}\n />\n </div>\n ) : undefined}\n </div>\n );\n};\n","import type { LinkState, LinkRendererContext, DiagramLinkData } from './diagram.types';\nimport { getItemAriaLabel } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { itemStyles } from './themes/DiagramStyles.css';\nimport { ComponentChildren } from 'preact';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { useResizeObserver } from '#hooks/UNSAFE_useResizeObserver';\n\n/**\n * Props for Link\n */\nexport type LinkProps<K1, K2, D2, L> = {\n id: K2;\n state: LinkState;\n isDimmed?: boolean;\n activeId?: string;\n accessibleLabel?: string;\n data: D2 | DiagramLinkData<string, K1>;\n linkRenderer: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n supportsSelection: boolean;\n layoutOutput: L;\n onLinkSizeChanged: (width: number, height: number, id: K2) => void;\n};\n\nexport const DiagramLinkElement = <K1, K2, D2 extends DiagramLinkData<K2, K1>, L>({\n id,\n state,\n activeId,\n data,\n linkRenderer,\n accessibleLabel,\n isDimmed,\n supportsSelection,\n layoutOutput,\n onLinkSizeChanged\n}: LinkProps<K1, K2, D2, L>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { dimmedItemStyle, linkStyles } = itemStyles;\n const context = {\n state: state,\n data: data,\n layoutOutput: layoutOutput,\n type: 'link'\n } as LinkRendererContext<K1, D2, L>;\n const ref = useRef<SVGGElement>(null);\n const optionsRef = useRef({ box: 'border-box' as const });\n useResizeObserver(\n ref,\n useCallback(\n (entry: ResizeObserverEntry) => {\n const boxSize = entry.borderBoxSize;\n const width = boxSize[0].inlineSize;\n const height = boxSize[0].blockSize;\n onLinkSizeChanged(width, height, id);\n },\n [id, onLinkSizeChanged]\n ),\n optionsRef.current\n );\n return (\n <g\n ref={ref}\n key={id}\n id={state.isFocused ? activeId : undefined}\n aria-label={getItemAriaLabel(\n translations,\n supportsSelection,\n {\n isSelected: state.isSelected\n },\n accessibleLabel\n )}\n data-oj-private-link={id}\n role=\"img\"\n class={classNames([linkStyles, isDimmed && dimmedItemStyle])}>\n {linkRenderer(context)}\n </g>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { Bounds, DiagramLinkData, ItemInfo, Zoom } from '#PRIVATE_BaseDiagram/diagram.types';\n\nexport const ZOOM_INCREMENT = 0.05;\nconst ZOOM_TO_FIT_PADDING = 20;\n\nexport const zoom = (\n nextZoom: number,\n zoom: number,\n minZoom: number,\n maxZoom: number,\n onZoomChange?: (detail: { zoomValue: number }) => void\n) => {\n const newZoom = nextZoom > maxZoom || nextZoom < minZoom ? zoom : nextZoom;\n const isZoomChanged = newZoom !== zoom;\n isZoomChanged &&\n onZoomChange &&\n onZoomChange({\n zoomValue: newZoom\n });\n};\n\n/**\n * Returns the zoom properties for the diagram.\n */\nexport function getZoomProps(props: Zoom, width: number, height: number, contentBounds: Bounds) {\n const zoomTofitZoom = getZoomToFitZoom(width, height, contentBounds);\n const maxZoom = props.maxZoom || 1;\n const minZoom = props.minZoom || Math.min(maxZoom, zoomTofitZoom);\n const zoom = props.zoomValue ? props.zoomValue : zoomTofitZoom;\n return {\n zooming: props.zooming ? props.zooming : 'off',\n // default value of 0 indicates zoom-to-fit level\n minZoom: minZoom,\n maxZoom: maxZoom,\n // zoom value of 0 will default to zoom to fit\n zoomValue: constrainZoom(zoom, minZoom, maxZoom),\n onZoom: props.onZoom\n };\n}\n\n/**\n * Returns the zoom to fit zoom level\n */\nexport function getZoomToFitZoom(width: number, height: number, contentBounds: Bounds) {\n const zoomX = (width - 2 * ZOOM_TO_FIT_PADDING) / contentBounds.width;\n const zoomY = (height - 2 * ZOOM_TO_FIT_PADDING) / contentBounds.height;\n return Math.min(zoomX, zoomY);\n}\n\n/**\n * Constrains the zoom level\n */\nfunction constrainZoom(zoom: number, minZoom: number, maxZoom: number) {\n let newZoom = Math.max(minZoom, zoom);\n newZoom = Math.min(maxZoom, newZoom);\n return newZoom;\n}\n\n/**\n * Returns the panX, panY, and zoom when zooming and centering an item\n */\nexport function zoomAndCenterItemFromInfo<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n info: ItemInfo<K1, K2, D2>,\n linkIdToDataMap: Map<K2, D2>,\n bounds: Map<K1, Bounds>,\n width: number,\n height: number,\n maxZoom: number\n) {\n const type = info.type;\n let totalBounds;\n if (type === 'node') {\n totalBounds = bounds.get(info.id as K1)!;\n } else {\n const link = linkIdToDataMap.get(info.id as K2)!;\n const startNodeBounds = bounds.get(link.startNode)!;\n const endNodeBounds = bounds.get(link.endNode)!;\n const minX = Math.min(startNodeBounds.x, endNodeBounds.x);\n const minY = Math.min(startNodeBounds.y, endNodeBounds.y);\n const maxX = Math.max(\n startNodeBounds.x + startNodeBounds.width,\n endNodeBounds.x + startNodeBounds.width\n );\n const maxY = Math.max(\n startNodeBounds.y + startNodeBounds.height,\n endNodeBounds.y + endNodeBounds.height\n );\n totalBounds = { x: minX, y: minY, width: maxX - minX, height: maxY - minY };\n }\n return getPanZoomToCenterNode(totalBounds, maxZoom, width, height);\n}\n\n/**\n * Returns the pan and zoom values in order\n * to center a node or link\n */\nfunction getPanZoomToCenterNode(bounds: Bounds, maxZoom: number, width: number, height: number) {\n const zoomX = (width - 2 * ZOOM_TO_FIT_PADDING) / bounds.width;\n const zoomY = (height - 2 * ZOOM_TO_FIT_PADDING) / bounds.height;\n const zoom = Math.min(zoomX, zoomY, maxZoom);\n const cX = bounds.width / 2 + bounds.x;\n const cY = bounds.height / 2 + bounds.y;\n return { centerX: cX, centerY: cY, zoom: zoom };\n}\n","import type { DiagramLabelPosition, DiagramLinkData } from './diagram.types';\nimport { DiagramLabel } from './DiagramLabel';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { layerStyles } from './themes/DiagramStyles.css';\nimport { useUser } from '#hooks/UNSAFE_useUser';\n\ntype Props<K1, K2, D2 extends DiagramLinkData<K2, K1>> = {\n labelPosition: Map<K2, DiagramLabelPosition>;\n itemProps: D2[];\n labelDimensions: Map<K2, TextDimensions>;\n};\n\nexport function DiagramLabelLayer<K1, K2, D2 extends DiagramLinkData<K2, K1>>({\n labelPosition,\n itemProps,\n labelDimensions\n}: Props<K1, K2, D2>) {\n const { direction } = useUser();\n return (\n <div class={layerStyles}>\n {itemProps.map((item) => {\n if (item.label && labelPosition.get(item.id)) {\n return (\n <DiagramLabel\n styles={item.labelStyle}\n text={item.label}\n position={labelPosition.get(item.id)!}\n dimensions={labelDimensions.get(item.id)!}\n isRTL={direction === 'rtl'}\n />\n );\n }\n return undefined;\n })}\n </div>\n );\n}\n","import { ComponentChildren } from 'preact';\nimport type {\n States,\n LinkRendererContext,\n DiagramLinkData,\n DiagramLayoutOutput,\n Bounds,\n DiagramLabelPosition\n} from './diagram.types';\nimport { DiagramLinkElement } from './DiagramLinkElement';\nimport { layerStyles, linkLayerStyle } from './themes/DiagramStyles.css';\nimport { getZoomToFitZoom } from './utils/zoomUtils';\nimport { DiagramLabelLayer } from './DiagramLabelLayer';\nimport { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\n\ntype Props<K2, K1, D2, L> = {\n links: D2[];\n states: States<K1, K2, D2>;\n linkRenderer: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n width: number;\n height: number;\n supportsSelection: boolean;\n layoutOutput: L;\n combinedNodeBounds: Bounds;\n labelDimensions: Map<K1 | K2, TextDimensions>;\n linkLabelPositions: Map<K2, DiagramLabelPosition>;\n onLinkSizeChanged: (width: number, height: number, id: K2) => void;\n minX: number;\n minY: number;\n};\n\nexport function DiagramLinkLayer<\n K2 extends string | number,\n K1 extends string | number,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({\n links,\n states,\n linkRenderer,\n width,\n height,\n supportsSelection,\n onLinkSizeChanged,\n layoutOutput,\n combinedNodeBounds,\n linkLabelPositions,\n labelDimensions,\n minX,\n minY\n}: Props<K2, K1, D2, L>) {\n const zoom = getZoomToFitZoom(width, height, combinedNodeBounds);\n return (\n <div class={linkLayerStyle} style={{ top: -minY, left: -minX }}>\n <svg width={width / zoom} height={height / zoom} class={layerStyles} overflow=\"visible\">\n {links.map((link) => {\n const state = {\n isSelected: states.selectedLinkIds.includes(link.id),\n isFocused: states.focusedId === link.id,\n isHovered: states.hoveredId === link.id,\n zoom: states.zoom\n };\n return (\n <DiagramLinkElement\n id={link.id}\n state={state}\n isDimmed={\n (states.highlightedNodeIds.length !== 0 ||\n states.highlightedLinkIds.length !== 0 ||\n states.highlightedPromotedLinkIds.length !== 0) &&\n !states.highlightedLinkIds.includes(link.id)\n }\n activeId={states.activeId}\n accessibleLabel={link.accessibleLabel}\n data={link}\n linkRenderer={linkRenderer}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onLinkSizeChanged}\n />\n );\n })}\n </svg>\n {labelDimensions ? (\n <div>\n {links && linkLabelPositions ? (\n <DiagramLabelLayer\n labelPosition={linkLabelPositions}\n itemProps={links}\n labelDimensions={labelDimensions}\n />\n ) : undefined}\n </div>\n ) : undefined}\n </div>\n );\n}\n","import type { LinkState, LinkRendererContext, PromotedLinkId } from './diagram.types';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { itemStyles } from './themes/DiagramStyles.css';\nimport { ComponentChildren } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { useResizeObserver } from '#hooks/UNSAFE_useResizeObserver';\nimport { getItemAriaLabel, getPromotedString } from './utils/diagramUtils';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\n\n/**\n * Props for Link\n */\nexport type LinkProps<K1, D2, L> = {\n id: PromotedLinkId<K1, D2>;\n state: LinkState;\n isDimmed?: boolean;\n activeId?: string;\n linkRenderer: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n supportsSelection: boolean;\n layoutOutput: L;\n onLinkSizeChanged: (width: number, height: number, id: string) => void;\n};\n\nexport const DiagramPromotedLinkElement = <K1, D2, L>({\n id,\n state,\n activeId,\n linkRenderer,\n isDimmed,\n supportsSelection,\n layoutOutput,\n onLinkSizeChanged\n}: LinkProps<K1, D2, L>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { dimmedItemStyle, linkStyles } = itemStyles;\n const context = {\n state: state,\n data: id.links,\n layoutOutput: layoutOutput,\n startNode: id.startNode,\n endNode: id.endNode,\n type: 'promotedLink'\n } as LinkRendererContext<K1, D2, L>;\n const ref = useRef<SVGGElement>(null);\n const optionsRef = useRef({ box: 'border-box' as const });\n const stringId = getPromotedString(id);\n useResizeObserver(\n ref,\n useCallback(\n (entry: ResizeObserverEntry) => {\n const boxSize = entry.borderBoxSize;\n const width = boxSize[0].inlineSize;\n const height = boxSize[0].blockSize;\n onLinkSizeChanged(width, height, stringId);\n },\n [stringId, onLinkSizeChanged]\n ),\n optionsRef.current\n );\n const num_links = id.links.length;\n const accessibleLabel =\n num_links > 1\n ? translations.diagram_promotedLinks({ num_links: num_links.toString() })\n : translations.diagram_promotedLink();\n return (\n <g\n ref={ref}\n key={stringId}\n id={state.isFocused ? activeId : undefined}\n aria-label={getItemAriaLabel(\n translations,\n supportsSelection,\n {\n isSelected: state.isSelected,\n isIndirect: true\n },\n accessibleLabel\n )}\n data-oj-private-promoted-link={stringId}\n role=\"img\"\n class={classNames([linkStyles, isDimmed && dimmedItemStyle])}>\n {linkRenderer(context)}\n </g>\n );\n};\n","import { ComponentChildren } from 'preact';\nimport type {\n States,\n LinkRendererContext,\n DiagramLinkData,\n DiagramLayoutOutput,\n Bounds,\n PromotedLinkId\n} from './diagram.types';\nimport { layerStyles, linkLayerStyle } from './themes/DiagramStyles.css';\nimport { getZoomToFitZoom } from './utils/zoomUtils';\nimport { DiagramPromotedLinkElement } from './DiagramPromotedLinkElement';\n\ntype Props<K2, K1, D2, L> = {\n links: PromotedLinkId<K1, D2>[];\n states: States<K1, K2, D2>;\n linkRenderer: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n width: number;\n height: number;\n supportsSelection: boolean;\n layoutOutput: L;\n combinedNodeBounds: Bounds;\n onLinkSizeChanged: (width: number, height: number, id: string) => void;\n minX: number;\n minY: number;\n};\n\nexport function DiagramPromotedLinkLayer<\n K2 extends string | number,\n K1 extends string | number,\n D2 extends DiagramLinkData<K2, K1> = DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2> = DiagramLayoutOutput<K1, K2>\n>({\n links,\n states,\n linkRenderer,\n width,\n height,\n supportsSelection,\n onLinkSizeChanged,\n layoutOutput,\n combinedNodeBounds,\n minX,\n minY\n}: Props<K2, K1, D2, L>) {\n const zoom = getZoomToFitZoom(width, height, combinedNodeBounds);\n return (\n <div class={linkLayerStyle} style={{ top: -minY, left: -minX }}>\n <svg width={width / zoom} height={height / zoom} class={layerStyles} overflow=\"visible\">\n {links.map((link) => {\n const state = {\n isSelected: states.selectedPromotedLinkIds.includes(link),\n isFocused: states.focusedId === link,\n isHovered: states.hoveredId === link,\n zoom: states.zoom\n };\n return (\n <DiagramPromotedLinkElement\n id={link}\n state={state}\n isDimmed={\n (states.highlightedNodeIds.length !== 0 ||\n states.highlightedLinkIds.length !== 0 ||\n states.highlightedPromotedLinkIds.length !== 0) &&\n !states.highlightedPromotedLinkIds.includes(link)\n }\n activeId={states.activeId}\n linkRenderer={linkRenderer}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onLinkSizeChanged}\n />\n );\n })}\n </svg>\n </div>\n );\n}\n","import { ComponentChildren, RefObject } from 'preact';\nimport type {\n States,\n NodeRendererContext,\n Bounds,\n DiagramNodeData,\n DiagramLabelPosition,\n Dimensions,\n DiagramLinkData,\n LinkRendererContext,\n DiagramLayoutOutput,\n PromotedLinkId\n} from './diagram.types';\nimport { DiagramNodeElement } from './DiagramNodeElement';\nimport { layerStyles } from './themes/DiagramStyles.css';\nimport {\n containerLinksReady,\n getBounds,\n getLinksForNode,\n isContainerReady,\n isLeafNode\n} from './utils/diagramUtils';\nimport { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { DiagramLinkLayer } from './DiagramLinkLayer';\nimport { DiagramPromotedLinkLayer } from './DiagramPromotedLinkLayer';\nimport { containsKey } from '#utils/UNSAFE_keys';\n\ntype Props<K1, K2, D1, D2, L> = {\n nodes: D1[];\n states: States<K1, K2, D2>;\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n linkRenderer?: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n onNodeSizeChanged: (width: number, height: number, id: K1) => void;\n onLinkSizeChanged: (width: number, height: number, id: K2) => void;\n onPromotedLinkSizeChanged: (width: number, height: number, id: string) => void;\n nodeBounds: Map<K1, Bounds>;\n supportsSelection: boolean;\n minX?: number;\n minY?: number;\n nodeLabelPositions: Map<K1, DiagramLabelPosition>;\n linkLabelPositions: Map<K2, DiagramLabelPosition>;\n labelDimensions: Map<K1 | K2, TextDimensions>;\n links: D2[];\n promotedLinks: PromotedLinkId<K1, D2>[];\n parentId?: K1;\n nodeIdToParentMap: Map<K1, K1>;\n layoutOutput?: L;\n // width height are for svg for links\n width: number;\n height: number;\n zoom: number;\n linkDimensions: Map<K2, Dimensions>;\n promotedLinkDimensions: Map<string, Dimensions>;\n rootRef?: RefObject<HTMLDivElement>;\n combinedNodeBounds: Bounds;\n nodeBoundsRef: RefObject<Map<K1, Bounds>>;\n normalizeLinks?: boolean;\n};\n\nexport function DiagramNodeLayer<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({\n nodes,\n states,\n nodeRenderer,\n linkRenderer,\n nodeBounds,\n width,\n height,\n onNodeSizeChanged,\n onLinkSizeChanged,\n onPromotedLinkSizeChanged,\n supportsSelection,\n nodeLabelPositions,\n linkLabelPositions,\n labelDimensions,\n minX = 0,\n minY = 0,\n parentId,\n links,\n promotedLinks,\n layoutOutput,\n zoom,\n nodeIdToParentMap,\n linkDimensions,\n promotedLinkDimensions,\n rootRef,\n combinedNodeBounds,\n nodeBoundsRef,\n normalizeLinks = false\n}: Props<K1, K2, D1, D2, L>) {\n const { frontLinks, frontPromotedLinks, backLinks, backPromotedLinks } = getLinksForNode<\n K1,\n K2,\n D2\n >(parentId, links, promotedLinks, nodeIdToParentMap);\n return (\n <div class={layerStyles} data-oj-private-node-container>\n {layoutOutput &&\n linkRenderer &&\n backLinks.length > 0 &&\n containerLinksReady<K1, K2, D2, L>(backLinks, layoutOutput) && (\n <DiagramLinkLayer\n links={backLinks}\n states={states}\n linkRenderer={linkRenderer}\n width={width / zoom}\n height={height}\n supportsSelection={supportsSelection}\n labelDimensions={labelDimensions}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onLinkSizeChanged}\n linkLabelPositions={linkLabelPositions}\n combinedNodeBounds={combinedNodeBounds}\n minY={normalizeLinks ? minY : 0}\n minX={normalizeLinks ? minX : 0}\n />\n )}\n {layoutOutput &&\n linkRenderer &&\n backPromotedLinks.length > 0 &&\n containerLinksReady<K1, K2, D2, L>(backPromotedLinks, layoutOutput) && (\n <DiagramPromotedLinkLayer\n links={backPromotedLinks as PromotedLinkId<K1, D2>[]}\n states={states}\n linkRenderer={linkRenderer}\n width={width / zoom}\n height={height}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onPromotedLinkSizeChanged}\n combinedNodeBounds={combinedNodeBounds}\n minY={normalizeLinks ? minY : 0}\n minX={normalizeLinks ? minX : 0}\n />\n )}\n\n {nodes.map((node) => {\n // this is for initial render before the layout function so render all nodes at 0,0\n const position =\n nodeBounds && nodeBounds.get(node.id)\n ? { x: nodeBounds.get(node.id)!.x - minX, y: nodeBounds.get(node.id)!.y - minY }\n : undefined;\n const state = {\n isSelected: states.selectedNodeIds.includes(node.id),\n isFocused: states.focusedId === node.id,\n isHovered: states.hoveredId === node.id,\n zoom: states.zoom,\n isExpanded: states.expanded && containsKey(states.expanded, node.id)\n };\n const { backLinks, backPromotedLinks } = getLinksForNode<K1, K2, D2>(\n node.id,\n links,\n promotedLinks,\n nodeIdToParentMap\n );\n\n // Leaf node or node is collapsed\n if (isLeafNode(node) || !containsKey(states.expanded, node.id)) {\n return (\n <DiagramNodeElement\n id={node.id}\n position={position}\n state={state}\n isDimmed={\n (states.highlightedNodeIds.length !== 0 ||\n states.highlightedLinkIds.length !== 0 ||\n states.highlightedPromotedLinkIds.length !== 0) &&\n !states.highlightedNodeIds.includes(node.id)\n }\n activeId={states.activeId}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n accessibleLabel={node.accessibleLabel}\n data={node}\n supportsSelection={supportsSelection}\n labelDimensions={labelDimensions}\n labelPosition={nodeLabelPositions?.get(node.id)}\n />\n );\n // Expanded container where children are ready\n } else if (\n nodeBounds &&\n isContainerReady<K1, K2, D1, D2>(\n node,\n nodeBounds,\n backLinks,\n backPromotedLinks,\n linkDimensions,\n promotedLinkDimensions\n )\n ) {\n const childContent = getContent<K1, K2, D1, D2, L>(\n node,\n states,\n nodeRenderer,\n onNodeSizeChanged,\n onLinkSizeChanged,\n onPromotedLinkSizeChanged,\n supportsSelection,\n links,\n promotedLinks,\n nodeIdToParentMap,\n width,\n height,\n zoom,\n node.id,\n nodeBounds,\n linkDimensions,\n promotedLinkDimensions,\n combinedNodeBounds,\n nodeBoundsRef,\n nodeLabelPositions,\n linkLabelPositions,\n labelDimensions,\n linkRenderer,\n layoutOutput,\n rootRef\n );\n return (\n <DiagramNodeElement\n id={node.id}\n position={position}\n state={state}\n isDimmed={\n (states.highlightedNodeIds.length !== 0 ||\n states.highlightedLinkIds.length !== 0 ||\n states.highlightedPromotedLinkIds.length !== 0) &&\n !states.highlightedNodeIds.includes(node.id)\n }\n activeId={states.activeId}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n accessibleLabel={node.accessibleLabel}\n data={node}\n supportsSelection={supportsSelection}\n content={childContent}\n labelDimensions={labelDimensions}\n labelPosition={nodeLabelPositions?.get(node.id)}\n />\n );\n } else {\n const childContent = getContent<K1, K2, D1, D2, L>(\n node,\n states,\n nodeRenderer,\n onNodeSizeChanged,\n onLinkSizeChanged,\n onPromotedLinkSizeChanged,\n supportsSelection,\n links,\n promotedLinks,\n nodeIdToParentMap,\n width,\n height,\n zoom,\n node.id,\n nodeBounds,\n linkDimensions,\n promotedLinkDimensions,\n combinedNodeBounds,\n nodeBoundsRef,\n nodeLabelPositions,\n linkLabelPositions,\n labelDimensions,\n linkRenderer,\n layoutOutput,\n rootRef\n );\n return <div>{childContent.content}</div>;\n }\n })}\n {layoutOutput &&\n linkRenderer &&\n frontLinks.length > 0 &&\n containerLinksReady<K1, K2, D2, L>(frontLinks, layoutOutput) && (\n <DiagramLinkLayer\n links={frontLinks}\n states={states}\n linkRenderer={linkRenderer}\n width={width / zoom}\n height={height}\n supportsSelection={supportsSelection}\n labelDimensions={labelDimensions}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onLinkSizeChanged}\n linkLabelPositions={linkLabelPositions}\n combinedNodeBounds={combinedNodeBounds}\n minY={normalizeLinks ? minY : 0}\n minX={normalizeLinks ? minX : 0}\n />\n )}\n {layoutOutput &&\n linkRenderer &&\n frontPromotedLinks.length > 0 &&\n containerLinksReady<K1, K2, D2, L>(frontPromotedLinks, layoutOutput) && (\n <DiagramPromotedLinkLayer\n links={frontPromotedLinks as PromotedLinkId<K1, D2>[]}\n states={states}\n linkRenderer={linkRenderer}\n width={width / zoom}\n height={height}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n onLinkSizeChanged={onPromotedLinkSizeChanged}\n combinedNodeBounds={combinedNodeBounds}\n minY={normalizeLinks ? minY : 0}\n minX={normalizeLinks ? minX : 0}\n />\n )}\n </div>\n );\n}\n\nfunction getContent<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>(\n nodeData: D1,\n states: States<K1, K2, D2>,\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren,\n onNodeSizeChanged: (width: number, height: number, id: K1) => void,\n onLinkSizeChanged: (width: number, height: number, id: K2) => void,\n onPromotedLinkSizeChanged: (width: number, height: number, id: string) => void,\n supportsSelection: boolean,\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n nodeIdToParentMap: Map<K1, K1>,\n width: number,\n height: number,\n zoom: number,\n parentId: K1,\n nodeBounds: Map<K1, Bounds>,\n linkDimensions: Map<K2, Dimensions>,\n promotedLinkDimensions: Map<string, Dimensions>,\n combinedNodeBounds: Bounds,\n nodeBoundsRef: RefObject<Map<K1, Bounds>>,\n nodeLabelPositions: Map<K1, DiagramLabelPosition>,\n linkLabelPositions: Map<K2, DiagramLabelPosition>,\n labelDimensions: Map<K1 | K2, TextDimensions>,\n linkRenderer?: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren,\n layoutOutput?: L,\n rootRef?: RefObject<HTMLDivElement>\n) {\n const nodes = nodeData.nodes!;\n const { backLinks, backPromotedLinks } = getLinksForNode<K1, K2, D2>(\n parentId,\n links,\n promotedLinks,\n nodeIdToParentMap\n );\n const { minX, minY, contentWidth, contentHeight, bounds } = getBounds(\n nodes,\n backLinks,\n backPromotedLinks,\n nodeBounds,\n linkDimensions,\n promotedLinkDimensions,\n zoom,\n rootRef\n );\n const nodeFullBounds = nodeBoundsRef.current;\n nodeFullBounds?.set(nodeData.id, bounds);\n nodeBoundsRef.current = nodeFullBounds;\n\n const content = (\n <div data-oj-private-child={parentId} style={{ position: 'relative' }}>\n <DiagramNodeLayer\n nodes={nodes}\n nodeBounds={nodeBounds}\n states={states}\n minX={nodeBounds ? minX : undefined}\n minY={nodeBounds ? minY : undefined}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n onLinkSizeChanged={onLinkSizeChanged}\n onPromotedLinkSizeChanged={onPromotedLinkSizeChanged}\n supportsSelection={supportsSelection}\n nodeLabelPositions={nodeLabelPositions}\n linkLabelPositions={linkLabelPositions}\n labelDimensions={labelDimensions}\n links={links}\n promotedLinks={promotedLinks}\n nodeIdToParentMap={nodeIdToParentMap}\n linkRenderer={linkRenderer}\n layoutOutput={layoutOutput}\n width={width}\n height={height}\n zoom={zoom}\n parentId={parentId}\n linkDimensions={linkDimensions}\n promotedLinkDimensions={promotedLinkDimensions}\n rootRef={rootRef}\n combinedNodeBounds={combinedNodeBounds}\n nodeBoundsRef={nodeBoundsRef}\n />\n </div>\n );\n return {\n content,\n width: contentWidth ? contentWidth : 0,\n height: contentHeight ? contentHeight - minY! : 0,\n bounds\n };\n}\n","import type {\n NodeRendererContext,\n LinkRendererContext,\n States,\n Bounds,\n DiagramLabelPosition,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput,\n Dimensions,\n PromotedLinkId\n} from './diagram.types';\nimport { DiagramNodeLayer } from './DiagramNodeLayer';\nimport { ComponentChildren, RefObject } from 'preact';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { getBounds, getLinksForNode } from './utils/diagramUtils';\n\n/**\n * Props for Diagram layers component\n */\ntype DiagramLayersProps<K1, K2, D1, D2, L> = {\n nodes: D1[];\n links: D2[];\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n linkRenderer?: (context: LinkRendererContext<K1, D2, L>) => ComponentChildren;\n states: States<K1, K2, D2>;\n nodeBounds: Map<K1, Bounds>;\n // width height are for svg for links\n width: number;\n height: number;\n onNodeSizeChanged: (width: number, height: number, id: K1) => void;\n onLinkSizeChanged: (width: number, height: number, id: K2) => void;\n onPromotedLinkSizeChanged: (width: number, height: number, id: string) => void;\n nodeLabelPositions: Map<K1, DiagramLabelPosition>;\n linkLabelPositions: Map<K2, DiagramLabelPosition>;\n labelDimensions: Map<K1 | K2, TextDimensions>;\n supportsSelection: boolean;\n layoutOutput?: L;\n combinedNodeBounds: Bounds;\n zoom: number;\n nodeIdToParentMap: Map<K1, K1>;\n linkDimensions: Map<K2, Dimensions>;\n promotedLinkDimensions: Map<string, Dimensions>;\n rootRef?: RefObject<HTMLDivElement>;\n nodeBoundsRef: RefObject<Map<K1, Bounds>>;\n promotedLinks: PromotedLinkId<K1, D2>[];\n normalizeLinks: boolean;\n};\n\nexport function DiagramLayers<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({\n nodes,\n links,\n promotedLinks,\n nodeRenderer,\n linkRenderer,\n states,\n nodeBounds,\n width,\n height,\n onNodeSizeChanged,\n onLinkSizeChanged,\n onPromotedLinkSizeChanged,\n labelDimensions,\n nodeLabelPositions,\n linkLabelPositions,\n supportsSelection,\n layoutOutput,\n zoom,\n nodeIdToParentMap,\n linkDimensions,\n promotedLinkDimensions,\n rootRef,\n combinedNodeBounds,\n nodeBoundsRef,\n normalizeLinks\n}: DiagramLayersProps<K1, K2, D1, D2, L>) {\n const { backLinks, backPromotedLinks } = getLinksForNode<K1, K2, D2>(\n undefined,\n links,\n promotedLinks,\n nodeIdToParentMap\n );\n const { minX, minY } = getBounds(\n nodes,\n backLinks,\n backPromotedLinks,\n nodeBounds,\n linkDimensions,\n promotedLinkDimensions,\n zoom,\n rootRef\n );\n return (\n <>\n <DiagramNodeLayer\n nodes={nodes}\n nodeBounds={nodeBounds}\n states={states}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n onLinkSizeChanged={onLinkSizeChanged}\n onPromotedLinkSizeChanged={onPromotedLinkSizeChanged}\n supportsSelection={supportsSelection}\n nodeLabelPositions={nodeLabelPositions}\n linkLabelPositions={linkLabelPositions}\n labelDimensions={labelDimensions}\n linkDimensions={linkDimensions}\n promotedLinkDimensions={promotedLinkDimensions}\n rootRef={rootRef}\n links={links}\n promotedLinks={promotedLinks}\n nodeIdToParentMap={nodeIdToParentMap}\n linkRenderer={linkRenderer}\n layoutOutput={layoutOutput}\n width={width}\n height={height}\n zoom={zoom}\n minX={nodeBounds && minX !== Infinity ? minX : undefined}\n minY={nodeBounds && minY !== Infinity ? minY : undefined}\n combinedNodeBounds={combinedNodeBounds}\n nodeBoundsRef={nodeBoundsRef}\n normalizeLinks={normalizeLinks}\n />\n </>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { Bounds, PanState, Pan } from '../diagram.types';\nexport type PanBounds = {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n};\n\n/**\n * The pan values that describes where the diagram content\n * is panned\n */\nexport type PanningState = {\n panX: number;\n panY: number;\n};\n\nconst constrainPan = (\n previousPan: PanningState,\n nextPan: PanningState,\n panBounds: PanBounds,\n panDirection: 'x' | 'y' | 'any'\n) => {\n const panX = panDirection !== 'y' ? nextPan.panX : previousPan.panX;\n const panY = panDirection !== 'x' ? nextPan.panY : previousPan.panY;\n return {\n panX: panX > panBounds.maxX ? panBounds.maxX : panX < panBounds.minX ? panBounds.minX : panX,\n panY: panY > panBounds.maxY ? panBounds.maxY : panY < panBounds.minY ? panBounds.minY : panY\n };\n};\n\nexport const pan = (\n previousPan: PanningState,\n nextPan: PanningState,\n panDirection: 'x' | 'y' | 'any',\n zoom: number,\n width: number,\n height: number,\n panBounds?: PanBounds,\n onPanChange?: (detail: PanState) => void\n) => {\n if (!panBounds) {\n //On initial render before nodes are rendered\n return { newPan: { panX: 0, panY: 0 } };\n }\n const newPan = constrainPan(previousPan, nextPan, panBounds, panDirection);\n const isPanChanged = newPan.panX !== previousPan.panX || newPan.panY !== previousPan.panY;\n const center = panXYToCenterXY(newPan.panX, newPan.panY, zoom, width, height);\n isPanChanged &&\n onPanChange &&\n onPanChange({\n centerX: center.centerX,\n centerY: center.centerY\n });\n return { newPan };\n};\n\nexport const getPanBounds = (\n dWidth: number,\n dHeight: number,\n elemBounds: Bounds,\n zoom: number,\n minZoom: number,\n initPanZoomState: {\n zoom: number;\n centerX?: number;\n centerY?: number;\n },\n panType?: string\n): PanBounds => {\n const { x, y, width, height } = elemBounds;\n let minX, maxX, minY, maxY;\n if (panType === 'centerContent') {\n minX = dWidth / 2 - (width + x) * zoom;\n minY = dHeight / 2 - (height + y) * zoom;\n maxX = dWidth / 2 - x * zoom;\n maxY = dHeight / 2 - y * zoom;\n } else {\n // panType equals fixed\n const zoomRatio = zoom / minZoom;\n // Find left corner of the content at min zoom and content is centered\n const minZoomX = (dWidth - width * minZoom) / 2 - x * minZoom;\n const minZoomY = (dHeight - height * minZoom) / 2 - y * minZoom;\n // When we pan all the way to the right, the left corner of displayable area is 0,0 as in min zoom.\n // When we pan all the way to the left, lets find the corner of the displayable area\n const leftCornerX = dWidth - dWidth * zoomRatio;\n const leftCornerY = dHeight - dHeight * zoomRatio;\n // Now we have everything to calculate pan zoom constraints\n minX = leftCornerX + minZoomX * zoomRatio;\n minY = leftCornerY + minZoomY * zoomRatio;\n maxX = minZoomX * zoomRatio;\n maxY = minZoomY * zoomRatio;\n }\n const initZoom = initPanZoomState.zoom;\n const initCenterX = initPanZoomState.centerX;\n const initCenterY = initPanZoomState.centerY;\n // If an initial panZoomState is set, should expand pan bounds to include it\n let dx, dy;\n if (initCenterX) {\n const boundsX = initCenterX * initZoom - dWidth / 2;\n if (-boundsX * initZoom < minX) {\n dx = minX - boundsX * initZoom;\n minX -= dx;\n maxX += dx;\n } else if (-boundsX * initZoom > maxX) {\n dx = -boundsX * initZoom - maxX;\n minX -= dx;\n maxX += dx;\n }\n }\n if (initCenterY) {\n const boundsY = initCenterY * initZoom - dHeight / 2;\n if (-boundsY * initZoom < minY) {\n dy = minY - boundsY * initZoom;\n minY -= dy;\n maxY += dy;\n } else if (-boundsY * initZoom > maxY) {\n dy = -boundsY * initZoom - maxY;\n minY -= dy;\n maxY += dy;\n }\n }\n return {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY\n };\n};\n\n/**\n * Returns the pan properties for the diagram.\n */\nexport function getPanProps(\n props: Pan,\n contentBounds: Bounds,\n userDragMode: string | undefined,\n isDeviceTouch: boolean\n) {\n return {\n panning: isDeviceTouch\n ? userDragMode === 'pan' && props.panning\n ? props.panning\n : 'off'\n : props.panning\n ? props.panning\n : 'off',\n panDirection: props.panDirection ? props.panDirection : 'any',\n centerX: props.centerX !== undefined ? props.centerX : contentBounds.width / 2,\n centerY: props.centerY !== undefined ? props.centerY : contentBounds.height / 2,\n onPan: props.onPan\n };\n}\n\n/**\n * Converts centerX,Y coordinates to panX,Y coordinates\n */\nexport function centerXYToPanXY(\n centerX: number,\n centerY: number,\n zoom: number,\n width: number,\n height: number\n) {\n return {\n panX: width / 2 - centerX * zoom,\n panY: height / 2 - centerY * zoom\n };\n}\n/**\n * Converts panX,Y coordinates to centerX,Y coordinates\n */\nexport function panXYToCenterXY(\n panX: number,\n panY: number,\n zoom: number,\n width: number,\n height: number\n) {\n return {\n centerX: (width / 2 - panX) / zoom,\n centerY: (height / 2 - panY) / zoom\n };\n}\n","import { ComponentChildren } from 'preact';\nimport { centerXYToPanXY } from './utils/panUtils';\nimport { panZoomStyles } from './themes/DiagramStyles.css';\n\ntype Props = {\n centerX: number;\n centerY: number;\n zoom: number;\n width: number;\n height: number;\n children: ComponentChildren;\n};\n\nexport function DiagramPanZoomContainer({\n centerX,\n centerY,\n children,\n zoom,\n width,\n height\n}: Props) {\n const panValues = centerXYToPanXY(centerX, centerY, zoom, width, height);\n return (\n <div\n class={panZoomStyles}\n style={{\n //TODO JET-62471 look at using matrices or both in transform instead\n translate: `${panValues.panX}px ${panValues.panY}px`,\n transform: `scale(${zoom})`\n }}>\n {children}\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type {\n DiagramNodeData,\n DiagramLinkData,\n Bounds,\n ItemInfo,\n PromotedLinkId\n} from '../diagram.types';\nimport { comparePromotedLinks, getPromotedString } from './diagramUtils';\n\n/**\n * Navigation direction\n */\nexport type NavDirection = 'right' | 'left' | 'up' | 'down';\n\ntype linkDetailType<K2> =\n | {\n id: K2;\n angle: number;\n distance: number;\n type: 'link';\n /**\n * Ingoing = 1, outgoing = 0\n */\n direction: 0 | 1;\n }\n | {\n id: string;\n angle: number;\n distance: number;\n type: 'promotedLink';\n /**\n * Ingoing = 1, outgoing = 0\n */\n direction: 0 | 1;\n };\n\n/**\n * Returns the link data based on link info in a diagram.\n * @param itemInfo\n * @returns\n */\nexport function getLinkDetailFromInfo<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n itemInfo: ItemInfo<K1, K2, D2>,\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[]\n): D2 | PromotedLinkId<K1, D2> | undefined {\n let link;\n for (let i = 0; i < links.length; i++) {\n link = links[i];\n if (itemInfo.id === link.id) {\n return link;\n }\n }\n for (let i = 0; i < promotedLinks.length; i++) {\n link = promotedLinks[i];\n if (comparePromotedLinks(itemInfo.id as PromotedLinkId<K1, D2>, link)) {\n return link;\n }\n }\n return undefined;\n}\n\n/**\n * Utility method that adds sorting attributes of each link to an array\n */\nexport function addSortingAttributes<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n node: D1,\n listOfLinks: (D2 | PromotedLinkId<K1, D2>)[],\n nodes: D1[],\n nodeBounds: Map<K1, Bounds>\n) {\n let angle, distance, direction;\n const linkDetail: linkDetailType<K2>[] = [];\n for (let i = 0; i < listOfLinks.length; i++) {\n const link = listOfLinks[i];\n angle = _getClockwiseAngle(node, link, nodes, nodeBounds);\n distance = _getNodesDistance(link, nodes, nodeBounds);\n direction = _getLinkDirection(node, link);\n if ('id' in link)\n linkDetail.push({\n id: link.id,\n angle: angle,\n distance: distance,\n direction: direction,\n type: 'link'\n });\n else {\n linkDetail.push({\n id: getPromotedString(link),\n angle: angle,\n distance: distance,\n direction: direction,\n type: 'promotedLink'\n });\n }\n }\n return linkDetail;\n}\n\n/**\n * Returns a function that compares two link around a given node\n * The links are analyzed by angle, distance from the node and direction. The sorting attributes are added to the links before sorting.\n */\nexport function getLinkComparator<K2>() {\n return (link1: linkDetailType<K2>, link2: linkDetailType<K2>) => {\n const { angle: linkAngle1, distance: linkDistance1, direction: linkDirection1 } = link1;\n const { angle: linkAngle2, distance: linkDistance2, direction: linkDirection2 } = link2;\n let res = -1;\n\n if (!_anglesAreEqualWithinTolerance(linkAngle1, linkAngle2) && linkAngle1 > linkAngle2) {\n res = 1;\n } else if (_anglesAreEqualWithinTolerance(linkAngle1, linkAngle2)) {\n //check distance and direction\n if (linkDistance1 > linkDistance2) {\n res = 1;\n } else if (linkDistance2 == linkDistance1 && linkDirection1 > linkDirection2) {\n //outgoing to ingoing\n res = 1;\n } else if (linkDistance2 == linkDistance1 && linkDirection1 == linkDirection2) {\n res = 0;\n }\n }\n return res;\n };\n}\n\n/**\n * Returns navigable links for a given node\n */\nexport function getNavigableLinksForNodeId<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n nodeId: K1,\n listOfLinks: (D2 | PromotedLinkId<K1, D2>)[]\n) {\n const links: (D2 | PromotedLinkId<K1, D2>)[] = [];\n listOfLinks.forEach((link) => {\n const startId = link.startNode;\n const endId = link.endNode;\n\n if (startId == nodeId || endId == nodeId) links.push(link);\n });\n\n return links;\n}\n\n/**\n * Get the clockwise angle for the link given node as a center\n */\nfunction _getClockwiseAngle<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(node: D1, link: D2 | PromotedLinkId<K1, D2>, nodes: D1[], nodeBounds: Map<K1, Bounds>) {\n //find opposite node\n let currNode;\n let startNode = nodes[0];\n let endNode = nodes[0];\n for (let i = 0; i < nodes.length; i++) {\n currNode = nodes[i];\n if (currNode.id === link.startNode) {\n startNode = currNode;\n } else if (currNode.id === link.endNode) {\n endNode = currNode;\n }\n }\n const oppositeNode = node.id == startNode.id ? endNode : startNode;\n\n const p1 = _getNodeCenter(node, nodeBounds);\n const p2 = _getNodeCenter(oppositeNode, nodeBounds);\n let angle = Math.atan2(p2.y - p1.y, p2.x - p1.x);\n angle = angle < 0 ? angle + Math.PI * 2 : angle;\n return angle;\n}\n\n/**\n * Get the distance between start and end nodes for the given link\n */\nfunction _getNodesDistance<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(link: D2 | PromotedLinkId<K1, D2>, nodes: D1[], nodeBounds: Map<K1, Bounds>) {\n let currNode;\n let startNode = nodes[0];\n let endNode = nodes[0];\n for (let i = 0; i < nodes.length; i++) {\n currNode = nodes[i];\n if (currNode.id === link.startNode) {\n startNode = currNode;\n } else if (currNode.id === link.endNode) {\n endNode = currNode;\n }\n }\n const p1 = _getNodeCenter(startNode, nodeBounds);\n const p2 = _getNodeCenter(endNode, nodeBounds);\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\n/**\n * Get link direction for the given node. 1 if the node is the end node\n * and 0 if it is the start node\n */\nfunction _getLinkDirection<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(node: D1, link: D2 | PromotedLinkId<K1, D2>): 0 | 1 {\n if (link.endNode === node.id) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Get node center\n */\nfunction _getNodeCenter<K1, D1 extends DiagramNodeData<K1, D1>>(\n node: D1,\n nodeBounds: Map<K1, Bounds>\n) {\n const nodeBB = nodeBounds.get(node.id)!;\n return { x: nodeBB.x + nodeBB.width / 2, y: nodeBB.y + nodeBB.height / 2 };\n}\n\n/**\n * Calculates the angle weighted by distance\n */\nexport function calcDistanceAngleWeighted(\n objectBB: Bounds,\n currentBB: Bounds,\n direction: NavDirection\n) {\n // Variables used for calculating penalties when calculating distances between two navigables.\n const optimalAngle1 = (15 / 180) * Math.PI;\n const optimalAngle2 = (40 / 180) * Math.PI;\n const suboptimalAnglePenalty1 = 2; // multiplier to the distance\n const suboptimalAnglePenalty2 = 6; // multiplier to the distance\n\n const objCenterX = objectBB.x + objectBB.width / 2;\n const objCenterY = objectBB.y + objectBB.height / 2;\n\n const curCenterX = currentBB.x + currentBB.width / 2;\n const curCenterY = currentBB.y + currentBB.height / 2;\n\n const x_dist = Math.abs(objCenterX - curCenterX);\n const y_dist = Math.abs(objCenterY - curCenterY);\n\n const angle = Math.atan2(y_dist, x_dist);\n\n let distance = Math.sqrt(x_dist * x_dist + y_dist * y_dist);\n\n // Angle penalty based on direction\n if (\n (angle > optimalAngle1 && (direction == 'right' || direction == 'left')) ||\n (angle < Math.PI / 2 - optimalAngle1 && (direction == 'up' || direction == 'down'))\n ) {\n if (\n (angle > optimalAngle2 && (direction == 'right' || direction == 'left')) ||\n (angle < Math.PI / 2 - optimalAngle2 && (direction == 'up' || direction == 'down'))\n ) {\n distance *= suboptimalAnglePenalty2;\n } else {\n distance *= suboptimalAnglePenalty1;\n }\n }\n\n return distance;\n}\n\n/**\n * Given a direction, is a certain node is a valid destination to navigate to\n */\nexport function isValidDestination(\n objBB: Bounds,\n curBB: Bounds,\n direction: NavDirection,\n compareCenters: boolean\n) {\n // compare the centers of the navigable and to be valid, the navigable must be in the right direction\n // without tolerance\n if (compareCenters) {\n const objCenterX = objBB.x + 0.5 * objBB.width;\n const curCenterX = curBB.x + 0.5 * curBB.width;\n const objCenterY = objBB.y + 0.5 * objBB.height;\n const curCenterY = curBB.y + 0.5 * curBB.height;\n\n switch (direction) {\n case 'up':\n return objCenterY < curCenterY;\n case 'down':\n return objBB.y > curCenterY;\n case 'right':\n return objCenterX > curCenterX;\n case 'left':\n return objCenterX < curCenterX;\n default:\n break;\n }\n return true;\n }\n\n switch (direction) {\n case 'up':\n return objBB.y < curBB.y || _areEqualWithinTolerance(objBB.y, curBB.y);\n case 'down':\n return objBB.y > curBB.y || _areEqualWithinTolerance(objBB.y, curBB.y);\n case 'right':\n return objBB.x > curBB.x || _areEqualWithinTolerance(objBB.x, curBB.x);\n case 'left':\n return objBB.x < curBB.x || _areEqualWithinTolerance(objBB.x, curBB.x);\n default:\n break;\n }\n return true;\n}\n\n/**\n * Returns true if two nodes are in contact\n */\nexport function calcInContact(objRect: Bounds, curRect: Bounds, direction: NavDirection) {\n switch (direction) {\n case 'up':\n return (\n _isVerticallyAligned(objRect, curRect) &&\n (curRect.y <= objRect.y + objRect.height ||\n _areEqualWithinTolerance(curRect.y, objRect.y + objRect.height))\n );\n case 'down':\n return (\n _isVerticallyAligned(objRect, curRect) &&\n (objRect.y <= curRect.y + curRect.height ||\n _areEqualWithinTolerance(objRect.y, curRect.y + curRect.height))\n );\n case 'right':\n return (\n _isHorizontallyAligned(objRect, curRect) &&\n (objRect.x <= curRect.x + curRect.width ||\n _areEqualWithinTolerance(objRect.x, curRect.x + curRect.width))\n );\n case 'left':\n return (\n _isHorizontallyAligned(objRect, curRect) &&\n (curRect.x <= objRect.x + objRect.width ||\n _areEqualWithinTolerance(curRect.x, objRect.x + objRect.width))\n );\n default:\n break;\n }\n\n return false;\n}\n\nfunction _isVerticallyAligned(rect1: Bounds, rect2: Bounds) {\n return (\n (rect1.x >= rect2.x && rect1.x <= rect2.x + rect2.width) ||\n (rect2.x >= rect1.x && rect2.x <= rect1.x + rect1.width)\n );\n}\n\nfunction _isHorizontallyAligned(rect1: Bounds, rect2: Bounds) {\n return (\n (rect1.y >= rect2.y && rect1.y <= rect2.y + rect2.height) ||\n (rect2.y >= rect1.y && rect2.y <= rect1.y + rect1.height)\n );\n}\n\nfunction _areEqualWithinTolerance(a: number, b: number) {\n return Math.abs(a - b) <= 0.0000001;\n}\n\nfunction _anglesAreEqualWithinTolerance(a1: number, a2: number) {\n let res = Math.abs(a1 - a2) <= 0.0000001;\n if (!res) {\n res = Math.abs(Math.PI * 2 + Math.min(a1, a2) - Math.max(a1, a2)) <= 0.0000001;\n }\n return res;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport {\n NavDirection,\n addSortingAttributes,\n calcDistanceAngleWeighted,\n calcInContact,\n getLinkComparator,\n getNavigableLinksForNodeId,\n isValidDestination\n} from '../utils/navUtils';\nimport type {\n DiagramNodeData,\n DiagramLinkData,\n Bounds,\n ItemInfo,\n PromotedLinkId\n} from '../diagram.types';\nimport { useRef } from 'preact/hooks';\nimport { getPromotedString, isPromoted } from '../utils/diagramUtils';\n\nexport function useDiagramNavigation<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n bounds: Map<K1, Bounds>,\n linkIdToDataMap: Map<K2, D2>,\n promotedLinkMap: Map<string, PromotedLinkId<K1, D2>>,\n nodeIdToDataMap: Map<K1, D1>\n) {\n const currentKeyboardFocusNode = useRef<K1>();\n const nodeBoundsById = bounds;\n\n function getNextNavigableNode(\n direction: NavDirection,\n compareCenters: boolean,\n current?: D1,\n listOfObjects?: D1[]\n ) {\n if (!listOfObjects) return current;\n\n if (!current) return listOfObjects[0];\n const currBB = nodeBoundsById.get(current.id);\n if (!currBB) return listOfObjects[0];\n\n let nextObject = current; //init to current object\n let nextDistance = Number.MAX_VALUE;\n\n // If an object is in contact it overrules all other attributes\n // Only another in contact object with better attributes will have higher precedence\n let nextInContact = false;\n\n // Whether or not the for loop has encountered the current object\n let hasFoundCurrent = false;\n\n let object, inContact, distance;\n for (let i = 0; i < listOfObjects.length; i++) {\n object = listOfObjects[i];\n\n if (object === current) {\n hasFoundCurrent = true;\n continue;\n }\n const objBB = nodeBoundsById.get(object.id);\n if (!objBB) continue;\n\n const objBounds = { x: objBB.x, y: objBB.y, width: objBB.width, height: objBB.height };\n const currBounds = { x: currBB.x, y: currBB.y, width: currBB.width, height: currBB.height };\n if (!isValidDestination(objBounds, currBounds, direction, compareCenters)) continue;\n\n inContact = calcInContact(objBounds, currBounds, direction);\n\n if (nextInContact && !inContact) continue;\n\n distance = calcDistanceAngleWeighted(objBounds, currBounds, direction);\n\n if (distance == 0 && !hasFoundCurrent) continue;\n\n // Make sure incontact flag have highest precedence\n if (\n (!nextInContact && inContact) ||\n (distance < nextDistance && ((nextInContact && inContact) || !nextInContact))\n ) {\n nextDistance = distance;\n nextObject = object;\n nextInContact = inContact;\n }\n }\n return nextObject;\n }\n\n /**\n * Get next navigavle link depending on direction - clockwise or conter clockwise.\n * The decision is made based on location of nodes centers rather than link paths or link angles.\n */\n function getNextNavigableLink(\n direction: string,\n listOfNodes: D1[],\n currentLink?: D2 | PromotedLinkId<K1, D2>,\n listOfLinks?: D2[],\n promotedLinks?: PromotedLinkId<K1, D2>[]\n ) {\n if (!(listOfLinks || promotedLinks)) return currentLink;\n const allLinks =\n listOfLinks && promotedLinks\n ? [...listOfLinks, ...promotedLinks]\n : (listOfLinks ? listOfLinks : promotedLinks)!;\n\n if (!currentLink) return allLinks[0];\n const keyboardFocusNode = currentKeyboardFocusNode.current;\n const nodeId = keyboardFocusNode ? keyboardFocusNode : currentLink.startNode;\n const node = nodeIdToDataMap.get(nodeId);\n\n if (!node) return currentLink;\n const adjLinks = getNavigableLinksForNodeId<K1, K2, D2>(node.id, allLinks);\n const linksWithSortingAttributes = addSortingAttributes<K1, K2, D1, D2>(\n node,\n adjLinks,\n listOfNodes,\n nodeBoundsById\n );\n linksWithSortingAttributes.sort(getLinkComparator());\n //clockwise direction\n const bForward = direction == 'down' ? true : false;\n let index = 0;\n for (let i = 0; i < linksWithSortingAttributes.length; i++) {\n const id = 'id' in currentLink ? currentLink.id : getPromotedString(currentLink);\n const link = linksWithSortingAttributes[i];\n if (link.id === id) {\n if (bForward) index = i == linksWithSortingAttributes.length - 1 ? 0 : i + 1;\n else index = i == 0 ? linksWithSortingAttributes.length - 1 : i - 1;\n break;\n }\n }\n if (linksWithSortingAttributes[index].type === 'link') {\n return linkIdToDataMap.get(linksWithSortingAttributes[index].id as K2);\n }\n return promotedLinkMap.get(linksWithSortingAttributes[index].id as string);\n }\n\n /**\n * Returns the link detail when a node to link navigation occurs\n */\n function navigateFromNodeToLink(\n listOfLinks: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n event: KeyboardEvent,\n node?: D1\n ): ItemInfo<K1, K2, D2> | undefined {\n if (!node) return undefined;\n const adjLinks = getNavigableLinksForNodeId(node.id, [...listOfLinks, ...promotedLinks]);\n if (adjLinks.length < 1) return undefined;\n let link = adjLinks[0];\n const nodeBB = nodeBoundsById.get(node.id)!;\n let object, currNode, currNodeBB, currNodeBBCenterX;\n const nodeCenterX = nodeBB.x + nodeBB.width / 2;\n currentKeyboardFocusNode.current = node.id;\n for (let i = 0; i < adjLinks.length; i++) {\n object = adjLinks[i];\n currNode = object.startNode === node.id ? object.endNode : object.startNode;\n currNodeBB = nodeBoundsById.get(currNode);\n currNodeBBCenterX = currNodeBB!.x + currNodeBB!.width / 2;\n if (\n // equivalent of ≤ and ≥\n (event.altKey && event.code === 'Comma' && currNodeBBCenterX <= nodeCenterX) ||\n (event.altKey && event.code === 'Period' && currNodeBBCenterX >= nodeCenterX)\n ) {\n link = object;\n break;\n }\n }\n return (\n isPromoted(link) ? { id: link, type: 'promotedLink' } : { id: (link as D2).id, type: 'link' }\n ) as ItemInfo<K1, K2, D2>;\n }\n\n /**\n * Returns the node detail when a link to node navigation occurs\n */\n function navigateFromLinkToNode(\n startNode: K1,\n endNode: K1,\n event: KeyboardEvent\n ): ItemInfo<K1, K2, D2> | undefined {\n const key = event.key;\n const startNodeBB = nodeBoundsById.get(startNode);\n const endNodeBB = nodeBoundsById.get(endNode);\n if (!startNodeBB || !endNodeBB) return undefined;\n const startNodeCenterX = startNodeBB.x + startNodeBB.width / 2;\n const endNodeCenterX = endNodeBB.x + endNodeBB.width / 2;\n const newNode =\n (endNodeCenterX > startNodeCenterX && key === 'ArrowRight') ||\n (endNodeCenterX < startNodeCenterX && key === 'ArrowLeft')\n ? endNode\n : startNode;\n return { id: newNode, type: 'node' };\n }\n\n return {\n getNextNavigableNode,\n getNextNavigableLink,\n navigateFromNodeToLink,\n navigateFromLinkToNode\n };\n}\n","import {\n ItemInfo,\n ItemHoverDetail,\n ItemFocusDetail,\n Bounds,\n DiagramNodeData,\n DiagramLinkData,\n ExpandedItemDetail,\n PromotedLinkId\n} from '../diagram.types';\nimport { useRef, useState } from 'preact/hooks';\nimport {\n isEqualItem,\n getNavigableInfo,\n changeExpanded,\n expCollapseButtonId,\n isPromoted,\n getChildInfo\n} from '../utils/diagramUtils';\nimport { zoomAndCenterItemFromInfo } from '../utils/zoomUtils';\nimport { getRandomId } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport { getLinkDetailFromInfo } from '../utils/navUtils';\nimport { useDiagramNavigation } from './useDiagramNavigation';\nimport type { NavDirection } from '../utils/navUtils';\nimport { useVisHover } from '#hooks/PRIVATE_useVisHover';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { gestureTypes } from '#hooks/PRIVATE_useVisContextMenu';\nimport { Keys } from '#utils/UNSAFE_keys';\n\nconst DEFAULT_KB_PAN = 15;\nconst DEFAULT_KB_ZOOM = 0.15;\n\nexport function useEvents<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n touchResponse: 'touchStart' | 'touchHold',\n initNode: D1,\n nodes: D1[],\n links: D2[],\n promotedLinks: PromotedLinkId<K1, D2>[],\n nodeBounds: Map<K1, Bounds>,\n linkIdToDataMap: Map<K2, D2>,\n nodeIdToDataMap: Map<K1, D1>,\n width: number,\n height: number,\n maxZoom: number,\n expanded: Keys<K1>,\n itemIdToParentMap: Map<K1, K1>,\n promotedLinkMap: Map<string, PromotedLinkId<K1, D2>>,\n onItemHover?: (detail: ItemHoverDetail<K1, K2, D1, D2>) => void,\n onItemFocus?: (detail: ItemFocusDetail<K1, K2, D1, D2>) => void,\n kbPanCallback?: (props: {\n dPan?: { dx: number; dy: number };\n nPan?: { cx: number; cy: number };\n center?: boolean;\n }) => void,\n kbZoomCallback?: (props: { dZoom?: number; nZoom?: number }) => void,\n onExpandedChange?: (detail: ExpandedItemDetail<K1>) => void\n) {\n const {\n getNextNavigableNode,\n getNextNavigableLink,\n navigateFromNodeToLink,\n navigateFromLinkToNode\n } = useDiagramNavigation<K1, K2, D1, D2>(\n nodeBounds,\n linkIdToDataMap,\n promotedLinkMap,\n nodeIdToDataMap\n );\n const [focusedItemInfo, setfocusedItemInfo] = useState<ItemInfo<K1, K2, D2>>({\n id: initNode.id,\n type: 'node'\n });\n const [hoveredItemInfo, sethoveredItemInfo] = useState<ItemInfo<K1, K2, D2>>();\n const activeId = useRef<string>();\n\n const cancelEvent = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const keyDownHandler = (event: KeyboardEvent) => {\n const key = event.key;\n let eventConsumed = false;\n // tabbing out of the diagram\n if (key === 'TAB') {\n return;\n }\n // if this a switch from node to link or vice versa\n if (isChangeItemType(event)) {\n let nextItemInfo: ItemInfo<K1, K2, D2> | undefined;\n if (focusedItemInfo.type === 'node') {\n nextItemInfo = navigateFromNodeToLink(\n links,\n promotedLinks,\n event,\n nodeIdToDataMap.get(focusedItemInfo.id)\n );\n } else if (focusedItemInfo.type === 'link') {\n const data = linkIdToDataMap.get(focusedItemInfo.id as K2)!;\n nextItemInfo = navigateFromLinkToNode(data.startNode, data.endNode, event);\n } else {\n // promoted link\n const id = focusedItemInfo.id;\n nextItemInfo = navigateFromLinkToNode(id.startNode, id.endNode, event);\n }\n handleKeyboardInput(nextItemInfo);\n eventConsumed = true;\n } else if (isNavigationEvent(key)) {\n const nextItemInfo = handleKeyboardNavigationEvent(key) as ItemInfo<K1, K2, D2>;\n handleKeyboardInput(nextItemInfo);\n eventConsumed = true;\n } else {\n switch (key) {\n case 'PageUp': {\n kbPanCallback &&\n kbPanCallback({\n dPan: {\n dx: event.shiftKey ? -DEFAULT_KB_PAN : 0,\n dy: event.shiftKey ? 0 : -DEFAULT_KB_PAN\n }\n });\n eventConsumed = true;\n break;\n }\n case 'PageDown': {\n kbPanCallback &&\n kbPanCallback({\n dPan: {\n dx: event.shiftKey ? DEFAULT_KB_PAN : 0,\n dy: event.shiftKey ? 0 : DEFAULT_KB_PAN\n }\n });\n eventConsumed = true;\n break;\n }\n case '+':\n case '=': {\n kbZoomCallback && kbZoomCallback({ dZoom: DEFAULT_KB_ZOOM });\n eventConsumed = true;\n break;\n }\n case '-':\n case '_': {\n kbZoomCallback && kbZoomCallback({ dZoom: -DEFAULT_KB_ZOOM });\n eventConsumed = true;\n break;\n }\n case '0': {\n if (event.ctrlKey && event.altKey) {\n const { centerX, centerY, zoom } = zoomAndCenterItemFromInfo(\n focusedItemInfo,\n linkIdToDataMap,\n nodeBounds,\n width,\n height,\n maxZoom\n );\n kbZoomCallback && kbZoomCallback({ nZoom: zoom });\n kbPanCallback && kbPanCallback({ nPan: { cx: centerX, cy: centerY } });\n } else {\n // zoom to fit\n kbZoomCallback && kbZoomCallback({});\n kbPanCallback && kbPanCallback({ center: true });\n }\n eventConsumed = true;\n break;\n }\n case ' ': {\n if (event.ctrlKey && event.shiftKey) {\n if (focusedItemInfo.type === 'node') {\n const id = focusedItemInfo.id;\n const newExpanded = changeExpanded(id, expanded);\n onExpandedChange && onExpandedChange({ expanded: newExpanded });\n }\n }\n break;\n }\n case '[': {\n if (focusedItemInfo.type === 'node') {\n const child = getChildInfo(focusedItemInfo.id, nodeIdToDataMap);\n if (child) {\n const item = { id: child.id, type: 'node' } as ItemInfo<K1, K2, D2>;\n handleKeyboardInput(item);\n }\n }\n eventConsumed = true;\n break;\n }\n case ']': {\n if (focusedItemInfo.type === 'node') {\n const parentId = itemIdToParentMap.get(focusedItemInfo.id);\n if (parentId) {\n const item = { id: parentId, type: 'node' } as ItemInfo<K1, K2, D2>;\n handleKeyboardInput(item);\n }\n }\n eventConsumed = true;\n break;\n }\n }\n }\n if (eventConsumed) {\n cancelEvent(event);\n }\n };\n\n const keyUpHandler = (event: KeyboardEvent) => {\n const key = event.code;\n switch (key) {\n case 'Tab': {\n updatefocusedItemInfo({\n ...focusedItemInfo,\n isCurrent: true,\n isFocusVisible: true\n });\n break;\n }\n }\n };\n\n const blurHandler = () => {\n if (hoveredItemInfo != null || focusedItemInfo.isCurrent) {\n onItemFocus?.(undefined);\n }\n const itemInfo = { ...focusedItemInfo, isCurrent: false, isFocusVisible: false };\n setfocusedItemInfo(itemInfo);\n };\n\n const onHover = (event: PointerEvent) => {\n const itemInfo = getNavigableInfo<K1, K2, D2>(event.target as HTMLElement, promotedLinkMap);\n if (itemInfo && !isEqualItem(itemInfo, hoveredItemInfo)) {\n sethoveredItemInfo({ ...itemInfo, isCurrent: true });\n activeId.current = getRandomId();\n setfocusedItemInfo({ ...focusedItemInfo, isCurrent: false });\n let detail: ItemHoverDetail<K1, K2, D1, D2>;\n if (itemInfo.type === 'node') {\n detail = {\n id: itemInfo.id,\n type: 'node',\n data: nodeIdToDataMap.get(itemInfo.id as K1)\n };\n } else if (itemInfo.type === 'link') {\n detail = {\n id: itemInfo.id,\n type: 'link',\n data: linkIdToDataMap.get(itemInfo.id as K2)\n };\n } else if (itemInfo.type === 'promotedLink') {\n detail = {\n type: 'promotedLink',\n id: itemInfo.id\n };\n }\n onItemHover?.(detail);\n }\n };\n\n const onHoverLeave = () => {\n sethoveredItemInfo(undefined);\n activeId.current = undefined;\n onItemHover?.(undefined);\n };\n\n const hoverHandlers = useVisHover(onHover, undefined, onHoverLeave, touchResponse);\n\n const pointerUpHandler = (event: PointerEvent) => {\n const itemInfo = getNavigableInfo<K1, K2, D2>(event.target as HTMLElement, promotedLinkMap);\n if (itemInfo.id != null) {\n let buttonId;\n if (itemInfo.type === 'node') {\n buttonId = expCollapseButtonId<K1>(event.target as HTMLElement);\n if (buttonId) {\n const newExpanded = changeExpanded(buttonId, expanded);\n onExpandedChange && onExpandedChange({ expanded: newExpanded });\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n setfocusedItemInfo(itemInfo);\n activeId.current = getRandomId();\n }\n };\n\n function updatefocusedItemInfo(itemInfo: ItemInfo<K1, K2, D2>) {\n if (itemInfo.type === 'node') {\n onItemFocus?.({\n id: itemInfo.id as K1,\n type: 'node',\n data: nodeIdToDataMap.get(itemInfo.id)\n });\n } else if (itemInfo.type === 'link') {\n onItemFocus?.({\n id: itemInfo.id as K2,\n type: 'link',\n data: linkIdToDataMap.get(itemInfo.id)\n });\n } else if (itemInfo.type === 'promotedLink') {\n onItemFocus?.({\n id: itemInfo.id,\n type: 'promotedLink'\n });\n }\n activeId.current = getRandomId();\n setfocusedItemInfo(itemInfo);\n }\n\n function handleKeyboardInput(item?: ItemInfo<K1, K2, D2>) {\n if (!item) return;\n if (!isEqualItem(item, focusedItemInfo)) {\n item.isCurrent = true;\n item.isFocusVisible = true;\n if (hoveredItemInfo) {\n sethoveredItemInfo({ ...hoveredItemInfo, isCurrent: false });\n }\n updatefocusedItemInfo(item);\n }\n }\n\n function isNavigationEvent(key: string) {\n switch (key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowLeft': {\n return true;\n }\n }\n return false;\n }\n\n function isChangeItemType(event: KeyboardEvent) {\n const key = event.code;\n // check if switching from node to link\n // equivalent of ≤ and ≥\n if (focusedItemInfo.type === 'node' && event.altKey && (key === 'Period' || key === 'Comma')) {\n return true;\n // check if switching from link to node\n } else if (\n !(focusedItemInfo.type === 'node') &&\n (key === 'ArrowLeft' || key === 'ArrowRight')\n ) {\n return true;\n }\n return false;\n }\n\n function handleKeyboardNavigationEvent(key: string) {\n let direction: NavDirection = 'down';\n switch (key) {\n case 'ArrowDown': {\n direction = 'down';\n break;\n }\n case 'ArrowUp': {\n direction = 'up';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n }\n if (focusedItemInfo.type === 'node') {\n const parent = itemIdToParentMap.get(focusedItemInfo.id as K1);\n const navigableNodes =\n parent && nodeIdToDataMap.get(parent) ? nodeIdToDataMap.get(parent)!.nodes! : nodes;\n const itemDetail = getNextNavigableNode(\n direction,\n true,\n nodeIdToDataMap.get(focusedItemInfo.id as K1),\n navigableNodes\n );\n return itemDetail ? { id: itemDetail.id, type: 'node' } : focusedItemInfo;\n } else {\n const linkDetail = getLinkDetailFromInfo<K1, K2, D2>(focusedItemInfo, links, promotedLinks);\n const itemDetail = getNextNavigableLink(direction, nodes, linkDetail, links, promotedLinks);\n if (itemDetail && isPromoted(itemDetail)) return { id: itemDetail, type: 'promotedLink' };\n else if (itemDetail && !isPromoted(itemDetail))\n return { id: (itemDetail as D2).id, type: 'link' };\n else return { id: focusedItemInfo.id, type: focusedItemInfo.type };\n }\n }\n const onContextMenuDismissed = (gesture: gestureTypes) => {\n if (gesture === 'keyboard') {\n updatefocusedItemInfo({\n ...focusedItemInfo,\n isFocusVisible: true,\n isCurrent: true\n });\n }\n };\n\n const onFocus = () => {\n activeId.current = getRandomId();\n }\n return {\n focusedItemInfo,\n hoveredItemInfo,\n activeId: activeId.current,\n onContextMenuDismissed,\n eventsProps: mergeProps(hoverHandlers, {\n onKeyUp: keyUpHandler,\n onKeyDown: keyDownHandler,\n onBlur: blurHandler,\n onPointerUp: pointerUpHandler,\n onFocus\n })\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type {\n ItemInfo,\n Bounds,\n DatatipContext,\n DiagramNodeData,\n DiagramLinkData\n} from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useDatatip } from '#hooks/PRIVATE_useDatatip';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport type { PanningState } from '../utils/panUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { getDatatipContent } from '../utils/diagramUtils';\nimport { DatatipConfig } from '#utils/UNSAFE_visTypes/common';\n\ntype props<K1, K2, D1, D2> = {\n touchResponse: 'touchStart' | 'touchHold';\n datatip?: DatatipConfig<DatatipContext<K1, D1, D2>>;\n text?: string;\n focusedItemInfo: ItemInfo<K1, K2, D2>;\n focusedItemBoundsRef: RefObject<Bounds | null>;\n panState: PanningState;\n zoom: number;\n width: number;\n nodesMap: Map<K1, D1>;\n linksMap: Map<K2, D2>;\n hoveredItem?: ItemInfo<K1, K2, D2>;\n};\n\n/**\n * Returns the datatip.\n * @param text The text string for the diagram item.\n * @param rootRef The ref for root of the diagram.\n * @param focusedItemBoundsRef The ref for focused item bounds.\n * @param focusedItemInfo The ItemInfo for focused item.\n * @returns\n */\nexport const useDiagramDatatip = <\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>({\n touchResponse,\n datatip,\n focusedItemBoundsRef,\n focusedItemInfo,\n panState,\n zoom,\n width,\n nodesMap,\n linksMap,\n hoveredItem\n}: props<K1, K2, D1, D2>) => {\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const datatipC = getDatatipContent(nodesMap, linksMap, focusedItemInfo, hoveredItem, datatip);\n const elementBounds = focusedItemBoundsRef.current\n ? {\n x: focusedItemBoundsRef.current.x + panState.panX,\n y: focusedItemBoundsRef.current.y + panState.panY,\n width: focusedItemBoundsRef.current.width * zoom,\n height: focusedItemBoundsRef.current.height * zoom\n }\n : undefined;\n const offset = focusedItemInfo.isCurrent\n ? calculateOffset(isRtl, width, elementBounds)\n : calculateOffset(isRtl, width);\n\n const { datatipContent, datatipProps } = useDatatip({\n content: datatipC?.content,\n borderColor: datatipC?.borderColor,\n placement: 'top-start',\n offset,\n anchor: focusedItemInfo?.isCurrent ? 'element' : 'pointer',\n touchResponse\n });\n return { datatipContent: datatipContent, datatipProps: datatipProps };\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\n\ntype PointerGesture = {\n pointers: PointerEvent[];\n};\n\ntype UsePointerGestureOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n numPointers: number;\n onPointerGestureDown?: (detail: PointerGesture) => void;\n onPointerGestureMove?: (detail: PointerGesture) => void;\n onPointerGestureEnd?: (detail: PointerGesture) => void;\n onExtraneousPointerDown?: (detail: PointerGesture) => void;\n isDisabled?: boolean;\n};\n\nconst usePointerGesture = ({\n captureTargetRef,\n numPointers = 1,\n onPointerGestureDown,\n onPointerGestureMove,\n onPointerGestureEnd,\n onExtraneousPointerDown,\n isDisabled = false\n}: UsePointerGestureOptions) => {\n const activePointers = useRef<PointerEvent[]>([]);\n\n if (isDisabled) {\n activePointers.current = [];\n }\n\n const onPointerDown = (e: PointerEvent) => {\n activePointers.current.push(e);\n if (activePointers.current.length === numPointers) {\n onPointerGestureDown && onPointerGestureDown({ pointers: activePointers.current });\n } else if (activePointers.current.length > numPointers) {\n onExtraneousPointerDown && onExtraneousPointerDown({ pointers: activePointers.current });\n }\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (activePointers.current.length === 0) return;\n\n const index = activePointers.current.findIndex(\n (pointerEvent) => pointerEvent.pointerId === e.pointerId\n );\n if (index === -1) return;\n\n activePointers.current[index] = e;\n if (activePointers.current.length === numPointers) {\n activePointers.current.forEach((e) =>\n captureTargetRef.current!.setPointerCapture(e.pointerId)\n );\n\n onPointerGestureMove && onPointerGestureMove({ pointers: activePointers.current });\n }\n };\n\n const onPointerUp = (e: PointerEvent) => {\n const index = activePointers.current.findIndex(\n (pointerEvent) => pointerEvent.pointerId === e.pointerId\n );\n if (index === -1) return;\n\n activePointers.current[index] = e;\n if (activePointers.current.length === numPointers) {\n onPointerGestureEnd && onPointerGestureEnd({ pointers: activePointers.current });\n }\n activePointers.current.splice(index, 1);\n };\n\n const onPointerCancel = onPointerUp;\n const onPointerLeave = onPointerUp;\n\n return isDisabled\n ? {}\n : {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerCancel,\n onPointerLeave\n };\n};\n\nexport { usePointerGesture };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { PanState } from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { useDrag } from './useDrag';\nimport { PanBounds, pan, centerXYToPanXY } from '../utils/panUtils';\n/**\n * Options for useDragPan hook\n */\ntype UseDragPanOptions = {\n panProps: {\n centerX: number;\n centerY: number;\n panDirection: 'x' | 'y' | 'any';\n onPan?: (detail: PanState) => void;\n panning?: 'centerContent' | 'fixed' | 'off';\n };\n captureTargetRef: RefObject<HTMLDivElement>;\n panBounds?: PanBounds;\n onDragPanStart?: () => void;\n onDragPanEnd?: () => void;\n zoom: number;\n width: number;\n height: number;\n};\n\nconst useDragPan = ({\n panProps,\n captureTargetRef,\n panBounds,\n width,\n height,\n zoom,\n onDragPanStart,\n onDragPanEnd\n}: UseDragPanOptions) => {\n const prevPanState = useRef({ panX: 0, panY: 0 });\n const initialPanState = useRef({ panX: 0, panY: 0 });\n const dragProps = useDrag({\n captureTargetRef,\n onDragStart: () => {\n const panValues = centerXYToPanXY(panProps.centerX, panProps.centerY, zoom, width, height);\n initialPanState.current = {\n panX: panValues.panX,\n panY: panValues.panY\n };\n onDragPanStart && onDragPanStart();\n },\n onDragMove: ({ dx, dy }) => {\n const nextPan = {\n panX: initialPanState.current.panX + dx,\n panY: initialPanState.current.panY + dy\n };\n const { newPan } = pan(\n prevPanState.current,\n nextPan,\n panProps.panDirection,\n zoom,\n width,\n height,\n panBounds,\n panProps.onPan\n );\n prevPanState.current = newPan;\n },\n onDragEnd: ({ originalEvent }) => {\n // If panning occurred, call preventDefault to prevent selection from occurring\n if (\n initialPanState.current.panX !== prevPanState.current.panX ||\n initialPanState.current.panY !== prevPanState.current.panY\n )\n originalEvent.preventDefault();\n onDragPanEnd && onDragPanEnd();\n },\n isDisabled: panProps.panning === 'off'\n });\n\n return dragProps;\n};\n\nexport { useDragPan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { usePointerGesture } from './usePointerGesture';\n/**\n * Draggable region\n */\ntype DraggableRegion = {\n xMin: number;\n xMax: number;\n yMin: number;\n yMax: number;\n};\n\ntype DragDetail = {\n x: number;\n y: number;\n dx: number;\n dy: number;\n regionOffsetX: number;\n regionOffsetY: number;\n originalEvent: PointerEvent;\n};\n\ntype UseDragOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n draggableRegion?: DraggableRegion;\n onDragStart?: (detail: Omit<DragDetail, 'dx' | 'dy'>) => void;\n onDragMove?: (detail: DragDetail) => void;\n onDragEnd?: (detail: DragDetail) => void;\n isDisabled?: boolean;\n};\n/**\n * Whether point with coordinates are in the draggable region\n */\nconst inDraggableRegion = (x: number, y: number, region?: DraggableRegion) => {\n if (!region) return true;\n const { xMin, xMax, yMin, yMax } = region;\n return x >= xMin && x <= xMax && y >= yMin && y <= yMax;\n};\n\n/**\n * Returns region offset\n */\nconst getRegionOffset = (x: number, y: number, region?: DraggableRegion) => {\n if (!region) return { regionOffsetX: x, regionOffsetY: y };\n return { regionOffsetX: x - region.xMin, regionOffsetY: y - region.yMin };\n};\n\nconst useDrag = ({\n captureTargetRef,\n draggableRegion,\n onDragStart,\n onDragMove,\n onDragEnd,\n isDisabled = false\n}: UseDragOptions) => {\n const inactiveState = { isDragging: false, x0: -1, y0: -1, regionOffsetX: -1, regionOffsetY: -1 };\n const dragState = useRef(inactiveState);\n\n const handlePointerEvent = (e: PointerEvent, cb?: (detail: DragDetail) => void) => {\n const { isDragging, x0, y0, regionOffsetX, regionOffsetY } = dragState.current;\n if (!isDragging) return;\n const x = e.pageX;\n const y = e.pageY;\n cb && cb({ x, y, dx: x - x0, dy: y - y0, regionOffsetX, regionOffsetY, originalEvent: e });\n };\n\n const dragProps = usePointerGesture({\n captureTargetRef,\n numPointers: 1, // Only allow 1 pointer dragging\n onExtraneousPointerDown: () => {\n dragState.current = inactiveState;\n },\n onPointerGestureDown: ({ pointers: [e] }) => {\n const x = e.pageX;\n const y = e.pageY;\n if (e.button !== 0 || !inDraggableRegion(x, y, draggableRegion)) return;\n const { regionOffsetX, regionOffsetY } = getRegionOffset(x, y, draggableRegion);\n dragState.current = { isDragging: true, x0: x, y0: y, regionOffsetX, regionOffsetY };\n onDragStart && onDragStart({ x, y, regionOffsetX, regionOffsetY, originalEvent: e });\n },\n onPointerGestureMove: ({ pointers: [e] }) => {\n handlePointerEvent(e, onDragMove);\n },\n onPointerGestureEnd: ({ pointers: [e] }) => {\n handlePointerEvent(e, onDragEnd);\n dragState.current = inactiveState;\n }\n });\n\n return isDisabled ? {} : dragProps;\n};\n\nexport { useDrag };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { usePointerGesture } from './usePointerGesture';\n\ntype Point = { x: number; y: number };\n\nconst getMidpoint = (p1: Point, p2: Point) => ({ x: (p1.x + p2.x) / 2, y: (p1.y + p2.y) / 2 });\nconst getDistance = (p1: Point, p2: Point) => Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p2.y) ** 2);\n\ntype PinchDetail = {\n origin: Point;\n delta: number;\n};\n\ntype UsePinchOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n onPinchZoomStart?: (detail: PinchDetail) => void;\n onPinchZoomChange?: (detail: PinchDetail) => void;\n onPinchZoomEnd?: () => void;\n isDisabled?: boolean;\n};\n\nconst usePinch = ({\n captureTargetRef,\n onPinchZoomStart,\n onPinchZoomChange,\n onPinchZoomEnd,\n isDisabled = false\n}: UsePinchOptions) => {\n const origin = useRef({ x: -1, y: -1 });\n const prevDistance = useRef(-1);\n const reset = () => {\n origin.current = { x: -1, y: -1 };\n prevDistance.current = -1;\n };\n\n if (isDisabled) reset();\n\n const pinchProps = usePointerGesture({\n captureTargetRef,\n numPointers: 2, // Pinch gesture requires 2 pointers\n onPointerGestureDown: ({ pointers: [pointer1, pointer2] }) => {\n const p1 = { x: pointer1.offsetX, y: pointer1.offsetY };\n const p2 = { x: pointer2.offsetX, y: pointer2.offsetY };\n origin.current = getMidpoint(p1, p2);\n prevDistance.current = getDistance(p1, p2);\n onPinchZoomStart &&\n onPinchZoomStart({\n origin: origin.current,\n delta: 0\n });\n },\n onPointerGestureMove: ({ pointers: [pointer1, pointer2] }) => {\n const p1 = { x: pointer1.offsetX, y: pointer1.offsetY };\n const p2 = { x: pointer2.offsetX, y: pointer2.offsetY };\n const distance = getDistance(p1, p2);\n const delta = distance - prevDistance.current;\n prevDistance.current = distance;\n onPinchZoomChange &&\n onPinchZoomChange({\n origin: origin.current,\n delta\n });\n },\n onPointerGestureEnd: () => {\n reset();\n onPinchZoomEnd && onPinchZoomEnd();\n }\n });\n\n return isDisabled ? {} : pinchProps;\n};\n\nexport { usePinch };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { usePinch } from './usePinch';\nimport { zoom, ZOOM_INCREMENT } from '../utils/zoomUtils';\n\ntype UsePinchZoomOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n zooming: 'on' | 'off';\n minZoom: number;\n maxZoom: number;\n zoomValue: number;\n onZoom?: (detail: { zoomValue: number }) => void;\n};\n\nconst usePinchZoom = ({\n captureTargetRef,\n zooming,\n minZoom,\n maxZoom,\n zoomValue,\n onZoom\n}: UsePinchZoomOptions) => {\n const pinchProps = usePinch({\n captureTargetRef,\n onPinchZoomChange: ({ delta }) => {\n const newZoom = zoomValue * (1 + ZOOM_INCREMENT * delta);\n zoom(newZoom, zoomValue, minZoom, maxZoom, onZoom);\n },\n isDisabled: zooming === 'off'\n });\n\n return pinchProps;\n};\n\nexport { usePinchZoom };\n","import { Pan, Zoom, Bounds } from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useState, useRef } from 'preact/hooks';\nimport { useDragPan } from './useDragPan';\nimport { useWheelZoom } from './useWheelZoom';\nimport { usePinchZoom } from './usePinchZoom';\nimport {} from '../utils/diagramUtils';\nimport { PanBounds, getPanBounds, pan, getPanProps, centerXYToPanXY } from '../utils/panUtils';\nimport { zoom, getZoomProps, getZoomToFitZoom } from '../utils/zoomUtils';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { isTouch } from '#utils/UNSAFE_visUtils/clientUtils';\nimport { Property } from 'csstype';\nimport { useVisDragModeControls } from '#hooks/PRIVATE_useVisDragModeControls';\n\nexport type PanZoomProps = {\n props: Pan & Zoom;\n captureTargetRef: RefObject<HTMLDivElement>;\n width: number;\n height: number;\n contentBounds: Bounds;\n isRtl: boolean;\n};\n\nexport const usePanZoom = ({\n props,\n captureTargetRef,\n width,\n height,\n contentBounds,\n isRtl\n}: PanZoomProps) => {\n const [cursor, setCursor] = useState<Property.Cursor>();\n const zoomProps = getZoomProps(props, width, height, contentBounds);\n const panBounds = useRef<PanBounds>();\n const prevZoom = useRef<number>();\n const panning = useRef<string>();\n const initPanZoomState = useRef({\n zoom: props.zoomValue || 0,\n centerX: props.centerX,\n centerY: props.centerY\n });\n\n const isDeviceTouch = isTouch();\n const plotArea = {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n\n const showPanButton = isDeviceTouch ? props.panning && props.panning !== 'off' : undefined;\n const dragModeOptions = {\n isZoomScroll: true,\n plotAreaSpace: plotArea,\n componentWidth: width,\n isRtl,\n showPanButton: showPanButton ?? false,\n showZoomButton: false,\n showSelectButton: false,\n isDisabled: !isDeviceTouch\n };\n\n const { toggleButtonContent, userDragMode } = useVisDragModeControls(dragModeOptions);\n const panProps = getPanProps(props, contentBounds, userDragMode, isDeviceTouch);\n if (\n contentBounds.width !== Infinity &&\n (zoomProps.zoomValue !== prevZoom.current || panProps.panning !== panning.current)\n ) {\n panBounds.current = getPanBounds(\n width,\n height,\n contentBounds,\n zoomProps.zoomValue,\n zoomProps.minZoom,\n initPanZoomState.current,\n panProps.panning\n );\n prevZoom.current = zoomProps.zoomValue;\n panning.current = panProps.panning;\n }\n const dragPanProps = useDragPan({\n panProps: panProps,\n captureTargetRef: captureTargetRef,\n panBounds: panBounds.current,\n zoom: zoomProps.zoomValue,\n width,\n height,\n onDragPanStart: () => setCursor('grabbing'),\n onDragPanEnd: () => setCursor('auto')\n });\n //dZoom or nZoom is required\n const kbZoomCallback = (props: { dZoom?: number; nZoom?: number }) => {\n const newZoom = props.dZoom\n ? zoomProps.zoomValue + props.dZoom\n : getZoomToFitZoom(width, height, contentBounds);\n zoom(\n props.nZoom ? props.nZoom : newZoom,\n zoomProps.zoomValue,\n zoomProps.minZoom,\n zoomProps.maxZoom,\n zoomProps.onZoom\n );\n };\n const prevPanState = useRef({ panX: 0, panY: 0 });\n\n // dPan or nPan is required\n const kbPanCallback = (props: {\n dPan?: { dx: number; dy: number };\n nPan?: { cx: number; cy: number };\n center?: boolean;\n }) => {\n let centerX;\n let centerY;\n if (props.center) {\n centerX = contentBounds.x + contentBounds.width / 2;\n centerY = contentBounds.y + contentBounds.height / 2;\n } else if (props.dPan) {\n centerX = panProps.centerX + props.dPan.dx;\n centerY = panProps.centerY + props.dPan.dy;\n } else {\n centerX = props.nPan!.cx;\n centerY = props.nPan!.cy;\n }\n const panValues = centerXYToPanXY(centerX, centerY, zoomProps.zoomValue, width, height);\n const { newPan } = pan(\n prevPanState.current,\n panValues,\n panProps.panDirection,\n zoomProps.zoomValue,\n width,\n height,\n panBounds.current,\n panProps.onPan\n );\n prevPanState.current = newPan;\n };\n const wheelZoomProps = useWheelZoom(zoomProps);\n const pinchZoomProps = usePinchZoom({\n captureTargetRef,\n zooming: zoomProps.zooming,\n minZoom: zoomProps.minZoom,\n maxZoom: zoomProps.maxZoom,\n zoomValue: zoomProps.zoomValue,\n onZoom: zoomProps.onZoom\n });\n const panZoomProps = mergeProps(dragPanProps, wheelZoomProps, pinchZoomProps);\n return {\n panZoomProps,\n panProps,\n zoomProps,\n toggleButtonContent,\n cursor,\n centerX: panProps.centerX,\n centerY: panProps.centerY,\n zoomValue: zoomProps.zoomValue,\n kbPanCallback: panProps.panning !== 'off' ? kbPanCallback : undefined,\n kbZoomCallback: zoomProps.zooming !== 'off' ? kbZoomCallback : undefined\n };\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useWheel } from './useWheel';\nimport { zoom, ZOOM_INCREMENT } from '../utils/zoomUtils';\n\ntype UseWheelZoomOptions = {\n zooming: 'on' | 'off';\n minZoom: number;\n maxZoom: number;\n zoomValue: number;\n onZoom?: (detail: { zoomValue: number }) => void;\n};\n\nconst useWheelZoom = ({ zooming, minZoom, maxZoom, zoomValue, onZoom }: UseWheelZoomOptions) => {\n const wheelProps = useWheel({\n onWheel: ({ deltaY }) => {\n const newZoom = zoomValue * (1 + ZOOM_INCREMENT * deltaY);\n zoom(newZoom, zoomValue, minZoom, maxZoom, onZoom);\n },\n isDisabled: zooming === 'off'\n });\n\n return wheelProps;\n};\n\nexport { useWheelZoom };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\ntype WheelDetail = {\n x: number;\n y: number;\n deltaX: number;\n deltaY: number;\n ctrlKey: boolean;\n};\n\ntype UseWheelOptions = {\n onWheel: (detail: WheelDetail) => void;\n preventDefault?: boolean;\n isDisabled?: boolean;\n};\n\nconst PX_FACTOR_PER_LINE = 15; // Value used in Toolkit\nconst PX_FACTOR_PER_PAGE = 40; // Value copied from datagrid; this is not handled in Toolkit\n\nconst getNormalizedDelta = (e: WheelEvent) => {\n const { deltaX, deltaY, deltaMode } = e;\n\n switch (deltaMode) {\n case e.DOM_DELTA_PIXEL:\n return { deltaX: -deltaX, deltaY: -deltaY };\n case e.DOM_DELTA_LINE:\n return { deltaX: -deltaX * PX_FACTOR_PER_LINE, deltaY: -deltaY * PX_FACTOR_PER_LINE };\n case e.DOM_DELTA_PAGE:\n return { deltaX: -deltaX * PX_FACTOR_PER_PAGE, deltaY: -deltaY * PX_FACTOR_PER_PAGE };\n default:\n return { deltaX: -deltaX, deltaY: -deltaY };\n }\n};\n\nconst useWheel = ({\n onWheel: onWheelCallback,\n preventDefault = true,\n isDisabled = false\n}: UseWheelOptions) => {\n const onWheel = (e: WheelEvent) => {\n const { deltaX, deltaY } = getNormalizedDelta(e);\n if (preventDefault) e.preventDefault();\n onWheelCallback({\n x: e.offsetX,\n y: e.offsetY,\n deltaX,\n deltaY,\n ctrlKey: e.ctrlKey || e.metaKey\n });\n };\n return isDisabled ? {} : { onWheel };\n};\n\nexport { useWheel, PX_FACTOR_PER_LINE };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type { RefObject } from 'preact';\nimport type {\n DiagramContextMenuConfig,\n DiagramContextMenuContext,\n ItemInfo,\n PromotedLinkId\n} from '../diagram.types';\nimport { type gestureTypes, useContextMenu } from '#hooks/PRIVATE_useVisContextMenu';\nimport { getDiagramContextMenuContext } from '../utils/contextMenuUtils';\nimport { getPromotedString } from '../utils/diagramUtils';\n\ntype Props<K1, K2, D1, D2> = {\n nodesMap: Map<K1, D1>;\n linksMap: Map<K2, D2>;\n promotedLinkMap: Map<string, PromotedLinkId<K1, D2>>;\n focusedItemInfo: ItemInfo<K1, K2, D2>;\n rootRef: RefObject<HTMLDivElement>;\n contextMenuConfig?: DiagramContextMenuConfig<K1, D1, D2>;\n onContextMenuDismissed?: (gesture: gestureTypes) => void;\n};\n\nexport const useDiagramContextMenu = <K1, K2, D1, D2>({\n focusedItemInfo,\n rootRef,\n contextMenuConfig,\n onContextMenuDismissed,\n nodesMap,\n linksMap,\n promotedLinkMap\n}: Props<K1, K2, D1, D2>) => {\n const { contextMenuProps, contextMenuContent } = useContextMenu<\n DiagramContextMenuContext<K1, D1, D2>\n >({\n onContextMenuHandler: ({ gesture, target }) => {\n let idx;\n let elementType: 'node' | 'link' | 'promotedLink' | 'background' = 'background';\n const currentTarget = target as HTMLElement;\n if (gesture === 'keyboard') {\n idx = focusedItemInfo.id;\n elementType = focusedItemInfo.type;\n } else if (\n (currentTarget.closest('[data-oj-private-node]') as HTMLElement)?.dataset['ojPrivateNode']\n ) {\n idx = (currentTarget.closest('[data-oj-private-node]') as HTMLElement)?.dataset[\n 'ojPrivateNode'\n ] as K1;\n elementType = 'node';\n } else if (\n (currentTarget.closest('[data-oj-private-link]') as SVGElement)?.dataset[\n 'ojPrivateLink'\n ] as K2\n ) {\n idx = (currentTarget.closest('[data-oj-private-link]') as SVGElement)?.dataset[\n 'ojPrivateLink'\n ] as K2;\n elementType = 'link';\n } else if (\n (currentTarget.closest('[data-oj-private-promoted-link]') as SVGElement)?.dataset[\n 'ojPrivatePromotedLink'\n ] as K2\n ) {\n idx = (currentTarget.closest('[data-oj-private-promoted-link]') as SVGElement)?.dataset[\n 'ojPrivatePromotedLink'\n ] as string;\n idx = promotedLinkMap.get(idx);\n elementType = 'promotedLink';\n }\n\n const { context } = getDiagramContextMenuContext<K1, K2, D1, D2>(\n nodesMap,\n linksMap,\n elementType,\n idx\n );\n if (gesture === 'keyboard') {\n let element;\n if (focusedItemInfo.type === 'node') {\n element = rootRef.current?.querySelector(`[data-oj-private-node=\"${idx}\"]`);\n } else if (focusedItemInfo.type === 'link') {\n element = rootRef.current?.querySelector(`[data-oj-private-link=\"${idx}\"]`);\n } else {\n element = rootRef.current?.querySelector(\n `[data-oj-private-promoted-link=\"${getPromotedString(idx as PromotedLinkId<K1, D2>)}\"]`\n );\n }\n return {\n type: 'element',\n context,\n elem: element ? element : null\n };\n }\n return { type: 'pointer', context };\n },\n contextMenuOptions: {\n isDisabled: !contextMenuConfig //If there is not a context menu renderer we disable the hook\n },\n rootRef,\n contextMenuConfig,\n onContextMenuDismissed\n });\n\n return { contextMenuContent, contextMenuProps };\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type {\n BaseDiagramProps,\n Bounds,\n DiagramLabelPosition,\n States,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput,\n Dimensions\n} from './diagram.types';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { DiagramLayers } from './DiagramLayers';\nimport { DiagramPanZoomContainer } from './DiagramPanZoomContainer';\nimport { useEvents } from './hooks/useEvents';\nimport { useDiagramDatatip } from './hooks/useDiagramDatatip';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { usePanZoom } from './hooks/usePanZoom';\nimport { useLayoutEffect, useRef, useState } from 'preact/hooks';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useDiagramSelection } from './hooks/useDiagramSelection';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { Keys } from '#utils/UNSAFE_keys';\nimport {\n constructLayoutJSON,\n deconstructLayoutJSON,\n getFocusedItemBounds,\n mergeDimensions,\n isEqualBounds,\n getDimensionsFromBounds,\n getContentBounds,\n filterLinksWithNoStartOrEndNodes,\n getAllLabelBounds,\n createLinksMap,\n createNodesMap,\n getPromotedLinks,\n createPromotedLinksMap,\n linkPositionChanged\n} from './utils/diagramUtils';\nimport { centerXYToPanXY } from './utils/panUtils';\nimport { outerStyles } from './themes/DiagramStyles.css';\nimport { useVisTouchResponse } from '#hooks/PRIVATE_useVisTouchResponse';\nimport { merge } from '@oracle/oraclejet-internal-utilities/stringUtils';\nimport { useDiagramContextMenu } from './hooks/useDiagramContextMenu';\n\ntype DiagramWithDimensionsProps<\n K1 extends string | number,\n K2 extends string | number,\n D1,\n D2,\n L\n> = Omit<BaseDiagramProps<K1, K2, D1, D2, L>, 'width' | 'height'> & {\n width: number;\n height: number;\n};\n\nconst emptyKeys = { all: false, keys: new Set() };\n\nexport function BaseDiagramWithDimensions<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({\n nodes = [],\n links = [],\n width,\n height,\n selectedIds = {},\n selectionMode = 'none',\n layout,\n nodeRenderer,\n linkRenderer,\n onSelectionChange,\n onItemHover,\n onItemFocus,\n highlightedIds = {},\n datatip,\n expanded = emptyKeys as Keys<K1>,\n onExpandedChange,\n contextMenuConfig,\n normalizeLinks,\n ...otherProps\n}: DiagramWithDimensionsProps<K1, K2, D1, D2, L>) {\n const focusedItemBoundsRef = useRef<Bounds | null>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const [bounds, setBounds] = useState<Map<K1, Bounds>>(new Map());\n const [absBounds, setAbsBounds] = useState<Map<K1, Bounds>>(new Map());\n const linkDimensions = useRef<Map<K2, Dimensions>>(new Map());\n const promotedLinkDimensions = useRef<Map<string, Dimensions>>(new Map());\n const [combinedLabelBounds, setCombinedLabelBounds] = useState<Bounds>();\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const diagramNodes = nodes;\n const nodeMap = createNodesMap<K1, D1>(diagramNodes, expanded);\n const nodeIdToParentMap = nodeMap.itemIdToParentMap;\n const nodeIdToDataMap = nodeMap.itemIdToDataMap;\n const diagramLinks = filterLinksWithNoStartOrEndNodes(links, nodeIdToDataMap);\n const linkMap = createLinksMap<K1, K2, D2>(diagramLinks);\n const linkIdToDataMap = linkMap.itemIdToDataMap;\n const resizeThrottling = useRef<boolean>(false);\n const newDimensions = getDimensionsFromBounds(bounds);\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n const labelDimensions = useRef<Map<K1 | K2, TextDimensions>>(new Map());\n const linkDimsChanged = useRef<boolean>(false);\n const linkRerenderNeeded = useRef<boolean>(false);\n const nodeLabelPosRef = useRef<Map<K1, DiagramLabelPosition>>(new Map());\n const linkLabelPosRef = useRef<Map<K2, DiagramLabelPosition>>(new Map());\n const [layoutOutput, setLayoutOutput] = useState<L>();\n const nodeBoundsRef = useRef<Map<K1, Bounds>>(new Map());\n const promotedLinks = getPromotedLinks<K1, K2, D1, D2>(\n links,\n expanded,\n nodeMap.allContainerNodes,\n nodeMap.allVisibleNodes\n );\n const promotedLinkMap = createPromotedLinksMap<K1, D2>(promotedLinks);\n const contentBounds = getContentBounds(bounds, combinedLabelBounds);\n const {\n panZoomProps,\n panProps,\n zoomProps,\n toggleButtonContent,\n cursor,\n centerX,\n centerY,\n zoomValue,\n kbPanCallback,\n kbZoomCallback\n } = usePanZoom({\n props: otherProps,\n captureTargetRef: rootRef,\n width: width,\n height: height,\n contentBounds,\n isRtl\n });\n\n const { touchResponse, touchResponseStyle } = useVisTouchResponse({\n type: 'auto',\n supportsTouchDragGestures: zoomProps.zooming === 'on' || panProps.panning !== 'off',\n rootRef\n });\n\n const { onContextMenuDismissed, focusedItemInfo, hoveredItemInfo, activeId, eventsProps } =\n useEvents<K1, K2, D1, D2>(\n touchResponse,\n diagramNodes[0],\n diagramNodes,\n diagramLinks,\n promotedLinks,\n absBounds,\n linkIdToDataMap,\n nodeIdToDataMap,\n width,\n height,\n otherProps.maxZoom || 1,\n expanded,\n nodeIdToParentMap,\n promotedLinkMap,\n onItemHover,\n onItemFocus,\n kbPanCallback,\n kbZoomCallback,\n onExpandedChange\n );\n\n const { selectionProps, selectionContent } = useDiagramSelection<K1, K2, D1, D2>({\n selectedIds,\n selectionMode,\n nodeMap,\n linkMap,\n focusedItemInfo,\n onSelectionChange,\n rootRef,\n promotedLinkMap\n });\n\n // This is for the datatip kb position\n if (focusedItemInfo && absBounds.size > 0) {\n focusedItemBoundsRef.current = getFocusedItemBounds(\n focusedItemInfo,\n absBounds,\n diagramLinks,\n linkMap.itemIdToIndexMap,\n rootRef\n );\n }\n\n const {\n datatipContent,\n datatipProps: { 'aria-describedby': datatipAriaDescribedby, ...datatipProps }\n } = useDiagramDatatip({\n touchResponse,\n datatip,\n focusedItemInfo,\n focusedItemBoundsRef,\n panState: centerXYToPanXY(centerX, centerY, zoomValue, width, height),\n zoom: zoomValue,\n width: width,\n nodesMap: nodeIdToDataMap,\n linksMap: linkIdToDataMap,\n hoveredItem: hoveredItemInfo\n });\n\n const [visibility, setVisibility] = useState<'visible' | 'hidden'>('hidden');\n const style = {\n width: width,\n height: height,\n cursor: cursor,\n visibility: visibility,\n ...touchResponseStyle\n };\n // When expanded changes, diagram loses focus so we need to call re-render\n const expandRerender = useRef(false);\n useLayoutEffect(() => {\n if (rootRef.current) {\n expandRerender.current = true\n }\n }, [expanded]);\n useLayoutEffect(() => {\n if (visibility === 'visible' && expandRerender.current == true) {\n rootRef.current?.focus();\n expandRerender.current = false;\n }\n }, [visibility]);\n const states = useRef<States<K1, K2, D2>>();\n\n states.current = {\n // update states to new state\n selectedNodeIds: selectedIds.nodes ?? [],\n selectedLinkIds: selectedIds.links ?? [],\n selectedPromotedLinkIds: selectedIds.promotedLinks ?? [],\n focusedId:\n focusedItemInfo.isCurrent && focusedItemInfo.isFocusVisible ? focusedItemInfo.id : undefined,\n hoveredId: hoveredItemInfo?.isCurrent ? hoveredItemInfo.id : undefined,\n activeId,\n highlightedNodeIds: highlightedIds.nodes ?? [],\n highlightedLinkIds: highlightedIds.links ?? [],\n highlightedPromotedLinkIds: highlightedIds.promotedLinks ?? [],\n zoom: zoomValue,\n expanded: expanded || { all: false, keys: new Set() }\n };\n\n const { contextMenuContent, contextMenuProps } = useDiagramContextMenu<K1, K2, D1, D2>({\n focusedItemInfo,\n rootRef,\n contextMenuConfig: nodes.length > 0 ? contextMenuConfig : undefined,\n onContextMenuDismissed,\n nodesMap: nodeIdToDataMap,\n linksMap: linkIdToDataMap,\n promotedLinkMap\n });\n\n const mergedEventProps = mergeProps(\n panZoomProps,\n eventsProps,\n selectionProps,\n datatipProps,\n contextMenuProps\n );\n\n // Called anytime node changes size\n const onNodeSizeChanged = (nodeWidth: number, nodeHeight: number, id: K1) => {\n newDimensions.set(id, { width: nodeWidth, height: nodeHeight });\n if (resizeThrottling.current) {\n return;\n }\n\n resizeThrottling.current = true;\n // performs layout at the next available animation frame when all measurements should be ready\n window.requestAnimationFrame(() => {\n const { labelDims, layoutJSON } = constructLayoutJSON<K1, K2, D1, D2>(\n nodeIdToDataMap,\n linkIdToDataMap,\n promotedLinks,\n newDimensions,\n width,\n height,\n zoomValue,\n nodeIdToParentMap,\n rootRef,\n getTextDimensions\n );\n labelDimensions.current = labelDims;\n const layoutOutput = layout(layoutJSON);\n const { nodePoints, nodeLabelPos, linkLabelPos } = deconstructLayoutJSON<K1, K2, D1, D2>(\n layoutOutput,\n diagramNodes,\n diagramLinks\n );\n nodeLabelPosRef.current = nodeLabelPos;\n linkLabelPosRef.current = linkLabelPos;\n const { nodeBounds, nodeAbsBounds } = mergeDimensions(newDimensions, nodePoints, rootRef);\n const labelBounds = getAllLabelBounds(\n labelDims,\n nodeLabelPos,\n linkLabelPos,\n direction === 'rtl',\n rootRef\n );\n const equalBounds = isEqualBounds(nodeBounds, bounds);\n if (!equalBounds || linkDimsChanged.current || linkRerenderNeeded.current) {\n linkRerenderNeeded.current = linkPositionChanged(nodeBounds, bounds, links);\n setBounds(nodeBounds);\n setAbsBounds(nodeAbsBounds)\n setCombinedLabelBounds(labelBounds);\n setLayoutOutput(layoutOutput);\n linkDimsChanged.current = false;\n setVisibility('hidden');\n } else if (visibility == 'hidden') {\n setVisibility('visible');\n }\n resizeThrottling.current = false;\n });\n };\n\n const onLinkSizeChanged = (linkWidth: number, linkHeight: number, id: K2) => {\n if (linkWidth !== 0 || linkHeight !== 0) {\n const linkDims = linkDimensions.current.get(id);\n if (\n !linkDims ||\n (linkDims &&\n (Math.abs(linkWidth - linkDims.width) > 0.5 ||\n Math.abs(linkHeight - linkDims.height) > 0.5))\n ) {\n linkDimensions.current.set(id, { width: linkWidth, height: linkHeight });\n linkDimsChanged.current = true;\n }\n }\n };\n\n const onPromotedLinkSizeChanged = (linkWidth: number, linkHeight: number, id: string) => {\n if (linkWidth !== 0 || linkHeight !== 0) {\n const linkDims = promotedLinkDimensions.current.get(id);\n if (\n !linkDims ||\n (linkDims &&\n (Math.abs(linkWidth - linkDims.width) > 0.5 ||\n Math.abs(linkHeight - linkDims.height) > 0.5))\n ) {\n promotedLinkDimensions.current.set(id, { width: linkWidth, height: linkHeight });\n linkDimsChanged.current = true;\n }\n }\n };\n\n return (\n <div\n ref={rootRef}\n class={outerStyles}\n {...mergedEventProps}\n style={style}\n tabIndex={0}\n role=\"application\"\n aria-label={otherProps['aria-label']}\n aria-labelledby={otherProps['aria-labelledby']}\n aria-describedby={merge([otherProps['aria-describedby'], datatipAriaDescribedby])}\n aria-activedescendant={activeId}>\n {getTextDimensions ? (\n <DiagramPanZoomContainer\n centerX={centerX}\n centerY={centerY}\n zoom={zoomValue}\n width={width}\n height={height}>\n <DiagramLayers\n nodes={diagramNodes}\n links={diagramLinks}\n zoom={zoomValue}\n nodeRenderer={nodeRenderer}\n linkRenderer={linkRenderer}\n width={width}\n height={height}\n nodeBounds={bounds}\n linkDimensions={linkDimensions.current}\n promotedLinkDimensions={promotedLinkDimensions.current}\n states={states.current!}\n onNodeSizeChanged={onNodeSizeChanged}\n onLinkSizeChanged={onLinkSizeChanged}\n onPromotedLinkSizeChanged={onPromotedLinkSizeChanged}\n nodeLabelPositions={nodeLabelPosRef.current}\n linkLabelPositions={linkLabelPosRef.current}\n labelDimensions={labelDimensions.current}\n supportsSelection={\n selectionMode !== 'none' ||\n !!(selectedIds?.nodes && selectedIds.nodes.length > 0) ||\n !!(selectedIds?.links && selectedIds.links.length > 0)\n }\n layoutOutput={layoutOutput}\n nodeIdToParentMap={nodeIdToParentMap}\n rootRef={rootRef}\n combinedNodeBounds={contentBounds}\n nodeBoundsRef={nodeBoundsRef}\n promotedLinks={promotedLinks}\n normalizeLinks={normalizeLinks}\n />\n </DiagramPanZoomContainer>\n ) : undefined}\n {textMeasureContent}\n {datatipContent}\n {contextMenuContent}\n {selectionContent}\n {toggleButtonContent}\n </div>\n );\n}\n","import { useSelection } from '#hooks/PRIVATE_useVisSelection';\nimport type {\n DiagramLinkData,\n DiagramNodeData,\n ItemInfo,\n PromotedLinkId,\n SelectedItemDetail\n} from '../diagram.types';\nimport { getNavigableInfo } from '../utils/diagramUtils';\nimport type { RefObject } from 'preact';\n\ntype SelectionProps<K1, K2, D1, D2> = {\n selectedIds: {\n nodes?: K1[];\n links?: K2[];\n promotedLinks?: PromotedLinkId<K1, D2>[];\n };\n selectionMode: 'none' | 'single' | 'multiple';\n nodeMap: {\n itemIdToDataMap: Map<K1, D1>;\n };\n linkMap: {\n itemIdToDataMap: Map<K2, D2>;\n };\n focusedItemInfo: ItemInfo<K1, K2, D2>;\n onSelectionChange?: (detail: SelectedItemDetail<K1, K2, D1, D2>) => void;\n rootRef: RefObject<HTMLDivElement>;\n promotedLinkMap: Map<string, PromotedLinkId<K1, D2>>;\n};\n\ntype EncodedNodeId = `N_${string}`;\ntype EncodedLinkId = `L_${string}`;\ntype EncodedPromotedLinkId = `P_${string}`;\n\nexport function useDiagramSelection<\n K1,\n K2,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>\n>({\n selectedIds,\n selectionMode,\n nodeMap,\n linkMap,\n focusedItemInfo,\n onSelectionChange,\n rootRef,\n promotedLinkMap\n}: SelectionProps<K1, K2, D1, D2>) {\n const nodeIdToDataMap = nodeMap.itemIdToDataMap;\n const nodeEncodedToIdMap = new Map<string, K1>();\n const linkEncodedToIdMap = new Map<string, K2>();\n\n const linkIdToDataMap = linkMap.itemIdToDataMap;\n const encodeNodeId = (id: K1) => {\n const encoded = `N_${id}` as EncodedNodeId;\n nodeEncodedToIdMap.set(encoded, id);\n return encoded;\n };\n const decodeNodeId = (id: EncodedNodeId) => nodeEncodedToIdMap.get(id);\n const encodeLinkId = (id: K2) => {\n const encoded = `L_${id}` as EncodedLinkId;\n linkEncodedToIdMap.set(encoded, id);\n return encoded;\n };\n const decodeLinkId = (id: EncodedLinkId) => linkEncodedToIdMap.get(id);\n const encodePromotedLinkId = (id: PromotedLinkId<K1, D2>) =>\n `P_${JSON.stringify(id)}` as EncodedPromotedLinkId;\n const decodePromotedLinkId = (id: EncodedPromotedLinkId) => JSON.parse(id.slice(2));\n\n const encodedNodesSelection = selectedIds.nodes ? selectedIds.nodes.map(encodeNodeId) : [];\n const encodedLinksSelection = selectedIds.links ? selectedIds.links.map(encodeLinkId) : [];\n const encodedPromotedLinksSelection = selectedIds.promotedLinks\n ? selectedIds.promotedLinks.map(encodePromotedLinkId)\n : [];\n const encodedSelection = [\n ...encodedNodesSelection,\n ...encodedLinksSelection,\n ...encodedPromotedLinksSelection\n ];\n const idExtracter = (event: Event) => {\n // return encodeNodeId(id) or encodeLinkId(id) depending on node or link selection or undefined if clicked on empty space\n const info =\n event.type === 'keyup'\n ? focusedItemInfo\n : getNavigableInfo<K1, K2, D2>(event.target as HTMLElement, promotedLinkMap, rootRef);\n return info.id !== undefined\n ? info.type === 'node'\n ? encodeNodeId(info.id as K1)\n : info.type === 'link'\n ? encodeLinkId(info.id as K2)\n : encodePromotedLinkId(info.id)\n : undefined;\n };\n\n const onEncodedSelectionChange = (detail: {\n ids: (EncodedNodeId | EncodedLinkId | EncodedPromotedLinkId)[];\n }) => {\n const newNodeIds = detail.ids\n .filter((encId) => encId[0] === 'N')\n .map((encId) => decodeNodeId(encId as EncodedNodeId)!);\n const newLinkIds = detail.ids\n .filter((encId) => encId[0] === 'L')\n .map((encId) => decodeLinkId(encId as EncodedLinkId)!);\n\n const newPromotedLinkIds = detail.ids\n .filter((encId) => encId[0] === 'P')\n .map((encId) => decodePromotedLinkId(encId as EncodedPromotedLinkId)!);\n\n const newSelectedNodeIds = newNodeIds.filter(\n (id) => nodeIdToDataMap.get(id)?.selectable !== 'off'\n );\n const newSelectedLinkIds = newLinkIds.filter(\n (id) => linkIdToDataMap.get(id)?.selectable !== 'off'\n );\n\n const nodeData = newSelectedNodeIds.map((selectedId) => {\n return nodeIdToDataMap.get(selectedId);\n });\n const linkData = newSelectedLinkIds.map((selectedId) => {\n return linkIdToDataMap.get(selectedId);\n });\n return (\n onSelectionChange &&\n onSelectionChange({\n nodes: {\n ids: newSelectedNodeIds,\n data: nodeData\n },\n links: {\n ids: newSelectedLinkIds,\n data: linkData\n },\n promotedLinks: {\n ids: newPromotedLinkIds\n }\n })\n );\n };\n\n const getDataById = (id: EncodedNodeId | EncodedLinkId | EncodedPromotedLinkId) => {\n let data;\n if (id[0] === 'N') {\n const nodeId = decodeNodeId(id as EncodedNodeId)!;\n data = nodeMap.itemIdToDataMap.get(nodeId);\n } else if (id[0] === 'L') {\n const linkId = decodeLinkId(id as EncodedLinkId)!;\n data = linkMap.itemIdToDataMap.get(linkId);\n } else if (id[0] === 'P') {\n data = decodePromotedLinkId(id as EncodedPromotedLinkId)!;\n }\n return data;\n };\n\n const isKeyboardSelection = (event: KeyboardEvent) => {\n return event.key === '[' || event.key === ']';\n };\n\n const { selectionContent, selectionProps } = useSelection<\n EncodedNodeId | EncodedLinkId | EncodedPromotedLinkId,\n D1 | D2 | DiagramLinkData<string, K1>\n >({\n selection: encodedSelection,\n idExtracter,\n selectionMode,\n getDataById,\n onChange: onEncodedSelectionChange,\n isKeyboardSelection\n });\n\n return { selectionContent, selectionProps };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type { DiagramContextMenuContext, PromotedLinkId } from '../diagram.types';\n\nexport function getDiagramContextMenuContext<K1, K2, D1, D2>(\n nodesMap: Map<K1, D1>,\n linksMap: Map<K2, D2>,\n type: 'node' | 'link' | 'promotedLink' | 'background',\n idx?: K1 | K2 | PromotedLinkId<K1, D2> | string\n) {\n let context: DiagramContextMenuContext<K1, D1, D2>;\n\n if (type === 'node') {\n context = {\n data: nodesMap.get(idx as K1)!,\n type\n };\n } else if (type === 'link') {\n context = {\n data: linksMap.get(idx as K2)!,\n type\n };\n } else if (type === 'promotedLink') {\n context = {\n id: idx as PromotedLinkId<K1, D2>,\n type\n };\n } else {\n context = {\n type: 'background'\n };\n }\n\n return {\n context: context as DiagramContextMenuContext<K1, D1, D2>\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type {\n BaseDiagramProps,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput\n} from './diagram.types';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\nimport { dimensionStyle } from './themes/DiagramStyles.css';\nimport { BaseDiagramWithDimensions } from './BaseDiagramWithDimensions';\n\n/**\n * Diagrams are used to display a set of nodes and the links between them.\n */\nexport function BaseDiagram<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1, D1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({ width, height, ...otherProps }: BaseDiagramProps<K1, K2, D1, D2, L>) {\n return otherProps.nodes && otherProps.nodes.length > 0 ? (\n <TrackResizeContainer width={width} height={height} class={dimensionStyle}>\n {(width, height) => (\n <BaseDiagramWithDimensions width={width} height={height} {...otherProps} />\n )}\n </TrackResizeContainer>\n ) : null;\n}\n"],"names":["constructLayoutJSON","nodeItems","linkItems","promotedLinks","dimensions","width","height","zoom","nodeIdToParentMap","rootRef","getTextDimensions","labelDims","Map","nodeValues","Array","from","values","linkValues","forEach","value","nodes","getNodeLabelProps","label","fontProps","_getFontProps","labelStyle","set","id","getLabelProps","linkKeys","keys","item","get","layoutJSON","getNodeDimensions","data","getLabelDimensions","getContainerId","startNode","endNode","getCommonAncestorId","getRelativeNodeBounds","containerId","absPos","getAbsoluteNodePosition","x","y","getPromotedLinks","componentSize","normalizeBounds","bounds","getAbsoluteLinkBounds","itemId","referenceId","isPromoted","current","linkElement","nodeContainer","querySelector","dims","linkBoundingRect","getBoundingClientRect","diagramBoundingRect","getBounds","links","nodeBounds","linkDimensions","promotedLinkDimensions","topId","leftId","minX","Infinity","minY","maxX","maxY","i","length","nodeMinX","nodeMinY","linkMinX","linkMinY","linkMaxX","linkMaxY","topBounds","leftBounds","contentWidth","contentHeight","nodeId","nodeElement","nodeBoundingRect","nodeContainerRect","deconstructLayoutJSON","nodeData","linkData","positions","nodeLabelPos","linkLabelPos","findPoints","link","nodePoints","output","node","position","_createItemMap","items","itemIdToDataMap","itemIdToIndexMap","itemIndexToIdMap","itemIdToParentMap","allContainerNodes","expanded","allVisibleNodes","parentId","parentIndex","index","push","containsKey","getLabelBounds","isRTL","labelPos","getLabelPosition","rotationAngle","rotationPoint","angle","topLeft","getCoordsRelToRotPoint","topRight","bottomLeft","bottomRight","points","point","getBoundsFromPoints","rotatePoint","map","pos","labelPoint","rotPoint","Math","cos","sin","positionProps","hAlign","vAlign","isEqualItem","item1","item2","type","getNavigableInfo","element","promotedLinkMap","rootElementRef","navigableId","elem","dataset","parentElement","getItemAriaLabel","translations","supportsSelection","states","accessibleLabel","generateAriaLabel","isSelected","undefined","isIndirect","isExpanded","isCollapsed","styles","fontFamily","fontSize","fontStyle","fontWeight","getPromotedString","startId","endId","startAnc","_getAncestorIds","endAnc","indexOf","getLinksForNode","frontLinks","backLinks","frontPromotedLinks","backPromotedLinks","ancestors","anc","containerLinksReady","containerLinks","layoutOutput","changeExpanded","removeKey","addKey","firstVisibleAncestor","collapsed","isDescendant","chId","DiagramLabel","text","labelBorderStyle","labelStyles","labelPosition","labelRotation","rotation","getLabelRotation","_jsx","class","classNames","borderColor","style","top","left","children","DiagramNodeElement","state","activeId","nodeRenderer","onNodeSizeChanged","isDimmed","content","labelDimensions","nodeStyles","dimmedItemStyle","itemStyles","useTranslationBundle","ref","useRef","optionsRef","box","useResizeObserver","useCallback","entry","boxSize","borderBoxSize","inlineSize","blockSize","nodePos","direction","useUser","hasLabel","context","childContext","expander","jsx","buttonStyle","EmbeddedIconButton","size","Minus","Plus","_jsxs","role","isFocused","isHovered","layerStyles","DiagramLinkElement","linkRenderer","onLinkSizeChanged","linkStyles","nextZoom","minZoom","maxZoom","onZoomChange","newZoom","zoomValue","getZoomToFitZoom","contentBounds","zoomX","zoomY","min","constrainZoom","max","zoomAndCenterItemFromInfo","info","linkIdToDataMap","totalBounds","startNodeBounds","endNodeBounds","cX","cY","centerX","centerY","getPanZoomToCenterNode","DiagramLabelLayer","itemProps","DiagramLinkLayer","combinedNodeBounds","linkLabelPositions","linkLayerStyle","overflow","selectedLinkIds","includes","focusedId","hoveredId","highlightedNodeIds","highlightedLinkIds","highlightedPromotedLinkIds","DiagramPromotedLinkElement","stringId","num_links","diagram_promotedLinks","toString","diagram_promotedLink","DiagramPromotedLinkLayer","selectedPromotedLinkIds","DiagramNodeLayer","onPromotedLinkSizeChanged","nodeLabelPositions","nodeBoundsRef","normalizeLinks","jsxs","selectedNodeIds","child","linkDims","isContainerReady","childContent","getContent","nodeFullBounds","DiagramLayers","_Fragment","pan","previousPan","nextPan","panDirection","panBounds","onPanChange","newPan","panX","panY","constrainPan","isPanChanged","center","panXYToCenterXY","centerXYToPanXY","DiagramPanZoomContainer","panValues","panZoomStyles","translate","transform","getNavigableLinksForNodeId","listOfLinks","_getClockwiseAngle","currNode","oppositeNode","p1","_getNodeCenter","p2","atan2","PI","_getNodesDistance","sqrt","pow","_getLinkDirection","nodeBB","calcDistanceAngleWeighted","objectBB","currentBB","optimalAngle1","optimalAngle2","objCenterX","objCenterY","curCenterX","curCenterY","x_dist","abs","y_dist","distance","isValidDestination","objBB","curBB","compareCenters","_areEqualWithinTolerance","calcInContact","objRect","curRect","_isVerticallyAligned","_isHorizontallyAligned","rect1","rect2","a","b","_anglesAreEqualWithinTolerance","a1","a2","res","useDiagramNavigation","nodeIdToDataMap","currentKeyboardFocusNode","nodeBoundsById","getNextNavigableNode","listOfObjects","currBB","object","inContact","nextObject","nextDistance","Number","MAX_VALUE","nextInContact","hasFoundCurrent","objBounds","currBounds","getNextNavigableLink","listOfNodes","currentLink","allLinks","keyboardFocusNode","linksWithSortingAttributes","linkDetail","addSortingAttributes","sort","link1","link2","linkAngle1","linkDistance1","linkDirection1","linkAngle2","linkDistance2","linkDirection2","bForward","navigateFromNodeToLink","event","adjLinks","currNodeBB","currNodeBBCenterX","nodeCenterX","altKey","code","navigateFromLinkToNode","key","startNodeBB","endNodeBB","startNodeCenterX","endNodeCenterX","useEvents","touchResponse","initNode","onItemHover","onItemFocus","kbPanCallback","kbZoomCallback","onExpandedChange","focusedItemInfo","setfocusedItemInfo","useState","hoveredItemInfo","sethoveredItemInfo","hoverHandlers","useVisHover","itemInfo","target","detail","isCurrent","getRandomId","updatefocusedItemInfo","handleKeyboardInput","isFocusVisible","onContextMenuDismissed","gesture","eventsProps","mergeProps","onKeyUp","onKeyDown","eventConsumed","isChangeItemType","nextItemInfo","isNavigationEvent","parent","navigableNodes","itemDetail","getLinkDetailFromInfo","handleKeyboardNavigationEvent","dPan","dx","shiftKey","dy","dZoom","ctrlKey","nZoom","nPan","cx","cy","newExpanded","getChildInfo","preventDefault","stopPropagation","cancelEvent","onBlur","onPointerUp","buttonId","expCollapseButtonId","onFocus","usePointerGesture","captureTargetRef","numPointers","onPointerGestureDown","onPointerGestureMove","onPointerGestureEnd","onExtraneousPointerDown","isDisabled","activePointers","e","findIndex","pointerEvent","pointerId","pointers","splice","onPointerDown","onPointerMove","setPointerCapture","onPointerCancel","onPointerLeave","useDragPan","panProps","onDragPanStart","onDragPanEnd","prevPanState","initialPanState","dragProps","draggableRegion","onDragStart","onDragMove","onDragEnd","inactiveState","isDragging","x0","y0","regionOffsetX","regionOffsetY","dragState","handlePointerEvent","cb","pageX","pageY","originalEvent","button","region","xMin","xMax","yMin","yMax","inDraggableRegion","getRegionOffset","useDrag","onPan","panning","getDistance","usePinchZoom","zooming","onZoom","pinchProps","onPinchZoomStart","onPinchZoomChange","onPinchZoomEnd","origin","prevDistance","reset","pointer1","pointer2","offsetX","offsetY","getMidpoint","delta","usePinch","usePanZoom","props","isRtl","cursor","setCursor","zoomProps","zoomTofitZoom","getZoomProps","prevZoom","initPanZoomState","isDeviceTouch","isTouch","plotArea","showPanButton","dragModeOptions","isZoomScroll","plotAreaSpace","componentWidth","showZoomButton","showSelectButton","toggleButtonContent","userDragMode","useVisDragModeControls","getPanProps","dWidth","dHeight","elemBounds","panType","zoomRatio","minZoomX","minZoomY","initZoom","initCenterX","initCenterY","boundsX","boundsY","getPanBounds","dragPanProps","wheelZoomProps","onWheel","onWheelCallback","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","DOM_DELTA_LINE","DOM_DELTA_PAGE","getNormalizedDelta","metaKey","useWheel","useWheelZoom","pinchZoomProps","panZoomProps","emptyKeys","all","Set","BaseDiagramWithDimensions","selectedIds","selectionMode","layout","onSelectionChange","highlightedIds","datatip","contextMenuConfig","otherProps","focusedItemBoundsRef","setBounds","absBounds","setAbsBounds","combinedLabelBounds","setCombinedLabelBounds","diagramNodes","nodeMap","String","createNodesMap","diagramLinks","nodesMap","newLinks","filterLinksWithNoStartOrEndNodes","linkMap","createLinksMap","resizeThrottling","newDimensions","getDimensionsFromBounds","textMeasureContent","useTextDimensions","linkDimsChanged","linkRerenderNeeded","nodeLabelPosRef","linkLabelPosRef","setLayoutOutput","linkToPromotedMap","promotedToLinkMap","linkId","startVisible","endVisible","promotedLinkId","subLinks","promotedLink","finalPromoted","createPromotedLinksMap","labelBounds","getContentBounds","touchResponseStyle","useVisTouchResponse","supportsTouchDragGestures","selectionProps","selectionContent","nodeEncodedToIdMap","linkEncodedToIdMap","encodeNodeId","encoded","decodeNodeId","encodeLinkId","decodeLinkId","encodePromotedLinkId","JSON","stringify","decodePromotedLinkId","parse","slice","encodedSelection","useSelection","selection","idExtracter","getDataById","onChange","newNodeIds","ids","filter","encId","newLinkIds","newPromotedLinkIds","newSelectedNodeIds","selectable","newSelectedLinkIds","selectedId","isKeyboardSelection","useDiagramSelection","linkIdToIndexMap","next","startNB","endNB","startNCenter","endNCenter","getFocusedItemBounds","datatipContent","datatipProps","datatipAriaDescribedby","panState","linksMap","hoveredItem","datatipC","focusedItem","isPointerActive","getDatatipContent","elementBounds","offset","calculateOffset","useDatatip","placement","anchor","useDiagramDatatip","visibility","setVisibility","expandRerender","useLayoutEffect","focus","contextMenuContent","contextMenuProps","useContextMenu","onContextMenuHandler","idx","elementType","currentTarget","closest","getDiagramContextMenuContext","contextMenuOptions","useDiagramContextMenu","mergedEventProps","outerStyles","tabIndex","merge","nodeWidth","nodeHeight","window","requestAnimationFrame","nodeAbsBounds","absPoint","mergeDimensions","nodeBound","getAllLabelBounds","bounds1","bounds2","equal","b2Value","isEqualBounds","nodesWithLinks","rerender","linkPositionChanged","linkWidth","linkHeight","TrackResizeContainer","dimensionStyle"],"mappings":"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"}