@oracle/oraclejet-preact 18.1.4 → 18.1.6

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 (1782) hide show
  1. package/amd/BarChart-0ad4ca6d.js +2 -0
  2. package/amd/BarChart-0ad4ca6d.js.map +1 -0
  3. package/amd/BaseButton-c86afd54.js +2 -0
  4. package/amd/BaseButton-c86afd54.js.map +1 -0
  5. package/amd/BaseCardView-a1c5a21d.js +2 -0
  6. package/amd/BaseCardView-a1c5a21d.js.map +1 -0
  7. package/amd/BaseCardViewSelectionTest-36a03079.js +2 -0
  8. package/amd/BaseCardViewSelectionTest-36a03079.js.map +1 -0
  9. package/amd/BaseRichSelection-33a97275.js +2 -0
  10. package/amd/BaseRichSelection-33a97275.js.map +1 -0
  11. package/amd/Button-cb88d20f.js +2 -0
  12. package/amd/Button-cb88d20f.js.map +1 -0
  13. package/amd/ButtonSetButton-819e99a8.js +2 -0
  14. package/amd/ButtonSetButton-819e99a8.js.map +1 -0
  15. package/amd/ButtonSetIconButton-9f171b1e.js +2 -0
  16. package/amd/ButtonSetIconButton-9f171b1e.js.map +1 -0
  17. package/amd/ButtonSetItem-8a51cd2a.js +2 -0
  18. package/amd/ButtonSetItem-8a51cd2a.js.map +1 -0
  19. package/amd/CardFlexView-f7fdfac8.js +2 -0
  20. package/amd/CardFlexView-f7fdfac8.js.map +1 -0
  21. package/amd/CardGridView-b8a60fae.js +2 -0
  22. package/amd/CardGridView-b8a60fae.js.map +1 -0
  23. package/amd/Chart-79cfc878.js +2 -0
  24. package/amd/Chart-79cfc878.js.map +1 -0
  25. package/amd/Checkbox-49753599.js +2 -0
  26. package/amd/Checkbox-49753599.js.map +1 -0
  27. package/amd/CheckboxControl-c6a380b3.js +2 -0
  28. package/amd/CheckboxControl-c6a380b3.js.map +1 -0
  29. package/amd/CheckboxRadioField-1987c75d.js +2 -0
  30. package/amd/CheckboxRadioField-1987c75d.js.map +1 -0
  31. package/amd/CheckboxSet-05423d28.js +2 -0
  32. package/amd/CheckboxSet-05423d28.js.map +1 -0
  33. package/amd/CheckboxStyles.styles.css +6 -0
  34. package/amd/ClearIcon-d73689cc.js +2 -0
  35. package/amd/ClearIcon-d73689cc.js.map +1 -0
  36. package/amd/ComboChart-72eda15f.js +2 -0
  37. package/amd/ComboChart-72eda15f.js.map +1 -0
  38. package/amd/CompactUserAssistance-3799998f.js +2 -0
  39. package/amd/CompactUserAssistance-3799998f.js.map +1 -0
  40. package/amd/ComponentMessageContainer-cf186eeb.js +2 -0
  41. package/amd/ComponentMessageContainer-cf186eeb.js.map +1 -0
  42. package/amd/ConveyorBeltItem-e3002f4a.js +2 -0
  43. package/amd/ConveyorBeltItem-e3002f4a.js.map +1 -0
  44. package/amd/DatePicker-9115226e.js +2 -0
  45. package/amd/DatePicker-9115226e.js.map +1 -0
  46. package/amd/DatePickerHeader-a0da70a0.js +2 -0
  47. package/amd/DatePickerHeader-a0da70a0.js.map +1 -0
  48. package/amd/Diagram-14fa4924.js +2 -0
  49. package/amd/Diagram-14fa4924.js.map +1 -0
  50. package/amd/Dialog-896c0bfd.js +2 -0
  51. package/amd/Dialog-896c0bfd.js.map +1 -0
  52. package/amd/EmbeddedIconButton-3608bfb4.js +2 -0
  53. package/amd/EmbeddedIconButton-3608bfb4.js.map +1 -0
  54. package/amd/ExpandableList-daabc548.js +2 -0
  55. package/amd/ExpandableList-daabc548.js.map +1 -0
  56. package/amd/Gantt-7265d4ce.js +2 -0
  57. package/amd/Gantt-7265d4ce.js.map +1 -0
  58. package/amd/GroupLoadingIndicator-9fd33355.js +1 -1
  59. package/amd/IconButton-368fba34.js +2 -0
  60. package/amd/IconButton-368fba34.js.map +1 -0
  61. package/amd/IconMenuButton-3f3c2386.js +2 -0
  62. package/amd/IconMenuButton-3f3c2386.js.map +1 -0
  63. package/amd/IconProgressButton-11c44c28.js +2 -0
  64. package/amd/IconProgressButton-11c44c28.js.map +1 -0
  65. package/amd/IconSwitchButton-1a400cdf.js +2 -0
  66. package/amd/IconSwitchButton-1a400cdf.js.map +1 -0
  67. package/amd/IconToggleButton-ea46b246.js +2 -0
  68. package/amd/IconToggleButton-ea46b246.js.map +1 -0
  69. package/amd/Indexer-5df524f2.js +2 -0
  70. package/amd/Indexer-5df524f2.js.map +1 -0
  71. package/amd/InlineUserAssistance-a97e0011.js +2 -0
  72. package/amd/InlineUserAssistance-a97e0011.js.map +1 -0
  73. package/amd/InputDateMask-09989b51.js +2 -0
  74. package/amd/InputDateMask-09989b51.js.map +1 -0
  75. package/amd/InputDatePicker-03bdeb95.js +2 -0
  76. package/amd/InputDatePicker-03bdeb95.js.map +1 -0
  77. package/amd/InputPassword-57a5e072.js +2 -0
  78. package/amd/InputPassword-57a5e072.js.map +1 -0
  79. package/amd/InputText-a72eb1c3.js +2 -0
  80. package/amd/InputText-a72eb1c3.js.map +1 -0
  81. package/amd/Label-41b672b4.js +2 -0
  82. package/amd/Label-41b672b4.js.map +1 -0
  83. package/amd/Legend-6fa54628.js +2 -0
  84. package/amd/Legend-6fa54628.js.map +1 -0
  85. package/amd/LegendRendered-d8626509.js.map +1 -1
  86. package/amd/LineAreaChart-3aff0c1a.js +2 -0
  87. package/amd/LineAreaChart-3aff0c1a.js.map +1 -0
  88. package/amd/Link-1f126248.js +2 -0
  89. package/amd/Link-1f126248.js.map +1 -0
  90. package/amd/LinkVariants.styles.css +2 -1
  91. package/amd/LinkVariants.styles2.css +2 -1
  92. package/amd/List-0da6ee9c.js +2 -0
  93. package/amd/List-0da6ee9c.js.map +1 -0
  94. package/amd/ListView-cdfac903.js +2 -0
  95. package/amd/ListView-cdfac903.js.map +1 -0
  96. package/amd/LoadMoreCollection-a6adbc3f.js +2 -0
  97. package/amd/LoadMoreCollection-a6adbc3f.js.map +1 -0
  98. package/amd/MaxLengthCounter-9a95922c.js +2 -0
  99. package/amd/MaxLengthCounter-9a95922c.js.map +1 -0
  100. package/amd/MenuButton-66e5430a.js +2 -0
  101. package/amd/MenuButton-66e5430a.js.map +1 -0
  102. package/amd/Message-d66cc7e9.js +2 -0
  103. package/amd/Message-d66cc7e9.js.map +1 -0
  104. package/amd/MessageToast-19703f73.js +2 -0
  105. package/amd/MessageToast-19703f73.js.map +1 -0
  106. package/amd/MonthView-67179db3.js +2 -0
  107. package/amd/MonthView-67179db3.js.map +1 -0
  108. package/amd/NumberInputText-e2cf1795.js +2 -0
  109. package/amd/NumberInputText-e2cf1795.js.map +1 -0
  110. package/amd/OverflowTabBar-1dd5c327.js +2 -0
  111. package/amd/OverflowTabBar-1dd5c327.js.map +1 -0
  112. package/amd/OverflowTabBarItem-f8128e3d.js +2 -0
  113. package/amd/OverflowTabBarItem-f8128e3d.js.map +1 -0
  114. package/amd/PRIVATE_BaseCardView.js +1 -1
  115. package/amd/PRIVATE_Chart.js +1 -1
  116. package/amd/PRIVATE_CheckboxControl.js +1 -1
  117. package/amd/PRIVATE_CheckboxRadioField.js +1 -1
  118. package/amd/PRIVATE_ClearIcon.js +1 -1
  119. package/amd/PRIVATE_DatePickerHeader.js +1 -1
  120. package/amd/PRIVATE_EmbeddedIconButton.js +1 -1
  121. package/amd/PRIVATE_IconSwitchButton.js +1 -1
  122. package/amd/PRIVATE_List.js +1 -1
  123. package/amd/PRIVATE_LoadMoreCollection.js +1 -1
  124. package/amd/PRIVATE_Message.js +1 -1
  125. package/amd/PRIVATE_MonthView.js +1 -1
  126. package/amd/PRIVATE_MonthYearGridView.js +1 -1
  127. package/amd/PRIVATE_RevealToggleIcon.js +1 -1
  128. package/amd/PRIVATE_RichSelectionCommon.js +1 -1
  129. package/amd/PRIVATE_SelectCommon.js +1 -1
  130. package/amd/PRIVATE_Table.js +1 -1
  131. package/amd/PRIVATE_TimeComponent.js +1 -1
  132. package/amd/PRIVATE_VirtualizedCollection.js +1 -1
  133. package/amd/PictoChart-98b892fb.js +2 -0
  134. package/amd/PictoChart-98b892fb.js.map +1 -0
  135. package/amd/ProgressButton-cd0c21df.js +2 -0
  136. package/amd/ProgressButton-cd0c21df.js.map +1 -0
  137. package/amd/RadioItem-1a02d3dc.js +2 -0
  138. package/amd/RadioItem-1a02d3dc.js.map +1 -0
  139. package/amd/RadioSet-94d12876.js +2 -0
  140. package/amd/RadioSet-94d12876.js.map +1 -0
  141. package/amd/RemovableNavigationListItem-1f69907c.js +2 -0
  142. package/amd/RemovableNavigationListItem-1f69907c.js.map +1 -0
  143. package/amd/RemovableTabBarItem-5c240801.js +2 -0
  144. package/amd/RemovableTabBarItem-5c240801.js.map +1 -0
  145. package/amd/RevealToggleIcon-c22626da.js +2 -0
  146. package/amd/RevealToggleIcon-c22626da.js.map +1 -0
  147. package/amd/ScatterChart-e6f8d49a.js +2 -0
  148. package/amd/ScatterChart-e6f8d49a.js.map +1 -0
  149. package/amd/SelectMultiple-a159ccbf.js +2 -0
  150. package/amd/SelectMultiple-a159ccbf.js.map +1 -0
  151. package/amd/SelectSingle-e3d0d8d2.js +2 -0
  152. package/amd/SelectSingle-e3d0d8d2.js.map +1 -0
  153. package/amd/SplitMenuButton-a2001b04.js +2 -0
  154. package/amd/SplitMenuButton-a2001b04.js.map +1 -0
  155. package/amd/Table-f5ebf3d4.js +2 -0
  156. package/amd/Table-f5ebf3d4.js.map +1 -0
  157. package/amd/TableView-e8cab364.js +2 -0
  158. package/amd/TableView-e8cab364.js.map +1 -0
  159. package/amd/TagCloud-39552a78.js +2 -0
  160. package/amd/TagCloud-39552a78.js.map +1 -0
  161. package/amd/TextArea-0ec1a311.js +2 -0
  162. package/amd/TextArea-0ec1a311.js.map +1 -0
  163. package/amd/TextAreaAutosize-8cac0a54.js +2 -0
  164. package/amd/TextAreaAutosize-8cac0a54.js.map +1 -0
  165. package/amd/Theme-redwood/theme.css +201 -201
  166. package/amd/Theme-stable/theme.css +412 -412
  167. package/amd/TimeComponentCanvas2D-82ebf0c7.js +2 -0
  168. package/amd/TimeComponentCanvas2D-82ebf0c7.js.map +1 -0
  169. package/amd/ToggleButton-f8845804.js +2 -0
  170. package/amd/ToggleButton-f8845804.js.map +1 -0
  171. package/amd/UNSAFE_BarChart/__test__/BarChart.spec.js +1 -1
  172. package/amd/UNSAFE_BarChart.js +1 -1
  173. package/amd/UNSAFE_BaseButton.js +1 -1
  174. package/amd/UNSAFE_Button.js +1 -1
  175. package/amd/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
  176. package/amd/UNSAFE_ButtonSetButton.js +1 -1
  177. package/amd/UNSAFE_ButtonSetIconButton.js +1 -1
  178. package/amd/UNSAFE_ButtonSetItem.js +1 -1
  179. package/amd/UNSAFE_CardFlexView.js +1 -1
  180. package/amd/UNSAFE_CardGridView.js +1 -1
  181. package/amd/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -1
  182. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -1
  183. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  184. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -1
  185. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -1
  186. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  187. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -1
  188. package/amd/UNSAFE_Checkbox.js +1 -1
  189. package/amd/UNSAFE_CheckboxItem.js +1 -1
  190. package/amd/UNSAFE_CheckboxItem.js.map +1 -1
  191. package/amd/UNSAFE_CheckboxSet.js +1 -1
  192. package/amd/UNSAFE_CheckboxSet.js.map +1 -1
  193. package/amd/UNSAFE_ComboChart.js +1 -1
  194. package/amd/UNSAFE_ComponentMessage.js +1 -1
  195. package/amd/UNSAFE_ConveyorBelt.js +1 -1
  196. package/amd/UNSAFE_DatePicker.js +1 -1
  197. package/amd/UNSAFE_Diagram.js +1 -1
  198. package/amd/UNSAFE_Dialog.js +1 -1
  199. package/amd/UNSAFE_ExpandableList.js +1 -1
  200. package/amd/UNSAFE_Gantt.js +1 -1
  201. package/amd/UNSAFE_IconButton.js +1 -1
  202. package/amd/UNSAFE_IconMenuButton.js +1 -1
  203. package/amd/UNSAFE_IconProgressButton.js +1 -1
  204. package/amd/UNSAFE_IconToggleButton.js +1 -1
  205. package/amd/UNSAFE_Indexer.js +1 -1
  206. package/amd/UNSAFE_InputDateMask.js +1 -1
  207. package/amd/UNSAFE_InputDatePicker.js +1 -1
  208. package/amd/UNSAFE_InputPassword.js +1 -1
  209. package/amd/UNSAFE_InputSensitiveText.js +1 -1
  210. package/amd/UNSAFE_InputText.js +1 -1
  211. package/amd/UNSAFE_InputTimeMask.js +1 -1
  212. package/amd/UNSAFE_Label.js +1 -1
  213. package/amd/UNSAFE_LabelledLink.js +1 -1
  214. package/amd/UNSAFE_Legend.js +1 -1
  215. package/amd/UNSAFE_LineAreaChart.js +1 -1
  216. package/amd/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  217. package/amd/UNSAFE_Link.js +1 -1
  218. package/amd/UNSAFE_ListView.js +1 -1
  219. package/amd/UNSAFE_MenuButton.js +1 -1
  220. package/amd/UNSAFE_MessageBanner.js +1 -1
  221. package/amd/UNSAFE_MessageToast.js +1 -1
  222. package/amd/UNSAFE_NavigationList.js +1 -1
  223. package/amd/UNSAFE_NavigationListCommon.js +1 -1
  224. package/amd/UNSAFE_NumberInputText.js +1 -1
  225. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  226. package/amd/UNSAFE_PictoChart.js +1 -1
  227. package/amd/UNSAFE_ProgressButton.js +1 -1
  228. package/amd/UNSAFE_RadioItem.js +1 -1
  229. package/amd/UNSAFE_RadioSet.js +1 -1
  230. package/amd/UNSAFE_RichCheckboxSet.js +1 -1
  231. package/amd/UNSAFE_RichCheckboxSet.js.map +1 -1
  232. package/amd/UNSAFE_RichRadioSet.js +1 -1
  233. package/amd/UNSAFE_RichRadioSet.js.map +1 -1
  234. package/amd/UNSAFE_RichSelectionItem.js +1 -1
  235. package/amd/UNSAFE_RichSelectionItem.js.map +1 -1
  236. package/amd/UNSAFE_ScatterChart.js +1 -1
  237. package/amd/UNSAFE_SelectMultiple.js +1 -1
  238. package/amd/UNSAFE_SelectSingle.js +1 -1
  239. package/amd/UNSAFE_Sheet/__test__/Sheet.spec.js +1 -1
  240. package/amd/UNSAFE_SplitMenuButton.js +1 -1
  241. package/amd/UNSAFE_TabBar.js +1 -1
  242. package/amd/UNSAFE_TabBarCommon.js +1 -1
  243. package/amd/UNSAFE_TabBarMixed.js +1 -1
  244. package/amd/UNSAFE_TableView.js +1 -1
  245. package/amd/UNSAFE_TagCloud.js +1 -1
  246. package/amd/UNSAFE_TextArea.js +1 -1
  247. package/amd/UNSAFE_TextAreaAutosize.js +1 -1
  248. package/amd/UNSAFE_ToggleButton.js +1 -1
  249. package/amd/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
  250. package/amd/UNSAFE_UserAssistance.js +1 -1
  251. package/amd/UNSAFE_VirtualizedListView.js +1 -1
  252. package/amd/VirtualizedCollection-63223f5e.js +2 -0
  253. package/amd/VirtualizedCollection-63223f5e.js.map +1 -0
  254. package/amd/VirtualizedListView-d353d174.js +2 -0
  255. package/amd/VirtualizedListView-d353d174.js.map +1 -0
  256. package/amd/YearsGridView-e645d5de.js +2 -0
  257. package/amd/YearsGridView-e645d5de.js.map +1 -0
  258. package/amd/hooks/PRIVATE_useChartEvents.js +1 -1
  259. package/amd/hooks/PRIVATE_useChartMarquee.js +1 -1
  260. package/amd/hooks/PRIVATE_useVisDragModeControls.js +1 -1
  261. package/amd/hooks/PRIVATE_useVisSelection.js +1 -1
  262. package/amd/hooks/UNSAFE_usePressClick.js +1 -1
  263. package/amd/useCellNavigation-4138513e.js +2 -0
  264. package/amd/useCellNavigation-4138513e.js.map +1 -0
  265. package/amd/useChartMarquee-2f7d51c4.js +2 -0
  266. package/amd/useChartMarquee-2f7d51c4.js.map +1 -0
  267. package/amd/usePressClick-b5bf4243.js +2 -0
  268. package/amd/usePressClick-b5bf4243.js.map +1 -0
  269. package/amd/useSelectCommon-380baecd.js +2 -0
  270. package/amd/useSelectCommon-380baecd.js.map +1 -0
  271. package/amd/useSelectDrill-113ae3ae.js +2 -0
  272. package/amd/useSelectDrill-113ae3ae.js.map +1 -0
  273. package/amd/useSelection-80e262f2.js +2 -0
  274. package/amd/useSelection-80e262f2.js.map +1 -0
  275. package/amd/useVisDragModeControls-f187d8b2.js +2 -0
  276. package/amd/useVisDragModeControls-f187d8b2.js.map +1 -0
  277. package/cjs/BarChart-66dbe5be.js +181 -0
  278. package/cjs/BarChart-66dbe5be.js.map +1 -0
  279. package/cjs/BaseButton-590432e4.js +174 -0
  280. package/cjs/BaseButton-590432e4.js.map +1 -0
  281. package/cjs/BaseCardView-5c483f52.js +687 -0
  282. package/cjs/BaseCardView-5c483f52.js.map +1 -0
  283. package/cjs/BaseCardViewSelectionTest-f29b3ecf.js +734 -0
  284. package/cjs/BaseCardViewSelectionTest-f29b3ecf.js.map +1 -0
  285. package/cjs/BaseRichSelection-07d33b2a.js +344 -0
  286. package/cjs/BaseRichSelection-07d33b2a.js.map +1 -0
  287. package/cjs/Button-2427b7df.js +24 -0
  288. package/cjs/Button-2427b7df.js.map +1 -0
  289. package/cjs/ButtonSetButton-a23b6b7d.js +35 -0
  290. package/cjs/ButtonSetButton-a23b6b7d.js.map +1 -0
  291. package/cjs/ButtonSetIconButton-c632a294.js +42 -0
  292. package/cjs/ButtonSetIconButton-c632a294.js.map +1 -0
  293. package/cjs/ButtonSetItem-b260b6a5.js +67 -0
  294. package/cjs/ButtonSetItem-b260b6a5.js.map +1 -0
  295. package/cjs/CardFlexView-385f1b2d.js +29 -0
  296. package/cjs/CardFlexView-385f1b2d.js.map +1 -0
  297. package/cjs/CardGridView-d337b9f4.js +17 -0
  298. package/cjs/CardGridView-d337b9f4.js.map +1 -0
  299. package/cjs/Chart-13ccd345.js +493 -0
  300. package/cjs/Chart-13ccd345.js.map +1 -0
  301. package/cjs/Checkbox-07e4794b.js +106 -0
  302. package/cjs/Checkbox-07e4794b.js.map +1 -0
  303. package/cjs/CheckboxControl-697725cb.js +111 -0
  304. package/cjs/CheckboxControl-697725cb.js.map +1 -0
  305. package/cjs/CheckboxRadioField-1bb0d57d.js +185 -0
  306. package/cjs/CheckboxRadioField-1bb0d57d.js.map +1 -0
  307. package/cjs/CheckboxSetContext-c62db26d.js +12 -0
  308. package/cjs/CheckboxSetContext-c62db26d.js.map +1 -0
  309. package/cjs/CheckboxStyles.styles.css +6 -0
  310. package/cjs/ClearIcon-22a24975.js +23 -0
  311. package/cjs/ClearIcon-22a24975.js.map +1 -0
  312. package/cjs/ComboChart-7188af92.js +174 -0
  313. package/cjs/ComboChart-7188af92.js.map +1 -0
  314. package/cjs/CompactUserAssistance-54247e7e.js +49 -0
  315. package/cjs/CompactUserAssistance-54247e7e.js.map +1 -0
  316. package/cjs/ComponentMessageContainer-f8dc57aa.js +71 -0
  317. package/cjs/ComponentMessageContainer-f8dc57aa.js.map +1 -0
  318. package/cjs/ConveyorBeltItem-324014ba.js +641 -0
  319. package/cjs/ConveyorBeltItem-324014ba.js.map +1 -0
  320. package/cjs/DatePicker-9c362a68.js +566 -0
  321. package/cjs/DatePicker-9c362a68.js.map +1 -0
  322. package/cjs/DatePickerHeader-4223c919.js +46 -0
  323. package/cjs/DatePickerHeader-4223c919.js.map +1 -0
  324. package/cjs/Diagram-151103ac.js +2037 -0
  325. package/cjs/Diagram-151103ac.js.map +1 -0
  326. package/cjs/Dialog-40a1b708.js +346 -0
  327. package/cjs/Dialog-40a1b708.js.map +1 -0
  328. package/cjs/EmbeddedIconButton-f3f6e8f6.js +13 -0
  329. package/cjs/EmbeddedIconButton-f3f6e8f6.js.map +1 -0
  330. package/cjs/ExpandableList-0a0d75b3.js +169 -0
  331. package/cjs/ExpandableList-0a0d75b3.js.map +1 -0
  332. package/cjs/Gantt-aa6f41d6.js +3819 -0
  333. package/cjs/Gantt-aa6f41d6.js.map +1 -0
  334. package/cjs/GroupLoadingIndicator-824d658f.js +1 -1
  335. package/cjs/IconButton-fad4e4b2.js +39 -0
  336. package/cjs/IconButton-fad4e4b2.js.map +1 -0
  337. package/cjs/IconMenuButton-70ef4775.js +58 -0
  338. package/cjs/IconMenuButton-70ef4775.js.map +1 -0
  339. package/cjs/IconProgressButton-b4116a09.js +49 -0
  340. package/cjs/IconProgressButton-b4116a09.js.map +1 -0
  341. package/cjs/IconSwitchButton-2f946274.js +46 -0
  342. package/cjs/IconSwitchButton-2f946274.js.map +1 -0
  343. package/cjs/IconToggleButton-493cf27c.js +45 -0
  344. package/cjs/IconToggleButton-493cf27c.js.map +1 -0
  345. package/cjs/Indexer-a4a2d6b8.js +339 -0
  346. package/cjs/Indexer-a4a2d6b8.js.map +1 -0
  347. package/cjs/InlineUserAssistance-6c6d3250.js +85 -0
  348. package/cjs/InlineUserAssistance-6c6d3250.js.map +1 -0
  349. package/cjs/InputDateMask-d6b1a660.js +1060 -0
  350. package/cjs/InputDateMask-d6b1a660.js.map +1 -0
  351. package/cjs/InputDatePicker-7eb5931a.js +309 -0
  352. package/cjs/InputDatePicker-7eb5931a.js.map +1 -0
  353. package/cjs/InputPassword-e15aa37b.js +157 -0
  354. package/cjs/InputPassword-e15aa37b.js.map +1 -0
  355. package/cjs/InputText-6a6ae7e5.js +199 -0
  356. package/cjs/InputText-6a6ae7e5.js.map +1 -0
  357. package/cjs/Label-c51bd5de.js +85 -0
  358. package/cjs/Label-c51bd5de.js.map +1 -0
  359. package/cjs/Legend-7e72e911.js +304 -0
  360. package/cjs/Legend-7e72e911.js.map +1 -0
  361. package/cjs/LegendRendered-c12152bc.js.map +1 -1
  362. package/cjs/LineAreaChart-05a58ac5.js +172 -0
  363. package/cjs/LineAreaChart-05a58ac5.js.map +1 -0
  364. package/cjs/Link-c928d5f1.js +35 -0
  365. package/cjs/Link-c928d5f1.js.map +1 -0
  366. package/cjs/LinkVariants.styles.css +2 -1
  367. package/cjs/LinkVariants.styles2.css +2 -1
  368. package/cjs/List-bad74e43.js +723 -0
  369. package/cjs/List-bad74e43.js.map +1 -0
  370. package/cjs/ListView-80a9c725.js +430 -0
  371. package/cjs/ListView-80a9c725.js.map +1 -0
  372. package/cjs/LoadMoreCollection-73112ff0.js +34 -0
  373. package/cjs/LoadMoreCollection-73112ff0.js.map +1 -0
  374. package/cjs/MaxLengthCounter-9ab3f74b.js +27 -0
  375. package/cjs/MaxLengthCounter-9ab3f74b.js.map +1 -0
  376. package/cjs/MenuButton-e6eb6e3e.js +63 -0
  377. package/cjs/MenuButton-e6eb6e3e.js.map +1 -0
  378. package/cjs/Message-20bc90cd.js +208 -0
  379. package/cjs/Message-20bc90cd.js.map +1 -0
  380. package/cjs/MessageToast-c0730ed5.js +243 -0
  381. package/cjs/MessageToast-c0730ed5.js.map +1 -0
  382. package/cjs/MonthView-03da0bd2.js +210 -0
  383. package/cjs/MonthView-03da0bd2.js.map +1 -0
  384. package/cjs/NavigationListItem-0a49d6b5.js +166 -0
  385. package/cjs/NavigationListItem-0a49d6b5.js.map +1 -0
  386. package/cjs/NumberInputText-c58f78da.js +223 -0
  387. package/cjs/NumberInputText-c58f78da.js.map +1 -0
  388. package/cjs/OverflowTabBar-c70fb3bf.js +71 -0
  389. package/cjs/OverflowTabBar-c70fb3bf.js.map +1 -0
  390. package/cjs/OverflowTabBarItem-70484f54.js +88 -0
  391. package/cjs/OverflowTabBarItem-70484f54.js.map +1 -0
  392. package/cjs/PRIVATE_BaseCardView.js +3 -3
  393. package/cjs/PRIVATE_Chart.js +14 -14
  394. package/cjs/PRIVATE_CheckboxControl.js +5 -4
  395. package/cjs/PRIVATE_CheckboxControl.js.map +1 -1
  396. package/cjs/PRIVATE_CheckboxRadioField.js +8 -7
  397. package/cjs/PRIVATE_CheckboxRadioField.js.map +1 -1
  398. package/cjs/PRIVATE_ClearIcon.js +4 -4
  399. package/cjs/PRIVATE_DatePickerHeader.js +5 -5
  400. package/cjs/PRIVATE_EmbeddedIconButton.js +3 -3
  401. package/cjs/PRIVATE_IconSwitchButton.js +3 -3
  402. package/cjs/PRIVATE_List.js +4 -4
  403. package/cjs/PRIVATE_LoadMoreCollection.js +2 -2
  404. package/cjs/PRIVATE_Message.js +4 -4
  405. package/cjs/PRIVATE_MonthView.js +2 -2
  406. package/cjs/PRIVATE_MonthYearGridView.js +2 -2
  407. package/cjs/PRIVATE_RevealToggleIcon.js +4 -4
  408. package/cjs/PRIVATE_RichSelectionCommon.js +8 -7
  409. package/cjs/PRIVATE_RichSelectionCommon.js.map +1 -1
  410. package/cjs/PRIVATE_SelectCommon.js +11 -11
  411. package/cjs/PRIVATE_Table.js +6 -6
  412. package/cjs/PRIVATE_TimeComponent.js +3 -3
  413. package/cjs/PRIVATE_VirtualizedCollection.js +2 -2
  414. package/cjs/PictoChart-fd613c80.js +747 -0
  415. package/cjs/PictoChart-fd613c80.js.map +1 -0
  416. package/cjs/ProgressButton-81474622.js +58 -0
  417. package/cjs/ProgressButton-81474622.js.map +1 -0
  418. package/cjs/RadioItem-3cc743ff.js +115 -0
  419. package/cjs/RadioItem-3cc743ff.js.map +1 -0
  420. package/cjs/RadioSet-f4ee4f80.js +45 -0
  421. package/cjs/RadioSet-f4ee4f80.js.map +1 -0
  422. package/cjs/RemovableNavigationListItem-f3ad6e8e.js +26 -0
  423. package/cjs/RemovableNavigationListItem-f3ad6e8e.js.map +1 -0
  424. package/cjs/RemovableTabBarItem-5c05fa32.js +38 -0
  425. package/cjs/RemovableTabBarItem-5c05fa32.js.map +1 -0
  426. package/cjs/RevealToggleIcon-4ec10dbe.js +28 -0
  427. package/cjs/RevealToggleIcon-4ec10dbe.js.map +1 -0
  428. package/cjs/ScatterChart-9226c20d.js +105 -0
  429. package/cjs/ScatterChart-9226c20d.js.map +1 -0
  430. package/cjs/SelectMultiple-3569988d.js +1299 -0
  431. package/cjs/SelectMultiple-3569988d.js.map +1 -0
  432. package/cjs/SelectSingle-43d6953e.js +732 -0
  433. package/cjs/SelectSingle-43d6953e.js.map +1 -0
  434. package/cjs/SplitMenuButton-9c1b081c.js +141 -0
  435. package/cjs/SplitMenuButton-9c1b081c.js.map +1 -0
  436. package/cjs/Table-6987731e.js +5499 -0
  437. package/cjs/Table-6987731e.js.map +1 -0
  438. package/cjs/TableView-1bed3e0b.js +33 -0
  439. package/cjs/TableView-1bed3e0b.js.map +1 -0
  440. package/cjs/TagCloud-2715c0e8.js +826 -0
  441. package/cjs/TagCloud-2715c0e8.js.map +1 -0
  442. package/cjs/TextArea-d8516f11.js +162 -0
  443. package/cjs/TextArea-d8516f11.js.map +1 -0
  444. package/cjs/TextAreaAutosize-1797d5b7.js +246 -0
  445. package/cjs/TextAreaAutosize-1797d5b7.js.map +1 -0
  446. package/cjs/Theme-redwood/theme.css +132 -132
  447. package/cjs/Theme-stable/theme.css +323 -323
  448. package/cjs/TimeComponentCanvas2D-13c06086.js +591 -0
  449. package/cjs/TimeComponentCanvas2D-13c06086.js.map +1 -0
  450. package/cjs/ToggleButton-c614bbec.js +30 -0
  451. package/cjs/ToggleButton-c614bbec.js.map +1 -0
  452. package/cjs/UNSAFE_BarChart/__test__/BarChart.spec.js +15 -15
  453. package/cjs/UNSAFE_BarChart.js +15 -15
  454. package/cjs/UNSAFE_BaseButton.js +2 -2
  455. package/cjs/UNSAFE_Button.js +3 -3
  456. package/cjs/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +5 -5
  457. package/cjs/UNSAFE_ButtonSetButton.js +3 -3
  458. package/cjs/UNSAFE_ButtonSetIconButton.js +3 -3
  459. package/cjs/UNSAFE_ButtonSetItem.js +5 -5
  460. package/cjs/UNSAFE_CardFlexView.js +4 -4
  461. package/cjs/UNSAFE_CardGridView.js +4 -4
  462. package/cjs/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -0
  463. package/cjs/UNSAFE_Checkbox/themes/CheckboxStyles.css.js.map +1 -1
  464. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -0
  465. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  466. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -0
  467. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js.map +1 -1
  468. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -0
  469. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  470. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -0
  471. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js.map +1 -1
  472. package/cjs/UNSAFE_Checkbox.js +8 -7
  473. package/cjs/UNSAFE_Checkbox.js.map +1 -1
  474. package/cjs/UNSAFE_CheckboxItem.js +35 -86
  475. package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
  476. package/cjs/UNSAFE_CheckboxSet.js +51 -21
  477. package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
  478. package/cjs/UNSAFE_ComboChart.js +15 -15
  479. package/cjs/UNSAFE_ComponentMessage.js +4 -4
  480. package/cjs/UNSAFE_ConveyorBelt.js +3 -3
  481. package/cjs/UNSAFE_DatePicker.js +10 -10
  482. package/cjs/UNSAFE_Diagram.js +9 -9
  483. package/cjs/UNSAFE_Dialog.js +4 -4
  484. package/cjs/UNSAFE_ExpandableList.js +7 -7
  485. package/cjs/UNSAFE_Gantt.js +5 -5
  486. package/cjs/UNSAFE_IconButton.js +3 -3
  487. package/cjs/UNSAFE_IconMenuButton.js +3 -3
  488. package/cjs/UNSAFE_IconProgressButton.js +3 -3
  489. package/cjs/UNSAFE_IconToggleButton.js +3 -3
  490. package/cjs/UNSAFE_Indexer.js +2 -2
  491. package/cjs/UNSAFE_InputDateMask.js +8 -8
  492. package/cjs/UNSAFE_InputDatePicker.js +16 -16
  493. package/cjs/UNSAFE_InputPassword.js +11 -11
  494. package/cjs/UNSAFE_InputSensitiveText.js +10 -10
  495. package/cjs/UNSAFE_InputText.js +9 -9
  496. package/cjs/UNSAFE_InputTimeMask.js +7 -7
  497. package/cjs/UNSAFE_Label.js +4 -4
  498. package/cjs/UNSAFE_LabelledLink.js +7 -7
  499. package/cjs/UNSAFE_Legend.js +1 -1
  500. package/cjs/UNSAFE_LineAreaChart.js +15 -15
  501. package/cjs/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  502. package/cjs/UNSAFE_Link.js +2 -2
  503. package/cjs/UNSAFE_ListView.js +5 -5
  504. package/cjs/UNSAFE_MenuButton.js +3 -3
  505. package/cjs/UNSAFE_MessageBanner.js +4 -4
  506. package/cjs/UNSAFE_MessageToast.js +5 -5
  507. package/cjs/UNSAFE_NavigationList.js +8 -8
  508. package/cjs/UNSAFE_NavigationListCommon.js +4 -4
  509. package/cjs/UNSAFE_NumberInputText.js +8 -8
  510. package/cjs/UNSAFE_OverflowTabBar.js +8 -8
  511. package/cjs/UNSAFE_PictoChart.js +4 -4
  512. package/cjs/UNSAFE_ProgressButton.js +3 -3
  513. package/cjs/UNSAFE_RadioItem.js +4 -4
  514. package/cjs/UNSAFE_RadioSet.js +9 -8
  515. package/cjs/UNSAFE_RadioSet.js.map +1 -1
  516. package/cjs/UNSAFE_RichCheckboxSet.js +33 -35
  517. package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
  518. package/cjs/UNSAFE_RichRadioSet.js +8 -7
  519. package/cjs/UNSAFE_RichRadioSet.js.map +1 -1
  520. package/cjs/UNSAFE_RichSelectionItem.js +46 -184
  521. package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
  522. package/cjs/UNSAFE_ScatterChart.js +15 -15
  523. package/cjs/UNSAFE_SelectMultiple.js +15 -15
  524. package/cjs/UNSAFE_SelectSingle.js +14 -14
  525. package/cjs/UNSAFE_Sheet/__test__/Sheet.spec.js +3 -3
  526. package/cjs/UNSAFE_SplitMenuButton.js +3 -3
  527. package/cjs/UNSAFE_TabBar.js +7 -7
  528. package/cjs/UNSAFE_TabBarCommon.js +7 -7
  529. package/cjs/UNSAFE_TabBarMixed.js +7 -7
  530. package/cjs/UNSAFE_TableView.js +7 -7
  531. package/cjs/UNSAFE_TagCloud.js +4 -4
  532. package/cjs/UNSAFE_TextArea.js +11 -10
  533. package/cjs/UNSAFE_TextArea.js.map +1 -1
  534. package/cjs/UNSAFE_TextAreaAutosize.js +10 -10
  535. package/cjs/UNSAFE_ToggleButton.js +3 -3
  536. package/cjs/UNSAFE_Toolbar/tests/Toolbar.spec.js +5 -5
  537. package/cjs/UNSAFE_UserAssistance.js +6 -6
  538. package/cjs/UNSAFE_VirtualizedListView.js +5 -5
  539. package/cjs/VirtualizedCollection-00aedb8b.js +180 -0
  540. package/cjs/VirtualizedCollection-00aedb8b.js.map +1 -0
  541. package/cjs/VirtualizedListView-ad3219ba.js +16 -0
  542. package/cjs/VirtualizedListView-ad3219ba.js.map +1 -0
  543. package/cjs/YearsGridView-67ce0a3a.js +190 -0
  544. package/cjs/YearsGridView-67ce0a3a.js.map +1 -0
  545. package/cjs/hooks/PRIVATE_useChartEvents.js +4 -4
  546. package/cjs/hooks/PRIVATE_useChartMarquee.js +8 -8
  547. package/cjs/hooks/PRIVATE_useVisDragModeControls.js +7 -7
  548. package/cjs/hooks/PRIVATE_useVisSelection.js +3 -3
  549. package/cjs/hooks/UNSAFE_usePressClick.js +1 -1
  550. package/cjs/useCellNavigation-d503e35f.js +124 -0
  551. package/cjs/useCellNavigation-d503e35f.js.map +1 -0
  552. package/cjs/useChartMarquee-7ffcda9e.js +295 -0
  553. package/cjs/useChartMarquee-7ffcda9e.js.map +1 -0
  554. package/cjs/usePressClick-7a34624a.js +41 -0
  555. package/cjs/usePressClick-7a34624a.js.map +1 -0
  556. package/cjs/useSelectCommon-38a38427.js +709 -0
  557. package/cjs/useSelectCommon-38a38427.js.map +1 -0
  558. package/cjs/useSelectDrill-ad5864fd.js +107 -0
  559. package/cjs/useSelectDrill-ad5864fd.js.map +1 -0
  560. package/cjs/useSelection-8f68a23a.js +188 -0
  561. package/cjs/useSelection-8f68a23a.js.map +1 -0
  562. package/cjs/useVisDragModeControls-d3a7aa57.js +89 -0
  563. package/cjs/useVisDragModeControls-d3a7aa57.js.map +1 -0
  564. package/es/ActionCard-bac27bb9.js +1 -1
  565. package/es/BarChart-43dec3b7.js +179 -0
  566. package/es/BarChart-43dec3b7.js.map +1 -0
  567. package/es/BarGroup-dbf70e2c.js +1 -1
  568. package/es/BaseButton-61f6baa8.js +172 -0
  569. package/es/BaseButton-61f6baa8.js.map +1 -0
  570. package/es/BaseCardView-724422f3.js +7 -7
  571. package/es/BaseCardViewSelectionTest-ef070684.js +721 -0
  572. package/es/BaseCardViewSelectionTest-ef070684.js.map +1 -0
  573. package/es/BaseNavigationListItem-1c75c13f.js +47 -0
  574. package/es/BaseNavigationListItem-1c75c13f.js.map +1 -0
  575. package/es/BaseRichSelection-72edca7c.js +342 -0
  576. package/es/BaseRichSelection-72edca7c.js.map +1 -0
  577. package/es/Button-f90514b2.js +22 -0
  578. package/es/Button-f90514b2.js.map +1 -0
  579. package/es/ButtonSet-9b2c41be.js +2 -2
  580. package/es/ButtonSetButton-974fc462.js +33 -0
  581. package/es/ButtonSetButton-974fc462.js.map +1 -0
  582. package/es/ButtonSetIconButton-0081167a.js +40 -0
  583. package/es/ButtonSetIconButton-0081167a.js.map +1 -0
  584. package/es/ButtonSetItem-eb2d43d4.js +65 -0
  585. package/es/ButtonSetItem-eb2d43d4.js.map +1 -0
  586. package/es/Card-31dc8dc2.js +15 -0
  587. package/es/Card-31dc8dc2.js.map +1 -0
  588. package/es/Center-2be68188.js +16 -0
  589. package/es/Center-2be68188.js.map +1 -0
  590. package/es/Chart-4ec13697.js +491 -0
  591. package/es/Chart-4ec13697.js.map +1 -0
  592. package/es/Checkbox-74259575.js +104 -0
  593. package/es/Checkbox-74259575.js.map +1 -0
  594. package/es/CheckboxControl-c3c34028.js +109 -0
  595. package/es/CheckboxControl-c3c34028.js.map +1 -0
  596. package/es/CheckboxRadioField-294463ba.js +183 -0
  597. package/es/CheckboxRadioField-294463ba.js.map +1 -0
  598. package/es/CheckboxStyles.styles.css +6 -0
  599. package/es/Chip-8fd813ce.js +1 -1
  600. package/es/ClearIcon-acca9670.js +21 -0
  601. package/es/ClearIcon-acca9670.js.map +1 -0
  602. package/es/CollapseIcon-152e59b4.js +1 -1
  603. package/es/Collapsible-4dddc4f7.js +2 -2
  604. package/es/ComboChart-d1c3e17a.js +172 -0
  605. package/es/ComboChart-d1c3e17a.js.map +1 -0
  606. package/es/CompactHelpSource-c3044924.js +2 -2
  607. package/es/CompactLabelAssistance-0d70fceb.js +34 -0
  608. package/es/CompactLabelAssistance-0d70fceb.js.map +1 -0
  609. package/es/CompactUserAssistance-4f0ff3fc.js +47 -0
  610. package/es/CompactUserAssistance-4f0ff3fc.js.map +1 -0
  611. package/es/ComponentMessageContainer-13005c12.js +68 -0
  612. package/es/ComponentMessageContainer-13005c12.js.map +1 -0
  613. package/es/ConveyorBeltItem-53f383e1.js +638 -0
  614. package/es/ConveyorBeltItem-53f383e1.js.map +1 -0
  615. package/es/DatePicker-a57b08b1.js +564 -0
  616. package/es/DatePicker-a57b08b1.js.map +1 -0
  617. package/es/DatePickerHeader-8eee60aa.js +44 -0
  618. package/es/DatePickerHeader-8eee60aa.js.map +1 -0
  619. package/es/Diagram-29d78c10.js +2035 -0
  620. package/es/Diagram-29d78c10.js.map +1 -0
  621. package/es/Dialog-8a9a90a2.js +344 -0
  622. package/es/Dialog-8a9a90a2.js.map +1 -0
  623. package/es/DirectionalCollapseArrowIcon-e1b04846.js +1 -1
  624. package/es/DirectionalExpandArrowIcon-c9218fa7.js +1 -1
  625. package/es/DragHandle-198c3118.js +22 -0
  626. package/es/DragHandle-198c3118.js.map +1 -0
  627. package/es/DrawerPopup-5292bdfc.js +381 -0
  628. package/es/DrawerPopup-5292bdfc.js.map +1 -0
  629. package/es/Dropdown-698afbc6.js +80 -0
  630. package/es/Dropdown-698afbc6.js.map +1 -0
  631. package/es/EmbeddedIconButton-7215a912.js +11 -0
  632. package/es/EmbeddedIconButton-7215a912.js.map +1 -0
  633. package/es/EnvironmentProvider-713d0dec.js +58 -0
  634. package/es/EnvironmentProvider-713d0dec.js.map +1 -0
  635. package/es/ExpandableList-27f4f0d4.js +167 -0
  636. package/es/ExpandableList-27f4f0d4.js.map +1 -0
  637. package/es/FilePicker-c3f06d6f.js +2 -2
  638. package/es/Flex-2d9ebee9.js +30 -0
  639. package/es/Flex-2d9ebee9.js.map +1 -0
  640. package/es/Floating-5191a9e6.js +462 -0
  641. package/es/Floating-5191a9e6.js.map +1 -0
  642. package/es/FormLayout-b2993e0c.js +1 -1
  643. package/es/Gantt-e156bd33.js +3817 -0
  644. package/es/Gantt-e156bd33.js.map +1 -0
  645. package/es/Grid-238d8757.js +27 -0
  646. package/es/Grid-238d8757.js.map +1 -0
  647. package/es/Gridlines-d37f55d2.js +168 -0
  648. package/es/Gridlines-d37f55d2.js.map +1 -0
  649. package/es/GroupLoadingIndicator-93bcf33f.js +1 -1
  650. package/es/HighlightText-fef35694.js +31 -0
  651. package/es/HighlightText-fef35694.js.map +1 -0
  652. package/es/Icon-030b6dd4.js +3 -3
  653. package/es/IconButton-19fcf0a8.js +37 -0
  654. package/es/IconButton-19fcf0a8.js.map +1 -0
  655. package/es/IconMenuButton-4118bde6.js +56 -0
  656. package/es/IconMenuButton-4118bde6.js.map +1 -0
  657. package/es/IconProgressButton-a595c052.js +47 -0
  658. package/es/IconProgressButton-a595c052.js.map +1 -0
  659. package/es/IconSwitchButton-dcafa86c.js +44 -0
  660. package/es/IconSwitchButton-dcafa86c.js.map +1 -0
  661. package/es/IconToggleButton-94cbea2b.js +43 -0
  662. package/es/IconToggleButton-94cbea2b.js.map +1 -0
  663. package/es/IconUserAssistance-d9bc82d4.js +73 -0
  664. package/es/IconUserAssistance-d9bc82d4.js.map +1 -0
  665. package/es/Indexer-18ec7af3.js +4 -4
  666. package/es/InlineHelpSource-5ed4bb7d.js +1 -1
  667. package/es/InlineUserAssistance-65ca8810.js +81 -0
  668. package/es/InlineUserAssistance-65ca8810.js.map +1 -0
  669. package/es/InputDateMask-8258be53.js +1056 -0
  670. package/es/InputDateMask-8258be53.js.map +1 -0
  671. package/es/InputDatePicker-a659ed3a.js +307 -0
  672. package/es/InputDatePicker-a659ed3a.js.map +1 -0
  673. package/es/InputPassword-65336899.js +155 -0
  674. package/es/InputPassword-65336899.js.map +1 -0
  675. package/es/InputText-21591785.js +197 -0
  676. package/es/InputText-21591785.js.map +1 -0
  677. package/es/Label-25eba25e.js +83 -0
  678. package/es/Label-25eba25e.js.map +1 -0
  679. package/es/LabelValueLayout-1db91391.js +1 -1
  680. package/es/Layer-1eb18747.js +91 -0
  681. package/es/Layer-1eb18747.js.map +1 -0
  682. package/es/LayerHost-8b98d97d.js +41 -0
  683. package/es/LayerHost-8b98d97d.js.map +1 -0
  684. package/es/LayerManager-221afe20.js +34 -0
  685. package/es/LayerManager-221afe20.js.map +1 -0
  686. package/es/Legend-0e274097.js +302 -0
  687. package/es/Legend-0e274097.js.map +1 -0
  688. package/es/LegendRendered-65a3684e.js.map +1 -1
  689. package/es/LineAreaChart-6fabda31.js +170 -0
  690. package/es/LineAreaChart-6fabda31.js.map +1 -0
  691. package/es/LineSeries-139bda1a.js +109 -0
  692. package/es/LineSeries-139bda1a.js.map +1 -0
  693. package/es/Link-c7061441.js +33 -0
  694. package/es/Link-c7061441.js.map +1 -0
  695. package/es/LinkVariants.styles.css +2 -1
  696. package/es/LinkVariants.styles2.css +2 -1
  697. package/es/List-58b8d3c9.js +5 -5
  698. package/es/ListItemLayout-af86b17d.js +110 -0
  699. package/es/ListItemLayout-af86b17d.js.map +1 -0
  700. package/es/ListView-be2e2736.js +3 -3
  701. package/es/LiveRegion-c7bf2f21.js +39 -0
  702. package/es/LiveRegion-c7bf2f21.js.map +1 -0
  703. package/es/MaxLengthLiveRegion-d790e55c.js +23 -0
  704. package/es/MaxLengthLiveRegion-d790e55c.js.map +1 -0
  705. package/es/Menu-a5bf756f.js +6 -6
  706. package/es/MenuButton-e012a909.js +61 -0
  707. package/es/MenuButton-e012a909.js.map +1 -0
  708. package/es/MenuItem-54015ca3.js +1 -1
  709. package/es/Message-b0150c6f.js +203 -0
  710. package/es/Message-b0150c6f.js.map +1 -0
  711. package/es/MessageLayer-d9129e22.js +58 -0
  712. package/es/MessageLayer-d9129e22.js.map +1 -0
  713. package/es/MessageToast-933a0339.js +241 -0
  714. package/es/MessageToast-933a0339.js.map +1 -0
  715. package/es/MessagesManager-91ade5dc.js +3 -3
  716. package/es/MeterBar-732e3b2c.js +5 -5
  717. package/es/MeterCircle-2156d7ff.js +5 -5
  718. package/es/Modal-9980f6d1.js +288 -0
  719. package/es/Modal-9980f6d1.js.map +1 -0
  720. package/es/MonthView-d60a5df7.js +208 -0
  721. package/es/MonthView-d60a5df7.js.map +1 -0
  722. package/es/NavigationList-fb05e081.js +159 -0
  723. package/es/NavigationList-fb05e081.js.map +1 -0
  724. package/es/NavigationListItem-193a315a.js +10 -0
  725. package/es/NavigationListItem-193a315a.js.map +1 -0
  726. package/es/NumberInputText-2d1aef12.js +220 -0
  727. package/es/NumberInputText-2d1aef12.js.map +1 -0
  728. package/es/OverflowTabBar-894c7cd9.js +69 -0
  729. package/es/OverflowTabBar-894c7cd9.js.map +1 -0
  730. package/es/OverflowTabBarItem-a578401b.js +87 -0
  731. package/es/OverflowTabBarItem-a578401b.js.map +1 -0
  732. package/es/PRIVATE_BaseCardView.js +21 -21
  733. package/es/PRIVATE_Chart.js +43 -43
  734. package/es/PRIVATE_CheckboxControl.js +28 -27
  735. package/es/PRIVATE_CheckboxControl.js.map +1 -1
  736. package/es/PRIVATE_CheckboxRadioField.js +33 -32
  737. package/es/PRIVATE_CheckboxRadioField.js.map +1 -1
  738. package/es/PRIVATE_ClearIcon.js +21 -21
  739. package/es/PRIVATE_DatePickerHeader.js +23 -23
  740. package/es/PRIVATE_DatePickerLayout.js +4 -4
  741. package/es/PRIVATE_EmbeddedIconButton.js +6 -6
  742. package/es/PRIVATE_FormControls.js +19 -19
  743. package/es/PRIVATE_IconSwitchButton.js +18 -18
  744. package/es/PRIVATE_Icons/CheckboxMixed.js +15 -15
  745. package/es/PRIVATE_Icons/CheckboxOff.js +15 -15
  746. package/es/PRIVATE_Icons/CheckboxOn.js +15 -15
  747. package/es/PRIVATE_Icons/DragV.js +15 -15
  748. package/es/PRIVATE_Icons/WarningS.js +15 -15
  749. package/es/PRIVATE_List.js +19 -19
  750. package/es/PRIVATE_Message.js +22 -22
  751. package/es/PRIVATE_MessageLayer.js +12 -12
  752. package/es/PRIVATE_MonthView.js +8 -8
  753. package/es/PRIVATE_MonthYearGridView.js +8 -8
  754. package/es/PRIVATE_PlotArea.js +4 -4
  755. package/es/PRIVATE_RevealToggleIcon.js +20 -20
  756. package/es/PRIVATE_RichSelectionCommon.js +34 -33
  757. package/es/PRIVATE_RichSelectionCommon.js.map +1 -1
  758. package/es/PRIVATE_SelectCommon.js +35 -35
  759. package/es/PRIVATE_StyledCard.js +4 -4
  760. package/es/PRIVATE_StyledCheckbox.js +15 -15
  761. package/es/PRIVATE_Table.js +28 -28
  762. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +15 -15
  763. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +15 -15
  764. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +15 -15
  765. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +15 -15
  766. package/es/PRIVATE_ThemedIcons/CheckIcon.js +15 -15
  767. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +15 -15
  768. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +15 -15
  769. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +15 -15
  770. package/es/PRIVATE_ThemedIcons/CloseIcon.js +15 -15
  771. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +16 -16
  772. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +15 -15
  773. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +15 -15
  774. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +15 -15
  775. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +16 -16
  776. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +16 -16
  777. package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +15 -15
  778. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +15 -15
  779. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +15 -15
  780. package/es/PRIVATE_ThemedIcons/HelpIcon.js +15 -15
  781. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +15 -15
  782. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +15 -15
  783. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +15 -15
  784. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +15 -15
  785. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +15 -15
  786. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +15 -15
  787. package/es/PRIVATE_ThemedIcons/MinusIcon.js +15 -15
  788. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +15 -15
  789. package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +15 -15
  790. package/es/PRIVATE_ThemedIcons/PlusIcon.js +15 -15
  791. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +15 -15
  792. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +15 -15
  793. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +15 -15
  794. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +15 -15
  795. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +15 -15
  796. package/es/PRIVATE_ThemedIcons/ViewIcon.js +15 -15
  797. package/es/PRIVATE_TimeComponent.js +20 -20
  798. package/es/PRIVATE_VisOverview.js +15 -15
  799. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  800. package/es/PictoChart-9624c62e.js +744 -0
  801. package/es/PictoChart-9624c62e.js.map +1 -0
  802. package/es/PieChart-87a2913f.js +6 -6
  803. package/es/Popup-f6774b40.js +258 -0
  804. package/es/Popup-f6774b40.js.map +1 -0
  805. package/es/ProgressBar-6d816723.js +62 -0
  806. package/es/ProgressBar-6d816723.js.map +1 -0
  807. package/es/ProgressButton-bb52347a.js +56 -0
  808. package/es/ProgressButton-bb52347a.js.map +1 -0
  809. package/es/ProgressButtonLabelLayout-f1d097d6.js +3 -3
  810. package/es/ProgressCircle-bbcf67fd.js +48 -0
  811. package/es/ProgressCircle-bbcf67fd.js.map +1 -0
  812. package/es/RadioItem-81e9e082.js +113 -0
  813. package/es/RadioItem-81e9e082.js.map +1 -0
  814. package/es/RadioSet-d2820846.js +43 -0
  815. package/es/RadioSet-d2820846.js.map +1 -0
  816. package/es/RatingGauge-5e1e75b4.js +8 -8
  817. package/es/ReadonlyTextFieldInput-f407b86c.js +1 -1
  818. package/es/RemovableNavigationListItem-21cd36b7.js +25 -0
  819. package/es/RemovableNavigationListItem-21cd36b7.js.map +1 -0
  820. package/es/RemovableTabBarItem-60574a52.js +36 -0
  821. package/es/RemovableTabBarItem-60574a52.js.map +1 -0
  822. package/es/ReorderableTabBar-c280e7d4.js +77 -0
  823. package/es/ReorderableTabBar-c280e7d4.js.map +1 -0
  824. package/es/RevealToggleIcon-8e650973.js +26 -0
  825. package/es/RevealToggleIcon-8e650973.js.map +1 -0
  826. package/es/ScatterChart-1f818935.js +103 -0
  827. package/es/ScatterChart-1f818935.js.map +1 -0
  828. package/es/SectionalLegend-64670096.js +4 -4
  829. package/es/SectionedContent-48fa242f.js +64 -0
  830. package/es/SectionedContent-48fa242f.js.map +1 -0
  831. package/es/SelectMultiple-c7f9e747.js +1297 -0
  832. package/es/SelectMultiple-c7f9e747.js.map +1 -0
  833. package/es/SelectSingle-75270526.js +730 -0
  834. package/es/SelectSingle-75270526.js.map +1 -0
  835. package/es/SelectionCard-ce3012e8.js +16 -0
  836. package/es/SelectionCard-ce3012e8.js.map +1 -0
  837. package/es/Selector-41618991.js +1 -1
  838. package/es/SelectorAll-27744634.js +69 -0
  839. package/es/SelectorAll-27744634.js.map +1 -0
  840. package/es/Sheet-924cfdab.js +158 -0
  841. package/es/Sheet-924cfdab.js.map +1 -0
  842. package/es/SplitMenuButton-5cb6e8db.js +139 -0
  843. package/es/SplitMenuButton-5cb6e8db.js.map +1 -0
  844. package/es/SplitMenuButtonTheme.styles.css +4 -4
  845. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  846. package/es/StyledCard-c8d9836f.js +105 -0
  847. package/es/StyledCard-c8d9836f.js.map +1 -0
  848. package/es/StyledLabelValueLayout-5b9a731a.js +18 -0
  849. package/es/StyledLabelValueLayout-5b9a731a.js.map +1 -0
  850. package/es/StyledTextField-6d6dd43e.js +3 -3
  851. package/es/TabBar-4d7054f7.js +82 -0
  852. package/es/TabBar-4d7054f7.js.map +1 -0
  853. package/es/TabBarItem-b97091e4.js +3 -3
  854. package/es/TabBarLayout-bb3f9f69.js +1 -1
  855. package/es/TabBarMixed-b8e2427c.js +83 -0
  856. package/es/TabBarMixed-b8e2427c.js.map +1 -0
  857. package/es/TabBarMixedSeparator-7669e2f0.js +19 -0
  858. package/es/TabBarMixedSeparator-7669e2f0.js.map +1 -0
  859. package/es/Table-b8c41429.js +5497 -0
  860. package/es/Table-b8c41429.js.map +1 -0
  861. package/es/TableView-2261b9de.js +31 -0
  862. package/es/TableView-2261b9de.js.map +1 -0
  863. package/es/TagCloud-0fe9b648.js +824 -0
  864. package/es/TagCloud-0fe9b648.js.map +1 -0
  865. package/es/TextArea-6584935d.js +177 -0
  866. package/es/TextArea-6584935d.js.map +1 -0
  867. package/es/TextAreaAutosize-2ca5256e.js +244 -0
  868. package/es/TextAreaAutosize-2ca5256e.js.map +1 -0
  869. package/es/TextField-500c0227.js +3 -3
  870. package/es/TextFieldInput-cb551f4e.js +1 -1
  871. package/es/Theme-redwood/theme.css +446 -446
  872. package/es/Theme-stable/theme.css +401 -401
  873. package/es/TimeComponentCanvas2D-a5baa5f6.js +568 -0
  874. package/es/TimeComponentCanvas2D-a5baa5f6.js.map +1 -0
  875. package/es/ToggleButton-c50ac048.js +28 -0
  876. package/es/ToggleButton-c50ac048.js.map +1 -0
  877. package/es/Toolbar-35426a1b.js +1 -1
  878. package/es/TruncatingBadge-69621d89.js +1 -1
  879. package/es/TruncatingText-fd66e0e0.js +1 -1
  880. package/es/UNSAFE_ActionCard.js +3 -3
  881. package/es/UNSAFE_BarChart/__test__/BarChart.spec.js +44 -44
  882. package/es/UNSAFE_BarChart.js +44 -44
  883. package/es/UNSAFE_BaseButton.js +5 -5
  884. package/es/UNSAFE_Button.js +6 -6
  885. package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +27 -27
  886. package/es/UNSAFE_ButtonSet.js +4 -4
  887. package/es/UNSAFE_ButtonSetButton.js +6 -6
  888. package/es/UNSAFE_ButtonSetIconButton.js +18 -18
  889. package/es/UNSAFE_ButtonSetItem.js +20 -20
  890. package/es/UNSAFE_ButtonSetMultiple.js +4 -4
  891. package/es/UNSAFE_ButtonSetSingle.js +4 -4
  892. package/es/UNSAFE_Card.js +5 -5
  893. package/es/UNSAFE_CardFlexView.js +21 -21
  894. package/es/UNSAFE_CardGridView.js +21 -21
  895. package/es/UNSAFE_Center.js +5 -5
  896. package/es/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -0
  897. package/es/UNSAFE_Checkbox/themes/CheckboxStyles.css.js.map +1 -1
  898. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -0
  899. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  900. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -0
  901. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js.map +1 -1
  902. package/es/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -0
  903. package/es/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  904. package/es/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -0
  905. package/es/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js.map +1 -1
  906. package/es/UNSAFE_Checkbox.js +31 -30
  907. package/es/UNSAFE_Checkbox.js.map +1 -1
  908. package/es/UNSAFE_CheckboxItem.js +28 -27
  909. package/es/UNSAFE_CheckboxItem.js.map +1 -1
  910. package/es/UNSAFE_CheckboxSet.js +32 -31
  911. package/es/UNSAFE_CheckboxSet.js.map +1 -1
  912. package/es/UNSAFE_Chip.js +2 -2
  913. package/es/UNSAFE_Collapsible.js +17 -17
  914. package/es/UNSAFE_ComboChart.js +46 -46
  915. package/es/UNSAFE_ComponentMessage.js +22 -22
  916. package/es/UNSAFE_ConveyorBelt.js +18 -18
  917. package/es/UNSAFE_DatePicker.js +30 -30
  918. package/es/UNSAFE_Diagram.js +27 -27
  919. package/es/UNSAFE_Dialog.js +24 -24
  920. package/es/UNSAFE_DragHandle.js +17 -17
  921. package/es/UNSAFE_DrawerLayout.js +12 -12
  922. package/es/UNSAFE_DrawerPopup.js +13 -13
  923. package/es/UNSAFE_Dropdown.js +13 -13
  924. package/es/UNSAFE_Environment.js +4 -4
  925. package/es/UNSAFE_ExpandableList.js +26 -26
  926. package/es/UNSAFE_FilePicker.js +4 -4
  927. package/es/UNSAFE_Flex.js +4 -4
  928. package/es/UNSAFE_Floating.js +11 -11
  929. package/es/UNSAFE_FormLayout.js +2 -2
  930. package/es/UNSAFE_Gantt.js +26 -26
  931. package/es/UNSAFE_Grid.js +4 -4
  932. package/es/UNSAFE_HighlightText.js +4 -4
  933. package/es/UNSAFE_Icon.js +15 -15
  934. package/es/UNSAFE_IconButton.js +18 -18
  935. package/es/UNSAFE_IconMenuButton.js +24 -24
  936. package/es/UNSAFE_IconProgressButton.js +21 -21
  937. package/es/UNSAFE_IconToggleButton.js +18 -18
  938. package/es/UNSAFE_Indexer.js +6 -6
  939. package/es/UNSAFE_InputDateMask.js +33 -33
  940. package/es/UNSAFE_InputDatePicker.js +119 -119
  941. package/es/UNSAFE_InputPassword.js +35 -35
  942. package/es/UNSAFE_InputSensitiveText.js +36 -36
  943. package/es/UNSAFE_InputText.js +36 -36
  944. package/es/UNSAFE_InputTimeMask.js +32 -32
  945. package/es/UNSAFE_Label.js +27 -27
  946. package/es/UNSAFE_LabelValueLayout.js +4 -4
  947. package/es/UNSAFE_LabelledLink.js +32 -32
  948. package/es/UNSAFE_Layer.js +8 -8
  949. package/es/UNSAFE_Legend.js +26 -26
  950. package/es/UNSAFE_LineAreaChart.js +46 -46
  951. package/es/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  952. package/es/UNSAFE_Link.js +4 -4
  953. package/es/UNSAFE_ListItemLayout.js +5 -5
  954. package/es/UNSAFE_ListView.js +28 -28
  955. package/es/UNSAFE_LiveRegion.js +4 -4
  956. package/es/UNSAFE_Menu.js +23 -23
  957. package/es/UNSAFE_MenuButton.js +24 -24
  958. package/es/UNSAFE_MessageBanner.js +22 -22
  959. package/es/UNSAFE_MessageToast.js +26 -26
  960. package/es/UNSAFE_MeterBar.js +16 -16
  961. package/es/UNSAFE_MeterCircle.js +17 -17
  962. package/es/UNSAFE_Modal.js +9 -9
  963. package/es/UNSAFE_NavigationList.js +45 -43
  964. package/es/UNSAFE_NavigationList.js.map +1 -1
  965. package/es/UNSAFE_NavigationListCommon.js +74 -73
  966. package/es/UNSAFE_NavigationListCommon.js.map +1 -1
  967. package/es/UNSAFE_NumberInputText.js +34 -34
  968. package/es/UNSAFE_OverflowTabBar.js +56 -54
  969. package/es/UNSAFE_OverflowTabBar.js.map +1 -1
  970. package/es/UNSAFE_PictoChart.js +17 -17
  971. package/es/UNSAFE_PieChart/__test__/PieChart.spec.js +22 -22
  972. package/es/UNSAFE_PieChart.js +22 -22
  973. package/es/UNSAFE_Popup.js +17 -17
  974. package/es/UNSAFE_ProgressBar.js +5 -5
  975. package/es/UNSAFE_ProgressButton.js +21 -21
  976. package/es/UNSAFE_ProgressButtonLabelLayout.js +10 -10
  977. package/es/UNSAFE_ProgressCircle.js +4 -4
  978. package/es/UNSAFE_RadioItem.js +27 -27
  979. package/es/UNSAFE_RadioSet.js +33 -32
  980. package/es/UNSAFE_RadioSet.js.map +1 -1
  981. package/es/UNSAFE_RatingGauge.js +17 -17
  982. package/es/UNSAFE_ReorderableTabBar.js +49 -38
  983. package/es/UNSAFE_ReorderableTabBar.js.map +1 -1
  984. package/es/UNSAFE_RichCheckboxSet.js +34 -33
  985. package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
  986. package/es/UNSAFE_RichRadioSet.js +34 -33
  987. package/es/UNSAFE_RichRadioSet.js.map +1 -1
  988. package/es/UNSAFE_RichSelectionItem.js +20 -20
  989. package/es/UNSAFE_ScatterChart.js +46 -46
  990. package/es/UNSAFE_SectionalLegend.js +26 -26
  991. package/es/UNSAFE_SelectMultiple.js +42 -42
  992. package/es/UNSAFE_SelectSingle.js +41 -41
  993. package/es/UNSAFE_SelectionCard.js +5 -5
  994. package/es/UNSAFE_Selector.js +15 -15
  995. package/es/UNSAFE_SelectorAll.js +19 -19
  996. package/es/UNSAFE_Sheet/__test__/Sheet.spec.js +18 -18
  997. package/es/UNSAFE_Sheet.js +12 -12
  998. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  999. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  1000. package/es/UNSAFE_SplitMenuButton.js +25 -25
  1001. package/es/UNSAFE_TabBar.js +56 -54
  1002. package/es/UNSAFE_TabBar.js.map +1 -1
  1003. package/es/UNSAFE_TabBarCommon.js +48 -46
  1004. package/es/UNSAFE_TabBarCommon.js.map +1 -1
  1005. package/es/UNSAFE_TabBarMixed.js +66 -64
  1006. package/es/UNSAFE_TabBarMixed.js.map +1 -1
  1007. package/es/UNSAFE_TableView.js +29 -29
  1008. package/es/UNSAFE_TagCloud.js +27 -27
  1009. package/es/UNSAFE_TextArea.js +34 -34
  1010. package/es/UNSAFE_TextAreaAutosize.js +35 -35
  1011. package/es/UNSAFE_TextField.js +8 -8
  1012. package/es/UNSAFE_ToggleButton.js +6 -6
  1013. package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +29 -29
  1014. package/es/UNSAFE_Toolbar.js +4 -4
  1015. package/es/UNSAFE_Train.js +16 -16
  1016. package/es/UNSAFE_TruncatingBadge.js +16 -16
  1017. package/es/UNSAFE_TruncatingText.js +16 -16
  1018. package/es/UNSAFE_UserAssistance.js +30 -30
  1019. package/es/UNSAFE_View.js +7 -7
  1020. package/es/UNSAFE_VirtualizedListView.js +19 -19
  1021. package/es/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +8 -8
  1022. package/es/UNSAFE_VisProgressiveLoader.js +6 -6
  1023. package/es/UNSAFE_VisStatusMessage.js +6 -6
  1024. package/es/UNSAFE_WindowOverlay.js +4 -4
  1025. package/es/View-cf6dfd8e.js +167 -0
  1026. package/es/View-cf6dfd8e.js.map +1 -0
  1027. package/es/VisNoData-d6e475d8.js +32 -0
  1028. package/es/VisNoData-d6e475d8.js.map +1 -0
  1029. package/es/VisProgressiveLoader-36053d5a.js +51 -0
  1030. package/es/VisProgressiveLoader-36053d5a.js.map +1 -0
  1031. package/es/VisTabularDatatip-3497f5ff.js +24 -0
  1032. package/es/VisTabularDatatip-3497f5ff.js.map +1 -0
  1033. package/es/WindowOverlay-ca2baa48.js +110 -0
  1034. package/es/WindowOverlay-ca2baa48.js.map +1 -0
  1035. package/es/YearsGridView-2c978d9f.js +187 -0
  1036. package/es/YearsGridView-2c978d9f.js.map +1 -0
  1037. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  1038. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  1039. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  1040. package/es/hooks/PRIVATE_useChartContextMenu.js +21 -21
  1041. package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
  1042. package/es/hooks/PRIVATE_useChartEvents.js +20 -20
  1043. package/es/hooks/PRIVATE_useChartMarquee.js +25 -25
  1044. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  1045. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  1046. package/es/hooks/PRIVATE_useDatatip.js +12 -12
  1047. package/es/hooks/PRIVATE_useFloating.js +4 -4
  1048. package/es/hooks/PRIVATE_useReorderable.js +5 -5
  1049. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  1050. package/es/hooks/PRIVATE_useSelection.js +4 -4
  1051. package/es/hooks/PRIVATE_useTabBar.js +4 -4
  1052. package/es/hooks/PRIVATE_useTooltipOnTruncation.js +16 -16
  1053. package/es/hooks/PRIVATE_useVisContextMenu.js +21 -21
  1054. package/es/hooks/PRIVATE_useVisDragModeControls.js +24 -24
  1055. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  1056. package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  1057. package/es/hooks/PRIVATE_useVisSelection.js +15 -15
  1058. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  1059. package/es/hooks/UNSAFE_useCurrentBgColor.js +3 -3
  1060. package/es/hooks/UNSAFE_useDensity.js +3 -3
  1061. package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
  1062. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  1063. package/es/hooks/UNSAFE_usePressClick.js +1 -1
  1064. package/es/hooks/UNSAFE_useScale.js +3 -3
  1065. package/es/hooks/UNSAFE_useTestId.js +3 -3
  1066. package/es/hooks/UNSAFE_useTheme.js +3 -3
  1067. package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  1068. package/es/hooks/UNSAFE_useTooltip.js +16 -16
  1069. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  1070. package/es/hooks/UNSAFE_useUser.js +3 -3
  1071. package/es/index-3fdaba9a.js +11 -0
  1072. package/es/index-3fdaba9a.js.map +1 -0
  1073. package/es/listViewSelectionTests-d1f64e6f.js +3 -3
  1074. package/es/popupUtils-24a723a0.js +29 -0
  1075. package/es/popupUtils-24a723a0.js.map +1 -0
  1076. package/es/render-4d96f0d2.js +34 -0
  1077. package/es/render-4d96f0d2.js.map +1 -0
  1078. package/es/tabbableUtils-070beeed.js +79 -0
  1079. package/es/tabbableUtils-070beeed.js.map +1 -0
  1080. package/es/testData-e1df8616.js +256 -0
  1081. package/es/testData-e1df8616.js.map +1 -0
  1082. package/es/tooltipUtils-35655bd6.js +93 -0
  1083. package/es/tooltipUtils-35655bd6.js.map +1 -0
  1084. package/es/useCellNavigation-bdb3248d.js +121 -0
  1085. package/es/useCellNavigation-bdb3248d.js.map +1 -0
  1086. package/es/useChartContextMenu-61fe46b8.js +2 -2
  1087. package/es/useChartDatatip-b0d35cfe.js +165 -0
  1088. package/es/useChartDatatip-b0d35cfe.js.map +1 -0
  1089. package/es/useChartMarquee-7cd47205.js +293 -0
  1090. package/es/useChartMarquee-7cd47205.js.map +1 -0
  1091. package/es/useColorScheme-8e5e458d.js +19 -0
  1092. package/es/useColorScheme-8e5e458d.js.map +1 -0
  1093. package/es/useContextMenu-3c62d9eb.js +2 -2
  1094. package/es/useCssVars-608cb842.js +58 -0
  1095. package/es/useCssVars-608cb842.js.map +1 -0
  1096. package/es/useCurrentBgColor-ee671513.js +19 -0
  1097. package/es/useCurrentBgColor-ee671513.js.map +1 -0
  1098. package/es/useCurrentKey-b8e62707.js +81 -0
  1099. package/es/useCurrentKey-b8e62707.js.map +1 -0
  1100. package/es/useDatatip-daec4346.js +90 -0
  1101. package/es/useDatatip-daec4346.js.map +1 -0
  1102. package/es/useDensity-556ca8b2.js +19 -0
  1103. package/es/useDensity-556ca8b2.js.map +1 -0
  1104. package/es/useFloating-abfd69eb.js +1916 -0
  1105. package/es/useFloating-abfd69eb.js.map +1 -0
  1106. package/es/useKeyboardEvents-7202253d.js +78 -0
  1107. package/es/useKeyboardEvents-7202253d.js.map +1 -0
  1108. package/es/useLegendContextMenu-66d6eb7e.js +4 -4
  1109. package/es/useMeterDatatip-dcd2a05e.js +73 -0
  1110. package/es/useMeterDatatip-dcd2a05e.js.map +1 -0
  1111. package/es/useNavigationListItem-a28f2c34.js +81 -0
  1112. package/es/useNavigationListItem-a28f2c34.js.map +1 -0
  1113. package/es/useOutsideClick-817bf098.js +101 -0
  1114. package/es/useOutsideClick-817bf098.js.map +1 -0
  1115. package/es/usePopupAnimation-6e0781b5.js +85 -0
  1116. package/es/usePopupAnimation-6e0781b5.js.map +1 -0
  1117. package/es/usePrefixSuffix-0874343c.js +70 -0
  1118. package/es/usePrefixSuffix-0874343c.js.map +1 -0
  1119. package/es/usePressClick-945cc43b.js +39 -0
  1120. package/es/usePressClick-945cc43b.js.map +1 -0
  1121. package/es/useReorderableItem-99a9dbce.js +268 -0
  1122. package/es/useReorderableItem-99a9dbce.js.map +1 -0
  1123. package/es/useRovingTabIndexContainer-f7972085.js +98 -0
  1124. package/es/useRovingTabIndexContainer-f7972085.js.map +1 -0
  1125. package/es/useScale-1cdb639e.js +19 -0
  1126. package/es/useScale-1cdb639e.js.map +1 -0
  1127. package/es/useSelectCommon-896b594a.js +686 -0
  1128. package/es/useSelectCommon-896b594a.js.map +1 -0
  1129. package/es/useSelectDrill-5525e5a3.js +104 -0
  1130. package/es/useSelectDrill-5525e5a3.js.map +1 -0
  1131. package/es/useSelection-2d26ab04.js +239 -0
  1132. package/es/useSelection-2d26ab04.js.map +1 -0
  1133. package/es/useSelection-8be05a70.js +186 -0
  1134. package/es/useSelection-8be05a70.js.map +1 -0
  1135. package/es/useTabBar-cbac0c2e.js +1 -1
  1136. package/es/useTestId-474ac6ca.js +21 -0
  1137. package/es/useTestId-474ac6ca.js.map +1 -0
  1138. package/es/useTheme-5aa36f52.js +19 -0
  1139. package/es/useTheme-5aa36f52.js.map +1 -0
  1140. package/es/useThemeInterpolations-05e58770.js +57 -0
  1141. package/es/useThemeInterpolations-05e58770.js.map +1 -0
  1142. package/es/useTooltip-138c94ee.js +424 -0
  1143. package/es/useTooltip-138c94ee.js.map +1 -0
  1144. package/es/useTooltipOnTruncation-a97211b6.js +27 -0
  1145. package/es/useTooltipOnTruncation-a97211b6.js.map +1 -0
  1146. package/es/useTranslationBundle-2df40edf.js +29 -0
  1147. package/es/useTranslationBundle-2df40edf.js.map +1 -0
  1148. package/es/useUser-6b2e271a.js +19 -0
  1149. package/es/useUser-6b2e271a.js.map +1 -0
  1150. package/es/useVisDragModeControls-ed260d12.js +87 -0
  1151. package/es/useVisDragModeControls-ed260d12.js.map +1 -0
  1152. package/es/useVisEvents-d8652100.js +153 -0
  1153. package/es/useVisEvents-d8652100.js.map +1 -0
  1154. package/es/utils/PRIVATE_tooltipUtils.js +14 -14
  1155. package/es/utils/PRIVATE_visTestUtils.js +6 -6
  1156. package/es/utils/UNSAFE_popupUtils.js +8 -8
  1157. package/es/withDirectionIcon-fe0b69a7.js +14 -0
  1158. package/es/withDirectionIcon-fe0b69a7.js.map +1 -0
  1159. package/es/withThemeProps-1621f692.js +2 -2
  1160. package/package.json +2 -2
  1161. package/types/UNSAFE_DatePicker/useCellNavigation.d.ts +0 -1
  1162. package/types/UNSAFE_Link/themes/LinkStyles.css.d.ts +2 -1
  1163. package/types/UNSAFE_Link/themes/redwood/LinkVariants.css.d.ts +2 -1
  1164. package/types/UNSAFE_Link/themes/stable/LinkVariants.css.d.ts +2 -1
  1165. package/types/hooks/UNSAFE_useLegendPreferredSize/LegendRendered.d.ts +1 -1
  1166. package/types/hooks/UNSAFE_usePressClick/usePressClick.d.ts +1 -0
  1167. package/amd/BarChart-1be56919.js +0 -2
  1168. package/amd/BarChart-1be56919.js.map +0 -1
  1169. package/amd/BaseButton-771c5db8.js +0 -2
  1170. package/amd/BaseButton-771c5db8.js.map +0 -1
  1171. package/amd/BaseCardView-4f88499c.js +0 -2
  1172. package/amd/BaseCardView-4f88499c.js.map +0 -1
  1173. package/amd/BaseCardViewSelectionTest-adaca8ca.js +0 -2
  1174. package/amd/BaseCardViewSelectionTest-adaca8ca.js.map +0 -1
  1175. package/amd/BaseRichSelection-eb93f0e2.js +0 -2
  1176. package/amd/BaseRichSelection-eb93f0e2.js.map +0 -1
  1177. package/amd/Button-af88bb81.js +0 -2
  1178. package/amd/Button-af88bb81.js.map +0 -1
  1179. package/amd/ButtonSetButton-00612cdd.js +0 -2
  1180. package/amd/ButtonSetButton-00612cdd.js.map +0 -1
  1181. package/amd/ButtonSetIconButton-d0684966.js +0 -2
  1182. package/amd/ButtonSetIconButton-d0684966.js.map +0 -1
  1183. package/amd/ButtonSetItem-1d88a72d.js +0 -2
  1184. package/amd/ButtonSetItem-1d88a72d.js.map +0 -1
  1185. package/amd/CardFlexView-86cb369a.js +0 -2
  1186. package/amd/CardFlexView-86cb369a.js.map +0 -1
  1187. package/amd/CardGridView-b3f11290.js +0 -2
  1188. package/amd/CardGridView-b3f11290.js.map +0 -1
  1189. package/amd/Chart-0a3205dd.js +0 -2
  1190. package/amd/Chart-0a3205dd.js.map +0 -1
  1191. package/amd/Checkbox-3a25138e.js +0 -2
  1192. package/amd/Checkbox-3a25138e.js.map +0 -1
  1193. package/amd/CheckboxControl-232e227d.js +0 -2
  1194. package/amd/CheckboxControl-232e227d.js.map +0 -1
  1195. package/amd/CheckboxRadioField-9b73f66b.js +0 -2
  1196. package/amd/CheckboxRadioField-9b73f66b.js.map +0 -1
  1197. package/amd/CheckboxSetContext-2e486ea8.js +0 -2
  1198. package/amd/CheckboxSetContext-2e486ea8.js.map +0 -1
  1199. package/amd/ClearIcon-f1befe37.js +0 -2
  1200. package/amd/ClearIcon-f1befe37.js.map +0 -1
  1201. package/amd/ComboChart-5dba7db4.js +0 -2
  1202. package/amd/ComboChart-5dba7db4.js.map +0 -1
  1203. package/amd/CompactUserAssistance-f962b357.js +0 -2
  1204. package/amd/CompactUserAssistance-f962b357.js.map +0 -1
  1205. package/amd/ComponentMessageContainer-13e53260.js +0 -2
  1206. package/amd/ComponentMessageContainer-13e53260.js.map +0 -1
  1207. package/amd/ConveyorBeltItem-1dfb412e.js +0 -2
  1208. package/amd/ConveyorBeltItem-1dfb412e.js.map +0 -1
  1209. package/amd/DatePicker-b907fb97.js +0 -2
  1210. package/amd/DatePicker-b907fb97.js.map +0 -1
  1211. package/amd/DatePickerHeader-d95959a6.js +0 -2
  1212. package/amd/DatePickerHeader-d95959a6.js.map +0 -1
  1213. package/amd/Diagram-92f409e0.js +0 -2
  1214. package/amd/Diagram-92f409e0.js.map +0 -1
  1215. package/amd/Dialog-b9dd8533.js +0 -2
  1216. package/amd/Dialog-b9dd8533.js.map +0 -1
  1217. package/amd/EmbeddedIconButton-8635fed8.js +0 -2
  1218. package/amd/EmbeddedIconButton-8635fed8.js.map +0 -1
  1219. package/amd/ExpandableList-c372fe68.js +0 -2
  1220. package/amd/ExpandableList-c372fe68.js.map +0 -1
  1221. package/amd/Gantt-f6a53a90.js +0 -2
  1222. package/amd/Gantt-f6a53a90.js.map +0 -1
  1223. package/amd/IconButton-05c6b793.js +0 -2
  1224. package/amd/IconButton-05c6b793.js.map +0 -1
  1225. package/amd/IconMenuButton-82a7258c.js +0 -2
  1226. package/amd/IconMenuButton-82a7258c.js.map +0 -1
  1227. package/amd/IconProgressButton-3bff5384.js +0 -2
  1228. package/amd/IconProgressButton-3bff5384.js.map +0 -1
  1229. package/amd/IconSwitchButton-faf2b405.js +0 -2
  1230. package/amd/IconSwitchButton-faf2b405.js.map +0 -1
  1231. package/amd/IconToggleButton-d5112634.js +0 -2
  1232. package/amd/IconToggleButton-d5112634.js.map +0 -1
  1233. package/amd/Indexer-510aaf3a.js +0 -2
  1234. package/amd/Indexer-510aaf3a.js.map +0 -1
  1235. package/amd/InlineUserAssistance-3d3e72a9.js +0 -2
  1236. package/amd/InlineUserAssistance-3d3e72a9.js.map +0 -1
  1237. package/amd/InputDateMask-55fcbf50.js +0 -2
  1238. package/amd/InputDateMask-55fcbf50.js.map +0 -1
  1239. package/amd/InputDatePicker-cf7e7ea3.js +0 -2
  1240. package/amd/InputDatePicker-cf7e7ea3.js.map +0 -1
  1241. package/amd/InputPassword-61090b77.js +0 -2
  1242. package/amd/InputPassword-61090b77.js.map +0 -1
  1243. package/amd/InputText-32954a14.js +0 -2
  1244. package/amd/InputText-32954a14.js.map +0 -1
  1245. package/amd/Label-7cbbe3b7.js +0 -2
  1246. package/amd/Label-7cbbe3b7.js.map +0 -1
  1247. package/amd/Legend-76df298c.js +0 -2
  1248. package/amd/Legend-76df298c.js.map +0 -1
  1249. package/amd/LineAreaChart-190b3d46.js +0 -2
  1250. package/amd/LineAreaChart-190b3d46.js.map +0 -1
  1251. package/amd/Link-2dae4de2.js +0 -2
  1252. package/amd/Link-2dae4de2.js.map +0 -1
  1253. package/amd/List-37e37948.js +0 -2
  1254. package/amd/List-37e37948.js.map +0 -1
  1255. package/amd/ListView-325e1814.js +0 -2
  1256. package/amd/ListView-325e1814.js.map +0 -1
  1257. package/amd/LoadMoreCollection-83413a59.js +0 -2
  1258. package/amd/LoadMoreCollection-83413a59.js.map +0 -1
  1259. package/amd/MenuButton-233a631a.js +0 -2
  1260. package/amd/MenuButton-233a631a.js.map +0 -1
  1261. package/amd/Message-40182dfc.js +0 -2
  1262. package/amd/Message-40182dfc.js.map +0 -1
  1263. package/amd/MessageToast-236687bd.js +0 -2
  1264. package/amd/MessageToast-236687bd.js.map +0 -1
  1265. package/amd/MonthView-c8a6ab15.js +0 -2
  1266. package/amd/MonthView-c8a6ab15.js.map +0 -1
  1267. package/amd/NumberInputText-91b73dcb.js +0 -2
  1268. package/amd/NumberInputText-91b73dcb.js.map +0 -1
  1269. package/amd/OverflowTabBar-ef21bcd3.js +0 -2
  1270. package/amd/OverflowTabBar-ef21bcd3.js.map +0 -1
  1271. package/amd/OverflowTabBarItem-db77f3d3.js +0 -2
  1272. package/amd/OverflowTabBarItem-db77f3d3.js.map +0 -1
  1273. package/amd/PictoChart-d5bedf82.js +0 -2
  1274. package/amd/PictoChart-d5bedf82.js.map +0 -1
  1275. package/amd/ProgressButton-e30c909b.js +0 -2
  1276. package/amd/ProgressButton-e30c909b.js.map +0 -1
  1277. package/amd/RadioItem-7ebada33.js +0 -2
  1278. package/amd/RadioItem-7ebada33.js.map +0 -1
  1279. package/amd/RadioSet-5e4b6669.js +0 -2
  1280. package/amd/RadioSet-5e4b6669.js.map +0 -1
  1281. package/amd/RemovableNavigationListItem-9950c473.js +0 -2
  1282. package/amd/RemovableNavigationListItem-9950c473.js.map +0 -1
  1283. package/amd/RemovableTabBarItem-fcada993.js +0 -2
  1284. package/amd/RemovableTabBarItem-fcada993.js.map +0 -1
  1285. package/amd/RevealToggleIcon-411d7a73.js +0 -2
  1286. package/amd/RevealToggleIcon-411d7a73.js.map +0 -1
  1287. package/amd/ScatterChart-3f6024a2.js +0 -2
  1288. package/amd/ScatterChart-3f6024a2.js.map +0 -1
  1289. package/amd/SelectMultiple-d3196bcd.js +0 -2
  1290. package/amd/SelectMultiple-d3196bcd.js.map +0 -1
  1291. package/amd/SelectSingle-007ab01c.js +0 -2
  1292. package/amd/SelectSingle-007ab01c.js.map +0 -1
  1293. package/amd/SplitMenuButton-65acf4d4.js +0 -2
  1294. package/amd/SplitMenuButton-65acf4d4.js.map +0 -1
  1295. package/amd/Table-52c72d48.js +0 -2
  1296. package/amd/Table-52c72d48.js.map +0 -1
  1297. package/amd/TableView-dc0766a7.js +0 -2
  1298. package/amd/TableView-dc0766a7.js.map +0 -1
  1299. package/amd/TagCloud-6afc73f7.js +0 -2
  1300. package/amd/TagCloud-6afc73f7.js.map +0 -1
  1301. package/amd/TextArea-d69acd23.js +0 -2
  1302. package/amd/TextArea-d69acd23.js.map +0 -1
  1303. package/amd/TextAreaAutosize-b7e56051.js +0 -2
  1304. package/amd/TextAreaAutosize-b7e56051.js.map +0 -1
  1305. package/amd/TimeComponentCanvas2D-27e55de9.js +0 -2
  1306. package/amd/TimeComponentCanvas2D-27e55de9.js.map +0 -1
  1307. package/amd/ToggleButton-a999647d.js +0 -2
  1308. package/amd/ToggleButton-a999647d.js.map +0 -1
  1309. package/amd/VirtualizedCollection-897516a5.js +0 -2
  1310. package/amd/VirtualizedCollection-897516a5.js.map +0 -1
  1311. package/amd/VirtualizedListView-0b9e1c53.js +0 -2
  1312. package/amd/VirtualizedListView-0b9e1c53.js.map +0 -1
  1313. package/amd/YearsGridView-c09d1d19.js +0 -2
  1314. package/amd/YearsGridView-c09d1d19.js.map +0 -1
  1315. package/amd/useCellNavigation-47060bc3.js +0 -2
  1316. package/amd/useCellNavigation-47060bc3.js.map +0 -1
  1317. package/amd/useChartMarquee-8ce16d57.js +0 -2
  1318. package/amd/useChartMarquee-8ce16d57.js.map +0 -1
  1319. package/amd/usePressClick-b7b38da2.js +0 -2
  1320. package/amd/usePressClick-b7b38da2.js.map +0 -1
  1321. package/amd/useSelectCommon-fd0e7664.js +0 -2
  1322. package/amd/useSelectCommon-fd0e7664.js.map +0 -1
  1323. package/amd/useSelectDrill-332195a7.js +0 -2
  1324. package/amd/useSelectDrill-332195a7.js.map +0 -1
  1325. package/amd/useSelection-04d131fa.js +0 -2
  1326. package/amd/useSelection-04d131fa.js.map +0 -1
  1327. package/amd/useVisDragModeControls-69001c64.js +0 -2
  1328. package/amd/useVisDragModeControls-69001c64.js.map +0 -1
  1329. package/cjs/BarChart-fae84003.js +0 -181
  1330. package/cjs/BarChart-fae84003.js.map +0 -1
  1331. package/cjs/BaseButton-97ec7696.js +0 -174
  1332. package/cjs/BaseButton-97ec7696.js.map +0 -1
  1333. package/cjs/BaseCardView-0be36db0.js +0 -687
  1334. package/cjs/BaseCardView-0be36db0.js.map +0 -1
  1335. package/cjs/BaseCardViewSelectionTest-d91b3015.js +0 -734
  1336. package/cjs/BaseCardViewSelectionTest-d91b3015.js.map +0 -1
  1337. package/cjs/BaseRichSelection-e2a38380.js +0 -344
  1338. package/cjs/BaseRichSelection-e2a38380.js.map +0 -1
  1339. package/cjs/Button-371573d5.js +0 -24
  1340. package/cjs/Button-371573d5.js.map +0 -1
  1341. package/cjs/ButtonSetButton-c6621073.js +0 -35
  1342. package/cjs/ButtonSetButton-c6621073.js.map +0 -1
  1343. package/cjs/ButtonSetIconButton-8645f3a5.js +0 -42
  1344. package/cjs/ButtonSetIconButton-8645f3a5.js.map +0 -1
  1345. package/cjs/ButtonSetItem-aa4211b4.js +0 -67
  1346. package/cjs/ButtonSetItem-aa4211b4.js.map +0 -1
  1347. package/cjs/CardFlexView-2547fc13.js +0 -29
  1348. package/cjs/CardFlexView-2547fc13.js.map +0 -1
  1349. package/cjs/CardGridView-c355e9d4.js +0 -17
  1350. package/cjs/CardGridView-c355e9d4.js.map +0 -1
  1351. package/cjs/Chart-b79289a8.js +0 -493
  1352. package/cjs/Chart-b79289a8.js.map +0 -1
  1353. package/cjs/Checkbox-5bfd221f.js +0 -106
  1354. package/cjs/Checkbox-5bfd221f.js.map +0 -1
  1355. package/cjs/CheckboxControl-3be46530.js +0 -111
  1356. package/cjs/CheckboxControl-3be46530.js.map +0 -1
  1357. package/cjs/CheckboxRadioField-037cddb9.js +0 -185
  1358. package/cjs/CheckboxRadioField-037cddb9.js.map +0 -1
  1359. package/cjs/CheckboxSet-abbf7a03.js +0 -53
  1360. package/cjs/CheckboxSet-abbf7a03.js.map +0 -1
  1361. package/cjs/ClearIcon-02e093be.js +0 -23
  1362. package/cjs/ClearIcon-02e093be.js.map +0 -1
  1363. package/cjs/ComboChart-e17d5863.js +0 -174
  1364. package/cjs/ComboChart-e17d5863.js.map +0 -1
  1365. package/cjs/CompactUserAssistance-b3c3929e.js +0 -49
  1366. package/cjs/CompactUserAssistance-b3c3929e.js.map +0 -1
  1367. package/cjs/ComponentMessageContainer-1cea67f6.js +0 -71
  1368. package/cjs/ComponentMessageContainer-1cea67f6.js.map +0 -1
  1369. package/cjs/ConveyorBeltItem-2577c86d.js +0 -641
  1370. package/cjs/ConveyorBeltItem-2577c86d.js.map +0 -1
  1371. package/cjs/DatePicker-c770df48.js +0 -566
  1372. package/cjs/DatePicker-c770df48.js.map +0 -1
  1373. package/cjs/DatePickerHeader-da8173f7.js +0 -46
  1374. package/cjs/DatePickerHeader-da8173f7.js.map +0 -1
  1375. package/cjs/Diagram-c4064fd7.js +0 -2037
  1376. package/cjs/Diagram-c4064fd7.js.map +0 -1
  1377. package/cjs/Dialog-c6c8024c.js +0 -346
  1378. package/cjs/Dialog-c6c8024c.js.map +0 -1
  1379. package/cjs/EmbeddedIconButton-89616e5f.js +0 -13
  1380. package/cjs/EmbeddedIconButton-89616e5f.js.map +0 -1
  1381. package/cjs/ExpandableList-d1823448.js +0 -169
  1382. package/cjs/ExpandableList-d1823448.js.map +0 -1
  1383. package/cjs/Gantt-674a89f8.js +0 -3819
  1384. package/cjs/Gantt-674a89f8.js.map +0 -1
  1385. package/cjs/IconButton-e7a68b4b.js +0 -39
  1386. package/cjs/IconButton-e7a68b4b.js.map +0 -1
  1387. package/cjs/IconMenuButton-3e540f38.js +0 -58
  1388. package/cjs/IconMenuButton-3e540f38.js.map +0 -1
  1389. package/cjs/IconProgressButton-3aa70c31.js +0 -49
  1390. package/cjs/IconProgressButton-3aa70c31.js.map +0 -1
  1391. package/cjs/IconSwitchButton-6bab813f.js +0 -46
  1392. package/cjs/IconSwitchButton-6bab813f.js.map +0 -1
  1393. package/cjs/IconToggleButton-7ec8c084.js +0 -45
  1394. package/cjs/IconToggleButton-7ec8c084.js.map +0 -1
  1395. package/cjs/Indexer-099ecbad.js +0 -339
  1396. package/cjs/Indexer-099ecbad.js.map +0 -1
  1397. package/cjs/InlineUserAssistance-5d6bac7a.js +0 -85
  1398. package/cjs/InlineUserAssistance-5d6bac7a.js.map +0 -1
  1399. package/cjs/InputDateMask-946f6dfa.js +0 -1060
  1400. package/cjs/InputDateMask-946f6dfa.js.map +0 -1
  1401. package/cjs/InputDatePicker-6c8cbbf7.js +0 -309
  1402. package/cjs/InputDatePicker-6c8cbbf7.js.map +0 -1
  1403. package/cjs/InputPassword-564260d2.js +0 -157
  1404. package/cjs/InputPassword-564260d2.js.map +0 -1
  1405. package/cjs/InputText-a9d46813.js +0 -199
  1406. package/cjs/InputText-a9d46813.js.map +0 -1
  1407. package/cjs/Label-2e05c87f.js +0 -85
  1408. package/cjs/Label-2e05c87f.js.map +0 -1
  1409. package/cjs/Legend-743ebb76.js +0 -304
  1410. package/cjs/Legend-743ebb76.js.map +0 -1
  1411. package/cjs/LineAreaChart-523ae108.js +0 -172
  1412. package/cjs/LineAreaChart-523ae108.js.map +0 -1
  1413. package/cjs/Link-a829e7f1.js +0 -35
  1414. package/cjs/Link-a829e7f1.js.map +0 -1
  1415. package/cjs/List-24abb3df.js +0 -722
  1416. package/cjs/List-24abb3df.js.map +0 -1
  1417. package/cjs/ListView-7e894199.js +0 -430
  1418. package/cjs/ListView-7e894199.js.map +0 -1
  1419. package/cjs/LoadMoreCollection-69bc038c.js +0 -34
  1420. package/cjs/LoadMoreCollection-69bc038c.js.map +0 -1
  1421. package/cjs/MenuButton-b811e5e4.js +0 -63
  1422. package/cjs/MenuButton-b811e5e4.js.map +0 -1
  1423. package/cjs/Message-d1d5538e.js +0 -208
  1424. package/cjs/Message-d1d5538e.js.map +0 -1
  1425. package/cjs/MessageToast-9154f05f.js +0 -243
  1426. package/cjs/MessageToast-9154f05f.js.map +0 -1
  1427. package/cjs/MonthView-35623a0e.js +0 -210
  1428. package/cjs/MonthView-35623a0e.js.map +0 -1
  1429. package/cjs/NavigationListItem-9b3d3258.js +0 -153
  1430. package/cjs/NavigationListItem-9b3d3258.js.map +0 -1
  1431. package/cjs/NumberInputText-6032717d.js +0 -223
  1432. package/cjs/NumberInputText-6032717d.js.map +0 -1
  1433. package/cjs/OverflowTabBar-794b4c93.js +0 -71
  1434. package/cjs/OverflowTabBar-794b4c93.js.map +0 -1
  1435. package/cjs/OverflowTabBarItem-43956479.js +0 -88
  1436. package/cjs/OverflowTabBarItem-43956479.js.map +0 -1
  1437. package/cjs/PictoChart-b650c050.js +0 -747
  1438. package/cjs/PictoChart-b650c050.js.map +0 -1
  1439. package/cjs/ProgressButton-1a01d49b.js +0 -58
  1440. package/cjs/ProgressButton-1a01d49b.js.map +0 -1
  1441. package/cjs/RadioItem-68304596.js +0 -115
  1442. package/cjs/RadioItem-68304596.js.map +0 -1
  1443. package/cjs/RadioSet-a16f664b.js +0 -45
  1444. package/cjs/RadioSet-a16f664b.js.map +0 -1
  1445. package/cjs/RemovableNavigationListItem-b13b3516.js +0 -26
  1446. package/cjs/RemovableNavigationListItem-b13b3516.js.map +0 -1
  1447. package/cjs/RemovableTabBarItem-e71b7be3.js +0 -38
  1448. package/cjs/RemovableTabBarItem-e71b7be3.js.map +0 -1
  1449. package/cjs/RevealToggleIcon-06b0b035.js +0 -28
  1450. package/cjs/RevealToggleIcon-06b0b035.js.map +0 -1
  1451. package/cjs/ScatterChart-bd2e0ebb.js +0 -105
  1452. package/cjs/ScatterChart-bd2e0ebb.js.map +0 -1
  1453. package/cjs/SelectMultiple-0d809f25.js +0 -1299
  1454. package/cjs/SelectMultiple-0d809f25.js.map +0 -1
  1455. package/cjs/SelectSingle-f5dd375a.js +0 -732
  1456. package/cjs/SelectSingle-f5dd375a.js.map +0 -1
  1457. package/cjs/SplitMenuButton-e7fd9b79.js +0 -141
  1458. package/cjs/SplitMenuButton-e7fd9b79.js.map +0 -1
  1459. package/cjs/Table-65e94df9.js +0 -5499
  1460. package/cjs/Table-65e94df9.js.map +0 -1
  1461. package/cjs/TableView-dfc37f9f.js +0 -33
  1462. package/cjs/TableView-dfc37f9f.js.map +0 -1
  1463. package/cjs/TagCloud-0aee2c72.js +0 -826
  1464. package/cjs/TagCloud-0aee2c72.js.map +0 -1
  1465. package/cjs/TextArea-f4a84aab.js +0 -180
  1466. package/cjs/TextArea-f4a84aab.js.map +0 -1
  1467. package/cjs/TextAreaAutosize-08ca17cf.js +0 -246
  1468. package/cjs/TextAreaAutosize-08ca17cf.js.map +0 -1
  1469. package/cjs/TimeComponentCanvas2D-e6be22d4.js +0 -591
  1470. package/cjs/TimeComponentCanvas2D-e6be22d4.js.map +0 -1
  1471. package/cjs/ToggleButton-8ac0ff29.js +0 -30
  1472. package/cjs/ToggleButton-8ac0ff29.js.map +0 -1
  1473. package/cjs/VirtualizedCollection-9e8c48b9.js +0 -180
  1474. package/cjs/VirtualizedCollection-9e8c48b9.js.map +0 -1
  1475. package/cjs/VirtualizedListView-0a4f07ca.js +0 -16
  1476. package/cjs/VirtualizedListView-0a4f07ca.js.map +0 -1
  1477. package/cjs/YearsGridView-83c7e684.js +0 -190
  1478. package/cjs/YearsGridView-83c7e684.js.map +0 -1
  1479. package/cjs/useCellNavigation-7a24d0c0.js +0 -129
  1480. package/cjs/useCellNavigation-7a24d0c0.js.map +0 -1
  1481. package/cjs/useChartMarquee-7c09d6ef.js +0 -295
  1482. package/cjs/useChartMarquee-7c09d6ef.js.map +0 -1
  1483. package/cjs/usePressClick-421494df.js +0 -33
  1484. package/cjs/usePressClick-421494df.js.map +0 -1
  1485. package/cjs/useSelectCommon-d593ef26.js +0 -709
  1486. package/cjs/useSelectCommon-d593ef26.js.map +0 -1
  1487. package/cjs/useSelectDrill-ddca7003.js +0 -107
  1488. package/cjs/useSelectDrill-ddca7003.js.map +0 -1
  1489. package/cjs/useSelection-810ecdc6.js +0 -188
  1490. package/cjs/useSelection-810ecdc6.js.map +0 -1
  1491. package/cjs/useVisDragModeControls-388926ea.js +0 -89
  1492. package/cjs/useVisDragModeControls-388926ea.js.map +0 -1
  1493. package/es/BarChart-bbc688ef.js +0 -179
  1494. package/es/BarChart-bbc688ef.js.map +0 -1
  1495. package/es/BaseButton-a0534b4d.js +0 -172
  1496. package/es/BaseButton-a0534b4d.js.map +0 -1
  1497. package/es/BaseCardViewSelectionTest-2e5f019a.js +0 -721
  1498. package/es/BaseCardViewSelectionTest-2e5f019a.js.map +0 -1
  1499. package/es/BaseNavigationListItem-af84a9ee.js +0 -119
  1500. package/es/BaseNavigationListItem-af84a9ee.js.map +0 -1
  1501. package/es/BaseRichSelection-9f2f2b59.js +0 -342
  1502. package/es/BaseRichSelection-9f2f2b59.js.map +0 -1
  1503. package/es/Button-f55c264d.js +0 -22
  1504. package/es/Button-f55c264d.js.map +0 -1
  1505. package/es/ButtonSetButton-226c9e73.js +0 -33
  1506. package/es/ButtonSetButton-226c9e73.js.map +0 -1
  1507. package/es/ButtonSetIconButton-2a046c9c.js +0 -40
  1508. package/es/ButtonSetIconButton-2a046c9c.js.map +0 -1
  1509. package/es/ButtonSetItem-43ef9553.js +0 -65
  1510. package/es/ButtonSetItem-43ef9553.js.map +0 -1
  1511. package/es/Card-f3b7c723.js +0 -15
  1512. package/es/Card-f3b7c723.js.map +0 -1
  1513. package/es/Center-76b761ea.js +0 -16
  1514. package/es/Center-76b761ea.js.map +0 -1
  1515. package/es/Chart-6291ad48.js +0 -491
  1516. package/es/Chart-6291ad48.js.map +0 -1
  1517. package/es/Checkbox-34816a7d.js +0 -104
  1518. package/es/Checkbox-34816a7d.js.map +0 -1
  1519. package/es/CheckboxControl-a9d4d9d5.js +0 -109
  1520. package/es/CheckboxControl-a9d4d9d5.js.map +0 -1
  1521. package/es/CheckboxRadioField-922ab9ff.js +0 -183
  1522. package/es/CheckboxRadioField-922ab9ff.js.map +0 -1
  1523. package/es/ClearIcon-29781882.js +0 -21
  1524. package/es/ClearIcon-29781882.js.map +0 -1
  1525. package/es/ComboChart-4738f936.js +0 -172
  1526. package/es/ComboChart-4738f936.js.map +0 -1
  1527. package/es/CompactLabelAssistance-fd3fb481.js +0 -34
  1528. package/es/CompactLabelAssistance-fd3fb481.js.map +0 -1
  1529. package/es/CompactUserAssistance-bd24e31a.js +0 -47
  1530. package/es/CompactUserAssistance-bd24e31a.js.map +0 -1
  1531. package/es/ComponentMessageContainer-6c106a09.js +0 -68
  1532. package/es/ComponentMessageContainer-6c106a09.js.map +0 -1
  1533. package/es/ConveyorBeltItem-ce67a451.js +0 -638
  1534. package/es/ConveyorBeltItem-ce67a451.js.map +0 -1
  1535. package/es/DatePicker-e7f2ef3c.js +0 -564
  1536. package/es/DatePicker-e7f2ef3c.js.map +0 -1
  1537. package/es/DatePickerHeader-9c0d4332.js +0 -44
  1538. package/es/DatePickerHeader-9c0d4332.js.map +0 -1
  1539. package/es/Diagram-b1f6a590.js +0 -2035
  1540. package/es/Diagram-b1f6a590.js.map +0 -1
  1541. package/es/Dialog-0ca362cc.js +0 -344
  1542. package/es/Dialog-0ca362cc.js.map +0 -1
  1543. package/es/DragHandle-99d4c921.js +0 -22
  1544. package/es/DragHandle-99d4c921.js.map +0 -1
  1545. package/es/DrawerPopup-9cdb203a.js +0 -381
  1546. package/es/DrawerPopup-9cdb203a.js.map +0 -1
  1547. package/es/Dropdown-60833900.js +0 -80
  1548. package/es/Dropdown-60833900.js.map +0 -1
  1549. package/es/EmbeddedIconButton-0c3562a1.js +0 -11
  1550. package/es/EmbeddedIconButton-0c3562a1.js.map +0 -1
  1551. package/es/EnvironmentProvider-bada8909.js +0 -58
  1552. package/es/EnvironmentProvider-bada8909.js.map +0 -1
  1553. package/es/ExpandableList-cbf9ae2c.js +0 -167
  1554. package/es/ExpandableList-cbf9ae2c.js.map +0 -1
  1555. package/es/Flex-ce31b351.js +0 -30
  1556. package/es/Flex-ce31b351.js.map +0 -1
  1557. package/es/Floating-f02677ba.js +0 -462
  1558. package/es/Floating-f02677ba.js.map +0 -1
  1559. package/es/Gantt-5a395647.js +0 -3817
  1560. package/es/Gantt-5a395647.js.map +0 -1
  1561. package/es/Grid-421eb560.js +0 -27
  1562. package/es/Grid-421eb560.js.map +0 -1
  1563. package/es/Gridlines-6098cb5b.js +0 -168
  1564. package/es/Gridlines-6098cb5b.js.map +0 -1
  1565. package/es/HighlightText-86d92552.js +0 -31
  1566. package/es/HighlightText-86d92552.js.map +0 -1
  1567. package/es/IconButton-f3f7af21.js +0 -37
  1568. package/es/IconButton-f3f7af21.js.map +0 -1
  1569. package/es/IconMenuButton-48909b85.js +0 -56
  1570. package/es/IconMenuButton-48909b85.js.map +0 -1
  1571. package/es/IconProgressButton-1c4d65c3.js +0 -47
  1572. package/es/IconProgressButton-1c4d65c3.js.map +0 -1
  1573. package/es/IconSwitchButton-5db4ae26.js +0 -44
  1574. package/es/IconSwitchButton-5db4ae26.js.map +0 -1
  1575. package/es/IconToggleButton-be6c0ba1.js +0 -43
  1576. package/es/IconToggleButton-be6c0ba1.js.map +0 -1
  1577. package/es/IconUserAssistance-92be9618.js +0 -73
  1578. package/es/IconUserAssistance-92be9618.js.map +0 -1
  1579. package/es/InlineUserAssistance-2677a1eb.js +0 -81
  1580. package/es/InlineUserAssistance-2677a1eb.js.map +0 -1
  1581. package/es/InputDateMask-76493bee.js +0 -1056
  1582. package/es/InputDateMask-76493bee.js.map +0 -1
  1583. package/es/InputDatePicker-836ee6f7.js +0 -307
  1584. package/es/InputDatePicker-836ee6f7.js.map +0 -1
  1585. package/es/InputPassword-fa63ac17.js +0 -155
  1586. package/es/InputPassword-fa63ac17.js.map +0 -1
  1587. package/es/InputText-ce2272a8.js +0 -197
  1588. package/es/InputText-ce2272a8.js.map +0 -1
  1589. package/es/Label-56ca049f.js +0 -83
  1590. package/es/Label-56ca049f.js.map +0 -1
  1591. package/es/Layer-446bf21e.js +0 -91
  1592. package/es/Layer-446bf21e.js.map +0 -1
  1593. package/es/LayerHost-e6402730.js +0 -41
  1594. package/es/LayerHost-e6402730.js.map +0 -1
  1595. package/es/LayerManager-fa745cec.js +0 -34
  1596. package/es/LayerManager-fa745cec.js.map +0 -1
  1597. package/es/Legend-a60126aa.js +0 -302
  1598. package/es/Legend-a60126aa.js.map +0 -1
  1599. package/es/LineAreaChart-d3586935.js +0 -170
  1600. package/es/LineAreaChart-d3586935.js.map +0 -1
  1601. package/es/LineSeries-fc167ea2.js +0 -109
  1602. package/es/LineSeries-fc167ea2.js.map +0 -1
  1603. package/es/Link-98742013.js +0 -33
  1604. package/es/Link-98742013.js.map +0 -1
  1605. package/es/ListItemLayout-e9854821.js +0 -110
  1606. package/es/ListItemLayout-e9854821.js.map +0 -1
  1607. package/es/LiveRegion-b56a1aa2.js +0 -39
  1608. package/es/LiveRegion-b56a1aa2.js.map +0 -1
  1609. package/es/MaxLengthLiveRegion-2f3d34cf.js +0 -23
  1610. package/es/MaxLengthLiveRegion-2f3d34cf.js.map +0 -1
  1611. package/es/MenuButton-c00e269e.js +0 -61
  1612. package/es/MenuButton-c00e269e.js.map +0 -1
  1613. package/es/Message-b9e16c1c.js +0 -203
  1614. package/es/Message-b9e16c1c.js.map +0 -1
  1615. package/es/MessageLayer-7e3184aa.js +0 -58
  1616. package/es/MessageLayer-7e3184aa.js.map +0 -1
  1617. package/es/MessageToast-f9b0a234.js +0 -241
  1618. package/es/MessageToast-f9b0a234.js.map +0 -1
  1619. package/es/Modal-24a0bf4b.js +0 -288
  1620. package/es/Modal-24a0bf4b.js.map +0 -1
  1621. package/es/MonthView-5e633194.js +0 -208
  1622. package/es/MonthView-5e633194.js.map +0 -1
  1623. package/es/NavigationListItem-07f041e6.js +0 -163
  1624. package/es/NavigationListItem-07f041e6.js.map +0 -1
  1625. package/es/NumberInputText-f5d01daa.js +0 -220
  1626. package/es/NumberInputText-f5d01daa.js.map +0 -1
  1627. package/es/OverflowTabBar-c920e944.js +0 -69
  1628. package/es/OverflowTabBar-c920e944.js.map +0 -1
  1629. package/es/OverflowTabBarItem-ccfa49a3.js +0 -86
  1630. package/es/OverflowTabBarItem-ccfa49a3.js.map +0 -1
  1631. package/es/PictoChart-5b71908b.js +0 -744
  1632. package/es/PictoChart-5b71908b.js.map +0 -1
  1633. package/es/Popup-d8bf7f4d.js +0 -258
  1634. package/es/Popup-d8bf7f4d.js.map +0 -1
  1635. package/es/ProgressBar-2fa99d6f.js +0 -62
  1636. package/es/ProgressBar-2fa99d6f.js.map +0 -1
  1637. package/es/ProgressButton-9390070e.js +0 -56
  1638. package/es/ProgressButton-9390070e.js.map +0 -1
  1639. package/es/ProgressCircle-faf79b79.js +0 -48
  1640. package/es/ProgressCircle-faf79b79.js.map +0 -1
  1641. package/es/RadioItem-96cbf0ed.js +0 -113
  1642. package/es/RadioItem-96cbf0ed.js.map +0 -1
  1643. package/es/RadioSet-c51b3d56.js +0 -43
  1644. package/es/RadioSet-c51b3d56.js.map +0 -1
  1645. package/es/RemovableNavigationListItem-517d59b0.js +0 -24
  1646. package/es/RemovableNavigationListItem-517d59b0.js.map +0 -1
  1647. package/es/RemovableTabBarItem-87ba87ca.js +0 -36
  1648. package/es/RemovableTabBarItem-87ba87ca.js.map +0 -1
  1649. package/es/ReorderableTabBar-fc76a33b.js +0 -77
  1650. package/es/ReorderableTabBar-fc76a33b.js.map +0 -1
  1651. package/es/RevealToggleIcon-2f49fd19.js +0 -26
  1652. package/es/RevealToggleIcon-2f49fd19.js.map +0 -1
  1653. package/es/ScatterChart-449ec029.js +0 -103
  1654. package/es/ScatterChart-449ec029.js.map +0 -1
  1655. package/es/SectionedContent-3274d8f9.js +0 -64
  1656. package/es/SectionedContent-3274d8f9.js.map +0 -1
  1657. package/es/SelectMultiple-50995ef7.js +0 -1297
  1658. package/es/SelectMultiple-50995ef7.js.map +0 -1
  1659. package/es/SelectSingle-dcf0e9b1.js +0 -730
  1660. package/es/SelectSingle-dcf0e9b1.js.map +0 -1
  1661. package/es/SelectionCard-1ed9cf08.js +0 -16
  1662. package/es/SelectionCard-1ed9cf08.js.map +0 -1
  1663. package/es/SelectorAll-f52550a6.js +0 -69
  1664. package/es/SelectorAll-f52550a6.js.map +0 -1
  1665. package/es/Sheet-da412baf.js +0 -158
  1666. package/es/Sheet-da412baf.js.map +0 -1
  1667. package/es/SplitMenuButton-f44064de.js +0 -139
  1668. package/es/SplitMenuButton-f44064de.js.map +0 -1
  1669. package/es/StyledCard-362bd74b.js +0 -105
  1670. package/es/StyledCard-362bd74b.js.map +0 -1
  1671. package/es/StyledLabelValueLayout-d4881d3b.js +0 -18
  1672. package/es/StyledLabelValueLayout-d4881d3b.js.map +0 -1
  1673. package/es/TabBar-2858ff9c.js +0 -77
  1674. package/es/TabBar-2858ff9c.js.map +0 -1
  1675. package/es/TabBarMixed-a4beabce.js +0 -78
  1676. package/es/TabBarMixed-a4beabce.js.map +0 -1
  1677. package/es/TabBarMixedSeparator-51c518a1.js +0 -19
  1678. package/es/TabBarMixedSeparator-51c518a1.js.map +0 -1
  1679. package/es/Table-9919625b.js +0 -5497
  1680. package/es/Table-9919625b.js.map +0 -1
  1681. package/es/TableView-c97ef8ee.js +0 -31
  1682. package/es/TableView-c97ef8ee.js.map +0 -1
  1683. package/es/TagCloud-3f81d651.js +0 -824
  1684. package/es/TagCloud-3f81d651.js.map +0 -1
  1685. package/es/TextArea-d7eb6b00.js +0 -177
  1686. package/es/TextArea-d7eb6b00.js.map +0 -1
  1687. package/es/TextAreaAutosize-301eb2b7.js +0 -244
  1688. package/es/TextAreaAutosize-301eb2b7.js.map +0 -1
  1689. package/es/TimeComponentCanvas2D-9fd1f811.js +0 -568
  1690. package/es/TimeComponentCanvas2D-9fd1f811.js.map +0 -1
  1691. package/es/ToggleButton-cf8226d9.js +0 -28
  1692. package/es/ToggleButton-cf8226d9.js.map +0 -1
  1693. package/es/View-afe98b65.js +0 -167
  1694. package/es/View-afe98b65.js.map +0 -1
  1695. package/es/VisNoData-9ceb58f4.js +0 -32
  1696. package/es/VisNoData-9ceb58f4.js.map +0 -1
  1697. package/es/VisProgressiveLoader-36c728ac.js +0 -51
  1698. package/es/VisProgressiveLoader-36c728ac.js.map +0 -1
  1699. package/es/VisTabularDatatip-59629377.js +0 -24
  1700. package/es/VisTabularDatatip-59629377.js.map +0 -1
  1701. package/es/WindowOverlay-a07b2e24.js +0 -110
  1702. package/es/WindowOverlay-a07b2e24.js.map +0 -1
  1703. package/es/YearsGridView-d859edba.js +0 -187
  1704. package/es/YearsGridView-d859edba.js.map +0 -1
  1705. package/es/index-e33bcd96.js +0 -11
  1706. package/es/index-e33bcd96.js.map +0 -1
  1707. package/es/popupUtils-58411a98.js +0 -29
  1708. package/es/popupUtils-58411a98.js.map +0 -1
  1709. package/es/render-343557e9.js +0 -34
  1710. package/es/render-343557e9.js.map +0 -1
  1711. package/es/tabbableUtils-d6485f5e.js +0 -79
  1712. package/es/tabbableUtils-d6485f5e.js.map +0 -1
  1713. package/es/testData-d5181e9f.js +0 -256
  1714. package/es/testData-d5181e9f.js.map +0 -1
  1715. package/es/tooltipUtils-768450a7.js +0 -93
  1716. package/es/tooltipUtils-768450a7.js.map +0 -1
  1717. package/es/useCellNavigation-88a1754f.js +0 -126
  1718. package/es/useCellNavigation-88a1754f.js.map +0 -1
  1719. package/es/useChartDatatip-d6a6c5e1.js +0 -165
  1720. package/es/useChartDatatip-d6a6c5e1.js.map +0 -1
  1721. package/es/useChartMarquee-6587dbec.js +0 -293
  1722. package/es/useChartMarquee-6587dbec.js.map +0 -1
  1723. package/es/useColorScheme-c4e237ad.js +0 -19
  1724. package/es/useColorScheme-c4e237ad.js.map +0 -1
  1725. package/es/useCssVars-d72a8439.js +0 -58
  1726. package/es/useCssVars-d72a8439.js.map +0 -1
  1727. package/es/useCurrentBgColor-14745af3.js +0 -19
  1728. package/es/useCurrentBgColor-14745af3.js.map +0 -1
  1729. package/es/useCurrentKey-7287061f.js +0 -81
  1730. package/es/useCurrentKey-7287061f.js.map +0 -1
  1731. package/es/useDatatip-9635bc2f.js +0 -90
  1732. package/es/useDatatip-9635bc2f.js.map +0 -1
  1733. package/es/useDensity-c17603b2.js +0 -19
  1734. package/es/useDensity-c17603b2.js.map +0 -1
  1735. package/es/useFloating-953362cf.js +0 -1916
  1736. package/es/useFloating-953362cf.js.map +0 -1
  1737. package/es/useKeyboardEvents-2378a650.js +0 -78
  1738. package/es/useKeyboardEvents-2378a650.js.map +0 -1
  1739. package/es/useMeterDatatip-834e67e1.js +0 -73
  1740. package/es/useMeterDatatip-834e67e1.js.map +0 -1
  1741. package/es/useOutsideClick-fd9ad806.js +0 -101
  1742. package/es/useOutsideClick-fd9ad806.js.map +0 -1
  1743. package/es/usePopupAnimation-f017bc43.js +0 -85
  1744. package/es/usePopupAnimation-f017bc43.js.map +0 -1
  1745. package/es/usePrefixSuffix-5a74f2c4.js +0 -70
  1746. package/es/usePrefixSuffix-5a74f2c4.js.map +0 -1
  1747. package/es/usePressClick-2ec8e098.js +0 -31
  1748. package/es/usePressClick-2ec8e098.js.map +0 -1
  1749. package/es/useReorderableItem-22ea4c46.js +0 -268
  1750. package/es/useReorderableItem-22ea4c46.js.map +0 -1
  1751. package/es/useRovingTabIndexContainer-bc7ae447.js +0 -98
  1752. package/es/useRovingTabIndexContainer-bc7ae447.js.map +0 -1
  1753. package/es/useScale-83881775.js +0 -19
  1754. package/es/useScale-83881775.js.map +0 -1
  1755. package/es/useSelectCommon-34645d9a.js +0 -686
  1756. package/es/useSelectCommon-34645d9a.js.map +0 -1
  1757. package/es/useSelectDrill-88337c1a.js +0 -104
  1758. package/es/useSelectDrill-88337c1a.js.map +0 -1
  1759. package/es/useSelection-01b28be6.js +0 -186
  1760. package/es/useSelection-01b28be6.js.map +0 -1
  1761. package/es/useSelection-649fd4f1.js +0 -239
  1762. package/es/useSelection-649fd4f1.js.map +0 -1
  1763. package/es/useTestId-9b504481.js +0 -21
  1764. package/es/useTestId-9b504481.js.map +0 -1
  1765. package/es/useTheme-93c07059.js +0 -19
  1766. package/es/useTheme-93c07059.js.map +0 -1
  1767. package/es/useThemeInterpolations-8dd8029f.js +0 -57
  1768. package/es/useThemeInterpolations-8dd8029f.js.map +0 -1
  1769. package/es/useTooltip-89ca3f3e.js +0 -424
  1770. package/es/useTooltip-89ca3f3e.js.map +0 -1
  1771. package/es/useTooltipOnTruncation-175bf8a6.js +0 -27
  1772. package/es/useTooltipOnTruncation-175bf8a6.js.map +0 -1
  1773. package/es/useTranslationBundle-09302c20.js +0 -29
  1774. package/es/useTranslationBundle-09302c20.js.map +0 -1
  1775. package/es/useUser-1cd223a9.js +0 -19
  1776. package/es/useUser-1cd223a9.js.map +0 -1
  1777. package/es/useVisDragModeControls-40fc83b5.js +0 -87
  1778. package/es/useVisDragModeControls-40fc83b5.js.map +0 -1
  1779. package/es/useVisEvents-8877743b.js +0 -153
  1780. package/es/useVisEvents-8877743b.js.map +0 -1
  1781. package/es/withDirectionIcon-19a1d777.js +0 -14
  1782. package/es/withDirectionIcon-19a1d777.js.map +0 -1
@@ -0,0 +1,3819 @@
1
+ /* @oracle/oraclejet-preact: undefined */
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('preact/jsx-runtime');
5
+ var hooks = require('preact/hooks');
6
+ var classNames = require('./classNames-c14c6ef3.js');
7
+ var PRIVATE_TimeComponent_themes_TimeComponentStyles_css = require('./PRIVATE_TimeComponent/themes/TimeComponentStyles.css.js');
8
+ var UNSAFE_Gantt_themes_GanttStyles_css = require('./UNSAFE_Gantt/themes/GanttStyles.css.js');
9
+ var size = require('./size-0056ef1a.js');
10
+ var useTestId = require('./useTestId-1fac9baa.js');
11
+ var TrackResizeContainer = require('./TrackResizeContainer-96619aba.js');
12
+ var Text = require('./Text-15923d58.js');
13
+ var accUtils = require('./accUtils-dcffb3de.js');
14
+ var TimeComponentCanvas2D = require('./TimeComponentCanvas2D-13c06086.js');
15
+ var useUser = require('./useUser-3175822e.js');
16
+ var Layer = require('./Layer-e2da85e2.js');
17
+ require('preact/compat');
18
+ require('./LayerHost-e7422109.js');
19
+ var Floating = require('./Floating-182ac2fe.js');
20
+ var hooks_PRIVATE_useDatatip_themes_useDatatip_css = require('./hooks/PRIVATE_useDatatip/themes/useDatatip.css.js');
21
+ var useId = require('./useId-6c0eeb27.js');
22
+ var datatipUtils = require('./datatipUtils-1f747b7f.js');
23
+ var layoutUtils = require('./layoutUtils-c2c02501.js');
24
+ var mergeProps = require('./mergeProps-e3da7237.js');
25
+ var usePinch = require('./usePinch-741e9343.js');
26
+ var useSelection = require('./useSelection-8f68a23a.js');
27
+ var VisTabularDatatip = require('./VisTabularDatatip-45ad4745.js');
28
+ var useTranslationBundle = require('./useTranslationBundle-40fa4c27.js');
29
+ var pathUtils = require('./pathUtils-ba10ce25.js');
30
+ var useCssVars = require('./useCssVars-5f04a6a7.js');
31
+ var useTextDimensions = require('./useTextDimensions-b94e8899.js');
32
+ var Common_themes_themeContract_css = require('./Common/themes/themeContract.css.js');
33
+ var utils = require('./utils-606327d1.js');
34
+ var eventsUtils = require('./eventsUtils-1abb6028.js');
35
+
36
+ function GanttContainer({ innerRef, width, height, testId, children, ...otherProps }) {
37
+ const testIdProps = useTestId.useTestId(testId);
38
+ return (jsxRuntime.jsx("div", { ref: innerRef, tabIndex: 0, ...testIdProps, ...otherProps, class: classNames.classNames([PRIVATE_TimeComponent_themes_TimeComponentStyles_css.styles.baseStyle, UNSAFE_Gantt_themes_GanttStyles_css.styles.baseStyle]), style: { width: width && size.sizeToCSS(width), height: height && size.sizeToCSS(height) }, children: children }));
39
+ }
40
+
41
+ function GanttWithRowAxisLayout({ rowAxisTopGap = '0', rowAxisBottomGap = '0', resolvedRowAxisWidth, resolvedRowAxisMaxWidth, rowAxis, ganttView }) {
42
+ const isRelativeWidth = resolvedRowAxisWidth.suffix === '%';
43
+ const isRelativeMaxWidth = resolvedRowAxisMaxWidth.suffix === '%';
44
+ return isRelativeWidth || isRelativeMaxWidth ? (jsxRuntime.jsx(TrackResizeContainer.TrackResizeContainer, { width: "100%", height: "100%", children: (width, _) => (jsxRuntime.jsxs("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.base, style: { gridTemplateRows: `${rowAxisTopGap} minmax(0, 1fr) ${rowAxisBottomGap}` }, children: [jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.rowAxis, children: rowAxis(isRelativeWidth
45
+ ? width * (resolvedRowAxisWidth.value / 100)
46
+ : resolvedRowAxisWidth.value, isRelativeMaxWidth
47
+ ? width * (resolvedRowAxisMaxWidth.value / 100)
48
+ : resolvedRowAxisMaxWidth.value) }), jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.ganttView, children: ganttView })] })) })) : (jsxRuntime.jsxs("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.base, style: { gridTemplateRows: `${rowAxisTopGap} minmax(0, 1fr) ${rowAxisBottomGap}` }, children: [jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.rowAxis, children: rowAxis(resolvedRowAxisWidth.value, resolvedRowAxisMaxWidth.value) }), jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisLayoutStyles.ganttView, children: ganttView })] }));
49
+ }
50
+
51
+ /**
52
+ * Gets the default row axis label renderer.
53
+ * @param param0
54
+ * @returns The default renderer.
55
+ */
56
+ const defaultRowAxisLabelRender = ({ maxWidth, maxHeight, data: { label = '', labelStyle } }) => {
57
+ return (jsxRuntime.jsx("div", { style: {
58
+ width: maxWidth > -1 ? maxWidth : undefined,
59
+ height: maxHeight,
60
+ display: 'flex',
61
+ alignItems: 'center',
62
+ ...labelStyle
63
+ }, children: jsxRuntime.jsx(Text.Text, { size: "md", variant: labelStyle?.color ? 'inherit' : 'primary', truncation: "ellipsis", children: label }) }));
64
+ };
65
+ /**
66
+ * Gets the row label renderer context.
67
+ * @param layoutObj The row layout object.
68
+ * @param rowData The rows data.
69
+ * @param maxWidth The max width of the row axis.
70
+ * @returns The renderer context.
71
+ */
72
+ const getRenderContext$1 = (layoutObj, rowData, maxWidth) => {
73
+ return {
74
+ maxWidth,
75
+ maxHeight: layoutObj.height,
76
+ data: rowData[layoutObj.index]
77
+ };
78
+ };
79
+
80
+ class FlatQueue {
81
+
82
+ constructor() {
83
+ this.ids = [];
84
+ this.values = [];
85
+ this.length = 0;
86
+ }
87
+
88
+ clear() {
89
+ this.length = 0;
90
+ }
91
+
92
+ push(id, value) {
93
+ let pos = this.length++;
94
+
95
+ while (pos > 0) {
96
+ const parent = (pos - 1) >> 1;
97
+ const parentValue = this.values[parent];
98
+ if (value >= parentValue) break;
99
+ this.ids[pos] = this.ids[parent];
100
+ this.values[pos] = parentValue;
101
+ pos = parent;
102
+ }
103
+
104
+ this.ids[pos] = id;
105
+ this.values[pos] = value;
106
+ }
107
+
108
+ pop() {
109
+ if (this.length === 0) return undefined;
110
+
111
+ const top = this.ids[0];
112
+ this.length--;
113
+
114
+ if (this.length > 0) {
115
+ const id = this.ids[0] = this.ids[this.length];
116
+ const value = this.values[0] = this.values[this.length];
117
+ const halfLength = this.length >> 1;
118
+ let pos = 0;
119
+
120
+ while (pos < halfLength) {
121
+ let left = (pos << 1) + 1;
122
+ const right = left + 1;
123
+ let bestIndex = this.ids[left];
124
+ let bestValue = this.values[left];
125
+ const rightValue = this.values[right];
126
+
127
+ if (right < this.length && rightValue < bestValue) {
128
+ left = right;
129
+ bestIndex = this.ids[right];
130
+ bestValue = rightValue;
131
+ }
132
+ if (bestValue >= value) break;
133
+
134
+ this.ids[pos] = bestIndex;
135
+ this.values[pos] = bestValue;
136
+ pos = left;
137
+ }
138
+
139
+ this.ids[pos] = id;
140
+ this.values[pos] = value;
141
+ }
142
+
143
+ return top;
144
+ }
145
+
146
+ peek() {
147
+ if (this.length === 0) return undefined;
148
+ return this.ids[0];
149
+ }
150
+
151
+ peekValue() {
152
+ if (this.length === 0) return undefined;
153
+ return this.values[0];
154
+ }
155
+
156
+ shrink() {
157
+ this.ids.length = this.values.length = this.length;
158
+ }
159
+ }
160
+
161
+ const ARRAY_TYPES = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];
162
+ const VERSION = 3; // serialized format version
163
+
164
+ /** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */
165
+
166
+ class Flatbush {
167
+
168
+ /**
169
+ * Recreate a Flatbush index from raw `ArrayBuffer` or `SharedArrayBuffer` data.
170
+ * @param {ArrayBuffer | SharedArrayBuffer} data
171
+ * @returns {Flatbush} index
172
+ */
173
+ static from(data) {
174
+ // @ts-expect-error duck typing array buffers
175
+ if (!data || data.byteLength === undefined || data.buffer) {
176
+ throw new Error('Data must be an instance of ArrayBuffer or SharedArrayBuffer.');
177
+ }
178
+ const [magic, versionAndType] = new Uint8Array(data, 0, 2);
179
+ if (magic !== 0xfb) {
180
+ throw new Error('Data does not appear to be in a Flatbush format.');
181
+ }
182
+ const version = versionAndType >> 4;
183
+ if (version !== VERSION) {
184
+ throw new Error(`Got v${version} data when expected v${VERSION}.`);
185
+ }
186
+ const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];
187
+ if (!ArrayType) {
188
+ throw new Error('Unrecognized array type.');
189
+ }
190
+ const [nodeSize] = new Uint16Array(data, 2, 1);
191
+ const [numItems] = new Uint32Array(data, 4, 1);
192
+
193
+ return new Flatbush(numItems, nodeSize, ArrayType, undefined, data);
194
+ }
195
+
196
+ /**
197
+ * Create a Flatbush index that will hold a given number of items.
198
+ * @param {number} numItems
199
+ * @param {number} [nodeSize=16] Size of the tree node (16 by default).
200
+ * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).
201
+ * @param {ArrayBufferConstructor | SharedArrayBufferConstructor} [ArrayBufferType=ArrayBuffer] The array buffer type used to store data (`ArrayBuffer` by default).
202
+ * @param {ArrayBuffer | SharedArrayBuffer} [data] (Only used internally)
203
+ */
204
+ constructor(numItems, nodeSize = 16, ArrayType = Float64Array, ArrayBufferType = ArrayBuffer, data) {
205
+ if (numItems === undefined) throw new Error('Missing required argument: numItems.');
206
+ if (isNaN(numItems) || numItems <= 0) throw new Error(`Unexpected numItems value: ${numItems}.`);
207
+
208
+ this.numItems = +numItems;
209
+ this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);
210
+
211
+ // calculate the total number of nodes in the R-tree to allocate space for
212
+ // and the index of each tree level (used in search later)
213
+ let n = numItems;
214
+ let numNodes = n;
215
+ this._levelBounds = [n * 4];
216
+ do {
217
+ n = Math.ceil(n / this.nodeSize);
218
+ numNodes += n;
219
+ this._levelBounds.push(numNodes * 4);
220
+ } while (n !== 1);
221
+
222
+ this.ArrayType = ArrayType;
223
+ this.IndexArrayType = numNodes < 16384 ? Uint16Array : Uint32Array;
224
+
225
+ const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);
226
+ const nodesByteSize = numNodes * 4 * this.ArrayType.BYTES_PER_ELEMENT;
227
+
228
+ if (arrayTypeIndex < 0) {
229
+ throw new Error(`Unexpected typed array class: ${ArrayType}.`);
230
+ }
231
+
232
+ // @ts-expect-error duck typing array buffers
233
+ if (data && data.byteLength !== undefined && !data.buffer) {
234
+ this.data = data;
235
+ this._boxes = new this.ArrayType(this.data, 8, numNodes * 4);
236
+ this._indices = new this.IndexArrayType(this.data, 8 + nodesByteSize, numNodes);
237
+
238
+ this._pos = numNodes * 4;
239
+ this.minX = this._boxes[this._pos - 4];
240
+ this.minY = this._boxes[this._pos - 3];
241
+ this.maxX = this._boxes[this._pos - 2];
242
+ this.maxY = this._boxes[this._pos - 1];
243
+
244
+ } else {
245
+ this.data = new ArrayBufferType(8 + nodesByteSize + numNodes * this.IndexArrayType.BYTES_PER_ELEMENT);
246
+ this._boxes = new this.ArrayType(this.data, 8, numNodes * 4);
247
+ this._indices = new this.IndexArrayType(this.data, 8 + nodesByteSize, numNodes);
248
+ this._pos = 0;
249
+ this.minX = Infinity;
250
+ this.minY = Infinity;
251
+ this.maxX = -Infinity;
252
+ this.maxY = -Infinity;
253
+
254
+ new Uint8Array(this.data, 0, 2).set([0xfb, (VERSION << 4) + arrayTypeIndex]);
255
+ new Uint16Array(this.data, 2, 1)[0] = nodeSize;
256
+ new Uint32Array(this.data, 4, 1)[0] = numItems;
257
+ }
258
+
259
+ // a priority queue for k-nearest-neighbors queries
260
+ /** @type FlatQueue<number> */
261
+ this._queue = new FlatQueue();
262
+ }
263
+
264
+ /**
265
+ * Add a given rectangle to the index.
266
+ * @param {number} minX
267
+ * @param {number} minY
268
+ * @param {number} maxX
269
+ * @param {number} maxY
270
+ * @returns {number} A zero-based, incremental number that represents the newly added rectangle.
271
+ */
272
+ add(minX, minY, maxX, maxY) {
273
+ const index = this._pos >> 2;
274
+ const boxes = this._boxes;
275
+ this._indices[index] = index;
276
+ boxes[this._pos++] = minX;
277
+ boxes[this._pos++] = minY;
278
+ boxes[this._pos++] = maxX;
279
+ boxes[this._pos++] = maxY;
280
+
281
+ if (minX < this.minX) this.minX = minX;
282
+ if (minY < this.minY) this.minY = minY;
283
+ if (maxX > this.maxX) this.maxX = maxX;
284
+ if (maxY > this.maxY) this.maxY = maxY;
285
+
286
+ return index;
287
+ }
288
+
289
+ /** Perform indexing of the added rectangles. */
290
+ finish() {
291
+ if (this._pos >> 2 !== this.numItems) {
292
+ throw new Error(`Added ${this._pos >> 2} items when expected ${this.numItems}.`);
293
+ }
294
+ const boxes = this._boxes;
295
+
296
+ if (this.numItems <= this.nodeSize) {
297
+ // only one node, skip sorting and just fill the root box
298
+ boxes[this._pos++] = this.minX;
299
+ boxes[this._pos++] = this.minY;
300
+ boxes[this._pos++] = this.maxX;
301
+ boxes[this._pos++] = this.maxY;
302
+ return;
303
+ }
304
+
305
+ const width = (this.maxX - this.minX) || 1;
306
+ const height = (this.maxY - this.minY) || 1;
307
+ const hilbertValues = new Uint32Array(this.numItems);
308
+ const hilbertMax = (1 << 16) - 1;
309
+
310
+ // map item centers into Hilbert coordinate space and calculate Hilbert values
311
+ for (let i = 0, pos = 0; i < this.numItems; i++) {
312
+ const minX = boxes[pos++];
313
+ const minY = boxes[pos++];
314
+ const maxX = boxes[pos++];
315
+ const maxY = boxes[pos++];
316
+ const x = Math.floor(hilbertMax * ((minX + maxX) / 2 - this.minX) / width);
317
+ const y = Math.floor(hilbertMax * ((minY + maxY) / 2 - this.minY) / height);
318
+ hilbertValues[i] = hilbert(x, y);
319
+ }
320
+
321
+ // sort items by their Hilbert value (for packing later)
322
+ sort(hilbertValues, boxes, this._indices, 0, this.numItems - 1, this.nodeSize);
323
+
324
+ // generate nodes at each tree level, bottom-up
325
+ for (let i = 0, pos = 0; i < this._levelBounds.length - 1; i++) {
326
+ const end = this._levelBounds[i];
327
+
328
+ // generate a parent node for each block of consecutive <nodeSize> nodes
329
+ while (pos < end) {
330
+ const nodeIndex = pos;
331
+
332
+ // calculate bbox for the new node
333
+ let nodeMinX = boxes[pos++];
334
+ let nodeMinY = boxes[pos++];
335
+ let nodeMaxX = boxes[pos++];
336
+ let nodeMaxY = boxes[pos++];
337
+ for (let j = 1; j < this.nodeSize && pos < end; j++) {
338
+ nodeMinX = Math.min(nodeMinX, boxes[pos++]);
339
+ nodeMinY = Math.min(nodeMinY, boxes[pos++]);
340
+ nodeMaxX = Math.max(nodeMaxX, boxes[pos++]);
341
+ nodeMaxY = Math.max(nodeMaxY, boxes[pos++]);
342
+ }
343
+
344
+ // add the new node to the tree data
345
+ this._indices[this._pos >> 2] = nodeIndex;
346
+ boxes[this._pos++] = nodeMinX;
347
+ boxes[this._pos++] = nodeMinY;
348
+ boxes[this._pos++] = nodeMaxX;
349
+ boxes[this._pos++] = nodeMaxY;
350
+ }
351
+ }
352
+ }
353
+
354
+ /**
355
+ * Search the index by a bounding box.
356
+ * @param {number} minX
357
+ * @param {number} minY
358
+ * @param {number} maxX
359
+ * @param {number} maxY
360
+ * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.
361
+ * @returns {number[]} An array of indices of items intersecting or touching the given bounding box.
362
+ */
363
+ search(minX, minY, maxX, maxY, filterFn) {
364
+ if (this._pos !== this._boxes.length) {
365
+ throw new Error('Data not yet indexed - call index.finish().');
366
+ }
367
+
368
+ /** @type number | undefined */
369
+ let nodeIndex = this._boxes.length - 4;
370
+ const queue = [];
371
+ const results = [];
372
+
373
+ while (nodeIndex !== undefined) {
374
+ // find the end index of the node
375
+ const end = Math.min(nodeIndex + this.nodeSize * 4, upperBound(nodeIndex, this._levelBounds));
376
+
377
+ // search through child nodes
378
+ for (let /** @type number */ pos = nodeIndex; pos < end; pos += 4) {
379
+ // check if node bbox intersects with query bbox
380
+ if (maxX < this._boxes[pos]) continue; // maxX < nodeMinX
381
+ if (maxY < this._boxes[pos + 1]) continue; // maxY < nodeMinY
382
+ if (minX > this._boxes[pos + 2]) continue; // minX > nodeMaxX
383
+ if (minY > this._boxes[pos + 3]) continue; // minY > nodeMaxY
384
+
385
+ const index = this._indices[pos >> 2] | 0;
386
+
387
+ if (nodeIndex >= this.numItems * 4) {
388
+ queue.push(index); // node; add it to the search queue
389
+
390
+ } else if (filterFn === undefined || filterFn(index)) {
391
+ results.push(index); // leaf item
392
+ }
393
+ }
394
+
395
+ nodeIndex = queue.pop();
396
+ }
397
+
398
+ return results;
399
+ }
400
+
401
+ /**
402
+ * Search items in order of distance from the given point.
403
+ * @param {number} x
404
+ * @param {number} y
405
+ * @param {number} [maxResults=Infinity]
406
+ * @param {number} [maxDistance=Infinity]
407
+ * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.
408
+ * @returns {number[]} An array of indices of items found.
409
+ */
410
+ neighbors(x, y, maxResults = Infinity, maxDistance = Infinity, filterFn) {
411
+ if (this._pos !== this._boxes.length) {
412
+ throw new Error('Data not yet indexed - call index.finish().');
413
+ }
414
+
415
+ /** @type number | undefined */
416
+ let nodeIndex = this._boxes.length - 4;
417
+ const q = this._queue;
418
+ const results = [];
419
+ const maxDistSquared = maxDistance * maxDistance;
420
+
421
+ outer: while (nodeIndex !== undefined) {
422
+ // find the end index of the node
423
+ const end = Math.min(nodeIndex + this.nodeSize * 4, upperBound(nodeIndex, this._levelBounds));
424
+
425
+ // add child nodes to the queue
426
+ for (let pos = nodeIndex; pos < end; pos += 4) {
427
+ const index = this._indices[pos >> 2] | 0;
428
+
429
+ const dx = axisDist(x, this._boxes[pos], this._boxes[pos + 2]);
430
+ const dy = axisDist(y, this._boxes[pos + 1], this._boxes[pos + 3]);
431
+ const dist = dx * dx + dy * dy;
432
+ if (dist > maxDistSquared) continue;
433
+
434
+ if (nodeIndex >= this.numItems * 4) {
435
+ q.push(index << 1, dist); // node (use even id)
436
+
437
+ } else if (filterFn === undefined || filterFn(index)) {
438
+ q.push((index << 1) + 1, dist); // leaf item (use odd id)
439
+ }
440
+ }
441
+
442
+ // pop items from the queue
443
+ // @ts-expect-error q.length check eliminates undefined values
444
+ while (q.length && (q.peek() & 1)) {
445
+ const dist = q.peekValue();
446
+ // @ts-expect-error
447
+ if (dist > maxDistSquared) break outer;
448
+ // @ts-expect-error
449
+ results.push(q.pop() >> 1);
450
+ if (results.length === maxResults) break outer;
451
+ }
452
+
453
+ // @ts-expect-error
454
+ nodeIndex = q.length ? q.pop() >> 1 : undefined;
455
+ }
456
+
457
+ q.clear();
458
+ return results;
459
+ }
460
+ }
461
+
462
+ /**
463
+ * 1D distance from a value to a range.
464
+ * @param {number} k
465
+ * @param {number} min
466
+ * @param {number} max
467
+ */
468
+ function axisDist(k, min, max) {
469
+ return k < min ? min - k : k <= max ? 0 : k - max;
470
+ }
471
+
472
+ /**
473
+ * Binary search for the first value in the array bigger than the given.
474
+ * @param {number} value
475
+ * @param {number[]} arr
476
+ */
477
+ function upperBound(value, arr) {
478
+ let i = 0;
479
+ let j = arr.length - 1;
480
+ while (i < j) {
481
+ const m = (i + j) >> 1;
482
+ if (arr[m] > value) {
483
+ j = m;
484
+ } else {
485
+ i = m + 1;
486
+ }
487
+ }
488
+ return arr[i];
489
+ }
490
+
491
+ /**
492
+ * Custom quicksort that partially sorts bbox data alongside the hilbert values.
493
+ * @param {Uint32Array} values
494
+ * @param {InstanceType<TypedArrayConstructor>} boxes
495
+ * @param {Uint16Array | Uint32Array} indices
496
+ * @param {number} left
497
+ * @param {number} right
498
+ * @param {number} nodeSize
499
+ */
500
+ function sort(values, boxes, indices, left, right, nodeSize) {
501
+ if (Math.floor(left / nodeSize) >= Math.floor(right / nodeSize)) return;
502
+
503
+ const pivot = values[(left + right) >> 1];
504
+ let i = left - 1;
505
+ let j = right + 1;
506
+
507
+ while (true) {
508
+ do i++; while (values[i] < pivot);
509
+ do j--; while (values[j] > pivot);
510
+ if (i >= j) break;
511
+ swap(values, boxes, indices, i, j);
512
+ }
513
+
514
+ sort(values, boxes, indices, left, j, nodeSize);
515
+ sort(values, boxes, indices, j + 1, right, nodeSize);
516
+ }
517
+
518
+ /**
519
+ * Swap two values and two corresponding boxes.
520
+ * @param {Uint32Array} values
521
+ * @param {InstanceType<TypedArrayConstructor>} boxes
522
+ * @param {Uint16Array | Uint32Array} indices
523
+ * @param {number} i
524
+ * @param {number} j
525
+ */
526
+ function swap(values, boxes, indices, i, j) {
527
+ const temp = values[i];
528
+ values[i] = values[j];
529
+ values[j] = temp;
530
+
531
+ const k = 4 * i;
532
+ const m = 4 * j;
533
+
534
+ const a = boxes[k];
535
+ const b = boxes[k + 1];
536
+ const c = boxes[k + 2];
537
+ const d = boxes[k + 3];
538
+ boxes[k] = boxes[m];
539
+ boxes[k + 1] = boxes[m + 1];
540
+ boxes[k + 2] = boxes[m + 2];
541
+ boxes[k + 3] = boxes[m + 3];
542
+ boxes[m] = a;
543
+ boxes[m + 1] = b;
544
+ boxes[m + 2] = c;
545
+ boxes[m + 3] = d;
546
+
547
+ const e = indices[i];
548
+ indices[i] = indices[j];
549
+ indices[j] = e;
550
+ }
551
+
552
+ /**
553
+ * Fast Hilbert curve algorithm by http://threadlocalmutex.com/
554
+ * Ported from C++ https://github.com/rawrunprotected/hilbert_curves (public domain)
555
+ * @param {number} x
556
+ * @param {number} y
557
+ */
558
+ function hilbert(x, y) {
559
+ let a = x ^ y;
560
+ let b = 0xFFFF ^ a;
561
+ let c = 0xFFFF ^ (x | y);
562
+ let d = x & (y ^ 0xFFFF);
563
+
564
+ let A = a | (b >> 1);
565
+ let B = (a >> 1) ^ a;
566
+ let C = ((c >> 1) ^ (b & (d >> 1))) ^ c;
567
+ let D = ((a & (c >> 1)) ^ (d >> 1)) ^ d;
568
+
569
+ a = A; b = B; c = C; d = D;
570
+ A = ((a & (a >> 2)) ^ (b & (b >> 2)));
571
+ B = ((a & (b >> 2)) ^ (b & ((a ^ b) >> 2)));
572
+ C ^= ((a & (c >> 2)) ^ (b & (d >> 2)));
573
+ D ^= ((b & (c >> 2)) ^ ((a ^ b) & (d >> 2)));
574
+
575
+ a = A; b = B; c = C; d = D;
576
+ A = ((a & (a >> 4)) ^ (b & (b >> 4)));
577
+ B = ((a & (b >> 4)) ^ (b & ((a ^ b) >> 4)));
578
+ C ^= ((a & (c >> 4)) ^ (b & (d >> 4)));
579
+ D ^= ((b & (c >> 4)) ^ ((a ^ b) & (d >> 4)));
580
+
581
+ a = A; b = B; c = C; d = D;
582
+ C ^= ((a & (c >> 8)) ^ (b & (d >> 8)));
583
+ D ^= ((b & (c >> 8)) ^ ((a ^ b) & (d >> 8)));
584
+
585
+ a = C ^ (C >> 1);
586
+ b = D ^ (D >> 1);
587
+
588
+ let i0 = x ^ y;
589
+ let i1 = b | (0xFFFF ^ (i0 | a));
590
+
591
+ i0 = (i0 | (i0 << 8)) & 0x00FF00FF;
592
+ i0 = (i0 | (i0 << 4)) & 0x0F0F0F0F;
593
+ i0 = (i0 | (i0 << 2)) & 0x33333333;
594
+ i0 = (i0 | (i0 << 1)) & 0x55555555;
595
+
596
+ i1 = (i1 | (i1 << 8)) & 0x00FF00FF;
597
+ i1 = (i1 | (i1 << 4)) & 0x0F0F0F0F;
598
+ i1 = (i1 | (i1 << 2)) & 0x33333333;
599
+ i1 = (i1 | (i1 << 1)) & 0x55555555;
600
+
601
+ return ((i1 << 1) | i0) >>> 0;
602
+ }
603
+
604
+ /**
605
+ * @license
606
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
607
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
608
+ * as shown at https://oss.oracle.com/licenses/upl/
609
+ * @ignore
610
+ */
611
+ /**
612
+ * Gets the task spatial index.
613
+ * @param rowObjs The row layout objects (for the entier dataset).
614
+ * @returns The task spatial index.
615
+ */
616
+ const getTasksSpatialIndex = (rowObjs) => {
617
+ const numTasks = rowObjs.map((r) => r.taskObjs.length).reduce((a, b) => a + b, 0);
618
+ const index = new Flatbush(numTasks);
619
+ rowObjs.forEach((r) => r.taskObjs.forEach(({ overallStartTime, overallEndTime, y, height }) => {
620
+ index.add(overallStartTime, y, overallEndTime, y + height);
621
+ }));
622
+ index.finish();
623
+ return index;
624
+ };
625
+ /**
626
+ * Gets all spatial indices of the component.
627
+ * @param rowObjs The row layout objects (for the entier dataset).
628
+ * @returns The spatial indices.
629
+ */
630
+ const getSpatialIndex = (rowObjs) => {
631
+ // TODO: add more spatial indices for non task bar stuff
632
+ return {
633
+ tasks: getTasksSpatialIndex(rowObjs)
634
+ };
635
+ };
636
+ /**
637
+ * Returns the target task that overlaps with the given point.
638
+ * @param rowObjs The row layout objects (for the entier dataset).
639
+ * @param index The spatial index to query.
640
+ * @param param2 The point.
641
+ * @returns The target task.
642
+ */
643
+ const queryTasksSpatialIndex = (rowObjs, index, { time, y }) => {
644
+ const found = index.search(time, y, time, y);
645
+ if (found.length === 0)
646
+ return;
647
+ // TODO: Handle task overlaps. Not a problem yet for V1.
648
+ // Instead of depending on order gaurantees from Flatbush (there might not be any), we should
649
+ // just check chronological task order and overlap behavior (when we support that API)
650
+ // to figure out the topmost task in the search result.
651
+ let flatIndex = found[0];
652
+ // TODO: improve this with binary search
653
+ for (let i = 0; i < rowObjs.length; i++) {
654
+ const rowObj = rowObjs[i];
655
+ for (let j = 0; j < rowObj.taskObjs.length; j++) {
656
+ if (flatIndex === 0)
657
+ return { rowIndex: i, taskIndex: j };
658
+ flatIndex -= 1;
659
+ }
660
+ }
661
+ return;
662
+ };
663
+
664
+ /**
665
+ * Determines whether given two intervals overlap
666
+ * @param s1 interval 1 start
667
+ * @param e1 interval 1 end
668
+ * @param s2 interval 2 start
669
+ * @param e2 interval 2 end
670
+ * @param isClosedComparison True if closed interval comparison, else open
671
+ * @returns Whether the two intervals overlap
672
+ */
673
+ const isIntervalOverlap = (s1, e1, s2, e2, isClosedComparison = true) => (isClosedComparison ? s1 <= e2 && s2 <= e1 : s1 < e2 && s2 < e1);
674
+ /**
675
+ * Determines whether given two tasks overlap chronologically
676
+ * @param taskObj1 task layout object
677
+ * @param taskObj2 task layout object
678
+ * @returns Whether the two tasks overlap chronologically
679
+ */
680
+ const isOverlap = (taskObj1, taskObj2) => {
681
+ // Open interval comparison: if interval 1 ends at the same time interval 2 starts, they are still NOT overlapping.
682
+ return isIntervalOverlap(taskObj1.overallStartTime, taskObj1.overallEndTime, taskObj2.overallStartTime, taskObj2.overallEndTime, false);
683
+ };
684
+ /**
685
+ * Binary search for the index of the leftmost element that equals the target.
686
+ * If the target is not in the array, then the returned value is:
687
+ * - the index of rightmost element less than the target if approximateMode is 'predecessor'
688
+ * - the index of the leftmost element greater than the target if approximateMode is 'successor'
689
+ * Search is O(lgN), N being the length of the array.
690
+ * @param array The array
691
+ * @param target The target
692
+ * @param approximateMode The behavior if target is not in the array. 'predecessor' or 'successor'
693
+ * @returns The leftmost index at which the target is found, or the index of the predecessor/successor element as per approximateMode param
694
+ */
695
+ const binarySearchLeftMost = (array, target, approximateMode) => {
696
+ if (array.length === 0)
697
+ return 0;
698
+ let L = 0;
699
+ let R = array.length;
700
+ while (L < R) {
701
+ const m = Math.floor((L + R) / 2);
702
+ const value = array[m];
703
+ if (value < target)
704
+ L = m + 1;
705
+ else
706
+ R = m;
707
+ }
708
+ // If target is not in the array, then L at this point is the rank of the target in the array,
709
+ // i.e. the number of elements in the array that are less than the target.
710
+ if (L < array.length) {
711
+ const value = array[L];
712
+ if (value === target || approximateMode === 'successor')
713
+ return L;
714
+ }
715
+ // L - 1 would give the index of the rightmost element less than the target (predecessor)
716
+ return L > 0 ? L - 1 : 0;
717
+ };
718
+ /**
719
+ * Finds the minimum and maximum row indices relevant to the given viewport bounds
720
+ * @param rowYs The row y coords
721
+ * @param yMin The minimum y bound
722
+ * @param yMax The maximum y bound
723
+ * @returns The minimum and maximum row indices
724
+ */
725
+ const findRowIndRange = (rowYs, yMin, yMax) => {
726
+ // O(lgN) binary search for first row (intersecting yMin)
727
+ const minRowInd = binarySearchLeftMost(rowYs, yMin, 'predecessor');
728
+ let maxRowInd = minRowInd;
729
+ // linear search from that row to search for last row (intersecting yMax)
730
+ for (let i = minRowInd; i < rowYs.length; i++) {
731
+ if (rowYs[i] <= yMax) {
732
+ maxRowInd = i;
733
+ }
734
+ else {
735
+ break;
736
+ }
737
+ }
738
+ return { minRowInd, maxRowInd };
739
+ };
740
+ /**
741
+ * Gets the height of an empty row.
742
+ * @param resolvedVars The resolved CSS vars.
743
+ * @returns The height of an empty row.
744
+ */
745
+ const getEmptyRowHeight = (resolvedVars) => resolvedVars.rowPaddingTop + resolvedVars.taskHeight + resolvedVars.rowPaddingBottom;
746
+ /**
747
+ * Computes the vertical layout of the given row and its tasks.
748
+ * This method modifies the given task layout objects with resolved layout information.
749
+ * @param param0
750
+ * @returns The resolved height of the row.
751
+ */
752
+ const calcRowTaskVerticalLayout = ({ rowHeight, rowY, taskObjs, resolvedVars }) => {
753
+ if (taskObjs.length === 0)
754
+ return getEmptyRowHeight(resolvedVars);
755
+ taskObjs[0].rowLevel = 0;
756
+ taskObjs[0].y = 0;
757
+ const overlapChains = [[taskObjs[0]]];
758
+ const rowLevelRecentTaskObjs = [taskObjs[0]];
759
+ for (let i = 1; i < taskObjs.length; i++) {
760
+ const taskObj = taskObjs[i];
761
+ // Handle properly in the future when we support these APIs
762
+ const overlapBehavior = 'stack';
763
+ const previousTaskObj = taskObjs[i - 1];
764
+ const thisOverlapsPrevious = isOverlap(taskObj, previousTaskObj);
765
+ if (thisOverlapsPrevious) {
766
+ overlapChains[overlapChains.length - 1].push(taskObj);
767
+ }
768
+ else {
769
+ overlapChains.push([taskObj]);
770
+ }
771
+ let rowLevel = 0;
772
+ let previousAdjacentTaskObj;
773
+ switch (overlapBehavior) {
774
+ case 'stack': {
775
+ let promote = true;
776
+ for (let j = 0; j < rowLevelRecentTaskObjs.length; j++) {
777
+ previousAdjacentTaskObj = undefined;
778
+ if (isOverlap(taskObj, rowLevelRecentTaskObjs[j])) {
779
+ rowLevel += 1;
780
+ }
781
+ else {
782
+ previousAdjacentTaskObj = rowLevelRecentTaskObjs[j];
783
+ rowLevelRecentTaskObjs[j] = taskObj;
784
+ promote = false;
785
+ break;
786
+ }
787
+ }
788
+ if (promote) {
789
+ rowLevelRecentTaskObjs.push(taskObj);
790
+ }
791
+ taskObj.y = 0;
792
+ if (previousAdjacentTaskObj) {
793
+ taskObj.previousAdjacentTaskObj = previousAdjacentTaskObj;
794
+ previousAdjacentTaskObj.nextAdjacentTaskObj = taskObj;
795
+ }
796
+ break;
797
+ }
798
+ // More cases in the future when we support the overlap behavior APIs
799
+ default: {
800
+ const _exhaustiveCheck = overlapBehavior;
801
+ return _exhaustiveCheck;
802
+ }
803
+ }
804
+ taskObj.rowLevel = rowLevel;
805
+ }
806
+ // Add padding to task y when row height is not fixed
807
+ const rowPaddingTop = resolvedVars.rowPaddingTop;
808
+ const rowPaddingBottom = resolvedVars.rowPaddingBottom;
809
+ const rowLevelHeights = rowLevelRecentTaskObjs.map(() => 0);
810
+ if (rowHeight === undefined) {
811
+ // Figure out offset based on row level height
812
+ {
813
+ taskObjs.forEach((taskObj) => {
814
+ if (taskObj.height > rowLevelHeights[taskObj.rowLevel]) {
815
+ rowLevelHeights[taskObj.rowLevel] = taskObj.height;
816
+ }
817
+ });
818
+ const rowLevelCumHeightsWithPadding = rowLevelHeights
819
+ .map((rowLevelHeight) => rowLevelHeight + rowPaddingTop + rowPaddingBottom)
820
+ .reduce((acc, curr, i) => {
821
+ acc.push((acc[i - 1] || 0) + curr);
822
+ return acc;
823
+ }, []);
824
+ taskObjs.forEach((taskObj) => {
825
+ taskObj.y += (rowLevelCumHeightsWithPadding[taskObj.rowLevel - 1] || 0) + rowPaddingTop;
826
+ });
827
+ }
828
+ }
829
+ const overlapChainHeights = overlapChains.map((chain) => {
830
+ let chainHeight = 0;
831
+ chain.forEach((chainTaskObj) => {
832
+ const distanceFromBottomToRowTop = chainTaskObj.y + chainTaskObj.height;
833
+ if (distanceFromBottomToRowTop > chainHeight) {
834
+ chainHeight = distanceFromBottomToRowTop;
835
+ }
836
+ });
837
+ return chainHeight;
838
+ });
839
+ let resolvedRowHeight;
840
+ if (rowHeight === undefined) {
841
+ // Grow the row height to accommodate everything
842
+ resolvedRowHeight =
843
+ overlapChainHeights.reduce((a, b) => {
844
+ return Math.max(a, b);
845
+ }) + rowPaddingTop;
846
+ // If no overlapping offset specified: Mid align task within its row level
847
+ {
848
+ overlapChains.forEach((chain) => {
849
+ chain.forEach((taskObj) => {
850
+ const rowLevelHeight = rowLevelHeights[taskObj.rowLevel];
851
+ taskObj.y += (rowLevelHeight - taskObj.height) / 2 + rowY;
852
+ });
853
+ });
854
+ }
855
+ }
856
+ else {
857
+ // Fix the row height and mid align everything
858
+ resolvedRowHeight = rowHeight;
859
+ overlapChains.forEach((chain, i) => {
860
+ const chainHeight = overlapChainHeights[i];
861
+ let minTaskY = Number.MAX_VALUE;
862
+ chain.forEach((taskObj) => {
863
+ taskObj.y += Math.floor((resolvedRowHeight - taskObj.height) / 2);
864
+ if (taskObj.y < minTaskY) {
865
+ minTaskY = taskObj.y;
866
+ }
867
+ });
868
+ const offsetFromRowCenter = Math.floor((resolvedRowHeight - chainHeight) / 2) - minTaskY;
869
+ chain.forEach((taskObj) => {
870
+ taskObj.y += rowY + offsetFromRowCenter;
871
+ });
872
+ });
873
+ }
874
+ return resolvedRowHeight;
875
+ };
876
+ /**
877
+ * Computes the (unresolved) task labels layout.
878
+ * This method modifies the given task layout objects with resolved layout information.
879
+ * @param taskObjs The task layout object.
880
+ * @param rowData The rows data.
881
+ */
882
+ const calcTaskLabelLayout = (taskObjs, rowData) => {
883
+ // TODO: Support other label positions when we get to exposing those APIs
884
+ // For now, just take care of label position "innerCenter"
885
+ taskObjs.forEach((taskObj) => {
886
+ const { index, rowIndex } = taskObj;
887
+ const labelText = rowData[rowIndex].tasks[index].label;
888
+ if (labelText) {
889
+ taskObj.labelObj = {
890
+ startTime: taskObj.startTime,
891
+ endTime: taskObj.endTime,
892
+ label: labelText,
893
+ isInner: true,
894
+ position: 'center' // Future: unless inner, 'start' if labelPosition is 'end', 'end if labelPosition is 'start'
895
+ // TODO: Handle contrast color
896
+ };
897
+ }
898
+ });
899
+ };
900
+ /**
901
+ * Computes the resolved task label layout given the unresolved label layout and the viewport.
902
+ * @param labelObj The unresolved label layout object.
903
+ * @param labelStyle The label style.
904
+ * @param y The y position of the task.
905
+ * @param height The height of the task.
906
+ * @param viewportStartTime The viewport start time.
907
+ * @param viewportEndTime The viewport end time.
908
+ * @param viewportWidth The viewport width.
909
+ * @param isRTL Whether the reading direction is rtl.
910
+ * @returns The resolved label layout object.
911
+ */
912
+ const getResolvedTaskLabelLayout = (labelObj, labelStyle, y, height, viewportStartTime, viewportEndTime, viewportWidth, isRTL) => {
913
+ if (!labelObj)
914
+ return;
915
+ const startPos = TimeComponentCanvas2D.getTimePosition(labelObj.startTime, viewportStartTime, viewportEndTime, viewportWidth, isRTL);
916
+ const endPos = TimeComponentCanvas2D.getTimePosition(labelObj.endTime, viewportStartTime, viewportEndTime, viewportWidth, isRTL);
917
+ let textAlign;
918
+ switch (labelObj.position) {
919
+ case 'center':
920
+ textAlign = 'center';
921
+ break;
922
+ case 'start':
923
+ textAlign = isRTL ? 'right' : 'left';
924
+ break;
925
+ case 'end':
926
+ textAlign = isRTL ? 'left' : 'right';
927
+ break;
928
+ default: {
929
+ const _exhaustiveCheck = labelObj.position;
930
+ return _exhaustiveCheck;
931
+ }
932
+ }
933
+ return {
934
+ x: isRTL ? endPos : startPos,
935
+ y,
936
+ width: isRTL ? startPos - endPos : endPos - startPos,
937
+ height,
938
+ label: labelObj.label,
939
+ isInner: labelObj.isInner,
940
+ textAlign,
941
+ labelStyle
942
+ };
943
+ };
944
+ /**
945
+ * Gets normalized start and end date strings from props,
946
+ * e.g. one of them may be undefined in the props, but that really means both
947
+ * start and end are the same.
948
+ * @param task The task data containing the start and end date strings.
949
+ * @returns Normalized start and end date strings.
950
+ */
951
+ const getNormalizedStartEnd = (task) => {
952
+ const start = task.start ? task.start : task.end;
953
+ const end = task.end ? task.end : task.start;
954
+ return { start, end };
955
+ };
956
+ /**
957
+ * Returns whether selection is supported given the selection mode.
958
+ * @param selectionMode The selection mode from props.
959
+ * @returns Whether selection is supported.
960
+ */
961
+ const supportsSelection = (selectionMode) => {
962
+ return !!(selectionMode && selectionMode !== 'none');
963
+ };
964
+ /**
965
+ * Gets the (unresolved) rows data layout. Note that this is done for all rows in the data.
966
+ * @param rowData The rows data.
967
+ * @param resolvedVars The resolved CSS vars.
968
+ * @param gridlines The gridlines prop value.
969
+ * @param selectionProps The selection related props.
970
+ * @returns The (unresolved) rows data layout.
971
+ */
972
+ const getRowDataLayout = (rowData, resolvedVars, gridlines, selectionProps) => {
973
+ const selectionEnabled = supportsSelection(selectionProps.selectionMode);
974
+ const selectedIds = new Set(selectionProps.selectedIds);
975
+ let rowY = 0;
976
+ const rowObjs = rowData.map((row, i) => {
977
+ const taskObjs = row.tasks.map((task, j) => {
978
+ const { start, end } = getNormalizedStartEnd(task);
979
+ const startTime = TimeComponentCanvas2D.parseDate(start);
980
+ const endTime = TimeComponentCanvas2D.parseDate(end);
981
+ return {
982
+ id: task.id,
983
+ renderIndex: 0, // calculated downstream
984
+ index: j,
985
+ rowIndex: i,
986
+ y: -1, // calculated downstream
987
+ startTime,
988
+ endTime,
989
+ overallStartTime: startTime,
990
+ overallEndTime: endTime,
991
+ rowLevel: 0, // calculated downstream
992
+ height: task.height !== undefined ? task.height : resolvedVars.taskHeight,
993
+ borderRadius: task.borderRadius !== undefined
994
+ ? task.borderRadius.toString()
995
+ : resolvedVars.taskBorderRadius,
996
+ fill: task.color ? task.color : resolvedVars.taskBgColor,
997
+ stroke: resolvedVars.taskBorderColor,
998
+ strokeWidth: 1,
999
+ isSelectable: selectionEnabled,
1000
+ isSelected: selectedIds.has(task.id),
1001
+ selectionEffect: {
1002
+ stroke: resolvedVars.taskEffectBorderColor,
1003
+ strokeWidth: 2,
1004
+ padding: 2
1005
+ },
1006
+ hoverEffect: {
1007
+ stroke: resolvedVars.taskEffectBorderColor,
1008
+ strokeWidth: 1,
1009
+ padding: 0,
1010
+ shadow: {
1011
+ ...resolvedVars.taskEffectBoxShadow
1012
+ }
1013
+ },
1014
+ focusEffect: {
1015
+ stroke: resolvedVars.taskEffectBorderColor,
1016
+ strokeWidth: 1,
1017
+ padding: 2
1018
+ }
1019
+ };
1020
+ });
1021
+ taskObjs.sort((a, b) => a.startTime - b.startTime);
1022
+ taskObjs.forEach((t, i) => (t.renderIndex = i));
1023
+ const resolvedRowHeight = calcRowTaskVerticalLayout({
1024
+ rowHeight: row.height,
1025
+ rowY,
1026
+ taskObjs,
1027
+ resolvedVars
1028
+ });
1029
+ calcTaskLabelLayout(taskObjs, rowData);
1030
+ const rowObj = {
1031
+ id: row.id,
1032
+ y: rowY,
1033
+ height: resolvedRowHeight,
1034
+ index: i,
1035
+ isSelected: taskObjs.some((t) => t.isSelected),
1036
+ taskObjs
1037
+ };
1038
+ const horizontalLineHeightOffset = gridlines.horizontal === 'on' ? 1 : 0;
1039
+ rowY += resolvedRowHeight + horizontalLineHeightOffset;
1040
+ return rowObj;
1041
+ });
1042
+ const lastRowLayoutObj = rowObjs[rowObjs.length - 1];
1043
+ const totalRowsHeight = lastRowLayoutObj ? lastRowLayoutObj.y + lastRowLayoutObj.height : 0;
1044
+ const idTaskObjMap = new Map();
1045
+ rowObjs.forEach((rowObj) => rowObj.taskObjs.forEach((taskObj) => idTaskObjMap.set(taskObj.id, taskObj)));
1046
+ const idRowObjMap = new Map();
1047
+ rowObjs.forEach((rowObj) => idRowObjMap.set(rowObj.id, rowObj));
1048
+ const spatialIndex = getSpatialIndex(rowObjs);
1049
+ return {
1050
+ rowData,
1051
+ rowObjs,
1052
+ rowPadding: resolvedVars.rowPaddingTop,
1053
+ totalRowsHeight,
1054
+ gridlines,
1055
+ spatialIndex,
1056
+ idRowObjMap,
1057
+ idTaskObjMap,
1058
+ getTaskDataById: (id) => {
1059
+ const data = idTaskObjMap.get(id);
1060
+ return data && rowData[data.rowIndex].tasks[data.index];
1061
+ }
1062
+ };
1063
+ };
1064
+ /**
1065
+ * Gets the corresponding task layout object given the id of the tasks, for each effect.
1066
+ * @param effectProps The task ids associated with each effect.
1067
+ * @param idTaskObjMap A Map between task ids and task layout objects.
1068
+ * @returns The task layout objects for each effect.
1069
+ */
1070
+ const getEffectTaskObjs = (effectProps, idTaskObjMap) => {
1071
+ // TODO: Decide whether the task selection source of truth should be in
1072
+ // the rowObjs layout, or determined dynamically here, or both.
1073
+ // Right now it's in both places.
1074
+ // Let's decide after we figure out where eactly to memo for performance.
1075
+ //
1076
+ // Note we're rendering selectedIds regardless of selectionMode.
1077
+ const selectedIds = effectProps.selectionProps.selectedIds || [];
1078
+ const selectedTaskObjs = [];
1079
+ selectedIds.forEach((id) => {
1080
+ const selectedTaskObj = idTaskObjMap.get(id);
1081
+ if (selectedTaskObj)
1082
+ selectedTaskObjs.push(selectedTaskObj);
1083
+ });
1084
+ const hoveredId = supportsSelection(effectProps.selectionProps.selectionMode)
1085
+ ? effectProps.hoverProps.hoveredTaskId
1086
+ : undefined;
1087
+ const hoveredTaskObj = hoveredId !== undefined ? idTaskObjMap.get(hoveredId) : undefined;
1088
+ const currentTask = effectProps.currentProps.currentTask;
1089
+ const isTaskFocused = currentTask?.isFocused === true;
1090
+ const currentTaskId = currentTask?.id;
1091
+ const focusedTaskObj = isTaskFocused && currentTaskId !== undefined ? idTaskObjMap.get(currentTaskId) : undefined;
1092
+ return {
1093
+ selectedTaskObjs,
1094
+ hoveredTaskObj,
1095
+ focusedTaskObj
1096
+ };
1097
+ };
1098
+ /**
1099
+ * Gets the resolved task layout object for the given viewport, given the unresolved task layout object.
1100
+ * @param taskObj The unresolved task layout object.
1101
+ * @param viewportStartTime The viewport start time.
1102
+ * @param viewportEndTime The viewport end time.
1103
+ * @param viewportWidth The viewport width.
1104
+ * @param scrollPosition The scroll position.
1105
+ * @param isRTL Whether the reading direction is rtl.
1106
+ * @returns The resolved task layout object.
1107
+ */
1108
+ const getResolvedTaskObj = (taskObj, viewportStartTime, viewportEndTime, viewportWidth, scrollPosition, isRTL) => {
1109
+ const startPos = TimeComponentCanvas2D.getTimePosition(taskObj.startTime, viewportStartTime, viewportEndTime, viewportWidth, isRTL);
1110
+ const endPos = TimeComponentCanvas2D.getTimePosition(taskObj.endTime, viewportStartTime, viewportEndTime, viewportWidth, isRTL);
1111
+ return {
1112
+ ...taskObj,
1113
+ x: isRTL ? endPos : startPos,
1114
+ y: taskObj.y - scrollPosition,
1115
+ width: isRTL ? startPos - endPos : endPos - startPos
1116
+ };
1117
+ };
1118
+ /**
1119
+ * Gets the resolved rows data layout for the given viewport.
1120
+ * @param rowDataLayout The unresolved rows data layout object for all data.
1121
+ * @param viewportStartTime The viewport start time.
1122
+ * @param viewportEndTime The viewport end time.
1123
+ * @param scrollPosition The scroll position.
1124
+ * @param viewportWidth The viewport width.
1125
+ * @param viewportHeight The viewport height.
1126
+ * @param isRTL Whether the reading direction is rtl.
1127
+ * @returns The resolved rows data layout for the given viewport.
1128
+ */
1129
+ const getResolvedViewportLayout = (rowDataLayout, viewportStartTime, viewportEndTime, scrollPosition, viewportWidth, viewportHeight, isRTL) => {
1130
+ const viewportYMin = scrollPosition;
1131
+ const viewportYMax = scrollPosition + viewportHeight;
1132
+ const rowYs = rowDataLayout.rowObjs.map((r) => r.y);
1133
+ const { minRowInd, maxRowInd } = findRowIndRange(rowYs, viewportYMin, viewportYMax);
1134
+ const viewportRowsLayout = [];
1135
+ for (let i = minRowInd; i <= maxRowInd; i++) {
1136
+ const rowObj = rowDataLayout.rowObjs[i];
1137
+ const viewportTaskObjs = rowObj.taskObjs.filter(({ overallStartTime, overallEndTime }) => isIntervalOverlap(overallStartTime, overallEndTime, viewportStartTime, viewportEndTime));
1138
+ const resolvedViewportTaskObjs = viewportTaskObjs.map((taskObj) => getResolvedTaskObj(taskObj, viewportStartTime, viewportEndTime, viewportWidth, scrollPosition, isRTL));
1139
+ const resolvedViewportRowObjs = {
1140
+ ...rowObj,
1141
+ y: rowObj.y - scrollPosition,
1142
+ taskObjs: resolvedViewportTaskObjs
1143
+ };
1144
+ viewportRowsLayout.push(resolvedViewportRowObjs);
1145
+ }
1146
+ const viewportTaskLabelsLayout = [];
1147
+ viewportRowsLayout.forEach((rowObj) => {
1148
+ rowObj.taskObjs.forEach(({ index, rowIndex, labelObj, y, height }) => {
1149
+ const labelStyle = rowDataLayout.rowData[rowIndex].tasks[index].labelStyle;
1150
+ const labelLayout = getResolvedTaskLabelLayout(labelObj, labelStyle, y, height, viewportStartTime, viewportEndTime, viewportWidth, isRTL);
1151
+ if (labelLayout)
1152
+ viewportTaskLabelsLayout.push(labelLayout);
1153
+ });
1154
+ });
1155
+ // due to pixel hinting, odd value stroke width needs it's position to be offset by 0.5 to ensure consistent behavior across browsers
1156
+ // i.e. pos = pos + (strokeWidth % 2) * 0.5
1157
+ // e.g. stroke-width of 1px means 0.5px above and below the reference coordinate. With pixel hinting, some browsers
1158
+ // renders 1px above the reference, some renders 1px below the reference. If we offset the reference by 0.5px, the stroke location
1159
+ // becomes unambiguous (it'll lock onto whole pixel grid) so all browsers will render this consistently.
1160
+ const horizontalGridlinesPos = rowDataLayout.gridlines.horizontal === 'on'
1161
+ ? viewportRowsLayout.map(({ y, height }) => y + height + 0.5)
1162
+ : undefined;
1163
+ const idTaskObjMap = new Map();
1164
+ viewportRowsLayout.forEach((rowObj) => rowObj.taskObjs.forEach((taskObj) => idTaskObjMap.set(taskObj.id, taskObj)));
1165
+ return {
1166
+ spatialIndex: rowDataLayout.spatialIndex,
1167
+ gridlines: rowDataLayout.gridlines,
1168
+ horizontalGridlinesPos,
1169
+ rowData: rowDataLayout.rowData,
1170
+ allRowObjs: rowDataLayout.rowObjs,
1171
+ allIdTaskObjMap: rowDataLayout.idTaskObjMap,
1172
+ allIdRowObjMap: rowDataLayout.idRowObjMap,
1173
+ rowPadding: rowDataLayout.rowPadding,
1174
+ rowObjs: viewportRowsLayout,
1175
+ taskLabelObjs: viewportTaskLabelsLayout,
1176
+ idTaskObjMap,
1177
+ getTaskDataById: rowDataLayout.getTaskDataById
1178
+ };
1179
+ };
1180
+
1181
+ /**
1182
+ * @license
1183
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1184
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1185
+ * as shown at https://oss.oracle.com/licenses/upl/
1186
+ * @ignore
1187
+ */
1188
+ /**
1189
+ * Gets the default aria label for the task.
1190
+ * @param taskObj The task layout object.
1191
+ * @param rowData The rows data.
1192
+ * @param dateFormatter The date formatter.
1193
+ * @param translations The translations bundle.
1194
+ * @returns The default aria label.
1195
+ */
1196
+ const getDefaultTaskAccessibleLabel = (taskObj, rowData,
1197
+ // TODO: take valueFormats instead of dateFormatter when we support the API
1198
+ dateFormatter, translations) => {
1199
+ const row = rowData[taskObj.rowIndex];
1200
+ const task = row.tasks[taskObj.index];
1201
+ const { start, end } = getNormalizedStartEnd(task);
1202
+ const isMilestone = start === end;
1203
+ const desc = [];
1204
+ if (row.label) {
1205
+ const rowDesc = translations.vis_labelAndValue({
1206
+ LABEL: translations.gantt_labelRow(),
1207
+ VALUE: row.label
1208
+ });
1209
+ desc.push(rowDesc);
1210
+ }
1211
+ if (!isMilestone) {
1212
+ const startDesc = translations.vis_labelAndValue({
1213
+ LABEL: translations.gantt_labelStart(),
1214
+ VALUE: dateFormatter(start)
1215
+ });
1216
+ const endDesc = translations.vis_labelAndValue({
1217
+ LABEL: translations.gantt_labelEnd(),
1218
+ VALUE: dateFormatter(end)
1219
+ });
1220
+ desc.push(startDesc);
1221
+ desc.push(endDesc);
1222
+ }
1223
+ else {
1224
+ const dateDesc = translations.vis_labelAndValue({
1225
+ LABEL: translations.gantt_labelDate(),
1226
+ VALUE: dateFormatter(start)
1227
+ });
1228
+ desc.push(dateDesc);
1229
+ }
1230
+ if (task.label) {
1231
+ const labelDesc = translations.vis_labelAndValue({
1232
+ LABEL: translations.gantt_labelLabel(),
1233
+ VALUE: task.label
1234
+ });
1235
+ desc.push(labelDesc);
1236
+ }
1237
+ return desc.join('; ');
1238
+ };
1239
+ /**
1240
+ * Gets the aria label for the task.
1241
+ * @param taskObj The task layout object.
1242
+ * @param rowData The rows data.
1243
+ * @param dateFormatter The date formatter.
1244
+ * @param translations The translations bundle.
1245
+ * @returns The aria label for the task.
1246
+ */
1247
+ const getTaskAriaLabel = (taskObj, rowData, dateFormatter, translations) => {
1248
+ const data = rowData[taskObj.rowIndex].tasks[taskObj.index];
1249
+ const accessibleLabel = data.accessibleLabel !== undefined
1250
+ ? data.accessibleLabel
1251
+ : getDefaultTaskAccessibleLabel(taskObj, rowData, dateFormatter, translations);
1252
+ return accUtils.generateAriaLabel(translations, accessibleLabel, { isSelected: taskObj.isSelected });
1253
+ };
1254
+ /**
1255
+ * Gets the aria label for the row label
1256
+ * @param rowObj The row layout object.
1257
+ * @param rowData The rows data.
1258
+ * @returns The aria label for the row label.
1259
+ */
1260
+ const getRowLabelAriaLabel = (rowObj, rowData) => {
1261
+ // TODO: There will be states when we support tree data
1262
+ const data = rowData[rowObj.index];
1263
+ const accessibleLabel = data.accessibleLabel || data.label;
1264
+ return accessibleLabel;
1265
+ };
1266
+
1267
+ function GanttRowLabelContainer({ rowObj, rowData, isRowSelected, isFocused, isHorizontalGridlinesVisible, ariaActive, children }) {
1268
+ const ariaLabel = getRowLabelAriaLabel(rowObj, rowData);
1269
+ return (jsxRuntime.jsx("div", { id: ariaActive?.dataId === rowObj.id ? ariaActive.ariaId : undefined, "data-oj-row-index": rowObj.index, role: "row", "aria-label": ariaLabel, class: classNames.classNames([
1270
+ UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.labelContainer,
1271
+ isRowSelected && UNSAFE_Gantt_themes_GanttStyles_css.rowBackgroundStyles.selected,
1272
+ isFocused && UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.labelContainerFocused,
1273
+ isHorizontalGridlinesVisible && UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.withLabelSeparatorBottom
1274
+ ]), children: jsxRuntime.jsx("div", { role: "rowheader", children: children }) }, rowObj.id));
1275
+ }
1276
+
1277
+ /**
1278
+ * The hook to support custom datatip in visualization components.
1279
+ * TODO: THIS IS A TEMPORARY FORK OF PRIVATE_useDatatip until Gantt moves state up.
1280
+ */
1281
+ function useDatatip({ content, placement = 'top-end-corner', offset, borderColor, anchor, targetFocusRef }) {
1282
+ const uniqueIdRef = hooks.useRef(useId.useId());
1283
+ const [coords, setCoords] = hooks.useState({ x: 0, y: 0 });
1284
+ const offsetValue = offset || { mainAxis: datatipUtils.DATATIP_OFFSET, crossAxis: -1 * datatipUtils.DATATIP_OFFSET };
1285
+ const targetRef = hooks.useRef(null);
1286
+ const onPointerMove = (event) => {
1287
+ setCoords({ x: event.clientX, y: event.clientY });
1288
+ };
1289
+ const onFocus = (event) => {
1290
+ if (event.eventPhase === Event.AT_TARGET || event.eventPhase === Event.BUBBLING_PHASE) {
1291
+ targetRef.current = event.target;
1292
+ }
1293
+ };
1294
+ const onShowFocusDatatip = () => {
1295
+ targetRef.current = targetFocusRef.current;
1296
+ };
1297
+ const onPointerEnter = (event) => {
1298
+ if (event.eventPhase === Event.AT_TARGET || event.eventPhase === Event.BUBBLING_PHASE) {
1299
+ targetRef.current = event.currentTarget;
1300
+ }
1301
+ };
1302
+ // TODO: Why don't others need this? Find a way to remove this workaround
1303
+ const onPointerLeave = () => {
1304
+ setCoords({ x: -10000, y: -10000 });
1305
+ };
1306
+ const anchorRef = anchor === 'element' ? targetRef : { current: coords };
1307
+ const datatipContent = content != null ? (jsxRuntime.jsx(Layer.Layer, { children: jsxRuntime.jsx(Floating.Floating, { anchorRef: anchorRef, placement: placement, offsetValue: offsetValue, flipOptions: { crossAxis: true, mainAxis: true }, shiftOptions: { crossAxis: false, mainAxis: false }, children: jsxRuntime.jsx("div", { id: uniqueIdRef.current, className: hooks_PRIVATE_useDatatip_themes_useDatatip_css.styles.visDatatipStyle, style: { borderColor }, children: content }) }) })) : null;
1308
+ return {
1309
+ datatipContent,
1310
+ datatipProps: {
1311
+ 'aria-describedby': uniqueIdRef.current,
1312
+ onPointerEnter,
1313
+ onPointerLeave,
1314
+ onPointerMove,
1315
+ onFocus,
1316
+ onShowFocusDatatip
1317
+ }
1318
+ };
1319
+ }
1320
+
1321
+ /**
1322
+ * @license
1323
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1324
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1325
+ * as shown at https://oss.oracle.com/licenses/upl/
1326
+ * @ignore
1327
+ */
1328
+ /**
1329
+ * Hook that handles row label datatip.
1330
+ */
1331
+ const useGanttRowLabelDatatip = ({ targetRef, rowData, hoveredRowObj, focusedRowObj, currentRowLabelInteraction, rowAxisRegion }) => {
1332
+ const { direction } = useUser.useUser();
1333
+ const isRTL = direction === 'rtl';
1334
+ const config = {
1335
+ hover: {
1336
+ rowObj: hoveredRowObj,
1337
+ anchor: 'pointer'
1338
+ },
1339
+ focus: {
1340
+ rowObj: focusedRowObj,
1341
+ anchor: 'element'
1342
+ },
1343
+ none: {
1344
+ rowObj: undefined,
1345
+ anchor: 'pointer'
1346
+ }
1347
+ };
1348
+ const { anchor, rowObj: activeRowObj } = config[currentRowLabelInteraction];
1349
+ const content = activeRowObj ? rowData[activeRowObj.index].accessibleLabel : undefined;
1350
+ const elementBounds = activeRowObj && anchor === 'element'
1351
+ ? {
1352
+ x: 0,
1353
+ y: activeRowObj.y + rowAxisRegion.y,
1354
+ width: rowAxisRegion.w,
1355
+ height: activeRowObj.height
1356
+ }
1357
+ : undefined;
1358
+ return useDatatip({
1359
+ content,
1360
+ anchor,
1361
+ placement: 'top-start',
1362
+ offset: layoutUtils.calculateOffset(isRTL, rowAxisRegion.w, elementBounds),
1363
+ targetFocusRef: targetRef
1364
+ });
1365
+ };
1366
+
1367
+ /**
1368
+ * Hook that handles row labels pointer gestures.
1369
+ */
1370
+ const useGanttRowLabelPointerGestures = ({ rowObjs, hoverProps }) => {
1371
+ const idExtracter = (event) => {
1372
+ const { clientX: x, clientY: y } = event;
1373
+ // Just for fun, an alternative to getInfo -> getElementData that Chart is doing.
1374
+ // TODO: think about whether this is more useful if we were to have a
1375
+ // Visualization shared "points to elements" system. At face value, this actually might be slightly less
1376
+ // efficient than the Chart method right now *in general*, because elementsFromPoint gives us ancestors
1377
+ // beyond the root. For our row labels purpose however, there's no "non-rowlabel" whitespace
1378
+ // so we'll definitely hit the element we want in like 2ish iterations so poor performance is not a concern.
1379
+ const elements = document.elementsFromPoint(x, y);
1380
+ for (let i = 0; i < elements.length; i++) {
1381
+ const dataRowIndex = elements[i].dataset['ojRowIndex'];
1382
+ if (dataRowIndex) {
1383
+ return rowObjs[Number(dataRowIndex)].id;
1384
+ }
1385
+ }
1386
+ return undefined;
1387
+ };
1388
+ const onPointerMove = (event) => {
1389
+ const id = idExtracter(event);
1390
+ if (id !== hoverProps.hoveredRowLabelId) {
1391
+ hoverProps.onRowLabelHoverChange({ id });
1392
+ }
1393
+ };
1394
+ return { onPointerMove };
1395
+ };
1396
+
1397
+ function GanttRowAxis({ innerRef, scrollPosition, resolvedWidth, resolvedMaxWidth, currentRowLabel, currentRowLabelInteraction, hoveredRowLabelId, onRowLabelHoverChange, layoutObj: { labelPaddingInlineStart, labelPaddingInlineEnd, rowData, rowObjs, idRowObjMap, isHorizontalGridlinesVisible }, ariaActive, children }) {
1398
+ const width = resolvedWidth !== Infinity ? resolvedWidth : undefined;
1399
+ const maxWidth = resolvedMaxWidth !== Infinity ? resolvedMaxWidth : undefined;
1400
+ const availableWidth = Math.min(resolvedWidth, resolvedMaxWidth);
1401
+ const contextMaxWidth = availableWidth === Infinity
1402
+ ? -1
1403
+ : availableWidth - (labelPaddingInlineStart + labelPaddingInlineEnd);
1404
+ const gestureProps = useGanttRowLabelPointerGestures({
1405
+ rowObjs,
1406
+ hoverProps: { hoveredRowLabelId, onRowLabelHoverChange }
1407
+ });
1408
+ const { datatipContent, datatipProps } = useGanttRowLabelDatatip({
1409
+ rowData,
1410
+ hoveredRowObj: hoveredRowLabelId && idRowObjMap.get(hoveredRowLabelId),
1411
+ focusedRowObj: currentRowLabel?.isFocused ? idRowObjMap.get(currentRowLabel.id) : undefined,
1412
+ currentRowLabelInteraction,
1413
+ // TODO: Evaluate whether we should get real element bounds by measuring.
1414
+ // It's unfortunate that we need to measure JUST for keyboard datatip positioning...
1415
+ rowAxisRegion: {
1416
+ x: 0,
1417
+ y: -scrollPosition,
1418
+ w: (labelPaddingInlineStart + labelPaddingInlineEnd) * 2,
1419
+ h: -1
1420
+ },
1421
+ targetRef: innerRef
1422
+ });
1423
+ return (jsxRuntime.jsxs("div", { ref: innerRef, ...mergeProps.mergeProps(gestureProps, datatipProps), class: classNames.classNames([
1424
+ UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.base,
1425
+ isHorizontalGridlinesVisible && UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.withSeparatorTop
1426
+ ]), style: { width, maxWidth }, children: [jsxRuntime.jsx("div", { role: "grid", class: UNSAFE_Gantt_themes_GanttStyles_css.rowAxisStyles.contentContainer, style: { top: -scrollPosition }, children: rowObjs.map((rowObj) => {
1427
+ return (jsxRuntime.jsx(GanttRowLabelContainer, { ariaActive: ariaActive, rowObj: rowObj, rowData: rowData, isRowSelected: rowObj.isSelected, isFocused: !!currentRowLabel?.isFocused && currentRowLabel.id === rowObj.id, isHorizontalGridlinesVisible: isHorizontalGridlinesVisible, children: children(getRenderContext$1(rowObj, rowData, contextMaxWidth)) }));
1428
+ }) }), datatipContent] }));
1429
+ }
1430
+
1431
+ /**
1432
+ * Gets the new range given the initial, global, and range ratio to apply. This applies a linear scale.
1433
+ * @param rangeRatio The range ratio to scale by.
1434
+ * @param initialRange The initial range.
1435
+ * @param globalRange The global range.
1436
+ * @returns The new linearly scaled range.
1437
+ */
1438
+ const getNewRange = (rangeRatio, initialRange, globalRange) => {
1439
+ const dRangeMin = initialRange.max - globalRange.max;
1440
+ const dRangeMax = initialRange.min - globalRange.min;
1441
+ const dRange = rangeRatio * (initialRange.max - initialRange.min);
1442
+ const dRangeClamped = Math.max(dRangeMin, Math.min(dRange, dRangeMax));
1443
+ return {
1444
+ // Ensure positive min;
1445
+ // For vertical scroll for example,
1446
+ // it's possible for globalRange to be smaller than initialRange
1447
+ // due to the component being taller than the height the data occupies
1448
+ // e.g. tall Gantt with 1 row
1449
+ min: Math.max(0, initialRange.min - dRangeClamped),
1450
+ max: initialRange.max - dRangeClamped
1451
+ };
1452
+ };
1453
+ /**
1454
+ * Performs a pan, by invoking the given onRangeChange callback with the new range.
1455
+ * @param rangeRatio The range ratio to scale by.
1456
+ * @param initialRange The initial range.
1457
+ * @param prevRange The previous range.
1458
+ * @param globalRange The global range.
1459
+ * @param onRangeChange The callback to invoke with the new range.
1460
+ * @returns The new range and whether the range actually changed.
1461
+ */
1462
+ const pan = (rangeRatio, initialRange, prevRange, globalRange, onRangeChange) => {
1463
+ const newRange = getNewRange(rangeRatio, initialRange, globalRange);
1464
+ const { min: prevMin, max: prevMax } = prevRange;
1465
+ const isRangeChanged = newRange.min !== prevMin || newRange.max !== prevMax;
1466
+ isRangeChanged && onRangeChange(newRange);
1467
+ return { newRange, isRangeChanged };
1468
+ };
1469
+
1470
+ /**
1471
+ * Hook that enables and handles drag pan gestures.
1472
+ */
1473
+ const useDragPan = ({ captureTargetRef, width, height, getRangeX, getRangeY, globalRangeX, globalRangeY, onRangeXChange, onRangeYChange, onDragPanStart, onDragPanEnd, isDisabled = false }) => {
1474
+ const { direction } = useUser.useUser();
1475
+ const prevRangeX = hooks.useRef({ min: 0, max: 0 });
1476
+ const prevRangeY = hooks.useRef({ min: 0, max: 0 });
1477
+ const initialRangeX = hooks.useRef({ min: 0, max: 0 });
1478
+ const initialRangeY = hooks.useRef({ min: 0, max: 0 });
1479
+ const isPanning = hooks.useRef(false);
1480
+ const dragProps = TimeComponentCanvas2D.useDrag({
1481
+ captureTargetRef,
1482
+ onDragStart: () => {
1483
+ initialRangeX.current = getRangeX();
1484
+ initialRangeY.current = getRangeY();
1485
+ onDragPanStart && onDragPanStart();
1486
+ },
1487
+ onDragMove: ({ dx, dy }) => {
1488
+ isPanning.current = true;
1489
+ const { newRange: newRangeX } = pan(((direction === 'rtl' ? -1 : 1) * dx) / width, initialRangeX.current, prevRangeX.current, globalRangeX, onRangeXChange);
1490
+ prevRangeX.current = newRangeX;
1491
+ const { newRange: newRangeY } = pan(dy / height, initialRangeY.current, prevRangeY.current, globalRangeY, onRangeYChange);
1492
+ prevRangeY.current = newRangeY;
1493
+ },
1494
+ onDragEnd: ({ originalEvent }) => {
1495
+ // If panning occurred, call preventDefault to prevent selection from occurring
1496
+ if (isPanning.current)
1497
+ originalEvent.preventDefault();
1498
+ isPanning.current = false;
1499
+ onDragPanEnd && onDragPanEnd();
1500
+ },
1501
+ isDisabled
1502
+ });
1503
+ return isDisabled ? {} : dragProps;
1504
+ };
1505
+
1506
+ /**
1507
+ * @license
1508
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1509
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1510
+ * as shown at https://oss.oracle.com/licenses/upl/
1511
+ * @ignore
1512
+ */
1513
+ /**
1514
+ * Hook that enables and handles wheel pan gestures.
1515
+ */
1516
+ const useWheelPan = ({ width, height, getRangeX, getRangeY, globalRangeX, globalRangeY, onRangeXChange, onRangeYChange, isDisabled = false }) => {
1517
+ const { direction } = useUser.useUser();
1518
+ const prevRangeX = hooks.useRef({ min: 0, max: 0 });
1519
+ const prevRangeY = hooks.useRef({ min: 0, max: 0 });
1520
+ const wheelProps = TimeComponentCanvas2D.useWheel({
1521
+ onWheel: ({ deltaX: dx, deltaY: dy, ctrlKey }) => {
1522
+ // WheelEvent with ctrlKey means pinch/zoom gesture
1523
+ if (ctrlKey)
1524
+ return;
1525
+ const { newRange: newRangeX } = pan(((direction === 'rtl' ? -1 : 1) * dx) / width, getRangeX(), prevRangeX.current, globalRangeX, onRangeXChange);
1526
+ prevRangeX.current = newRangeX;
1527
+ const { newRange: newRangeY } = pan(dy / height, getRangeY(), prevRangeY.current, globalRangeY, onRangeYChange);
1528
+ prevRangeY.current = newRangeY;
1529
+ },
1530
+ isDisabled
1531
+ });
1532
+ return isDisabled ? {} : wheelProps;
1533
+ };
1534
+
1535
+ /**
1536
+ * Hook that enables and handles pinch zoom gestures.
1537
+ */
1538
+ const usePinchZoom = ({ captureTargetRef, width, startTime, endTime, viewportStartTime, viewportEndTime, majorAxisZoomOrder, majorAxisZoomOrderIndex, minorAxisZoomOrder, minorAxisZoomOrderIndex, zoomOrderViewDurationThresholds, minZoomViewportDuration, maxZoomViewportDuration, onViewportChange, isDisabled = false }) => {
1539
+ const { direction } = useUser.useUser();
1540
+ const isRTL = direction === 'rtl';
1541
+ const pinchProps = usePinch.usePinch({
1542
+ captureTargetRef,
1543
+ onPinchZoomChange: ({ origin: { x }, delta }) => {
1544
+ const time = TimeComponentCanvas2D.getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL);
1545
+ TimeComponentCanvas2D.zoomTime(time, viewportStartTime, viewportEndTime, startTime, endTime, TimeComponentCanvas2D.getGestureZoomFactor(delta), minZoomViewportDuration, maxZoomViewportDuration, zoomOrderViewDurationThresholds, minorAxisZoomOrder, minorAxisZoomOrderIndex, majorAxisZoomOrder, majorAxisZoomOrderIndex, onViewportChange);
1546
+ },
1547
+ isDisabled
1548
+ });
1549
+ return isDisabled ? {} : pinchProps;
1550
+ };
1551
+
1552
+ /**
1553
+ * @license
1554
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1555
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1556
+ * as shown at https://oss.oracle.com/licenses/upl/
1557
+ * @ignore
1558
+ */
1559
+ /**
1560
+ * Hook that enables and handles wheen zoom gestures.
1561
+ */
1562
+ const useWheelZoom = ({ width, startTime, endTime, viewportStartTime, viewportEndTime, majorAxisZoomOrder, majorAxisZoomOrderIndex, minorAxisZoomOrder, minorAxisZoomOrderIndex, zoomOrderViewDurationThresholds, minZoomViewportDuration, maxZoomViewportDuration, onViewportChange, isDisabled = false }) => {
1563
+ const { direction } = useUser.useUser();
1564
+ const isRTL = direction === 'rtl';
1565
+ const wheelProps = TimeComponentCanvas2D.useWheel({
1566
+ onWheel: ({ x, deltaY, ctrlKey }) => {
1567
+ // WheelEvent with ctrlKey means pinch/zoom gesture
1568
+ if (!ctrlKey)
1569
+ return;
1570
+ const time = TimeComponentCanvas2D.getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL);
1571
+ TimeComponentCanvas2D.zoomTime(time, viewportStartTime, viewportEndTime, startTime, endTime, TimeComponentCanvas2D.getGestureZoomFactor(deltaY), minZoomViewportDuration, maxZoomViewportDuration, zoomOrderViewDurationThresholds, minorAxisZoomOrder, minorAxisZoomOrderIndex, majorAxisZoomOrder, majorAxisZoomOrderIndex, onViewportChange);
1572
+ },
1573
+ isDisabled
1574
+ });
1575
+ return isDisabled ? {} : wheelProps;
1576
+ };
1577
+
1578
+ /**
1579
+ * @license
1580
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1581
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1582
+ * as shown at https://oss.oracle.com/licenses/upl/
1583
+ * @ignore
1584
+ */
1585
+ /**
1586
+ * Hook that enables and handles keyboard zooming gestures.
1587
+ */
1588
+ const useKbZoom = ({ startTime, endTime, viewportStartTime, viewportEndTime, majorAxisZoomOrder, majorAxisZoomOrderIndex, minorAxisZoomOrder, minorAxisZoomOrderIndex, zoomOrderViewDurationThresholds, minZoomViewportDuration, maxZoomViewportDuration, onViewportChange, isDisabled = false }) => {
1589
+ const onKbZoomIn = (e) => {
1590
+ const viewportCenter = viewportStartTime + (viewportEndTime - viewportStartTime) / 2;
1591
+ TimeComponentCanvas2D.zoomTime(viewportCenter, viewportStartTime, viewportEndTime, startTime, endTime, e.detail.zoomFactor, minZoomViewportDuration, maxZoomViewportDuration, zoomOrderViewDurationThresholds, minorAxisZoomOrder, minorAxisZoomOrderIndex, majorAxisZoomOrder, majorAxisZoomOrderIndex, onViewportChange);
1592
+ };
1593
+ const onKbZoomOut = (e) => {
1594
+ const viewportCenter = viewportStartTime + (viewportEndTime - viewportStartTime) / 2;
1595
+ TimeComponentCanvas2D.zoomTime(viewportCenter, viewportStartTime, viewportEndTime, startTime, endTime, e.detail.zoomFactor, minZoomViewportDuration, maxZoomViewportDuration, zoomOrderViewDurationThresholds, minorAxisZoomOrder, minorAxisZoomOrderIndex, majorAxisZoomOrder, majorAxisZoomOrderIndex, onViewportChange);
1596
+ };
1597
+ return isDisabled
1598
+ ? {}
1599
+ : {
1600
+ onKbZoomIn,
1601
+ onKbZoomOut
1602
+ };
1603
+ };
1604
+
1605
+ /**
1606
+ * @license
1607
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1608
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1609
+ * as shown at https://oss.oracle.com/licenses/upl/
1610
+ * @ignore
1611
+ */
1612
+ /**
1613
+ * Hook that enables and handles keyboard panning gesture.
1614
+ */
1615
+ const useKbPan = ({ getRangeX, getRangeY, globalRangeX, globalRangeY, onRangeXChange, onRangeYChange, isDisabled = false }) => {
1616
+ const prevRangeX = hooks.useRef({ min: 0, max: 0 });
1617
+ const prevRangeY = hooks.useRef({ min: 0, max: 0 });
1618
+ const onKbPanHorizontal = (e) => {
1619
+ const { detail: { rangeRatio } } = e;
1620
+ const { newRange: newRangeX } = pan(rangeRatio, getRangeX(), prevRangeX.current, globalRangeX, onRangeXChange);
1621
+ prevRangeX.current = newRangeX;
1622
+ };
1623
+ const onKbPanVertical = (e) => {
1624
+ const { detail: { rangeRatio } } = e;
1625
+ const { newRange: newRangeY } = pan(rangeRatio, getRangeY(), prevRangeY.current, globalRangeY, onRangeYChange);
1626
+ prevRangeY.current = newRangeY;
1627
+ };
1628
+ return isDisabled
1629
+ ? {}
1630
+ : {
1631
+ onKbPanHorizontal,
1632
+ onKbPanVertical
1633
+ };
1634
+ };
1635
+
1636
+ /**
1637
+ * Gets the default task to initially receive logical focus upon component focus.
1638
+ * @param param0 The (unresolved) row data layout.
1639
+ * @returns The task (if there are any) to receive focus.
1640
+ */
1641
+ const getDefaultInitialFocusTask = ({ rowObjs }) => {
1642
+ // Default to the first task of the first row (if it exists)
1643
+ if (rowObjs.length === 0)
1644
+ return;
1645
+ if (rowObjs[0].taskObjs.length === 0)
1646
+ return;
1647
+ return { id: rowObjs[0].taskObjs[0].id, isFocused: true };
1648
+ };
1649
+ /**
1650
+ * Gets next or previous navigable task from the current task.
1651
+ * @param currentTask The current task.
1652
+ * @param param1 The (unresolved) row data layout.
1653
+ * @param direction 'next' or 'prev'
1654
+ * @returns The adjacent navigable task according to the given direction.
1655
+ */
1656
+ const getAdjacentTaskNavigable = (currentTask, { rowObjs, idTaskObjMap }, direction) => {
1657
+ const currentTaskObj = idTaskObjMap.get(currentTask);
1658
+ if (!currentTaskObj)
1659
+ return;
1660
+ const indexOffset = direction === 'next' ? 1 : -1;
1661
+ const { rowIndex, renderIndex: index } = currentTaskObj;
1662
+ // Return adjacent task in the row if it exists
1663
+ const adjTaskObj = rowObjs[rowIndex].taskObjs[index + indexOffset];
1664
+ if (adjTaskObj)
1665
+ return adjTaskObj.id;
1666
+ // Return a task in adjacent row if it exists
1667
+ // For 'next' direction, this is the first task of the next row
1668
+ // For 'prev' direction, this is the last task of the previous row
1669
+ const adjRowObj = rowObjs[rowIndex + indexOffset];
1670
+ if (adjRowObj) {
1671
+ const adjTaskObj = direction === 'next'
1672
+ ? adjRowObj.taskObjs[0]
1673
+ : adjRowObj.taskObjs[adjRowObj.taskObjs.length - 1];
1674
+ if (adjTaskObj)
1675
+ return adjTaskObj.id;
1676
+ }
1677
+ return;
1678
+ };
1679
+ /**
1680
+ * Gets above or below navigable task from the current task.
1681
+ * @param currentTask The current task.
1682
+ * @param param1 The (unresolved) row data layout.
1683
+ * @param direction 'up' or 'down'
1684
+ * @returns The adjacent navigable task according to the given direction.
1685
+ */
1686
+ const getVerticalTaskNavigable = (currentTask, { rowObjs, idTaskObjMap }, direction) => {
1687
+ const currentTaskObj = idTaskObjMap.get(currentTask);
1688
+ if (!currentTaskObj)
1689
+ return;
1690
+ const rowIndexOffset = direction === 'down' ? 1 : -1;
1691
+ const { rowIndex } = currentTaskObj;
1692
+ // Return first task in the adjacent row if it exists
1693
+ const adjRowObj = rowObjs[rowIndex + rowIndexOffset];
1694
+ if (!adjRowObj)
1695
+ return;
1696
+ const adjTaskObj = adjRowObj.taskObjs[0];
1697
+ if (adjTaskObj)
1698
+ return adjTaskObj.id;
1699
+ return;
1700
+ };
1701
+ /**
1702
+ * Gets the next navigable task from the current task.
1703
+ * @param currentTask The current task.
1704
+ * @param rowDataLayout The (unresolved) row data layout.
1705
+ * @returns The next navigable task.
1706
+ */
1707
+ const getNextTaskNavigable = (currentTask, rowDataLayout) => getAdjacentTaskNavigable(currentTask, rowDataLayout, 'next');
1708
+ /**
1709
+ * Gets the previous navigable task from the current task.
1710
+ * @param currentTask The current task.
1711
+ * @param rowDataLayout The (unresolved) row data layout.
1712
+ * @returns The previous navigable task.
1713
+ */
1714
+ const getPrevTaskNavigable = (currentTask, rowDataLayout) => getAdjacentTaskNavigable(currentTask, rowDataLayout, 'prev');
1715
+ /**
1716
+ * Gets the navigable task above the current task.
1717
+ * @param currentTask The current task.
1718
+ * @param rowDataLayout The (unresolved) row data layout.
1719
+ * @returns The navigable task above.
1720
+ */
1721
+ const getAboveTaskNavigable = (currentTask, rowDataLayout) => getVerticalTaskNavigable(currentTask, rowDataLayout, 'up');
1722
+ /**
1723
+ * Gets the navigable task below the current task.
1724
+ * @param currentTask The current task.
1725
+ * @param rowDataLayout The (unresolved) row data layout.
1726
+ * @returns The navigable task below.
1727
+ */
1728
+ const getBelowTaskNavigable = (currentTask, rowDataLayout) => getVerticalTaskNavigable(currentTask, rowDataLayout, 'down');
1729
+ /**
1730
+ * Gets above or below navigable row label from the current row label.
1731
+ * @param currentRowLabel The current row label.
1732
+ * @param param1 The (unresolved) row data layout.
1733
+ * @param direction 'up' or 'down'
1734
+ * @returns The adjacent navigable row label according to the given direction.
1735
+ */
1736
+ const getAdjacentRowLabelNavigable = (currentRowLabel, { rowObjs, idRowObjMap }, direction) => {
1737
+ const currentRowObj = idRowObjMap.get(currentRowLabel);
1738
+ if (!currentRowObj)
1739
+ return;
1740
+ const rowIndexOffset = direction === 'down' ? 1 : -1;
1741
+ const { index: rowIndex } = currentRowObj;
1742
+ const adjRowObj = rowObjs[rowIndex + rowIndexOffset];
1743
+ if (!adjRowObj)
1744
+ return;
1745
+ return adjRowObj.id;
1746
+ };
1747
+ /**
1748
+ * Gets the navigable row label above the current row label.
1749
+ * @param currentRowLabel The current row label.
1750
+ * @param rowDataLayout The (unresolved) row data layout.
1751
+ * @returns The navigable row label above.
1752
+ */
1753
+ const getAboveRowLabelNavigable = (currentRowLabel, rowDataLayout) => getAdjacentRowLabelNavigable(currentRowLabel, rowDataLayout, 'up');
1754
+ /**
1755
+ * Gets the navigable row label below the current row label.
1756
+ * @param currentRowLabel The current row label.
1757
+ * @param rowDataLayout The (unresolved) row data layout.
1758
+ * @returns The navigable row label below.
1759
+ */
1760
+ const getBelowRowLabelNavigable = (currentRowLabel, rowDataLayout) => getAdjacentRowLabelNavigable(currentRowLabel, rowDataLayout, 'down');
1761
+ /**
1762
+ * Gets the row label navigable from the current task.
1763
+ * @param currentTask The current task.
1764
+ * @param rowDataLayout The (unresolved) row data layout.
1765
+ * @returns The row label navigable from the current task.
1766
+ */
1767
+ const getRowLabelNavigableFromTask = (currentTask, rowDataLayout) => {
1768
+ // taskObj should not be undefined because you must start from
1769
+ // a focused task to get to a rowlabel.
1770
+ const taskObj = rowDataLayout.idTaskObjMap.get(currentTask);
1771
+ const { rowIndex } = taskObj;
1772
+ const rowObj = rowDataLayout.rowObjs[rowIndex];
1773
+ return rowObj.id;
1774
+ };
1775
+ /**
1776
+ * Gets the task navigable from the current row label.
1777
+ * @param currentRowLabel The current row label.
1778
+ * @param rowDataLayout The (unresolved) row data layout.
1779
+ * @param currentTask If any, the last current task (e.g. the last focused task).
1780
+ * @returns The task navigable from the current row label.
1781
+ */
1782
+ const getTaskNavigableFromRowLabel = (currentRowLabel, rowDataLayout, currentTask) => {
1783
+ if (currentTask !== undefined) {
1784
+ const taskObj = rowDataLayout.idTaskObjMap.get(currentTask);
1785
+ if (taskObj) {
1786
+ const { rowIndex } = taskObj;
1787
+ const rowObj = rowDataLayout.rowObjs[rowIndex];
1788
+ if (rowObj.id === currentRowLabel) {
1789
+ return currentTask;
1790
+ }
1791
+ }
1792
+ }
1793
+ const rowObj = rowDataLayout.idRowObjMap.get(currentRowLabel);
1794
+ const firstTaskObj = rowObj?.taskObjs[0];
1795
+ if (firstTaskObj) {
1796
+ return firstTaskObj.id;
1797
+ }
1798
+ const defaultTask = getDefaultInitialFocusTask(rowDataLayout);
1799
+ return defaultTask?.id;
1800
+ };
1801
+ /**
1802
+ * Gets the dx and dy necessary to pan the given region into view.
1803
+ * @param region The target region to pan into view.
1804
+ * @param viewportRegion The viewport region.
1805
+ * @param isRTL Whether the reading direction is rtl.
1806
+ * @param xPriority The side in the x direction to prioritize scroll into view.
1807
+ * @param yPriority The side in the y direction to prioritize scroll into view.
1808
+ * @param overShoot The extra amount of space to pan by.
1809
+ * @returns The dx and dy values.
1810
+ */
1811
+ const getPanIntoViewValues = (region, viewportRegion, isRTL, xPriority = 'auto', yPriority = 'auto', overShoot = 0) => {
1812
+ const deltaXLeftVisible = Math.min(region.x - viewportRegion.x - overShoot, 0);
1813
+ const deltaXRightVisible = Math.max(0, region.x + region.w - (viewportRegion.x + viewportRegion.w) + overShoot);
1814
+ const deltaXStartVisible = isRTL ? deltaXRightVisible : deltaXLeftVisible;
1815
+ const deltaXEndVisible = isRTL ? deltaXLeftVisible : deltaXRightVisible;
1816
+ let deltaX = 0;
1817
+ switch (xPriority) {
1818
+ case 'start':
1819
+ deltaX = deltaXStartVisible;
1820
+ break;
1821
+ case 'end':
1822
+ deltaX = deltaXEndVisible;
1823
+ break;
1824
+ case 'auto':
1825
+ deltaX = (!isRTL ? deltaXEndVisible > 0 : deltaXEndVisible < 0)
1826
+ ? deltaXEndVisible
1827
+ : deltaXStartVisible; // 'end' wins if just 'end', or both sides, require panning. 'start' otherwise.
1828
+ break;
1829
+ default: {
1830
+ const _exhaustiveCheck = xPriority;
1831
+ return _exhaustiveCheck;
1832
+ }
1833
+ }
1834
+ const deltaYTopVisible = Math.min(region.y - viewportRegion.y - overShoot, 0);
1835
+ const deltaYBottomVisible = Math.max(0, region.y + region.h - (viewportRegion.y + viewportRegion.h) + overShoot);
1836
+ let deltaY = 0;
1837
+ switch (yPriority) {
1838
+ case 'top':
1839
+ deltaY = deltaYTopVisible;
1840
+ break;
1841
+ case 'bottom':
1842
+ deltaY = deltaYBottomVisible;
1843
+ break;
1844
+ case 'auto':
1845
+ deltaY = deltaYTopVisible < 0 ? deltaYTopVisible : deltaYBottomVisible; // 'top' wins if just 'top', or both sides, require panning. 'bottom' otherwise.
1846
+ break;
1847
+ default: {
1848
+ const _exhaustiveCheck = yPriority;
1849
+ return _exhaustiveCheck;
1850
+ }
1851
+ }
1852
+ return { dx: -deltaX, dy: -deltaY };
1853
+ };
1854
+
1855
+ /**
1856
+ * Hook that handles keyboard panning related gestures on a Gantt.
1857
+ */
1858
+ const useGanttKbPan = ({ viewportLayout, dataBodyWidth, dataBodyHeight, viewportStartTime, viewportEndTime, scrollPosition, ...panOptions }) => {
1859
+ const { direction } = useUser.useUser();
1860
+ const isRTL = direction === 'rtl';
1861
+ const kbPanProps = useKbPan(panOptions);
1862
+ const prevRangeX = hooks.useRef({ min: 0, max: 0 });
1863
+ const prevRangeY = hooks.useRef({ min: 0, max: 0 });
1864
+ const panBy = (dx = 0, dy = 0) => {
1865
+ if (dx !== 0) {
1866
+ const { newRange: newRangeX } = pan(dx / dataBodyWidth, panOptions.getRangeX(), prevRangeX.current, panOptions.globalRangeX, panOptions.onRangeXChange);
1867
+ prevRangeX.current = newRangeX;
1868
+ }
1869
+ if (dy !== 0) {
1870
+ const { newRange: newRangeY } = pan(dy / dataBodyHeight, panOptions.getRangeY(), prevRangeY.current, panOptions.globalRangeY, panOptions.onRangeYChange);
1871
+ prevRangeY.current = newRangeY;
1872
+ }
1873
+ };
1874
+ const onKbPanTaskIntoView = (e) => {
1875
+ let taskObj = viewportLayout.idTaskObjMap.get(e.detail.id);
1876
+ if (!taskObj) {
1877
+ // task may be outside viewport
1878
+ const unresolvedTaskObj = viewportLayout.allIdTaskObjMap.get(e.detail.id);
1879
+ if (!unresolvedTaskObj)
1880
+ return;
1881
+ taskObj = getResolvedTaskObj(unresolvedTaskObj, viewportStartTime, viewportEndTime, dataBodyWidth, scrollPosition, isRTL);
1882
+ }
1883
+ const { x, y, width: w, height: h } = taskObj;
1884
+ const region = { x, y, w, h };
1885
+ const viewportRegion = { x: 0, y: 0, w: dataBodyWidth, h: dataBodyHeight };
1886
+ const overShoot = viewportLayout.rowPadding;
1887
+ const { dx, dy } = getPanIntoViewValues(region, viewportRegion, isRTL, 'auto', 'auto', overShoot);
1888
+ panBy(dx, dy);
1889
+ };
1890
+ const onKbPanRowIntoView = (e) => {
1891
+ const rowObj = viewportLayout.allIdRowObjMap.get(e.detail.id);
1892
+ if (!rowObj)
1893
+ return;
1894
+ const region = { x: 0, y: rowObj.y - scrollPosition, w: dataBodyWidth, h: rowObj.height };
1895
+ const viewportRegion = { x: 0, y: 0, w: dataBodyWidth, h: dataBodyHeight };
1896
+ const overShoot = viewportLayout.rowPadding;
1897
+ const { dy } = getPanIntoViewValues(region, viewportRegion, isRTL, 'auto', 'auto', overShoot);
1898
+ panBy(0, dy);
1899
+ };
1900
+ return panOptions.isDisabled
1901
+ ? {}
1902
+ : {
1903
+ ...kbPanProps,
1904
+ onKbPanTaskIntoView,
1905
+ onKbPanRowIntoView
1906
+ };
1907
+ };
1908
+
1909
+ /**
1910
+ * Hook that handles pan/zoom related gestures on a Gantt.
1911
+ */
1912
+ const useGanttPanZoomGestures = ({ captureTargetRef, width, height, viewportStartTime, viewportEndTime, majorAxisScale, minorAxisScale, startTime, endTime, zoomParameters, scrollPosition, dataBodyHeight, totalRowsHeight, viewportLayout, onViewportChange, onScrollPositionChange, onCursorChange, isPanDisabled, isZoomDisabled }) => {
1913
+ const panOptions = {
1914
+ captureTargetRef,
1915
+ width,
1916
+ height,
1917
+ getRangeX: () => ({ min: viewportStartTime, max: viewportEndTime }),
1918
+ getRangeY: () => ({ min: scrollPosition, max: scrollPosition + dataBodyHeight }),
1919
+ globalRangeX: { min: startTime, max: endTime },
1920
+ globalRangeY: { min: 0, max: totalRowsHeight },
1921
+ onRangeXChange: (newRange) => {
1922
+ onViewportChange?.({
1923
+ viewportStart: TimeComponentCanvas2D.getISOString(newRange.min),
1924
+ viewportEnd: TimeComponentCanvas2D.getISOString(newRange.max),
1925
+ majorAxisScale,
1926
+ minorAxisScale
1927
+ });
1928
+ },
1929
+ onRangeYChange: (newRange) => {
1930
+ onScrollPositionChange?.({
1931
+ y: newRange.min
1932
+ });
1933
+ },
1934
+ isDisabled: isPanDisabled
1935
+ };
1936
+ const { getZoomOrderViewDurationThresholds, ...restZoomParameters } = zoomParameters;
1937
+ const zoomOrderViewDurationThresholds = getZoomOrderViewDurationThresholds(width);
1938
+ const zoomOptions = {
1939
+ captureTargetRef,
1940
+ width,
1941
+ ...restZoomParameters,
1942
+ zoomOrderViewDurationThresholds,
1943
+ onViewportChange,
1944
+ isDisabled: isZoomDisabled
1945
+ };
1946
+ const dragPanProps = useDragPan({
1947
+ ...panOptions,
1948
+ onDragPanStart: () => onCursorChange?.({ cursor: 'grabbing' }),
1949
+ onDragPanEnd: () => onCursorChange?.({ cursor: 'grabbingUnset' })
1950
+ });
1951
+ const wheelPanProps = useWheelPan(panOptions);
1952
+ const kbPanProps = useGanttKbPan({
1953
+ ...panOptions,
1954
+ viewportLayout,
1955
+ dataBodyWidth: width,
1956
+ dataBodyHeight,
1957
+ viewportStartTime,
1958
+ viewportEndTime,
1959
+ scrollPosition
1960
+ });
1961
+ const pinchZoomProps = usePinchZoom(zoomOptions);
1962
+ const wheelZoomProps = useWheelZoom(zoomOptions);
1963
+ const kbZoomProps = useKbZoom(zoomOptions);
1964
+ const gestureProps = mergeProps.mergeProps(dragPanProps, wheelPanProps, kbPanProps, pinchZoomProps, wheelZoomProps, kbZoomProps);
1965
+ return { gestureProps };
1966
+ };
1967
+
1968
+ /**
1969
+ * @license
1970
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
1971
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
1972
+ * as shown at https://oss.oracle.com/licenses/upl/
1973
+ * @ignore
1974
+ */
1975
+ /**
1976
+ * Hook that handles task pointer gestures.
1977
+ */
1978
+ const useGanttTaskPointerGestures = ({ viewportLayout, viewportYOffset, dataBodyRegion, viewportStartTime, viewportEndTime, width, isRTL, selectionProps, hoverProps, currentProps, onCursorChange }) => {
1979
+ const { x: dbx, y: dby, w: dbw, h: dbh } = dataBodyRegion;
1980
+ const selectionSupported = supportsSelection(selectionProps.selectionMode);
1981
+ const idExtracter = (event) => {
1982
+ const rowObjs = viewportLayout.allRowObjs;
1983
+ const spatialIndex = viewportLayout.spatialIndex;
1984
+ const { offsetX: x, offsetY: y } = event;
1985
+ const inDataBody = !(x < dbx || x > dbx + dbw || y < dby || y > dby + dbh);
1986
+ if (!inDataBody)
1987
+ return;
1988
+ const timePoint = {
1989
+ time: TimeComponentCanvas2D.getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL),
1990
+ y: y + viewportYOffset
1991
+ };
1992
+ const targetIndices = queryTasksSpatialIndex(rowObjs, spatialIndex.tasks, timePoint);
1993
+ if (!targetIndices)
1994
+ return;
1995
+ const { rowIndex, taskIndex } = targetIndices;
1996
+ return rowObjs[rowIndex].taskObjs[taskIndex].id;
1997
+ };
1998
+ const onPointerMove = (event) => {
1999
+ const id = idExtracter(event);
2000
+ if (id !== hoverProps.hoveredTaskId) {
2001
+ hoverProps.onTaskHoverChange({ id });
2002
+ }
2003
+ selectionSupported &&
2004
+ onCursorChange?.({ cursor: id !== undefined ? 'pointer' : 'pointerUnset' });
2005
+ };
2006
+ const onPointerUp = (event) => {
2007
+ const id = idExtracter(event);
2008
+ if (id !== undefined) {
2009
+ selectionSupported && onCursorChange?.({ cursor: 'pointer' });
2010
+ if (id !== currentProps?.currentTask?.id) {
2011
+ currentProps.onCurrentTaskChange({ id, isFocused: false });
2012
+ }
2013
+ }
2014
+ };
2015
+ const hoverPointerGestureProps = { onPointerMove };
2016
+ const focusPointerGestureProps = { onPointerUp };
2017
+ const { selectionProps: { onKeyUp, ...selectionPointerGestureProps }, selectionContent } = useSelection.useSelection({
2018
+ idExtracter,
2019
+ selection: selectionProps.selectedIds,
2020
+ selectionMode: selectionProps.selectionMode,
2021
+ onChange: selectionProps.onSelectionChange,
2022
+ getDataById: viewportLayout.getTaskDataById
2023
+ });
2024
+ const gestureProps = mergeProps.mergeProps(hoverPointerGestureProps, focusPointerGestureProps, selectionPointerGestureProps);
2025
+ return { gestureProps, selectionContent };
2026
+ };
2027
+
2028
+ /**
2029
+ * Gets the default datatip renderer.
2030
+ * @param options Relevant information.
2031
+ * @returns The default datatip renderer.
2032
+ */
2033
+ const getDefaultDatatipRenderer = (options) => {
2034
+ const { translations, dateFormatter } = options;
2035
+ const defaultDatatipRenderer = ({ data, rowData }) => {
2036
+ if (data.accessibleLabel !== undefined) {
2037
+ return { content: data.accessibleLabel };
2038
+ }
2039
+ const { start, end } = getNormalizedStartEnd(data);
2040
+ const isMilestone = start === end;
2041
+ const tableData = [];
2042
+ if (rowData.label) {
2043
+ tableData.push({ key: translations.gantt_labelRow(), value: rowData.label });
2044
+ }
2045
+ if (!isMilestone) {
2046
+ tableData.push({ key: translations.gantt_labelStart(), value: dateFormatter(start) });
2047
+ tableData.push({ key: translations.gantt_labelEnd(), value: dateFormatter(end) });
2048
+ }
2049
+ else {
2050
+ tableData.push({ key: translations.gantt_labelDate(), value: dateFormatter(start) });
2051
+ }
2052
+ if (data.label) {
2053
+ tableData.push({ key: translations.gantt_labelLabel(), value: data.label });
2054
+ }
2055
+ const content = jsxRuntime.jsx(VisTabularDatatip.VisTabularDatatip, { tableData: tableData });
2056
+ return { content };
2057
+ };
2058
+ return defaultDatatipRenderer;
2059
+ };
2060
+ /**
2061
+ * Gets the datatip renderer context.
2062
+ * @param rows The rows data.
2063
+ * @param layoutObj The task layout object.
2064
+ * @returns
2065
+ */
2066
+ const getRenderContext = (rows, layoutObj) => {
2067
+ const { index, rowIndex } = layoutObj;
2068
+ return {
2069
+ data: rows[rowIndex].tasks[index],
2070
+ rowData: rows[rowIndex]
2071
+ };
2072
+ };
2073
+
2074
+ /**
2075
+ * @license
2076
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
2077
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
2078
+ * as shown at https://oss.oracle.com/licenses/upl/
2079
+ * @ignore
2080
+ */
2081
+ /**
2082
+ * Hook that handles task datatip.
2083
+ */
2084
+ const useGanttTaskDatatip = ({ targetRef, datatip, rowData, dateFormatter, hoveredTaskObj, focusedTaskObj, currentTaskInteraction, dataBodyRegion }) => {
2085
+ const { direction } = useUser.useUser();
2086
+ const isRTL = direction === 'rtl';
2087
+ const translations = useTranslationBundle.useTranslationBundle('@oracle/oraclejet-preact');
2088
+ const config = {
2089
+ hover: {
2090
+ taskObj: hoveredTaskObj,
2091
+ anchor: 'pointer'
2092
+ },
2093
+ focus: {
2094
+ taskObj: focusedTaskObj,
2095
+ anchor: 'element'
2096
+ },
2097
+ none: {
2098
+ taskObj: undefined,
2099
+ anchor: 'pointer'
2100
+ }
2101
+ };
2102
+ const { anchor, taskObj: activeTaskObj } = config[currentTaskInteraction];
2103
+ const datatipRenderer = datatip ??
2104
+ getDefaultDatatipRenderer({
2105
+ translations,
2106
+ dateFormatter,
2107
+ isRTL
2108
+ });
2109
+ const { content, borderColor } = activeTaskObj
2110
+ ? datatipRenderer(getRenderContext(rowData, activeTaskObj))
2111
+ : { content: undefined, borderColor: undefined };
2112
+ const elementBounds = activeTaskObj && anchor === 'element'
2113
+ ? {
2114
+ x: activeTaskObj.x,
2115
+ y: activeTaskObj.y + dataBodyRegion.y,
2116
+ width: activeTaskObj.width,
2117
+ height: activeTaskObj.height
2118
+ }
2119
+ : undefined;
2120
+ return useDatatip({
2121
+ content,
2122
+ anchor,
2123
+ placement: 'top-start',
2124
+ offset: layoutUtils.calculateOffset(isRTL, dataBodyRegion.w, elementBounds),
2125
+ borderColor,
2126
+ targetFocusRef: targetRef
2127
+ });
2128
+ };
2129
+
2130
+ function GanttTimeAxisDataBody({ innerRef, isRTL, scrollPosition, onScrollPositionChange, isViewportDefined, onViewportChange, zoomParameters, zooming, selectedIds, selectionMode, onSelectionChange, hoveredTaskId, onTaskHoverChange, currentTask, onCurrentTaskChange, currentTaskInteraction, ariaActive, getTimeAxesLayout, getResolvedViewportLayout, rowDataLayout, rowAxisSeparator, datatip, majorAxis, minorAxis, dataBody }) {
2131
+ if (!isViewportDefined) {
2132
+ return (jsxRuntime.jsx(TrackResizeContainer.TrackResizeContainer, { width: "100%", height: "100%", children: (width) => {
2133
+ const timeAxesLayout = getTimeAxesLayout(width);
2134
+ const { majorAxis: majorAxisLayout, minorAxis: minorAxisLayout, viewportStartTime, viewportEndTime } = timeAxesLayout;
2135
+ const majorAxisScale = majorAxisLayout && majorAxisLayout.zoomOrder[majorAxisLayout.zoomOrderIndex];
2136
+ const minorAxisScale = minorAxisLayout.zoomOrder[minorAxisLayout.zoomOrderIndex];
2137
+ onViewportChange?.({
2138
+ viewportStart: TimeComponentCanvas2D.getISOString(viewportStartTime),
2139
+ viewportEnd: TimeComponentCanvas2D.getISOString(viewportEndTime),
2140
+ majorAxisScale,
2141
+ minorAxisScale
2142
+ });
2143
+ return null;
2144
+ } }));
2145
+ }
2146
+ return (jsxRuntime.jsx(TrackResizeContainer.TrackResizeContainer, { width: "100%", height: "100%", children: function _(width, height) {
2147
+ const timeAxesLayout = getTimeAxesLayout(width);
2148
+ const { position, majorAxis: majorAxisLayout, minorAxis: minorAxisLayout, viewportStartTime, viewportEndTime, startTime, endTime } = timeAxesLayout;
2149
+ const majorAxisScale = majorAxisLayout && majorAxisLayout.zoomOrder[majorAxisLayout.zoomOrderIndex];
2150
+ const minorAxisScale = minorAxisLayout.zoomOrder[minorAxisLayout.zoomOrderIndex];
2151
+ const majorAxisHeight = majorAxisLayout ? majorAxisLayout.height : 0;
2152
+ const { height: minorAxisHeight } = minorAxisLayout;
2153
+ const dataBodyHeight = height - (majorAxisHeight + minorAxisHeight);
2154
+ const viewportLayout = getResolvedViewportLayout(rowDataLayout, viewportStartTime, viewportEndTime, scrollPosition, width, dataBodyHeight, isRTL);
2155
+ const effectsLayout = getEffectTaskObjs({
2156
+ selectionProps: { selectedIds, selectionMode },
2157
+ hoverProps: { hoveredTaskId },
2158
+ currentProps: { currentTask }
2159
+ }, viewportLayout.idTaskObjMap);
2160
+ const defaultDateFormatter = TimeComponentCanvas2D.getDefaultDateFormatter(minorAxisScale, viewportStartTime);
2161
+ const majorAxisComp = majorAxisLayout && majorAxis(majorAxisLayout);
2162
+ const minorAxisComp = minorAxis(minorAxisLayout);
2163
+ const dataBodyComp = dataBody({
2164
+ width,
2165
+ height: dataBodyHeight,
2166
+ viewportLayout,
2167
+ minorAxisLayout,
2168
+ effectsLayout,
2169
+ dateFormatter: defaultDateFormatter,
2170
+ ariaActiveTask: ariaActive
2171
+ });
2172
+ const layout = {
2173
+ top: {
2174
+ components: [majorAxisComp, minorAxisComp, dataBodyComp],
2175
+ dataBodyPos: height - dataBodyHeight
2176
+ },
2177
+ bottom: {
2178
+ components: [dataBodyComp, minorAxisComp, majorAxisComp],
2179
+ dataBodyPos: 0
2180
+ }
2181
+ };
2182
+ // Temporary; this will be a Gantt prop when we add marquee selection support
2183
+ const dragMode = 'pan';
2184
+ // TODO: think about a better cursor management system
2185
+ const [cursor, setCursor] = hooks.useState();
2186
+ const onCursorChange = (detail) => setCursor((prevCursor) => {
2187
+ if (prevCursor === undefined)
2188
+ return detail.cursor;
2189
+ if (prevCursor === 'grabbing' && detail.cursor !== 'grabbingUnset')
2190
+ return 'grabbing';
2191
+ if (detail.cursor === 'grabbingUnset' || detail.cursor === 'pointerUnset')
2192
+ return undefined;
2193
+ return detail.cursor;
2194
+ });
2195
+ const { gestureProps: panZoomGestureProps } = useGanttPanZoomGestures({
2196
+ captureTargetRef: innerRef,
2197
+ width,
2198
+ height,
2199
+ viewportStartTime,
2200
+ viewportEndTime,
2201
+ majorAxisScale,
2202
+ minorAxisScale,
2203
+ startTime,
2204
+ endTime,
2205
+ zoomParameters: zoomParameters,
2206
+ scrollPosition,
2207
+ dataBodyHeight,
2208
+ totalRowsHeight: rowDataLayout.totalRowsHeight,
2209
+ viewportLayout,
2210
+ onViewportChange: (args) => {
2211
+ if (onViewportChange) {
2212
+ onViewportChange(args);
2213
+ // TODO: Evaluate whether it's okay to clear hover behavior on pan and zoom
2214
+ onTaskHoverChange({ id: undefined });
2215
+ }
2216
+ },
2217
+ onScrollPositionChange: (args) => {
2218
+ if (onScrollPositionChange) {
2219
+ onScrollPositionChange(args);
2220
+ // TODO: Evaluate whether it's okay to clear hover behavior on pan
2221
+ onTaskHoverChange({ id: undefined });
2222
+ }
2223
+ },
2224
+ onCursorChange,
2225
+ isPanDisabled: dragMode !== 'pan',
2226
+ isZoomDisabled: zooming === 'off'
2227
+ });
2228
+ const dataBodyRegion = {
2229
+ x: 0,
2230
+ y: layout[position].dataBodyPos,
2231
+ w: width,
2232
+ h: dataBodyHeight
2233
+ };
2234
+ const { gestureProps: taskGestureProps, selectionContent } = useGanttTaskPointerGestures({
2235
+ viewportLayout,
2236
+ viewportYOffset: scrollPosition - layout[position].dataBodyPos,
2237
+ dataBodyRegion,
2238
+ viewportStartTime,
2239
+ viewportEndTime,
2240
+ width,
2241
+ isRTL,
2242
+ selectionProps: { selectedIds, selectionMode, onSelectionChange },
2243
+ hoverProps: { hoveredTaskId, onTaskHoverChange },
2244
+ currentProps: { currentTask, onCurrentTaskChange },
2245
+ onCursorChange
2246
+ });
2247
+ const { datatipContent, datatipProps } = useGanttTaskDatatip({
2248
+ datatip,
2249
+ rowData: viewportLayout.rowData,
2250
+ dateFormatter: defaultDateFormatter,
2251
+ hoveredTaskObj: hoveredTaskId && viewportLayout.idTaskObjMap.get(hoveredTaskId),
2252
+ focusedTaskObj: effectsLayout.focusedTaskObj,
2253
+ currentTaskInteraction,
2254
+ dataBodyRegion,
2255
+ targetRef: innerRef
2256
+ });
2257
+ const gestureProps = mergeProps.mergeProps(panZoomGestureProps, taskGestureProps, datatipProps);
2258
+ return (jsxRuntime.jsxs("div", { ref: innerRef, ...gestureProps, class: classNames.classNames([
2259
+ UNSAFE_Gantt_themes_GanttStyles_css.timeAxisDataBodyStyles.base,
2260
+ UNSAFE_Gantt_themes_GanttStyles_css.timeAxisDataBodyStyles.pannable,
2261
+ isRTL
2262
+ ? rowAxisSeparator && UNSAFE_Gantt_themes_GanttStyles_css.timeAxisDataBodyStyles.withRowAxisSeparatorRight
2263
+ : rowAxisSeparator && UNSAFE_Gantt_themes_GanttStyles_css.timeAxisDataBodyStyles.withRowAxisSeparatorLeft
2264
+ ]), style: { cursor }, children: [layout[position].components, datatipContent, selectionContent] }));
2265
+ } }));
2266
+ }
2267
+
2268
+ function GanttHorizontalGridlinesLayer({ width, height, positions }) {
2269
+ const cmd = positions.map((p) => `M0,${p} H${width}`).join(' ');
2270
+ return (jsxRuntime.jsx("svg", { width: width, height: height, children: jsxRuntime.jsx("path", { class: UNSAFE_Gantt_themes_GanttStyles_css.horizontalGridlinesStyles.base, d: cmd }) }));
2271
+ }
2272
+
2273
+ function GanttDesktopTaskAccContent({ width, height, rowData, dateFormatter, ariaActiveId, ariaActiveTaskObj }) {
2274
+ const translations = useTranslationBundle.useTranslationBundle('@oracle/oraclejet-preact');
2275
+ const idIndex = hooks.useRef(0);
2276
+ const ids = hooks.useMemo(() => {
2277
+ const ids = idIndex.current === 0 ? [ariaActiveId, layoutUtils.getRandomId()] : [layoutUtils.getRandomId(), ariaActiveId];
2278
+ idIndex.current = Math.abs(idIndex.current - 1);
2279
+ return ids;
2280
+ }, [ariaActiveId]);
2281
+ const ariaLabel = ariaActiveTaskObj && getTaskAriaLabel(ariaActiveTaskObj, rowData, dateFormatter, translations);
2282
+ return (jsxRuntime.jsxs("div", { style: { width, height }, children: [jsxRuntime.jsx("div", { role: "img", id: ids[0], "aria-label": ariaLabel }), jsxRuntime.jsx("div", { role: "img", id: ids[1], "aria-label": ariaLabel })] }));
2283
+ }
2284
+
2285
+ function GanttMobileTaskAccContent({ width, height, rowData, dateFormatter, layoutObjs }) {
2286
+ const translations = useTranslationBundle.useTranslationBundle('@oracle/oraclejet-preact');
2287
+ const content = [];
2288
+ layoutObjs.forEach((rowObj) => {
2289
+ rowObj.taskObjs.forEach((taskObj) => {
2290
+ const ariaLabel = getTaskAriaLabel(taskObj, rowData, dateFormatter, translations);
2291
+ content.push(jsxRuntime.jsx("div", { role: "img", "aria-label": ariaLabel, class: UNSAFE_Gantt_themes_GanttStyles_css.taskMobileAccStyles.content, style: {
2292
+ width: taskObj.width,
2293
+ height: taskObj.height,
2294
+ top: taskObj.y,
2295
+ left: taskObj.x
2296
+ } }));
2297
+ });
2298
+ });
2299
+ return (jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.taskMobileAccStyles.base, style: { width, height }, children: content }));
2300
+ }
2301
+
2302
+ function GanttTaskAccLayer({ width, height, rowData, dateFormatter, ariaActiveId, ariaActiveTaskObj, layoutObjs }) {
2303
+ return accUtils.supportsMobileScreenReader ? (jsxRuntime.jsx(GanttMobileTaskAccContent, { width: width, height: height, layoutObjs: layoutObjs, rowData: rowData, dateFormatter: dateFormatter })) : (jsxRuntime.jsx(GanttDesktopTaskAccContent, { width: width, height: height, rowData: rowData, dateFormatter: dateFormatter, ariaActiveId: ariaActiveId, ariaActiveTaskObj: ariaActiveTaskObj }));
2304
+ }
2305
+
2306
+ function GanttRowBackgroundsLayer({ width, height, layoutObjs }) {
2307
+ const selectedRowObjs = layoutObjs.filter((rowObj) => rowObj.isSelected);
2308
+ const selectedRowsCmd = selectedRowObjs
2309
+ .map(({ y, height }) => {
2310
+ // Reduce left and right edge by 1px to ensure the rendering doesn't
2311
+ // interfere with the row axis separator
2312
+ return `M1,${y} H${width - 1} V${y + height} H${1} Z`;
2313
+ })
2314
+ .join(' ');
2315
+ return selectedRowObjs.length > 0 ? (jsxRuntime.jsx("svg", { width: width, height: height, children: jsxRuntime.jsx("path", { class: UNSAFE_Gantt_themes_GanttStyles_css.rowBackgroundStyles.selected, d: selectedRowsCmd }) })) : null;
2316
+ }
2317
+
2318
+ /**
2319
+ * @license
2320
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
2321
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
2322
+ * as shown at https://oss.oracle.com/licenses/upl/
2323
+ * @ignore
2324
+ */
2325
+ /**
2326
+ * Draws a given task effect onto a given Canvas.
2327
+ * @param ctx The Canvas's 2D context.
2328
+ * @param effectLayout The task effect layout object.
2329
+ */
2330
+ const drawTaskEffectRing = (ctx, effectLayout) => {
2331
+ const { x, y, width, height, borderRadius, stroke, strokeWidth, padding } = effectLayout;
2332
+ const ringX = x - padding;
2333
+ const ringY = y - padding;
2334
+ const ringWidth = width + 2 * padding;
2335
+ const ringHeight = height + 2 * padding;
2336
+ const effectRingCmd = pathUtils.rectangleWithBorderRadius(ringX, ringY, ringWidth, ringHeight, borderRadius, Math.min(ringWidth, ringHeight), '0');
2337
+ const effectRingPath = new Path2D(effectRingCmd);
2338
+ ctx.strokeStyle = stroke;
2339
+ ctx.lineWidth = strokeWidth;
2340
+ ctx.stroke(effectRingPath);
2341
+ };
2342
+ /**
2343
+ * Draws a given task effect shadow onto a given Canvas.
2344
+ * @param ctx The Canvas's 2D context.
2345
+ * @param shadow The shadow definition.
2346
+ */
2347
+ const drawTaskEffectShadow = (ctx, shadow) => {
2348
+ ctx.shadowColor = shadow.shadowColor;
2349
+ ctx.shadowOffsetX = shadow.shadowOffsetX;
2350
+ ctx.shadowOffsetY = shadow.shadowOffsetY;
2351
+ ctx.shadowBlur = shadow.shadowBlur;
2352
+ };
2353
+ /**
2354
+ * Resets any shadow settings in the Canvas's context.
2355
+ * @param ctx The Canvas's 2D context.
2356
+ */
2357
+ const resetShadow = (ctx) => {
2358
+ ctx.shadowColor = 'transparent';
2359
+ ctx.shadowOffsetX = 0;
2360
+ ctx.shadowOffsetY = 0;
2361
+ ctx.shadowBlur = 0;
2362
+ };
2363
+ /**
2364
+ * Draws a given task onto a given Canvas.
2365
+ * @param ctx The Canvas's 2D context.
2366
+ * @param taskLayoutObj The task layout object.
2367
+ * @param state The task's state.
2368
+ */
2369
+ const drawTask = (ctx, taskLayoutObj, state) => {
2370
+ const drawShadow = state === 'hovered';
2371
+ const { x, y, width, height, borderRadius, fill, stroke, strokeWidth } = taskLayoutObj;
2372
+ const roundRectCmd = pathUtils.rectangleWithBorderRadius(x, y, width, height, borderRadius, Math.min(width, height), '0');
2373
+ const roundRectPath = new Path2D(roundRectCmd);
2374
+ // Draw white task backdrop
2375
+ if (drawShadow)
2376
+ drawTaskEffectShadow(ctx, taskLayoutObj.hoverEffect.shadow);
2377
+ ctx.fillStyle = '#ffffff';
2378
+ ctx.fill(roundRectPath);
2379
+ if (drawShadow)
2380
+ resetShadow(ctx);
2381
+ // Draw task
2382
+ ctx.strokeStyle = stroke;
2383
+ ctx.fillStyle = fill;
2384
+ ctx.lineWidth = strokeWidth;
2385
+ ctx.fill(roundRectPath);
2386
+ ctx.stroke(roundRectPath);
2387
+ switch (state) {
2388
+ case 'selected': {
2389
+ drawTaskEffectRing(ctx, {
2390
+ x,
2391
+ y,
2392
+ width,
2393
+ height,
2394
+ borderRadius,
2395
+ ...taskLayoutObj.selectionEffect
2396
+ });
2397
+ break;
2398
+ }
2399
+ case 'hovered': {
2400
+ drawTaskEffectRing(ctx, { x, y, width, height, borderRadius, ...taskLayoutObj.hoverEffect });
2401
+ break;
2402
+ }
2403
+ case 'focused': {
2404
+ drawTaskEffectRing(ctx, { x, y, width, height, borderRadius, ...taskLayoutObj.focusEffect });
2405
+ break;
2406
+ }
2407
+ case undefined: {
2408
+ // No effect
2409
+ break;
2410
+ }
2411
+ default: {
2412
+ const _exhaustiveCheck = state;
2413
+ return _exhaustiveCheck;
2414
+ }
2415
+ }
2416
+ };
2417
+
2418
+ function GanttTaskFocusEffectsLayer({ width, height, layoutObj: taskObj }) {
2419
+ const draw = (ctx) => {
2420
+ taskObj && drawTask(ctx, taskObj, 'focused');
2421
+ };
2422
+ return jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentCanvas2D, { width: width, height: height, draw: draw });
2423
+ }
2424
+
2425
+ function GanttTaskHoverEffectsLayer({ width, height, layoutObj: taskObj }) {
2426
+ const draw = (ctx) => {
2427
+ taskObj && drawTask(ctx, taskObj, 'hovered');
2428
+ };
2429
+ return jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentCanvas2D, { width: width, height: height, draw: draw });
2430
+ }
2431
+
2432
+ function GanttTaskSelectionEffectsLayer({ width, height, layoutObjs }) {
2433
+ const draw = (ctx) => {
2434
+ layoutObjs.forEach((taskObj) => drawTask(ctx, taskObj, 'selected'));
2435
+ };
2436
+ return jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentCanvas2D, { width: width, height: height, draw: draw });
2437
+ }
2438
+
2439
+ function GanttTaskEffectsLayer({ width, height, layoutObjs: { selectedTaskObjs, hoveredTaskObj, focusedTaskObj } }) {
2440
+ return (jsxRuntime.jsxs(TimeComponentCanvas2D.TimeComponentLayersStack, { width: `${width}px`, height: `${height}px`, children: [jsxRuntime.jsx(GanttTaskFocusEffectsLayer, { width: width, height: height, layoutObj: focusedTaskObj }), jsxRuntime.jsx(GanttTaskSelectionEffectsLayer, { width: width, height: height, layoutObjs: selectedTaskObjs }), jsxRuntime.jsx(GanttTaskHoverEffectsLayer, { width: width, height: height, layoutObj: hoveredTaskObj })] }));
2441
+ }
2442
+
2443
+ function GanttTaskLabel({ x, y, width, height, label, isInner, textAlign, labelStyle }) {
2444
+ return (jsxRuntime.jsx("div", { "aria-hidden": "true", class: classNames.classNames([UNSAFE_Gantt_themes_GanttStyles_css.taskLabelLayerStyles.label, isInner && UNSAFE_Gantt_themes_GanttStyles_css.taskLabelLayerStyles.innerLabel]), style: {
2445
+ left: x,
2446
+ top: y,
2447
+ width,
2448
+ height,
2449
+ textAlign,
2450
+ ...labelStyle
2451
+ }, children: jsxRuntime.jsx(Text.Text, { variant: labelStyle?.color ? 'inherit' : 'primary', truncation: "ellipsis", size: "md", weight: "inherit", children: label }) }));
2452
+ }
2453
+
2454
+ function GanttTaskLabelsLayer({ width, height, layoutObjs }) {
2455
+ return (jsxRuntime.jsx("div", { class: UNSAFE_Gantt_themes_GanttStyles_css.taskLabelLayerStyles.base, style: { width, height }, children: layoutObjs.map((labelObj) => (jsxRuntime.jsx(GanttTaskLabel, { ...labelObj }))) }));
2456
+ }
2457
+
2458
+ function GanttTasksLayer({ width, height, layoutObjs }) {
2459
+ const draw = (ctx) => {
2460
+ layoutObjs.forEach((rowObj) => {
2461
+ rowObj.taskObjs.forEach((taskObj) => drawTask(ctx, taskObj));
2462
+ });
2463
+ };
2464
+ return jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentCanvas2D, { width: width, height: height, draw: draw });
2465
+ }
2466
+
2467
+ function GanttDataBody({ width, height, minorAxisLayout: { minorGridTicksPos, majorGridTicksPos }, viewportLayout: { gridlines, rowData, rowObjs, taskLabelObjs, horizontalGridlinesPos, idTaskObjMap }, effectsLayout, dateFormatter, ariaActiveTask }) {
2468
+ return (jsxRuntime.jsxs(TimeComponentCanvas2D.TimeComponentLayersStack, { width: `${width}px`, height: `${height}px`, children: [jsxRuntime.jsx(GanttRowBackgroundsLayer, { width: width, height: height, layoutObjs: rowObjs }), gridlines.vertical === 'on' && (jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentVerticalGridlines, { width: width, height: height, positions: minorGridTicksPos, variant: "minor" })), gridlines.vertical === 'on' && majorGridTicksPos && (jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentVerticalGridlines, { width: width, height: height, positions: majorGridTicksPos, variant: "major" })), horizontalGridlinesPos && (jsxRuntime.jsx(GanttHorizontalGridlinesLayer, { width: width, height: height, positions: horizontalGridlinesPos })), jsxRuntime.jsx(GanttTaskAccLayer, { width: width, height: height, layoutObjs: rowObjs, rowData: rowData, dateFormatter: dateFormatter, ariaActiveId: ariaActiveTask?.ariaId, ariaActiveTaskObj: ariaActiveTask && idTaskObjMap.get(ariaActiveTask.dataId) }), jsxRuntime.jsx(GanttTasksLayer, { width: width, height: height, layoutObjs: rowObjs }), jsxRuntime.jsx(GanttTaskEffectsLayer, { width: width, height: height, layoutObjs: effectsLayout }), jsxRuntime.jsx(GanttTaskLabelsLayer, { width: width, height: height, layoutObjs: taskLabelObjs })] }));
2469
+ }
2470
+
2471
+ function GanttView({ visRef, overlayControlsContainerRef, panZoomLayout, getTimeAxesLayout, getHorizontalScrollbarLayout, onHorizontalScrollChange, getVerticalScrollbarLayout, onVerticalScrollChange, rowAxisSeparator = false, zoomParameters, zooming = 'on', isViewportDefined, onViewportChange, getResolvedViewportLayout, datatip, rowDataLayout, isRTL, scrollPosition, onScrollPositionChange, selectedIds, selectionMode, onSelectionChange, hoveredTaskId, onTaskHoverChange, currentTask, onCurrentTaskChange, currentTaskInteraction, ariaActive, width, height }) {
2472
+ return (jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentPanZoomLayout, { overlayControlsContainerRef: overlayControlsContainerRef, ...panZoomLayout, width: width, height: height, overlayControls: zooming === 'on' && zoomParameters && isViewportDefined ? (jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentZoomControls, { position: panZoomLayout.overlayControlsPosition, zoomParameters: zoomParameters, onViewportChange: onViewportChange })) : undefined, verticalControl: jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentVerticalScrollbarContainer, { getLayout: getVerticalScrollbarLayout, onRangeChange: onVerticalScrollChange, children: (layout) => jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentVerticalScrollbar, { ...layout }) }), horizontalControl: jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentHorizontalScrollbarContainer, { getLayout: getHorizontalScrollbarLayout, onRangeChange: onHorizontalScrollChange, children: (layout) => jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentHorizontalScrollbar, { ...layout }) }), vis: jsxRuntime.jsx(GanttTimeAxisDataBody, { innerRef: visRef, isRTL: isRTL, scrollPosition: scrollPosition, onScrollPositionChange: onScrollPositionChange, isViewportDefined: isViewportDefined, onViewportChange: onViewportChange, zoomParameters: zoomParameters, zooming: zooming, rowAxisSeparator: rowAxisSeparator, selectedIds: selectedIds, selectionMode: selectionMode, onSelectionChange: onSelectionChange, hoveredTaskId: hoveredTaskId, onTaskHoverChange: onTaskHoverChange, currentTask: currentTask, onCurrentTaskChange: onCurrentTaskChange, currentTaskInteraction: currentTaskInteraction, ariaActive: ariaActive, getTimeAxesLayout: getTimeAxesLayout, getResolvedViewportLayout: getResolvedViewportLayout, rowDataLayout: rowDataLayout, datatip: datatip, majorAxis: (layout) => jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentHorizontalTimeAxis, { ...layout }), minorAxis: (layout) => jsxRuntime.jsx(TimeComponentCanvas2D.TimeComponentHorizontalTimeAxis, { ...layout }), dataBody: (layout) => jsxRuntime.jsx(GanttDataBody, { ...layout }) }) }));
2473
+ }
2474
+
2475
+ /**
2476
+ * @license
2477
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
2478
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
2479
+ * as shown at https://oss.oracle.com/licenses/upl/
2480
+ * @ignore
2481
+ */
2482
+ // TODO: Remove and replace this with the future useTextDimensions batch text measurements solution.
2483
+ // We also just need width, so maybe we can make useTextDimensions optimize for that case too
2484
+ // e.g. use canvas backend for width only measurements, etc.
2485
+ /**
2486
+ * Gets the text dimensions of the given array of texts.
2487
+ * @param getTextDimensions The measurement function.
2488
+ * @param texts An array of texts.
2489
+ * @param font The font of the texts.
2490
+ * @returns An array of text dimensions.
2491
+ */
2492
+ const getBatchTextDimensions = (getTextDimensions, texts, font) => texts.map((text) => getTextDimensions(text, font));
2493
+ /**
2494
+ * Gets the (unresolved) time axis height.
2495
+ * @param axisProps The axis props.
2496
+ * @returns The (unresolved) height.
2497
+ */
2498
+ const getUnresolvedTimeAxisHeight = (axisProps) => {
2499
+ return axisProps === undefined
2500
+ ? '0px'
2501
+ : axisProps.height !== undefined
2502
+ ? `${axisProps.height}px`
2503
+ : PRIVATE_TimeComponent_themes_TimeComponentStyles_css.bridgeValues.horizontalTimeAxisHeight;
2504
+ };
2505
+ /**
2506
+ * Gets the unresolved time axis layout.
2507
+ * @param axisPosition The axis position.
2508
+ * @param minorAxis The minor axis props.
2509
+ * @param majorAxis The major axis props.
2510
+ * @returns The unresovled time axis layout.
2511
+ */
2512
+ const getUnresolvedTimeAxesLayout = (axisPosition, minorAxis, majorAxis) => {
2513
+ const minorAxisHeight = getUnresolvedTimeAxisHeight(minorAxis);
2514
+ const majorAxisHeight = getUnresolvedTimeAxisHeight(majorAxis);
2515
+ const totalHeight = `calc(${majorAxisHeight} + ${minorAxisHeight})`;
2516
+ return {
2517
+ position: axisPosition,
2518
+ height: totalHeight
2519
+ };
2520
+ };
2521
+ /**
2522
+ * Gets the resolved time axis height.
2523
+ * @param defaultHeight The default time axis height.
2524
+ * @param axisProps The axis props.
2525
+ * @returns The time axis height in pixels.
2526
+ */
2527
+ const getResolvedTimeAxisHeight = (defaultHeight, axisProps) => {
2528
+ return axisProps === undefined
2529
+ ? 0
2530
+ : axisProps.height !== undefined
2531
+ ? axisProps.height
2532
+ : defaultHeight;
2533
+ };
2534
+ /**
2535
+ * Gets the resolved time axis props.
2536
+ * @param defaultHeight The default time axis height.
2537
+ * @param axisProps The axis props.
2538
+ * @returns The resolved axis props.
2539
+ */
2540
+ const getResolvedTimeAxisProps = (defaultHeight, axisProps) => {
2541
+ const height = getResolvedTimeAxisHeight(defaultHeight, axisProps);
2542
+ const { scale, zoomOrder = [axisProps.scale] } = axisProps;
2543
+ return {
2544
+ height,
2545
+ zoomOrder,
2546
+ zoomOrderIndex: zoomOrder.indexOf(scale)
2547
+ };
2548
+ };
2549
+ /**
2550
+ * Gets the interval start time relative to the given time according to the given scale.
2551
+ * @param scale The time scale.
2552
+ * @param time The query time.
2553
+ * @returns The interval start time.
2554
+ */
2555
+ const getPreviousTime = (scale, time) => {
2556
+ return Date.parse(scale.getPreviousDate(new Date(time).toISOString()));
2557
+ };
2558
+ /**
2559
+ * Gets the interval end time relative to the given time according to the given scale.
2560
+ * @param scale The time scale.
2561
+ * @param time The query time.
2562
+ * @returns The interval end time.
2563
+ */
2564
+ const getNextTime = (scale, time) => {
2565
+ return Date.parse(scale.getNextDate(new Date(time).toISOString()));
2566
+ };
2567
+ /**
2568
+ * Gets the time axis ticks in the given viewport.
2569
+ * @param scale The time scale.
2570
+ * @param viewportStartTime The viewport start time.
2571
+ * @param viewportEndTime The viewport end time.
2572
+ * @returns The ticks (in time).
2573
+ */
2574
+ const getViewportTicks = (scale, viewportStartTime, viewportEndTime) => {
2575
+ const times = [getPreviousTime(scale, viewportStartTime)];
2576
+ while (times[times.length - 1] < viewportEndTime) {
2577
+ times.push(getNextTime(scale, times[times.length - 1]));
2578
+ }
2579
+ return times;
2580
+ };
2581
+ /**
2582
+ * Returns a set of date intervals sampled using the following procedure:
2583
+ * 1. Divide up the time range into numSections sections
2584
+ * 2. For each section, take the first numIntervalsPerSection intervals from the start,
2585
+ * plus the last interval of the section.
2586
+ * 3. Consolidate all of them and return
2587
+ * @param scale
2588
+ * @param startTime
2589
+ * @param endTime
2590
+ * @param numSections
2591
+ * @param numIntervalsPerSection
2592
+ * @returns The unique intervals retrieved (as a Map of <start time, end time>)
2593
+ */
2594
+ const sampleIntervals = (scale, startTime, endTime, numSections, numIntervalsPerSection) => {
2595
+ // key: interval start time, value: interval end time
2596
+ // Use Map to prevent duplicate intervals
2597
+ const intervals = new Map();
2598
+ const sectionInterval = Math.floor((endTime - startTime) / numSections);
2599
+ for (let i = 0; i < numSections; i++) {
2600
+ const sectionStartTime = startTime + sectionInterval * i;
2601
+ const sectionEndTime = Math.min(startTime + sectionInterval * (i + 1), endTime);
2602
+ let prevTime = getPreviousTime(scale, sectionStartTime);
2603
+ for (let j = 0; j < numIntervalsPerSection; j++) {
2604
+ if (prevTime >= sectionEndTime) {
2605
+ break;
2606
+ }
2607
+ const currTime = getNextTime(scale, prevTime);
2608
+ intervals.set(prevTime, currTime);
2609
+ prevTime = currTime;
2610
+ }
2611
+ // Also consider last label at the end of the section
2612
+ prevTime = getPreviousTime(scale, sectionEndTime - 1);
2613
+ intervals.set(prevTime, getNextTime(scale, prevTime));
2614
+ }
2615
+ return intervals;
2616
+ };
2617
+ /**
2618
+ * Gets (a representative set of) the time intervals in the given time scale.
2619
+ * @param scale The time scale.
2620
+ * @param samplingStrategy The sampling strategy to use.
2621
+ * The 'exact' type would retrieve ALL intervals in the given range and scale.
2622
+ * 'approximate' would retrieve only a representative subset of intervals.
2623
+ * @returns (A representative set of) the time intervals in the given time scale.
2624
+ */
2625
+ const getTimeAxisIntervals = (scale, samplingStrategy) => {
2626
+ const { type, params } = samplingStrategy;
2627
+ switch (type) {
2628
+ case 'exact': {
2629
+ const intervals = new Map();
2630
+ const viewportTimes = getViewportTicks(scale, params.startTime, params.endTime);
2631
+ for (let i = 0; i < viewportTimes.length - 1; i++) {
2632
+ intervals.set(viewportTimes[i], viewportTimes[i + 1]);
2633
+ }
2634
+ return { intervals, numIntervals: intervals.size };
2635
+ }
2636
+ case 'approximate': {
2637
+ // Rather than computing all dates (and labels) to obtain exact dimensions,
2638
+ // heuristically sample a subset of dates for better performance.
2639
+ // Assumption is that in many usecases, label widths have small variance.
2640
+ // Even if our estimation is off and cause a label trunction, users can manually zoom in to see the full label.
2641
+ const { startTime, endTime, numSections, numIntervalsPerSection } = params;
2642
+ const intervals = sampleIntervals(scale, startTime, endTime, numSections, numIntervalsPerSection);
2643
+ // Estimate real number of intervals
2644
+ const intervalStartTimes = [...intervals.keys()];
2645
+ const avgTimePerInterval = intervalStartTimes.reduce((sum, prevTime) => {
2646
+ return sum + (intervals.get(prevTime) - Number(prevTime));
2647
+ }, 0) / intervalStartTimes.length;
2648
+ const estNumIntervals = (endTime - startTime) / avgTimePerInterval;
2649
+ return { intervals, numIntervals: estNumIntervals };
2650
+ }
2651
+ default: {
2652
+ const _exhaustiveCheck = type;
2653
+ return _exhaustiveCheck;
2654
+ }
2655
+ }
2656
+ };
2657
+ /**
2658
+ * Gets the zoom order characteristics based on the given time intervals, and widths of those intervals.
2659
+ * @param getTextDimensions The text measurement function.
2660
+ * @param intervalPaddingStart The interval padding start.
2661
+ * @param intervalPaddingEnd The interval padding end.
2662
+ * @param minIntervalWidth The minimum interval width.
2663
+ * @param axisFont The font.
2664
+ * @param zoomOrder The zoom order.
2665
+ * @param samplingStrategy The sampling strategy to use to retrieve intervals.
2666
+ * @returns The min length factor for each scale in the zoom order, and (an estimate of) the max number of intervals in the time axis across all scales in the zoom order.
2667
+ */
2668
+ const getZoomOrderCharacteristics = (getTextDimensions, intervalPaddingStart, intervalPaddingEnd, minIntervalWidth, axisFont, zoomOrder, samplingStrategy) => {
2669
+ const intervalPadding = intervalPaddingStart + intervalPaddingEnd;
2670
+ const zoomLevelIntervals = zoomOrder.map((scale) => getTimeAxisIntervals(scale, samplingStrategy));
2671
+ const maxNumIntervals = Math.max(...zoomLevelIntervals.map(({ numIntervals }) => numIntervals));
2672
+ const zoomOrderMinLengthFactor = zoomLevelIntervals.map(({ intervals }, i) => {
2673
+ const scale = zoomOrder[i];
2674
+ const prevTimes = [...intervals.keys()];
2675
+ const labels = prevTimes.map((prevTime) => getTimeLabel(scale, intervals.get(prevTime)));
2676
+ const intervalDurations = prevTimes.map((prevTime) => intervals.get(prevTime) - prevTime);
2677
+ const intervalLabelDimensions = getBatchTextDimensions(getTextDimensions, labels, axisFont);
2678
+ const minLengthFactor = Math.min(...intervalDurations.map((duration, i) => {
2679
+ const contentWidth = Math.max(minIntervalWidth, intervalLabelDimensions[i].width + intervalPadding);
2680
+ return duration / contentWidth;
2681
+ }));
2682
+ return minLengthFactor;
2683
+ });
2684
+ return {
2685
+ zoomOrderMinLengthFactor,
2686
+ maxNumIntervals
2687
+ };
2688
+ };
2689
+ /**
2690
+ * Gets the resolved viewport range given the range constraints.
2691
+ * @param viewportDuration The viewport duration.
2692
+ * @param startTime The start time.
2693
+ * @param endTime The end time.
2694
+ * @param viewportStartTime The viewport start time.
2695
+ * @param viewportEndTime The viewport end time.
2696
+ * @returns The resolved viewport range.
2697
+ */
2698
+ const getResolvedViewport = (viewportDuration, startTime, endTime, viewportStartTime, viewportEndTime) => {
2699
+ if (viewportStartTime !== undefined && viewportEndTime !== undefined) {
2700
+ return { viewportStartTime, viewportEndTime };
2701
+ }
2702
+ if (viewportStartTime !== undefined && viewportEndTime === undefined) {
2703
+ return {
2704
+ viewportStartTime,
2705
+ viewportEndTime: Math.min(endTime, viewportStartTime + viewportDuration)
2706
+ };
2707
+ }
2708
+ if (viewportStartTime === undefined && viewportEndTime !== undefined) {
2709
+ return {
2710
+ viewportStartTime: Math.max(startTime, viewportEndTime - viewportDuration),
2711
+ viewportEndTime
2712
+ };
2713
+ }
2714
+ return {
2715
+ viewportStartTime: startTime,
2716
+ viewportEndTime: Math.min(endTime, startTime + viewportDuration)
2717
+ };
2718
+ };
2719
+ /**
2720
+ * Gets the formatted string for the given time in the given scale.
2721
+ * This is used for the time axis interval labels.
2722
+ * @param scale The time scale.
2723
+ * @param time The time.
2724
+ * @returns The formatted string.
2725
+ */
2726
+ const getTimeLabel = (scale, time) => scale.formatter(new Date(time).toISOString());
2727
+ /**
2728
+ * Gets the viewport axis ticks and labels for the given scale.
2729
+ * @param scale The time scale.
2730
+ * @param viewportStartTime The viewport start time.
2731
+ * @param viewportEndTime The viewport end time.
2732
+ * @returns The ticks and labels.
2733
+ */
2734
+ const getViewportLabelsTicks = (scale, viewportStartTime, viewportEndTime) => {
2735
+ // ticks.length >= 2 always, because there's always the first and last tick.
2736
+ const ticks = getViewportTicks(scale, viewportStartTime, viewportEndTime);
2737
+ // We don't need the label of the last tick.
2738
+ const labels = ticks.slice(0, ticks.length - 1).map((t) => getTimeLabel(scale, t));
2739
+ return { ticks, labels };
2740
+ };
2741
+ /**
2742
+ * Gets the time axis layout.
2743
+ * @param getTextDimensions The text measurement function.
2744
+ * @param labelPaddingStart The interval label padding start.
2745
+ * @param labelPaddingEnd The interval label padding end.
2746
+ * @param font The font.
2747
+ * @param labelPosition The label position.
2748
+ * @param ticks The ticks (in time).
2749
+ * @param gridTicks The subset of visible ticks that mark the vertical tick lines (in time).
2750
+ * @param labels The interval labels.
2751
+ * @param startTime The start time.
2752
+ * @param endTime The end time.
2753
+ * @param viewportStartTime The viewport start time.
2754
+ * @param viewportEndTime The viewport end time.
2755
+ * @param width The viewport width.
2756
+ * @param isRTL Whether the reading direction is rtl.
2757
+ * @returns The time axis layout.
2758
+ */
2759
+ const getTimeAxisLayout = (getTextDimensions, labelPaddingStart, labelPaddingEnd, font, labelPosition = 'start', ticks, gridTicks, labels, startTime, endTime, viewportStartTime, viewportEndTime, width, isRTL) => {
2760
+ const intervalPadding = labelPaddingStart + labelPaddingEnd;
2761
+ const vs = viewportStartTime;
2762
+ const ve = viewportEndTime;
2763
+ const labelTicks = ticks.slice(0, ticks.length - 1);
2764
+ const gridTicksPos = gridTicks.map((t) => TimeComponentCanvas2D.getTimePosition(t, vs, ve, width, isRTL));
2765
+ const ticksPos = ticks.map((t) => TimeComponentCanvas2D.getTimePosition(t, vs, ve, width, isRTL));
2766
+ const intervalWidths = ticksPos
2767
+ .slice(1)
2768
+ .map((p, i) => (isRTL ? ticksPos[i] - p : p - ticksPos[i]));
2769
+ // Labels that start before the startTime or ends after the endTime need to be truncated
2770
+ const isIntervalStartTruncated = ticks[0] < startTime;
2771
+ if (isIntervalStartTruncated) {
2772
+ ticksPos[0] = 0;
2773
+ intervalWidths[0] = ticksPos[1];
2774
+ }
2775
+ if (ticks[ticks.length - 1] > endTime) {
2776
+ ticksPos[ticksPos.length - 1] = isRTL ? 0 : width;
2777
+ intervalWidths[intervalWidths.length - 1] = isRTL
2778
+ ? ticksPos[ticksPos.length - 2] - ticksPos[ticksPos.length - 1]
2779
+ : ticksPos[ticksPos.length - 1] - ticksPos[ticksPos.length - 2];
2780
+ }
2781
+ const labelPositions = ticksPos
2782
+ .slice(0, ticksPos.length - 1)
2783
+ .map((p, i) => (isRTL ? p - intervalWidths[i] : p));
2784
+ const isLabelTruncated = getBatchTextDimensions(getTextDimensions, labels, font).map(({ width }, i) => Math.floor(width) - Math.floor(intervalWidths[i] - intervalPadding) > 0);
2785
+ return {
2786
+ font,
2787
+ labelPosition,
2788
+ labels,
2789
+ labelTicks,
2790
+ labelPositions,
2791
+ isLabelTruncated,
2792
+ isIntervalStartTruncated,
2793
+ intervalWidths,
2794
+ gridTicksPos,
2795
+ isRTL
2796
+ };
2797
+ };
2798
+ /**
2799
+ * Gets the time axes layout for the viewport.
2800
+ * @param getTextDimensions The text measurement function.
2801
+ * @param labelPaddingStart The interval label padding start.
2802
+ * @param labelPaddingEnd The interval label padding end.
2803
+ * @param majorAxisFont The major axis font.
2804
+ * @param minorAxisFont The minor axis font.
2805
+ * @param startTime The start time.
2806
+ * @param endTime The end time.
2807
+ * @param viewportStartTime The viewport start time.
2808
+ * @param viewportEndTime The viewport end time.
2809
+ * @param width The viewport width.
2810
+ * @param isRTL Whether the reading direction is rtl.
2811
+ * @param minorAxisScale The minor axis scale.
2812
+ * @param majorAxisScale The major axis scale.
2813
+ * @returns The time axes layout for the viewport.
2814
+ */
2815
+ const getTimeAxesViewportLayout = (getTextDimensions, labelPaddingStart, labelPaddingEnd, majorAxisFont, minorAxisFont, startTime, endTime, viewportStartTime, viewportEndTime, width, isRTL, minorAxisScale, majorAxisScale) => {
2816
+ const majorAxisLabelsTicks = majorAxisScale
2817
+ ? getViewportLabelsTicks(majorAxisScale, viewportStartTime, viewportEndTime)
2818
+ : { ticks: [], labels: [] };
2819
+ const minorAxisLabelsTicks = getViewportLabelsTicks(minorAxisScale, viewportStartTime, viewportEndTime);
2820
+ // Determine whether to render secondary major gridlines
2821
+ // If major dates is a subset of minor dates, then the two grids line up.
2822
+ // Don't render the minor dates at overlap
2823
+ // (due to opacity, minor line would show through major line otherwise).
2824
+ // Otherwise the major and minor axis do not "line up"
2825
+ // (e.g. months and weeks scale together). Render minor lines only.
2826
+ const { ticks: majorTicks, labels: majorLabels } = majorAxisLabelsTicks;
2827
+ const { ticks: minorTicks, labels: minorLabels } = minorAxisLabelsTicks;
2828
+ const majorTicksSet = new Set(majorTicks);
2829
+ const minorTicksSet = new Set(minorTicks);
2830
+ // only consider major dates that are in range (e.g. first and/or last ticks may be out of range)
2831
+ const showMajorTicks = majorTicks.filter((t) => t > viewportStartTime && t < viewportEndTime && !minorTicksSet.has(t))
2832
+ .length === 0;
2833
+ const minorGridTicks = showMajorTicks
2834
+ ? minorTicks.filter((t) => !majorTicksSet.has(t))
2835
+ : minorTicks;
2836
+ const majorAxisLayout = majorAxisScale &&
2837
+ getTimeAxisLayout(getTextDimensions, labelPaddingStart, labelPaddingEnd, majorAxisFont, majorAxisScale.labelPosition, majorTicks, majorTicks, majorLabels, startTime, endTime, viewportStartTime, viewportEndTime, width, isRTL);
2838
+ const minorAxisLayout = getTimeAxisLayout(getTextDimensions, labelPaddingStart, labelPaddingEnd, minorAxisFont, minorAxisScale.labelPosition, minorTicks, minorGridTicks, minorLabels, startTime, endTime, viewportStartTime, viewportEndTime, width, isRTL);
2839
+ return {
2840
+ minorAxisLayout: {
2841
+ majorGridTicksPos: showMajorTicks && majorAxisLayout ? majorAxisLayout.gridTicksPos : undefined,
2842
+ minorGridTicksPos: minorAxisLayout.gridTicksPos,
2843
+ variant: 'minor',
2844
+ ...minorAxisLayout
2845
+ },
2846
+ majorAxisLayout: majorAxisLayout && {
2847
+ majorGridTicksPos: majorAxisLayout.gridTicksPos,
2848
+ minorGridTicksPos: undefined,
2849
+ variant: 'major',
2850
+ ...majorAxisLayout
2851
+ }
2852
+ };
2853
+ };
2854
+ /**
2855
+ * Gets the time axes zoom parameters.
2856
+ * @param getTextDimensions The text measurement function.
2857
+ * @param labelPaddingStart The interval label padding start.
2858
+ * @param labelPaddingEnd The interval label padding end.
2859
+ * @param labelMinWidth The interval label min width.
2860
+ * @param minorAxisFont The minor axis font.
2861
+ * @param startTime The start time.
2862
+ * @param endTime The end time.
2863
+ * @param minorAxisZoomOrder The minor axis zoom order.
2864
+ * @returns The time axes zoom parameters.
2865
+ */
2866
+ const getTimeAxesZoomParameters = (getTextDimensions, labelPaddingStart, labelPaddingEnd, labelMinWidth, minorAxisFont, startTime, endTime, minorAxisZoomOrder) => {
2867
+ const { zoomOrderMinLengthFactor, maxNumIntervals } = getZoomOrderCharacteristics(getTextDimensions, labelPaddingStart, labelPaddingEnd, labelMinWidth, minorAxisFont, minorAxisZoomOrder,
2868
+ // 4 sections and 10 interval sections is arbitrary, which samples some labels at every quarter.
2869
+ // This is more than enough for the current default scales and labels because they're very equally spaced.
2870
+ // but this may not work well with weird custom scales such as reptitions of e.g. [3 weeks, 7 days, 2 months]
2871
+ // for a span of 1 year, in which case we may only see weeks and months in our sample, but not days,
2872
+ // and we underestimate the content lengths.
2873
+ // But even then, users may still be able to zoom in sufficiently to see everything they need.
2874
+ // If it turns out this doesn't work well for some common cases, we can bump these params up
2875
+ // to cover more intervals in the future.
2876
+ {
2877
+ type: 'approximate',
2878
+ params: { numSections: 4, numIntervalsPerSection: 10, startTime, endTime }
2879
+ });
2880
+ const getZoomOrderViewDurationThresholds = (width) => zoomOrderMinLengthFactor.map((l) => width * l);
2881
+ const minZoomViewportDuration = (endTime - startTime) / maxNumIntervals;
2882
+ const maxZoomViewportDuration = endTime - startTime;
2883
+ return {
2884
+ getZoomOrderViewDurationThresholds,
2885
+ minorAxisZoomOrder,
2886
+ minZoomViewportDuration,
2887
+ maxZoomViewportDuration,
2888
+ startTime,
2889
+ endTime
2890
+ };
2891
+ };
2892
+ /**
2893
+ * Returns a function that given the viewport width, returns the resolved time axes layout for the given viewport.
2894
+ * @param getTextDimensions The text measurement function.
2895
+ * @param labelPaddingStart The interval label padding start.
2896
+ * @param labelPaddingEnd The interval label padding end.
2897
+ * @param majorAxisFont The major axis font.
2898
+ * @param minorAxisFont The minor axis font.
2899
+ * @param getZoomOrderViewDurationThresholds A function that given the viewport width, returns the zoom order viewport duration thresholds.
2900
+ * @param axisPosition The axis position.
2901
+ * @param startTime The start time.
2902
+ * @param endTime The end time.
2903
+ * @param isRTL Whether the reading direction is rtl.
2904
+ * @param resolvedMinorAxisProps The resolved minor axis props.
2905
+ * @param resolvedMajorAxisProps The resolved major axis props.
2906
+ * @param viewportStartTime The viewport start time.
2907
+ * @param viewportEndTime The viewport end time.
2908
+ * @returns A function that given the viewport width, returns the resolved time axes layout for the given viewport.
2909
+ */
2910
+ const getResolvedTimeAxesLayout = (getTextDimensions, labelPaddingStart, labelPaddingEnd, majorAxisFont, minorAxisFont, getZoomOrderViewDurationThresholds, axisPosition, startTime, endTime, isRTL, resolvedMinorAxisProps, resolvedMajorAxisProps, viewportStartTime, viewportEndTime) => {
2911
+ return (width) => {
2912
+ const { zoomOrder, zoomOrderIndex } = resolvedMinorAxisProps;
2913
+ const zoomOrderViewDurationThresholds = getZoomOrderViewDurationThresholds(width);
2914
+ const { viewportStartTime: resolvedViewportStartTime, viewportEndTime: resolvedViewportEndTime } = getResolvedViewport(zoomOrderViewDurationThresholds[zoomOrderIndex], startTime, endTime, viewportStartTime, viewportEndTime);
2915
+ const { majorAxisLayout, minorAxisLayout } = getTimeAxesViewportLayout(getTextDimensions, labelPaddingStart, labelPaddingEnd, majorAxisFont, minorAxisFont, startTime, endTime, resolvedViewportStartTime, resolvedViewportEndTime, width, isRTL, zoomOrder[zoomOrderIndex], resolvedMajorAxisProps &&
2916
+ resolvedMajorAxisProps.zoomOrder[resolvedMajorAxisProps.zoomOrderIndex]);
2917
+ return {
2918
+ position: axisPosition,
2919
+ startTime,
2920
+ endTime,
2921
+ viewportStartTime: resolvedViewportStartTime,
2922
+ viewportEndTime: resolvedViewportEndTime,
2923
+ width,
2924
+ majorAxis: majorAxisLayout && { width, ...resolvedMajorAxisProps, ...majorAxisLayout },
2925
+ minorAxis: { width, ...resolvedMinorAxisProps, ...minorAxisLayout }
2926
+ };
2927
+ };
2928
+ };
2929
+
2930
+ /**
2931
+ * @license
2932
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
2933
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
2934
+ * as shown at https://oss.oracle.com/licenses/upl/
2935
+ * @ignore
2936
+ */
2937
+ /**
2938
+ * Returns whether the given configration is valid.
2939
+ * @param startTime The start time.
2940
+ * @param endTime The end time.
2941
+ * @param viewportStartTime The viewport start time.
2942
+ * @param viewportEndTime The viewport end time.
2943
+ * @returns Whether the given configuration is valid.
2944
+ */
2945
+ const hasValidTimeConfig = (startTime, endTime, viewportStartTime, viewportEndTime) => {
2946
+ const hasValidStartAndEnd = endTime > startTime;
2947
+ const hasValidViewport = viewportStartTime !== undefined && viewportEndTime !== undefined
2948
+ ? viewportEndTime > viewportStartTime
2949
+ : true;
2950
+ const hasValidViewportStart = viewportStartTime !== undefined
2951
+ ? viewportStartTime >= startTime && viewportStartTime < endTime
2952
+ : true;
2953
+ const hasValidViewportEnd = viewportEndTime !== undefined
2954
+ ? viewportEndTime > startTime && viewportEndTime <= endTime
2955
+ : true;
2956
+ return hasValidStartAndEnd && hasValidViewport && hasValidViewportStart && hasValidViewportEnd;
2957
+ };
2958
+ /**
2959
+ * Gets the parsed time axis params.
2960
+ * @param start The start date string.
2961
+ * @param end The end date string.
2962
+ * @param viewportStart The viewport start date string.
2963
+ * @param viewportEnd The viewport end date string.
2964
+ * @returns The parsed params.
2965
+ */
2966
+ const getParsedTimeAxisParams = (start, end, viewportStart, viewportEnd) => {
2967
+ const startTime = TimeComponentCanvas2D.parseDate(start);
2968
+ const endTime = TimeComponentCanvas2D.parseDate(end);
2969
+ const viewportStartTime = viewportStart ? TimeComponentCanvas2D.parseDate(viewportStart) : undefined;
2970
+ const viewportEndTime = viewportEnd ? TimeComponentCanvas2D.parseDate(viewportEnd) : undefined;
2971
+ const isValidTimeConfig = hasValidTimeConfig(startTime, endTime, viewportStartTime, viewportEndTime);
2972
+ return { startTime, endTime, viewportStartTime, viewportEndTime, isValidTimeConfig };
2973
+ };
2974
+
2975
+ const timeComponentUnresolvedVars = [
2976
+ {
2977
+ tokenVar: PRIVATE_TimeComponent_themes_TimeComponentStyles_css.bridgeValues.horizontalTimeAxisHeight,
2978
+ key: 'defaultTimeAxisHeight',
2979
+ cssProp: 'height'
2980
+ },
2981
+ {
2982
+ tokenVar: PRIVATE_TimeComponent_themes_TimeComponentStyles_css.bridgeValues.horizontalTimeAxisLabelPaddingInlineStart,
2983
+ key: 'timeAxisLabelPaddingInlineStart',
2984
+ cssProp: 'margin-inline-start'
2985
+ },
2986
+ {
2987
+ tokenVar: PRIVATE_TimeComponent_themes_TimeComponentStyles_css.bridgeValues.horizontalTimeAxisLabelPaddingInlineEnd,
2988
+ key: 'timeAxisLabelPaddingInlineEnd',
2989
+ cssProp: 'margin-inline-end'
2990
+ },
2991
+ {
2992
+ tokenVar: utils.xUnits(12.5),
2993
+ key: 'timeAxisLabelMinWidth',
2994
+ cssProp: 'min-width'
2995
+ },
2996
+ {
2997
+ tokenVar: Common_themes_themeContract_css.typographyVars.body.md.fontSize,
2998
+ key: 'majorAxisFontSize',
2999
+ cssProp: 'font-size'
3000
+ },
3001
+ {
3002
+ tokenVar: Common_themes_themeContract_css.typographyVars.body.sm.fontSize,
3003
+ key: 'minorAxisFontSize',
3004
+ cssProp: 'margin-block-start'
3005
+ },
3006
+ {
3007
+ tokenVar: Common_themes_themeContract_css.typographyVars.body.md.fontWeight.semibold,
3008
+ key: 'majorAxisFontWeight'
3009
+ },
3010
+ {
3011
+ tokenVar: Common_themes_themeContract_css.typographyVars.body.sm.fontWeight.regular,
3012
+ key: 'minorAxisFontWeight'
3013
+ }
3014
+ ];
3015
+ /**
3016
+ * Gets the resolved time axis related CSS vars.
3017
+ * @param resolvedVars The resolved CSS vars.
3018
+ * @returns The resolved values.
3019
+ */
3020
+ const getResolvedTimeAxisVars = (resolvedVars) => ({
3021
+ defaultTimeAxisHeight: pxToNumber(resolvedVars['defaultTimeAxisHeight']),
3022
+ timeAxisLabelPaddingInlineStart: pxToNumber(resolvedVars['timeAxisLabelPaddingInlineStart']),
3023
+ timeAxisLabelPaddingInlineEnd: pxToNumber(resolvedVars['timeAxisLabelPaddingInlineEnd']),
3024
+ timeAxisLabelMinWidth: pxToNumber(resolvedVars['timeAxisLabelMinWidth']),
3025
+ majorAxisFont: {
3026
+ fontSize: resolvedVars['majorAxisFontSize'],
3027
+ fontWeight: resolvedVars['majorAxisFontWeight']
3028
+ },
3029
+ minorAxisFont: {
3030
+ fontSize: resolvedVars['minorAxisFontSize'],
3031
+ fontWeight: resolvedVars['minorAxisFontWeight']
3032
+ }
3033
+ });
3034
+ // TODO: Export this from useCssVars? Or make useCssVars output number for px strings?
3035
+ /**
3036
+ * Parses the number from a pixel string.
3037
+ * @param length The pixel string.
3038
+ * @returns The number.
3039
+ */
3040
+ const pxToNumber = (length) => length === '0' ? 0 : Number(length.substring(0, length.length - 2));
3041
+
3042
+ const ganttUnresolvedVars = [
3043
+ {
3044
+ tokenVar: UNSAFE_Gantt_themes_GanttStyles_css.bridgeValues.rowLabelPaddingInlineStart,
3045
+ key: 'rowLabelPaddingInlineStart',
3046
+ cssProp: 'padding-inline-start'
3047
+ },
3048
+ {
3049
+ tokenVar: UNSAFE_Gantt_themes_GanttStyles_css.bridgeValues.rowLabelPaddingInlineStart,
3050
+ key: 'rowLabelPaddingInlineEnd',
3051
+ cssProp: 'padding-inline-end'
3052
+ },
3053
+ {
3054
+ tokenVar: utils.xUnits(3),
3055
+ key: 'rowPaddingTop',
3056
+ cssProp: 'padding-top'
3057
+ },
3058
+ {
3059
+ tokenVar: utils.xUnits(3),
3060
+ key: 'rowPaddingBottom',
3061
+ cssProp: 'padding-bottom'
3062
+ },
3063
+ {
3064
+ tokenVar: utils.xUnits(6),
3065
+ key: 'taskHeight',
3066
+ cssProp: 'min-height'
3067
+ },
3068
+ {
3069
+ tokenVar: utils.xUnits(1),
3070
+ key: 'taskBorderRadius',
3071
+ cssProp: 'border-radius'
3072
+ },
3073
+ {
3074
+ tokenVar: UNSAFE_Gantt_themes_GanttStyles_css.bridgeValues.taskBgColor,
3075
+ key: 'taskBgColor',
3076
+ cssProp: 'background-color'
3077
+ },
3078
+ {
3079
+ tokenVar: UNSAFE_Gantt_themes_GanttStyles_css.bridgeValues.taskBorderColor,
3080
+ key: 'taskBorderColor',
3081
+ cssProp: 'border-color'
3082
+ },
3083
+ {
3084
+ tokenVar: UNSAFE_Gantt_themes_GanttStyles_css.bridgeValues.taskEffectBorderColor,
3085
+ key: 'taskEffectBorderColor',
3086
+ cssProp: 'outline-color'
3087
+ },
3088
+ {
3089
+ tokenVar: Common_themes_themeContract_css.baseVars.boxShadow.md,
3090
+ key: 'taskEffectBoxShadow',
3091
+ cssProp: 'box-shadow'
3092
+ }
3093
+ ];
3094
+ /**
3095
+ * Parses a CSS box-shadow string.
3096
+ * @param boxShadow A CSS box-shadow string, of the form "color offsetX offsetY blur spread".
3097
+ * @returns The components of the box-shadow.
3098
+ */
3099
+ const parseBoxShadow = (boxShadow) => {
3100
+ // boxShadow: "color offsetX offsetY blur spread"
3101
+ // color may have spaces e.g. rgb(0, 0, 0, 0.2)
3102
+ const [_, shadowBlur, shadowOffsetY, shadowOffsetX, ...rest] = boxShadow.split(' ').reverse();
3103
+ const shadowColor = rest.reverse().join(' ');
3104
+ return {
3105
+ shadowColor,
3106
+ shadowOffsetX: pxToNumber(shadowOffsetX ?? '0'),
3107
+ shadowOffsetY: pxToNumber(shadowOffsetY ?? '0'),
3108
+ shadowBlur: pxToNumber(shadowBlur ?? '0')
3109
+ };
3110
+ };
3111
+ /**
3112
+ * Gets the resolved row axis related CSS vars.
3113
+ * @param resolvedVars The resolved CSS vars.
3114
+ * @returns The resolved values.
3115
+ */
3116
+ const getResolvedRowAxisVars = (resolvedVars) => ({
3117
+ rowLabelPaddingInlineStart: pxToNumber(resolvedVars['rowLabelPaddingInlineStart']),
3118
+ rowLabelPaddingInlineEnd: pxToNumber(resolvedVars['rowLabelPaddingInlineEnd'])
3119
+ });
3120
+ /**
3121
+ * Gets the resolved row related CSS vars.
3122
+ * @param resolvedVars The resolved CSS vars.
3123
+ * @returns The resolved values.
3124
+ */
3125
+ const getResolvedRowVars = (resolvedVars) => ({
3126
+ rowPaddingTop: pxToNumber(resolvedVars['rowPaddingTop']),
3127
+ rowPaddingBottom: pxToNumber(resolvedVars['rowPaddingBottom'])
3128
+ });
3129
+ /**
3130
+ * Gets the resolved task related CSS vars.
3131
+ * @param resolvedVars The resolved CSS vars.
3132
+ * @returns The resolved values.
3133
+ */
3134
+ const getResolvedTaskVars = (resolvedVars) => ({
3135
+ taskHeight: pxToNumber(resolvedVars['taskHeight']),
3136
+ taskBorderRadius: resolvedVars['taskBorderRadius'],
3137
+ taskBgColor: resolvedVars['taskBgColor'],
3138
+ taskBorderColor: resolvedVars['taskBorderColor'],
3139
+ taskEffectBorderColor: resolvedVars['taskEffectBorderColor'],
3140
+ taskEffectBoxShadow: parseBoxShadow(resolvedVars['taskEffectBoxShadow'])
3141
+ });
3142
+
3143
+ /**
3144
+ * Gets the pan zoom canvas layout given the time axes layout.
3145
+ * @param timeAxesLayout The time axes layout.
3146
+ * @returns The pan zoom canvas layout.
3147
+ */
3148
+ const getPanZoomCanvasLayout = (timeAxesLayout) => {
3149
+ const layout = {
3150
+ top: {
3151
+ overlayControlsPosition: 'topEnd',
3152
+ verticalControlTopGap: timeAxesLayout.height,
3153
+ verticalControlBottomGap: '0'
3154
+ },
3155
+ bottom: {
3156
+ overlayControlsPosition: 'bottomEnd',
3157
+ verticalControlTopGap: '0',
3158
+ verticalControlBottomGap: timeAxesLayout.height
3159
+ }
3160
+ };
3161
+ return layout[timeAxesLayout.position];
3162
+ };
3163
+
3164
+ /**
3165
+ * Gets the row axis layout.
3166
+ * @param timeAxesLayout The time axes layout.
3167
+ * @param rowAxisProps The row axis props.
3168
+ * @returns
3169
+ */
3170
+ const getWithRowAxisLayout = (timeAxesLayout, rowAxisProps) => {
3171
+ const horiScrollbarHeight = `${utils.xUnits(1)} + ${PRIVATE_TimeComponent_themes_TimeComponentStyles_css.bridgeValues.horizontalScrollbarHeight}`;
3172
+ const generalLayout = {
3173
+ top: {
3174
+ rowAxisTopGap: timeAxesLayout.height,
3175
+ rowAxisBottomGap: `calc(${horiScrollbarHeight})`
3176
+ },
3177
+ bottom: {
3178
+ rowAxisTopGap: '0',
3179
+ rowAxisBottomGap: `calc(${timeAxesLayout.height} + ${horiScrollbarHeight})`
3180
+ }
3181
+ };
3182
+ const resolvedWidth = getResolvedLength(rowAxisProps.width);
3183
+ const resolvedMaxWidth = getResolvedLength(rowAxisProps.maxWidth);
3184
+ return {
3185
+ ...generalLayout[timeAxesLayout.position],
3186
+ resolvedRowAxisWidth: resolvedWidth,
3187
+ resolvedRowAxisMaxWidth: resolvedMaxWidth,
3188
+ label: rowAxisProps.label
3189
+ };
3190
+ };
3191
+ /**
3192
+ * Gets the parsed length given the values that the row axis accepts.
3193
+ * @param length The length values that the row axis accepts.
3194
+ * @returns The parsed length.
3195
+ */
3196
+ const getResolvedLength = (length) => {
3197
+ if (length.endsWith('px')) {
3198
+ return {
3199
+ value: Number(length.substring(0, length.length - 2)),
3200
+ suffix: 'px'
3201
+ };
3202
+ }
3203
+ if (length.endsWith('%')) {
3204
+ return {
3205
+ value: Number(length.substring(0, length.length - 1)),
3206
+ suffix: '%'
3207
+ };
3208
+ }
3209
+ // length is 'max-content' for width and 'none' for max-width
3210
+ return {
3211
+ value: Infinity,
3212
+ suffix: undefined
3213
+ };
3214
+ };
3215
+
3216
+ /**
3217
+ * @license
3218
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
3219
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
3220
+ * as shown at https://oss.oracle.com/licenses/upl/
3221
+ * @ignore
3222
+ */
3223
+ /**
3224
+ * Gets the resolved horizontal scrollbar layout.
3225
+ * @param min The range min.
3226
+ * @param max The range max.
3227
+ * @param globalMin The global min.
3228
+ * @param globalMax The global max.
3229
+ * @param isRTL Whether the reading direction is rtl.
3230
+ * @returns The resolved horizontal scrollbar layout.
3231
+ */
3232
+ const getResolvedHorizontalScrollbarLayout = (min, max, globalMin, globalMax, isRTL) => {
3233
+ return (width) => {
3234
+ const localRange = max - min;
3235
+ const globalRange = globalMax - globalMin;
3236
+ const thumbWidth = (width * localRange) / globalRange;
3237
+ const thumbStartOffset = (width * (min - globalMin)) / globalRange;
3238
+ const logicalThumbLeft = isRTL ? width - thumbStartOffset - thumbWidth : thumbStartOffset;
3239
+ const thumbLeft = isRTL ? undefined : thumbStartOffset;
3240
+ const thumbRight = isRTL ? thumbStartOffset : undefined;
3241
+ const draggableRegion = {
3242
+ xMin: logicalThumbLeft,
3243
+ xMax: logicalThumbLeft + thumbWidth,
3244
+ yMin: -Infinity,
3245
+ yMax: Infinity
3246
+ };
3247
+ const getNewRange = (newThumbLeft) => {
3248
+ const p = isRTL ? Math.max(0, width - newThumbLeft - thumbWidth) : newThumbLeft;
3249
+ const newMin = Math.min(globalMin + (p / width) * globalRange, globalMax - localRange);
3250
+ const newMax = newMin + localRange;
3251
+ return { newMin, newMax };
3252
+ };
3253
+ return {
3254
+ thumbWidth,
3255
+ thumbLeft,
3256
+ thumbRight,
3257
+ draggableRegion,
3258
+ getNewRange
3259
+ };
3260
+ };
3261
+ };
3262
+ /**
3263
+ * Gets the resolved vertical scrollbar layout.
3264
+ * @param min The range min.
3265
+ * @param max The range max (if any).
3266
+ * @param globalMin The global min.
3267
+ * @param globalMax The global max.
3268
+ * @returns The resolved vertical scrollbar layout.
3269
+ */
3270
+ const getResolvedVerticalScrollbarLayout = (min, max, globalMin, globalMax) => {
3271
+ return (height) => {
3272
+ // It's possible for globalRange to be smaller than localRange
3273
+ // due to the component being taller than the height the data occupies
3274
+ // e.g. tall Gantt with 1 row
3275
+ // So throughout this code we make sure to clamp thumb dimensions and ranges
3276
+ const localRange = (max ?? height + min) - min;
3277
+ const globalRange = globalMax - globalMin;
3278
+ const thumbHeight = Math.min(height, (height * localRange) / globalRange);
3279
+ const thumbTop = Math.max(0, (height * (min - globalMin)) / globalRange);
3280
+ const draggableRegion = {
3281
+ xMin: -Infinity,
3282
+ xMax: Infinity,
3283
+ yMin: thumbTop,
3284
+ yMax: thumbTop + thumbHeight
3285
+ };
3286
+ const getNewRange = (newThumbTop) => {
3287
+ const newMin = Math.max(0, Math.min(globalMin + (newThumbTop / height) * globalRange, globalMax - localRange));
3288
+ const newMax = newMin + localRange;
3289
+ return { newMin, newMax };
3290
+ };
3291
+ return {
3292
+ thumbHeight,
3293
+ thumbTop,
3294
+ draggableRegion,
3295
+ getNewRange
3296
+ };
3297
+ };
3298
+ };
3299
+
3300
+ const cssVars = timeComponentUnresolvedVars.concat(ganttUnresolvedVars);
3301
+ /**
3302
+ * Hook that computes layout related information for the Gantt.
3303
+ */
3304
+ const useGanttLayout = ({ rowAxis: rowAxisProps, gridlines: { horizontal: gridlinesHorizontal = 'off', vertical: gridlinesVertical = 'on' } = {
3305
+ horizontal: 'off',
3306
+ vertical: 'on'
3307
+ }, axisPosition = 'top', minorAxis, majorAxis, start, end, viewportStart, viewportEnd, onViewportChange, scrollPosition: { y: scrollPosition = 0 } = { y: 0 }, onScrollPositionChange, rows, selectedIds, selectionMode = 'none' }) => {
3308
+ const { direction } = useUser.useUser();
3309
+ const { resolvedVars, cssContent } = useCssVars.useCssVars(cssVars);
3310
+ const { textMeasureContent, getTextDimensions } = useTextDimensions.useTextDimensions();
3311
+ const isRTL = direction === 'rtl';
3312
+ const layoutContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [textMeasureContent, cssContent] }));
3313
+ const { startTime, endTime, viewportStartTime, viewportEndTime, isValidTimeConfig: isValidConfig } = getParsedTimeAxisParams(start, end, viewportStart, viewportEnd);
3314
+ // TODO: take a look a useCssVars and see if we can tighten the types more and make the following check nicer.
3315
+ if (!getTextDimensions || Object.keys(resolvedVars).length === 0) {
3316
+ return { isRTL, layoutContent, isValidConfig, isReady: false };
3317
+ }
3318
+ if (!isValidConfig) {
3319
+ return { isRTL, layoutContent, isValidConfig, isReady: true };
3320
+ }
3321
+ // Resolve row axis props
3322
+ const rowAxisRendered = rowAxisProps === undefined ? 'off' : 'on';
3323
+ const rowAxis = rowAxisProps === 'on' ? {} : rowAxisProps;
3324
+ const rowAxisWidth = rowAxis?.width ?? 'max-content';
3325
+ const rowAxisMaxWidth = rowAxis?.maxWidth ?? 'none';
3326
+ const rowAxisLabelRender = rowAxis?.labelRenderer ?? defaultRowAxisLabelRender;
3327
+ // General layout
3328
+ const unresolvedTimeAxesLayout = getUnresolvedTimeAxesLayout(axisPosition, minorAxis, majorAxis);
3329
+ const panZoomLayout = getPanZoomCanvasLayout(unresolvedTimeAxesLayout);
3330
+ const withRowAxisLayout = rowAxisRendered === 'on'
3331
+ ? getWithRowAxisLayout(unresolvedTimeAxesLayout, {
3332
+ width: rowAxisWidth,
3333
+ maxWidth: rowAxisMaxWidth,
3334
+ label: rowAxisLabelRender
3335
+ })
3336
+ : undefined;
3337
+ // Time axes layout and Zoom parameters
3338
+ const timeAxisResolvedVars = getResolvedTimeAxisVars(resolvedVars);
3339
+ const resolvedMajorAxisProps = majorAxis && getResolvedTimeAxisProps(timeAxisResolvedVars.defaultTimeAxisHeight, majorAxis);
3340
+ const resolvedMinorAxisProps = getResolvedTimeAxisProps(timeAxisResolvedVars.defaultTimeAxisHeight, minorAxis);
3341
+ // TODO: see if we need to useMemo this
3342
+ const zoomParameters = getTimeAxesZoomParameters(getTextDimensions, timeAxisResolvedVars.timeAxisLabelPaddingInlineStart, timeAxisResolvedVars.timeAxisLabelPaddingInlineEnd, timeAxisResolvedVars.timeAxisLabelMinWidth, timeAxisResolvedVars.minorAxisFont, startTime, endTime, resolvedMinorAxisProps.zoomOrder);
3343
+ const getTimeAxesLayout = getResolvedTimeAxesLayout(getTextDimensions, timeAxisResolvedVars.timeAxisLabelPaddingInlineStart, timeAxisResolvedVars.timeAxisLabelPaddingInlineEnd, timeAxisResolvedVars.majorAxisFont, timeAxisResolvedVars.minorAxisFont, zoomParameters.getZoomOrderViewDurationThresholds, axisPosition, startTime, endTime, isRTL, resolvedMinorAxisProps, resolvedMajorAxisProps, viewportStartTime, viewportEndTime);
3344
+ // Row data layout
3345
+ const rowResolvedVars = getResolvedRowVars(resolvedVars);
3346
+ const taskResolvedVars = getResolvedTaskVars(resolvedVars);
3347
+ const gridlines = { horizontal: gridlinesHorizontal, vertical: gridlinesVertical };
3348
+ const rowDataLayout = getRowDataLayout(rows, { ...rowResolvedVars, ...taskResolvedVars }, gridlines, { selectedIds, selectionMode });
3349
+ // Row axis layout
3350
+ const rowAxisResolvedVars = getResolvedRowAxisVars(resolvedVars);
3351
+ const rowAxisLayout = {
3352
+ labelPaddingInlineStart: rowAxisResolvedVars.rowLabelPaddingInlineStart,
3353
+ labelPaddingInlineEnd: rowAxisResolvedVars.rowLabelPaddingInlineEnd,
3354
+ rowData: rowDataLayout.rowData,
3355
+ rowObjs: rowDataLayout.rowObjs,
3356
+ idRowObjMap: rowDataLayout.idRowObjMap,
3357
+ isHorizontalGridlinesVisible: gridlinesHorizontal === 'on'
3358
+ };
3359
+ // Horizontal scrollbar layout
3360
+ const getHorizontalScrollbarLayout = getResolvedHorizontalScrollbarLayout(viewportStartTime ?? startTime, viewportEndTime ?? endTime, startTime, endTime, isRTL);
3361
+ const onHorizontalScrollChange = (newViewStartTime, newViewEndTime) => {
3362
+ onViewportChange?.({
3363
+ viewportStart: TimeComponentCanvas2D.getISOString(newViewStartTime),
3364
+ viewportEnd: TimeComponentCanvas2D.getISOString(newViewEndTime),
3365
+ majorAxisScale: majorAxis?.scale,
3366
+ minorAxisScale: minorAxis.scale
3367
+ });
3368
+ };
3369
+ // Vertical scrollbar layout
3370
+ const getVerticalScrollbarLayout = getResolvedVerticalScrollbarLayout(scrollPosition, undefined, 0, rowDataLayout.totalRowsHeight);
3371
+ const onVerticalScrollChange = (newScrollPosition) => {
3372
+ onScrollPositionChange?.({ y: newScrollPosition });
3373
+ };
3374
+ return {
3375
+ scrollPosition,
3376
+ panZoomLayout,
3377
+ withRowAxisLayout,
3378
+ getTimeAxesLayout,
3379
+ zoomParameters: viewportStartTime !== undefined && viewportEndTime !== undefined
3380
+ ? {
3381
+ viewportStartTime,
3382
+ viewportEndTime,
3383
+ minorAxisZoomOrderIndex: resolvedMinorAxisProps.zoomOrderIndex,
3384
+ majorAxisZoomOrder: resolvedMajorAxisProps?.zoomOrder,
3385
+ majorAxisZoomOrderIndex: resolvedMajorAxisProps?.zoomOrderIndex,
3386
+ ...zoomParameters
3387
+ }
3388
+ : undefined,
3389
+ rowDataLayout,
3390
+ rowAxisLayout,
3391
+ getResolvedViewportLayout,
3392
+ getHorizontalScrollbarLayout,
3393
+ onHorizontalScrollChange,
3394
+ getVerticalScrollbarLayout,
3395
+ onVerticalScrollChange,
3396
+ isRTL,
3397
+ layoutContent,
3398
+ isValidConfig,
3399
+ isReady: true
3400
+ };
3401
+ };
3402
+
3403
+ /**
3404
+ * Hook that handles various Time Component gestures.
3405
+ */
3406
+ const useTimeComponentEvents = ({ rootRef, overlayControlsContainerRef, isDisabled = false }) => {
3407
+ const isFocused = hooks.useRef(false);
3408
+ const dispatchControlsShow = () => {
3409
+ const e = new Event('ControlsShow');
3410
+ overlayControlsContainerRef.current?.dispatchEvent(e);
3411
+ };
3412
+ const dispatchControlsHide = () => {
3413
+ const e = new Event('ControlsHide');
3414
+ overlayControlsContainerRef.current?.dispatchEvent(e);
3415
+ };
3416
+ const onFocus = () => {
3417
+ isFocused.current = true;
3418
+ dispatchControlsShow();
3419
+ };
3420
+ const onBlur = (e) => {
3421
+ if (!e.relatedTarget || !rootRef.current?.contains(e.relatedTarget)) {
3422
+ isFocused.current = false;
3423
+ dispatchControlsHide();
3424
+ }
3425
+ };
3426
+ const onPointerDown = (e) => {
3427
+ if (e.pointerType !== 'mouse') {
3428
+ // Ensure component is focused upon interaction
3429
+ // e.g. on touch devices, if the component is not initially focused
3430
+ // then one tries to drag pan the component, the component is still
3431
+ // not focused. This is not a problem with mouse devices.
3432
+ rootRef.current?.focus();
3433
+ }
3434
+ };
3435
+ const onPointerOver = (e) => {
3436
+ if (e.pointerType === 'mouse') {
3437
+ dispatchControlsShow();
3438
+ }
3439
+ };
3440
+ const onPointerOut = (e) => {
3441
+ if (e.pointerType === 'mouse') {
3442
+ if (!isFocused.current)
3443
+ dispatchControlsHide();
3444
+ }
3445
+ };
3446
+ return isDisabled
3447
+ ? {}
3448
+ : {
3449
+ onFocus,
3450
+ onBlur,
3451
+ onPointerDown,
3452
+ onPointerOver,
3453
+ onPointerOut
3454
+ };
3455
+ };
3456
+
3457
+ /**
3458
+ * @license
3459
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
3460
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
3461
+ * as shown at https://oss.oracle.com/licenses/upl/
3462
+ * @ignore
3463
+ */
3464
+ const DEFAULT_PAN_UP_RANGE_RATIO = 0.25;
3465
+ const DEFAULT_PAN_DOWN_RANGE_RATIO = -0.25;
3466
+ const DEFAULT_PAN_START_RANGE_RATIO = 0.25;
3467
+ const DEFAULT_PAN_END_RANGE_RATIO = -0.25;
3468
+ const createKbPanUpEvent = () => new CustomEvent('KbPanVertical', { detail: { rangeRatio: DEFAULT_PAN_UP_RANGE_RATIO } });
3469
+ const createKbPanDownEvent = () => new CustomEvent('KbPanVertical', { detail: { rangeRatio: DEFAULT_PAN_DOWN_RANGE_RATIO } });
3470
+ const createKbPanStartEvent = () => new CustomEvent('KbPanHorizontal', { detail: { rangeRatio: DEFAULT_PAN_START_RANGE_RATIO } });
3471
+ const createKbPanEndEvent = () => new CustomEvent('KbPanHorizontal', { detail: { rangeRatio: DEFAULT_PAN_END_RANGE_RATIO } });
3472
+ const createKbZoomInEvent = () => new CustomEvent('KbZoomIn', { detail: { zoomFactor: TimeComponentCanvas2D.DEFAULT_ZOOM_IN_FACTOR } });
3473
+ const createKbZoomOutEvent = () => new CustomEvent('KbZoomIn', { detail: { zoomFactor: TimeComponentCanvas2D.DEFAULT_ZOOM_OUT_FACTOR } });
3474
+
3475
+ /**
3476
+ * Hook that handles various Time Component keyboard gestures.
3477
+ */
3478
+ const useTimeComponentKeyboard = ({ visRef, isDisabled = false }) => {
3479
+ const onKeyDown = (event) => {
3480
+ const key = event.key;
3481
+ switch (key) {
3482
+ case '=':
3483
+ case '+': {
3484
+ const e = createKbZoomInEvent();
3485
+ visRef.current?.dispatchEvent(e);
3486
+ eventsUtils.cancelEvent(event);
3487
+ break;
3488
+ }
3489
+ case '-':
3490
+ case '_': {
3491
+ const e = createKbZoomOutEvent();
3492
+ visRef.current?.dispatchEvent(e);
3493
+ eventsUtils.cancelEvent(event);
3494
+ break;
3495
+ }
3496
+ case 'PageUp': {
3497
+ const e = event.shiftKey ? createKbPanStartEvent() : createKbPanUpEvent();
3498
+ visRef.current?.dispatchEvent(e);
3499
+ eventsUtils.cancelEvent(event);
3500
+ break;
3501
+ }
3502
+ case 'PageDown': {
3503
+ const e = event.shiftKey ? createKbPanEndEvent() : createKbPanDownEvent();
3504
+ visRef.current?.dispatchEvent(e);
3505
+ eventsUtils.cancelEvent(event);
3506
+ break;
3507
+ }
3508
+ }
3509
+ };
3510
+ return isDisabled ? {} : { onKeyDown };
3511
+ };
3512
+
3513
+ /**
3514
+ * @license
3515
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
3516
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
3517
+ * as shown at https://oss.oracle.com/licenses/upl/
3518
+ * @ignore
3519
+ */
3520
+ /**
3521
+ * Hook that handles row labels keyboard navigation.
3522
+ */
3523
+ const useGanttTaskNavigation = ({ rowDataLayout, currentTask, onCurrentTaskChange, isRTL, isDisabled = false }) => {
3524
+ const onKeyDown = (event) => {
3525
+ const key = event.key;
3526
+ switch (key) {
3527
+ case 'ArrowRight': {
3528
+ const nextTaskId = currentTask &&
3529
+ (!isRTL
3530
+ ? getNextTaskNavigable(currentTask.id, rowDataLayout)
3531
+ : getPrevTaskNavigable(currentTask.id, rowDataLayout));
3532
+ if (nextTaskId !== undefined) {
3533
+ onCurrentTaskChange({ id: nextTaskId, isFocused: true });
3534
+ }
3535
+ eventsUtils.cancelEvent(event);
3536
+ break;
3537
+ }
3538
+ case 'ArrowLeft': {
3539
+ const prevTaskId = currentTask &&
3540
+ (!isRTL
3541
+ ? getPrevTaskNavigable(currentTask.id, rowDataLayout)
3542
+ : getNextTaskNavigable(currentTask.id, rowDataLayout));
3543
+ if (prevTaskId !== undefined) {
3544
+ onCurrentTaskChange({ id: prevTaskId, isFocused: true });
3545
+ }
3546
+ eventsUtils.cancelEvent(event);
3547
+ break;
3548
+ }
3549
+ case 'ArrowUp': {
3550
+ const aboveTaskId = currentTask && getAboveTaskNavigable(currentTask.id, rowDataLayout);
3551
+ if (aboveTaskId !== undefined) {
3552
+ onCurrentTaskChange({ id: aboveTaskId, isFocused: true });
3553
+ }
3554
+ eventsUtils.cancelEvent(event);
3555
+ break;
3556
+ }
3557
+ case 'ArrowDown': {
3558
+ const belowTaskId = currentTask && getBelowTaskNavigable(currentTask.id, rowDataLayout);
3559
+ if (belowTaskId !== undefined) {
3560
+ onCurrentTaskChange({ id: belowTaskId, isFocused: true });
3561
+ }
3562
+ eventsUtils.cancelEvent(event);
3563
+ break;
3564
+ }
3565
+ }
3566
+ };
3567
+ return isDisabled ? {} : { onKeyDown };
3568
+ };
3569
+
3570
+ /**
3571
+ * @license
3572
+ * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
3573
+ * Licensed under The Universal Permissive License (UPL), Version 1.0
3574
+ * as shown at https://oss.oracle.com/licenses/upl/
3575
+ * @ignore
3576
+ */
3577
+ /**
3578
+ * Hook that handles row labels keyboard navigation.
3579
+ */
3580
+ const useGanttRowLabelNavigation = ({ rowDataLayout, currentRowLabel, onCurrentRowLabelChange, isDisabled = false }) => {
3581
+ const onKeyDown = (event) => {
3582
+ const key = event.key;
3583
+ switch (key) {
3584
+ case 'ArrowUp': {
3585
+ const aboveRowId = currentRowLabel && getAboveRowLabelNavigable(currentRowLabel.id, rowDataLayout);
3586
+ if (aboveRowId !== undefined) {
3587
+ onCurrentRowLabelChange({ id: aboveRowId, isFocused: true });
3588
+ }
3589
+ eventsUtils.cancelEvent(event);
3590
+ break;
3591
+ }
3592
+ case 'ArrowDown': {
3593
+ const belowRowId = currentRowLabel && getBelowRowLabelNavigable(currentRowLabel.id, rowDataLayout);
3594
+ if (belowRowId !== undefined) {
3595
+ onCurrentRowLabelChange({ id: belowRowId, isFocused: true });
3596
+ }
3597
+ eventsUtils.cancelEvent(event);
3598
+ break;
3599
+ }
3600
+ }
3601
+ };
3602
+ return isDisabled ? {} : { onKeyDown };
3603
+ };
3604
+
3605
+ const useGanttKeyboard = ({ visRef, rowAxisRef, rowDataLayout, navigationModes, selectionProps, isRTL, isDisabled = false }) => {
3606
+ const currentNavMode = hooks.useRef('tasks');
3607
+ const idExtracter = (event) => {
3608
+ if (currentNavMode.current !== 'tasks' || event.type !== 'keyup')
3609
+ return;
3610
+ return navigationModes.tasks.currentItem?.id;
3611
+ };
3612
+ const { onKeyUp: selectionKeyup } = useSelection.useSelection({
3613
+ idExtracter,
3614
+ selection: selectionProps.selectedIds,
3615
+ selectionMode: selectionProps.selectionMode,
3616
+ onChange: selectionProps.onSelectionChange,
3617
+ // TODO: rowDataLayout is undefined when isDisabled is true. Let's reevalute the lifecycle when we work on JET-62889
3618
+ getDataById: rowDataLayout?.getTaskDataById || (() => undefined)
3619
+ }).selectionProps;
3620
+ const selectionKeyboardProps = currentNavMode.current === 'tasks' ? { onKeyUp: selectionKeyup } : {};
3621
+ const keyboardProps = useTimeComponentKeyboard({
3622
+ visRef,
3623
+ isDisabled
3624
+ });
3625
+ const taskNavProps = useGanttTaskNavigation({
3626
+ rowDataLayout,
3627
+ currentTask: navigationModes.tasks.currentItem,
3628
+ onCurrentTaskChange: navigationModes.tasks.onCurrentItemChange,
3629
+ isRTL
3630
+ });
3631
+ const rowLabelNavProps = useGanttRowLabelNavigation({
3632
+ rowDataLayout,
3633
+ currentRowLabel: navigationModes.rowLabels.currentItem,
3634
+ onCurrentRowLabelChange: navigationModes.rowLabels.onCurrentItemChange
3635
+ });
3636
+ const onKeyDown = (event) => {
3637
+ let stopImmediatePropagation = false;
3638
+ const applyFocus = (item) => {
3639
+ const { onCurrentItemChange } = navigationModes[item.type];
3640
+ onCurrentItemChange({ id: item.id, isFocused: true });
3641
+ };
3642
+ const removeFocus = (navType) => {
3643
+ const { currentItem, onCurrentItemChange } = navigationModes[navType];
3644
+ currentItem && onCurrentItemChange({ id: currentItem.id, isFocused: false });
3645
+ };
3646
+ const enterRowLabelsNavigation = () => {
3647
+ const id = getRowLabelNavigableFromTask(navigationModes.tasks.currentItem.id, rowDataLayout);
3648
+ applyFocus({ id, type: 'rowLabels' });
3649
+ removeFocus('tasks');
3650
+ currentNavMode.current = 'rowLabels';
3651
+ stopImmediatePropagation = true;
3652
+ eventsUtils.cancelEvent(event);
3653
+ };
3654
+ const enterTasksNavigation = () => {
3655
+ const id = getTaskNavigableFromRowLabel(navigationModes.rowLabels.currentItem.id, rowDataLayout, navigationModes.tasks.currentItem?.id);
3656
+ id !== undefined && applyFocus({ id, type: 'tasks' });
3657
+ removeFocus('rowLabels');
3658
+ currentNavMode.current = 'tasks';
3659
+ stopImmediatePropagation = true;
3660
+ eventsUtils.cancelEvent(event);
3661
+ };
3662
+ const key = event.key;
3663
+ switch (key) {
3664
+ case 'Tab': {
3665
+ // Tab OUT of component
3666
+ // Remove focus visuals
3667
+ removeFocus(currentNavMode.current);
3668
+ break;
3669
+ }
3670
+ case 'ArrowLeft': {
3671
+ if (event.altKey) {
3672
+ if (!isRTL && currentNavMode.current === 'tasks') {
3673
+ enterRowLabelsNavigation();
3674
+ }
3675
+ else if (isRTL && currentNavMode.current === 'rowLabels') {
3676
+ enterTasksNavigation();
3677
+ }
3678
+ }
3679
+ break;
3680
+ }
3681
+ case 'ArrowRight': {
3682
+ if (event.altKey) {
3683
+ if (!isRTL && currentNavMode.current === 'rowLabels') {
3684
+ enterTasksNavigation();
3685
+ }
3686
+ else if (isRTL && currentNavMode.current === 'tasks') {
3687
+ enterRowLabelsNavigation();
3688
+ }
3689
+ }
3690
+ break;
3691
+ }
3692
+ }
3693
+ if (!stopImmediatePropagation) {
3694
+ switch (currentNavMode.current) {
3695
+ case 'tasks':
3696
+ taskNavProps.onKeyDown?.(event);
3697
+ break;
3698
+ case 'rowLabels':
3699
+ rowLabelNavProps.onKeyDown?.(event);
3700
+ break;
3701
+ default: {
3702
+ const _exhaustiveCheck = currentNavMode.current;
3703
+ return _exhaustiveCheck;
3704
+ }
3705
+ }
3706
+ }
3707
+ };
3708
+ const onKeyUp = (event) => {
3709
+ const key = event.key;
3710
+ switch (key) {
3711
+ case 'Tab': {
3712
+ // Tab INTO component
3713
+ const { currentItem, onCurrentItemChange } = navigationModes[currentNavMode.current];
3714
+ // currentItem should only ever be undefined on first Tab
3715
+ const itemToFocus = currentItem ? currentItem : getDefaultInitialFocusTask(rowDataLayout);
3716
+ itemToFocus && onCurrentItemChange({ id: itemToFocus.id, isFocused: true });
3717
+ eventsUtils.cancelEvent(event);
3718
+ break;
3719
+ }
3720
+ }
3721
+ };
3722
+ // TODO: JET-62887: Avoid this temporary hack to get keyboard datatip to work (until we find a way to get rid of all these dispatchEvents)
3723
+ const focusDatatipProps = {
3724
+ onFocus: () => {
3725
+ const e = new Event('ShowFocusDatatip');
3726
+ visRef.current?.dispatchEvent(e);
3727
+ rowAxisRef.current?.dispatchEvent(e);
3728
+ }
3729
+ };
3730
+ return isDisabled
3731
+ ? {}
3732
+ : mergeProps.mergeProps(keyboardProps, focusDatatipProps, { onKeyDown, onKeyUp }, selectionKeyboardProps);
3733
+ };
3734
+
3735
+ /**
3736
+ * A gantt displays scheduling information graphically, making it easier to plan, coordinate, and track various tasks and resources.
3737
+ */
3738
+ function Gantt({ width, height, testId, ...props }) {
3739
+ const ref = hooks.useRef(null);
3740
+ const { scrollPosition, panZoomLayout, withRowAxisLayout, getTimeAxesLayout, zoomParameters, rowDataLayout, rowAxisLayout, getResolvedViewportLayout, getHorizontalScrollbarLayout, onHorizontalScrollChange, getVerticalScrollbarLayout, onVerticalScrollChange, isRTL, layoutContent, isValidConfig, isReady } = useGanttLayout(props);
3741
+ const ariaProps = {
3742
+ 'aria-label': props['aria-label'],
3743
+ 'aria-describedby': props['aria-describedby'],
3744
+ 'aria-labelledby': props['aria-labelledby'],
3745
+ role: 'application'
3746
+ };
3747
+ const isViewportDefined = props.viewportStart !== undefined && props.viewportEnd !== undefined;
3748
+ const [ariaActive, setAriaActive] = hooks.useState();
3749
+ const [currentTaskInteraction, setCurrentTaskInteraction] = hooks.useState('none');
3750
+ const [hoveredTaskId, setHoveredTaskId] = hooks.useState();
3751
+ const onTaskHoverChange = (detail) => {
3752
+ detail.id !== undefined &&
3753
+ setAriaActive({ dataId: detail.id, ariaId: layoutUtils.getRandomId(), type: 'task' });
3754
+ setCurrentTaskInteraction(detail.id !== undefined ? 'hover' : 'none');
3755
+ setHoveredTaskId(detail.id);
3756
+ };
3757
+ const [currentRowLabelInteraction, setCurrentRowLabelInteraction] = hooks.useState('none');
3758
+ const [hoveredRowLabelId, setHoveredRowLabelId] = hooks.useState();
3759
+ const onRowLabelHoverChange = (detail) => {
3760
+ detail.id !== undefined &&
3761
+ setAriaActive({ dataId: detail.id, ariaId: layoutUtils.getRandomId(), type: 'rowLabel' });
3762
+ setCurrentRowLabelInteraction(detail.id !== undefined ? 'hover' : 'none');
3763
+ setHoveredRowLabelId(detail.id);
3764
+ };
3765
+ const [currentTask, setCurrentTask] = hooks.useState();
3766
+ const onCurrentTaskChange = (detail) => {
3767
+ if (detail.isFocused) {
3768
+ const e = new CustomEvent('KbPanTaskIntoView', { detail: { id: detail.id } });
3769
+ visRef.current?.dispatchEvent(e);
3770
+ setAriaActive({ dataId: detail.id, ariaId: layoutUtils.getRandomId(), type: 'task' });
3771
+ setCurrentTaskInteraction('focus');
3772
+ }
3773
+ setCurrentTask(detail);
3774
+ };
3775
+ const [currentRowLabel, setCurrentRowLabel] = hooks.useState();
3776
+ const onCurrentRowLabelChange = (detail) => {
3777
+ if (detail.isFocused) {
3778
+ const e = new CustomEvent('KbPanRowIntoView', { detail: { id: detail.id } });
3779
+ visRef.current?.dispatchEvent(e);
3780
+ setAriaActive({ dataId: detail.id, ariaId: layoutUtils.getRandomId(), type: 'rowLabel' });
3781
+ setCurrentRowLabelInteraction('focus');
3782
+ }
3783
+ setCurrentRowLabel(detail);
3784
+ };
3785
+ const visRef = hooks.useRef(null);
3786
+ const rowAxisRef = hooks.useRef(null);
3787
+ const overlayControlsContainerRef = hooks.useRef(null);
3788
+ const eventProps = useTimeComponentEvents({
3789
+ rootRef: ref,
3790
+ overlayControlsContainerRef,
3791
+ isDisabled: !isViewportDefined
3792
+ });
3793
+ const keyboardProps = useGanttKeyboard({
3794
+ visRef,
3795
+ rowAxisRef,
3796
+ navigationModes: {
3797
+ tasks: { currentItem: currentTask, onCurrentItemChange: onCurrentTaskChange },
3798
+ rowLabels: { currentItem: currentRowLabel, onCurrentItemChange: onCurrentRowLabelChange }
3799
+ },
3800
+ rowDataLayout: rowDataLayout,
3801
+ selectionProps: {
3802
+ selectedIds: props.selectedIds,
3803
+ selectionMode: props.selectionMode,
3804
+ onSelectionChange: props.onSelectionChange
3805
+ },
3806
+ isRTL,
3807
+ isDisabled: !isViewportDefined
3808
+ });
3809
+ // TODO: Move check to util and call in corepack to decide whether to render invalid data state?
3810
+ if (!isReady || !isValidConfig) {
3811
+ return (jsxRuntime.jsx(GanttContainer, { innerRef: ref, width: width, height: height, ...ariaProps, children: layoutContent }));
3812
+ }
3813
+ const ganttView = (jsxRuntime.jsx(GanttView, { visRef: visRef, overlayControlsContainerRef: overlayControlsContainerRef, isRTL: isRTL, isViewportDefined: isViewportDefined, scrollPosition: scrollPosition, onScrollPositionChange: props.onScrollPositionChange, onViewportChange: props.onViewportChange, rowAxisSeparator: !!withRowAxisLayout, zoomParameters: zoomParameters, zooming: props.zooming, panZoomLayout: panZoomLayout, getTimeAxesLayout: getTimeAxesLayout, getHorizontalScrollbarLayout: getHorizontalScrollbarLayout, onHorizontalScrollChange: onHorizontalScrollChange, getVerticalScrollbarLayout: getVerticalScrollbarLayout, onVerticalScrollChange: onVerticalScrollChange, getResolvedViewportLayout: getResolvedViewportLayout, rowDataLayout: rowDataLayout, datatip: props.datatip, selectedIds: props.selectedIds, selectionMode: props.selectionMode, onSelectionChange: props.onSelectionChange, hoveredTaskId: hoveredTaskId, onTaskHoverChange: onTaskHoverChange, currentTask: currentTask, onCurrentTaskChange: onCurrentTaskChange, currentTaskInteraction: currentTaskInteraction, ariaActive: ariaActive?.type === 'task' ? ariaActive : undefined }));
3814
+ const ganttViewWithRowAxis = withRowAxisLayout && (jsxRuntime.jsx(GanttWithRowAxisLayout, { ...withRowAxisLayout, rowAxis: (resolvedWidth, resolvedMaxWidth) => (jsxRuntime.jsx(GanttRowAxis, { innerRef: rowAxisRef, resolvedWidth: resolvedWidth, resolvedMaxWidth: resolvedMaxWidth, currentRowLabel: currentRowLabel, hoveredRowLabelId: hoveredRowLabelId, onRowLabelHoverChange: onRowLabelHoverChange, currentRowLabelInteraction: currentRowLabelInteraction, ariaActive: ariaActive?.type === 'rowLabel' ? ariaActive : undefined, layoutObj: rowAxisLayout, scrollPosition: scrollPosition, children: withRowAxisLayout.label })), ganttView: ganttView }));
3815
+ return (jsxRuntime.jsxs(GanttContainer, { innerRef: ref, width: width, height: height, testId: testId, ...ariaProps, ...mergeProps.mergeProps(keyboardProps, eventProps), "aria-activedescendant": ariaActive?.ariaId, children: [ganttViewWithRowAxis || ganttView, layoutContent] }));
3816
+ }
3817
+
3818
+ exports.Gantt = Gantt;
3819
+ //# sourceMappingURL=Gantt-aa6f41d6.js.map