@oracle/oraclejet-preact 18.1.5 → 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 (1758) 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/LineAreaChart-3aff0c1a.js +2 -0
  84. package/amd/LineAreaChart-3aff0c1a.js.map +1 -0
  85. package/amd/Link-1f126248.js +2 -0
  86. package/amd/Link-1f126248.js.map +1 -0
  87. package/amd/LinkVariants.styles.css +2 -1
  88. package/amd/LinkVariants.styles2.css +2 -1
  89. package/amd/List-0da6ee9c.js +2 -0
  90. package/amd/List-0da6ee9c.js.map +1 -0
  91. package/amd/ListView-cdfac903.js +2 -0
  92. package/amd/ListView-cdfac903.js.map +1 -0
  93. package/amd/LoadMoreCollection-a6adbc3f.js +2 -0
  94. package/amd/LoadMoreCollection-a6adbc3f.js.map +1 -0
  95. package/amd/MenuButton-66e5430a.js +2 -0
  96. package/amd/MenuButton-66e5430a.js.map +1 -0
  97. package/amd/Message-d66cc7e9.js +2 -0
  98. package/amd/Message-d66cc7e9.js.map +1 -0
  99. package/amd/MessageToast-19703f73.js +2 -0
  100. package/amd/MessageToast-19703f73.js.map +1 -0
  101. package/amd/MonthView-67179db3.js +2 -0
  102. package/amd/MonthView-67179db3.js.map +1 -0
  103. package/amd/NumberInputText-e2cf1795.js +2 -0
  104. package/amd/NumberInputText-e2cf1795.js.map +1 -0
  105. package/amd/OverflowTabBar-1dd5c327.js +2 -0
  106. package/amd/OverflowTabBar-1dd5c327.js.map +1 -0
  107. package/amd/OverflowTabBarItem-f8128e3d.js +2 -0
  108. package/amd/OverflowTabBarItem-f8128e3d.js.map +1 -0
  109. package/amd/PRIVATE_BaseCardView.js +1 -1
  110. package/amd/PRIVATE_Chart.js +1 -1
  111. package/amd/PRIVATE_CheckboxControl.js +1 -1
  112. package/amd/PRIVATE_CheckboxRadioField.js +1 -1
  113. package/amd/PRIVATE_ClearIcon.js +1 -1
  114. package/amd/PRIVATE_DatePickerHeader.js +1 -1
  115. package/amd/PRIVATE_EmbeddedIconButton.js +1 -1
  116. package/amd/PRIVATE_IconSwitchButton.js +1 -1
  117. package/amd/PRIVATE_List.js +1 -1
  118. package/amd/PRIVATE_LoadMoreCollection.js +1 -1
  119. package/amd/PRIVATE_Message.js +1 -1
  120. package/amd/PRIVATE_MonthView.js +1 -1
  121. package/amd/PRIVATE_MonthYearGridView.js +1 -1
  122. package/amd/PRIVATE_RevealToggleIcon.js +1 -1
  123. package/amd/PRIVATE_RichSelectionCommon.js +1 -1
  124. package/amd/PRIVATE_SelectCommon.js +1 -1
  125. package/amd/PRIVATE_Table.js +1 -1
  126. package/amd/PRIVATE_TimeComponent.js +1 -1
  127. package/amd/PRIVATE_VirtualizedCollection.js +1 -1
  128. package/amd/PictoChart-98b892fb.js +2 -0
  129. package/amd/PictoChart-98b892fb.js.map +1 -0
  130. package/amd/ProgressButton-cd0c21df.js +2 -0
  131. package/amd/ProgressButton-cd0c21df.js.map +1 -0
  132. package/amd/RadioItem-1a02d3dc.js +2 -0
  133. package/amd/RadioItem-1a02d3dc.js.map +1 -0
  134. package/amd/RadioSet-94d12876.js +2 -0
  135. package/amd/RadioSet-94d12876.js.map +1 -0
  136. package/amd/RemovableNavigationListItem-1f69907c.js +2 -0
  137. package/amd/RemovableNavigationListItem-1f69907c.js.map +1 -0
  138. package/amd/RemovableTabBarItem-5c240801.js +2 -0
  139. package/amd/RemovableTabBarItem-5c240801.js.map +1 -0
  140. package/amd/RevealToggleIcon-c22626da.js +2 -0
  141. package/amd/RevealToggleIcon-c22626da.js.map +1 -0
  142. package/amd/ScatterChart-e6f8d49a.js +2 -0
  143. package/amd/ScatterChart-e6f8d49a.js.map +1 -0
  144. package/amd/SelectMultiple-a159ccbf.js +2 -0
  145. package/amd/SelectMultiple-a159ccbf.js.map +1 -0
  146. package/amd/SelectSingle-e3d0d8d2.js +2 -0
  147. package/amd/SelectSingle-e3d0d8d2.js.map +1 -0
  148. package/amd/SplitMenuButton-a2001b04.js +2 -0
  149. package/amd/SplitMenuButton-a2001b04.js.map +1 -0
  150. package/amd/Table-f5ebf3d4.js +2 -0
  151. package/amd/Table-f5ebf3d4.js.map +1 -0
  152. package/amd/TableView-e8cab364.js +2 -0
  153. package/amd/TableView-e8cab364.js.map +1 -0
  154. package/amd/TagCloud-39552a78.js +2 -0
  155. package/amd/TagCloud-39552a78.js.map +1 -0
  156. package/amd/TextArea-0ec1a311.js +2 -0
  157. package/amd/TextArea-0ec1a311.js.map +1 -0
  158. package/amd/TextAreaAutosize-8cac0a54.js +2 -0
  159. package/amd/TextAreaAutosize-8cac0a54.js.map +1 -0
  160. package/amd/Theme-redwood/theme.css +209 -209
  161. package/amd/Theme-stable/theme.css +415 -415
  162. package/amd/TimeComponentCanvas2D-82ebf0c7.js +2 -0
  163. package/amd/TimeComponentCanvas2D-82ebf0c7.js.map +1 -0
  164. package/amd/ToggleButton-f8845804.js +2 -0
  165. package/amd/ToggleButton-f8845804.js.map +1 -0
  166. package/amd/UNSAFE_BarChart/__test__/BarChart.spec.js +1 -1
  167. package/amd/UNSAFE_BarChart.js +1 -1
  168. package/amd/UNSAFE_BaseButton.js +1 -1
  169. package/amd/UNSAFE_Button.js +1 -1
  170. package/amd/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
  171. package/amd/UNSAFE_ButtonSetButton.js +1 -1
  172. package/amd/UNSAFE_ButtonSetIconButton.js +1 -1
  173. package/amd/UNSAFE_ButtonSetItem.js +1 -1
  174. package/amd/UNSAFE_CardFlexView.js +1 -1
  175. package/amd/UNSAFE_CardGridView.js +1 -1
  176. package/amd/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -1
  177. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -1
  178. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  179. package/amd/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -1
  180. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -1
  181. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  182. package/amd/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -1
  183. package/amd/UNSAFE_Checkbox.js +1 -1
  184. package/amd/UNSAFE_CheckboxItem.js +1 -1
  185. package/amd/UNSAFE_CheckboxItem.js.map +1 -1
  186. package/amd/UNSAFE_CheckboxSet.js +1 -1
  187. package/amd/UNSAFE_CheckboxSet.js.map +1 -1
  188. package/amd/UNSAFE_ComboChart.js +1 -1
  189. package/amd/UNSAFE_ComponentMessage.js +1 -1
  190. package/amd/UNSAFE_ConveyorBelt.js +1 -1
  191. package/amd/UNSAFE_DatePicker.js +1 -1
  192. package/amd/UNSAFE_Diagram.js +1 -1
  193. package/amd/UNSAFE_Dialog.js +1 -1
  194. package/amd/UNSAFE_ExpandableList.js +1 -1
  195. package/amd/UNSAFE_Gantt.js +1 -1
  196. package/amd/UNSAFE_IconButton.js +1 -1
  197. package/amd/UNSAFE_IconMenuButton.js +1 -1
  198. package/amd/UNSAFE_IconProgressButton.js +1 -1
  199. package/amd/UNSAFE_IconToggleButton.js +1 -1
  200. package/amd/UNSAFE_Indexer.js +1 -1
  201. package/amd/UNSAFE_InputDateMask.js +1 -1
  202. package/amd/UNSAFE_InputDatePicker.js +1 -1
  203. package/amd/UNSAFE_InputPassword.js +1 -1
  204. package/amd/UNSAFE_InputSensitiveText.js +1 -1
  205. package/amd/UNSAFE_InputText.js +1 -1
  206. package/amd/UNSAFE_InputTimeMask.js +1 -1
  207. package/amd/UNSAFE_Label.js +1 -1
  208. package/amd/UNSAFE_LabelledLink.js +1 -1
  209. package/amd/UNSAFE_LineAreaChart.js +1 -1
  210. package/amd/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  211. package/amd/UNSAFE_Link.js +1 -1
  212. package/amd/UNSAFE_ListView.js +1 -1
  213. package/amd/UNSAFE_MenuButton.js +1 -1
  214. package/amd/UNSAFE_MessageBanner.js +1 -1
  215. package/amd/UNSAFE_MessageToast.js +1 -1
  216. package/amd/UNSAFE_NavigationList.js +1 -1
  217. package/amd/UNSAFE_NavigationListCommon.js +1 -1
  218. package/amd/UNSAFE_NumberInputText.js +1 -1
  219. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  220. package/amd/UNSAFE_PictoChart.js +1 -1
  221. package/amd/UNSAFE_ProgressButton.js +1 -1
  222. package/amd/UNSAFE_RadioItem.js +1 -1
  223. package/amd/UNSAFE_RadioSet.js +1 -1
  224. package/amd/UNSAFE_RichCheckboxSet.js +1 -1
  225. package/amd/UNSAFE_RichCheckboxSet.js.map +1 -1
  226. package/amd/UNSAFE_RichRadioSet.js +1 -1
  227. package/amd/UNSAFE_RichRadioSet.js.map +1 -1
  228. package/amd/UNSAFE_RichSelectionItem.js +1 -1
  229. package/amd/UNSAFE_RichSelectionItem.js.map +1 -1
  230. package/amd/UNSAFE_ScatterChart.js +1 -1
  231. package/amd/UNSAFE_SelectMultiple.js +1 -1
  232. package/amd/UNSAFE_SelectSingle.js +1 -1
  233. package/amd/UNSAFE_Sheet/__test__/Sheet.spec.js +1 -1
  234. package/amd/UNSAFE_SplitMenuButton.js +1 -1
  235. package/amd/UNSAFE_TabBar.js +1 -1
  236. package/amd/UNSAFE_TabBarCommon.js +1 -1
  237. package/amd/UNSAFE_TabBarMixed.js +1 -1
  238. package/amd/UNSAFE_TableView.js +1 -1
  239. package/amd/UNSAFE_TagCloud.js +1 -1
  240. package/amd/UNSAFE_TextArea.js +1 -1
  241. package/amd/UNSAFE_TextAreaAutosize.js +1 -1
  242. package/amd/UNSAFE_ToggleButton.js +1 -1
  243. package/amd/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
  244. package/amd/UNSAFE_UserAssistance.js +1 -1
  245. package/amd/UNSAFE_VirtualizedListView.js +1 -1
  246. package/amd/VirtualizedCollection-63223f5e.js +2 -0
  247. package/amd/VirtualizedCollection-63223f5e.js.map +1 -0
  248. package/amd/VirtualizedListView-d353d174.js +2 -0
  249. package/amd/VirtualizedListView-d353d174.js.map +1 -0
  250. package/amd/YearsGridView-e645d5de.js +2 -0
  251. package/amd/YearsGridView-e645d5de.js.map +1 -0
  252. package/amd/hooks/PRIVATE_useChartEvents.js +1 -1
  253. package/amd/hooks/PRIVATE_useChartMarquee.js +1 -1
  254. package/amd/hooks/PRIVATE_useVisDragModeControls.js +1 -1
  255. package/amd/hooks/PRIVATE_useVisSelection.js +1 -1
  256. package/amd/hooks/UNSAFE_usePressClick.js +1 -1
  257. package/amd/useCellNavigation-4138513e.js +2 -0
  258. package/amd/useCellNavigation-4138513e.js.map +1 -0
  259. package/amd/useChartMarquee-2f7d51c4.js +2 -0
  260. package/amd/useChartMarquee-2f7d51c4.js.map +1 -0
  261. package/amd/usePressClick-b5bf4243.js +2 -0
  262. package/amd/usePressClick-b5bf4243.js.map +1 -0
  263. package/amd/useSelectCommon-380baecd.js +2 -0
  264. package/amd/useSelectCommon-380baecd.js.map +1 -0
  265. package/amd/useSelectDrill-113ae3ae.js +2 -0
  266. package/amd/useSelectDrill-113ae3ae.js.map +1 -0
  267. package/amd/useSelection-80e262f2.js +2 -0
  268. package/amd/useSelection-80e262f2.js.map +1 -0
  269. package/amd/useVisDragModeControls-f187d8b2.js +2 -0
  270. package/amd/useVisDragModeControls-f187d8b2.js.map +1 -0
  271. package/cjs/BarChart-66dbe5be.js +181 -0
  272. package/cjs/BarChart-66dbe5be.js.map +1 -0
  273. package/cjs/BaseButton-590432e4.js +174 -0
  274. package/cjs/BaseButton-590432e4.js.map +1 -0
  275. package/cjs/BaseCardView-5c483f52.js +687 -0
  276. package/cjs/BaseCardView-5c483f52.js.map +1 -0
  277. package/cjs/BaseCardViewSelectionTest-f29b3ecf.js +734 -0
  278. package/cjs/BaseCardViewSelectionTest-f29b3ecf.js.map +1 -0
  279. package/cjs/BaseRichSelection-07d33b2a.js +344 -0
  280. package/cjs/BaseRichSelection-07d33b2a.js.map +1 -0
  281. package/cjs/Button-2427b7df.js +24 -0
  282. package/cjs/Button-2427b7df.js.map +1 -0
  283. package/cjs/ButtonSetButton-a23b6b7d.js +35 -0
  284. package/cjs/ButtonSetButton-a23b6b7d.js.map +1 -0
  285. package/cjs/ButtonSetIconButton-c632a294.js +42 -0
  286. package/cjs/ButtonSetIconButton-c632a294.js.map +1 -0
  287. package/cjs/ButtonSetItem-b260b6a5.js +67 -0
  288. package/cjs/ButtonSetItem-b260b6a5.js.map +1 -0
  289. package/cjs/CardFlexView-385f1b2d.js +29 -0
  290. package/cjs/CardFlexView-385f1b2d.js.map +1 -0
  291. package/cjs/CardGridView-d337b9f4.js +17 -0
  292. package/cjs/CardGridView-d337b9f4.js.map +1 -0
  293. package/cjs/Chart-13ccd345.js +493 -0
  294. package/cjs/Chart-13ccd345.js.map +1 -0
  295. package/cjs/Checkbox-07e4794b.js +106 -0
  296. package/cjs/Checkbox-07e4794b.js.map +1 -0
  297. package/cjs/CheckboxControl-697725cb.js +111 -0
  298. package/cjs/CheckboxControl-697725cb.js.map +1 -0
  299. package/cjs/CheckboxRadioField-1bb0d57d.js +185 -0
  300. package/cjs/CheckboxRadioField-1bb0d57d.js.map +1 -0
  301. package/cjs/CheckboxStyles.styles.css +6 -0
  302. package/cjs/ClearIcon-22a24975.js +23 -0
  303. package/cjs/ClearIcon-22a24975.js.map +1 -0
  304. package/cjs/ComboChart-7188af92.js +174 -0
  305. package/cjs/ComboChart-7188af92.js.map +1 -0
  306. package/cjs/CompactUserAssistance-54247e7e.js +49 -0
  307. package/cjs/CompactUserAssistance-54247e7e.js.map +1 -0
  308. package/cjs/ComponentMessageContainer-f8dc57aa.js +71 -0
  309. package/cjs/ComponentMessageContainer-f8dc57aa.js.map +1 -0
  310. package/cjs/ConveyorBeltItem-324014ba.js +641 -0
  311. package/cjs/ConveyorBeltItem-324014ba.js.map +1 -0
  312. package/cjs/DatePicker-9c362a68.js +566 -0
  313. package/cjs/DatePicker-9c362a68.js.map +1 -0
  314. package/cjs/DatePickerHeader-4223c919.js +46 -0
  315. package/cjs/DatePickerHeader-4223c919.js.map +1 -0
  316. package/cjs/Diagram-151103ac.js +2037 -0
  317. package/cjs/Diagram-151103ac.js.map +1 -0
  318. package/cjs/Dialog-40a1b708.js +346 -0
  319. package/cjs/Dialog-40a1b708.js.map +1 -0
  320. package/cjs/EmbeddedIconButton-f3f6e8f6.js +13 -0
  321. package/cjs/EmbeddedIconButton-f3f6e8f6.js.map +1 -0
  322. package/cjs/ExpandableList-0a0d75b3.js +169 -0
  323. package/cjs/ExpandableList-0a0d75b3.js.map +1 -0
  324. package/cjs/Gantt-aa6f41d6.js +3819 -0
  325. package/cjs/Gantt-aa6f41d6.js.map +1 -0
  326. package/cjs/GroupLoadingIndicator-824d658f.js +1 -1
  327. package/cjs/IconButton-fad4e4b2.js +39 -0
  328. package/cjs/IconButton-fad4e4b2.js.map +1 -0
  329. package/cjs/IconMenuButton-70ef4775.js +58 -0
  330. package/cjs/IconMenuButton-70ef4775.js.map +1 -0
  331. package/cjs/IconProgressButton-b4116a09.js +49 -0
  332. package/cjs/IconProgressButton-b4116a09.js.map +1 -0
  333. package/cjs/IconSwitchButton-2f946274.js +46 -0
  334. package/cjs/IconSwitchButton-2f946274.js.map +1 -0
  335. package/cjs/IconToggleButton-493cf27c.js +45 -0
  336. package/cjs/IconToggleButton-493cf27c.js.map +1 -0
  337. package/cjs/Indexer-a4a2d6b8.js +339 -0
  338. package/cjs/Indexer-a4a2d6b8.js.map +1 -0
  339. package/cjs/InlineUserAssistance-6c6d3250.js +85 -0
  340. package/cjs/InlineUserAssistance-6c6d3250.js.map +1 -0
  341. package/cjs/InputDateMask-d6b1a660.js +1060 -0
  342. package/cjs/InputDateMask-d6b1a660.js.map +1 -0
  343. package/cjs/InputDatePicker-7eb5931a.js +309 -0
  344. package/cjs/InputDatePicker-7eb5931a.js.map +1 -0
  345. package/cjs/InputPassword-e15aa37b.js +157 -0
  346. package/cjs/InputPassword-e15aa37b.js.map +1 -0
  347. package/cjs/InputText-6a6ae7e5.js +199 -0
  348. package/cjs/InputText-6a6ae7e5.js.map +1 -0
  349. package/cjs/Label-c51bd5de.js +85 -0
  350. package/cjs/Label-c51bd5de.js.map +1 -0
  351. package/cjs/LineAreaChart-05a58ac5.js +172 -0
  352. package/cjs/LineAreaChart-05a58ac5.js.map +1 -0
  353. package/cjs/Link-c928d5f1.js +35 -0
  354. package/cjs/Link-c928d5f1.js.map +1 -0
  355. package/cjs/LinkVariants.styles.css +2 -1
  356. package/cjs/LinkVariants.styles2.css +2 -1
  357. package/cjs/List-bad74e43.js +723 -0
  358. package/cjs/List-bad74e43.js.map +1 -0
  359. package/cjs/ListView-80a9c725.js +430 -0
  360. package/cjs/ListView-80a9c725.js.map +1 -0
  361. package/cjs/LoadMoreCollection-73112ff0.js +34 -0
  362. package/cjs/LoadMoreCollection-73112ff0.js.map +1 -0
  363. package/cjs/MenuButton-e6eb6e3e.js +63 -0
  364. package/cjs/MenuButton-e6eb6e3e.js.map +1 -0
  365. package/cjs/Message-20bc90cd.js +208 -0
  366. package/cjs/Message-20bc90cd.js.map +1 -0
  367. package/cjs/MessageToast-c0730ed5.js +243 -0
  368. package/cjs/MessageToast-c0730ed5.js.map +1 -0
  369. package/cjs/MonthView-03da0bd2.js +210 -0
  370. package/cjs/MonthView-03da0bd2.js.map +1 -0
  371. package/cjs/NavigationListItem-0a49d6b5.js +166 -0
  372. package/cjs/NavigationListItem-0a49d6b5.js.map +1 -0
  373. package/cjs/NumberInputText-c58f78da.js +223 -0
  374. package/cjs/NumberInputText-c58f78da.js.map +1 -0
  375. package/cjs/OverflowTabBar-c70fb3bf.js +71 -0
  376. package/cjs/OverflowTabBar-c70fb3bf.js.map +1 -0
  377. package/cjs/OverflowTabBarItem-70484f54.js +88 -0
  378. package/cjs/OverflowTabBarItem-70484f54.js.map +1 -0
  379. package/cjs/PRIVATE_BaseCardView.js +3 -3
  380. package/cjs/PRIVATE_Chart.js +14 -14
  381. package/cjs/PRIVATE_CheckboxControl.js +5 -4
  382. package/cjs/PRIVATE_CheckboxControl.js.map +1 -1
  383. package/cjs/PRIVATE_CheckboxRadioField.js +8 -7
  384. package/cjs/PRIVATE_CheckboxRadioField.js.map +1 -1
  385. package/cjs/PRIVATE_ClearIcon.js +4 -4
  386. package/cjs/PRIVATE_DatePickerHeader.js +5 -5
  387. package/cjs/PRIVATE_EmbeddedIconButton.js +3 -3
  388. package/cjs/PRIVATE_IconSwitchButton.js +3 -3
  389. package/cjs/PRIVATE_List.js +4 -4
  390. package/cjs/PRIVATE_LoadMoreCollection.js +2 -2
  391. package/cjs/PRIVATE_Message.js +4 -4
  392. package/cjs/PRIVATE_MonthView.js +2 -2
  393. package/cjs/PRIVATE_MonthYearGridView.js +2 -2
  394. package/cjs/PRIVATE_RevealToggleIcon.js +4 -4
  395. package/cjs/PRIVATE_RichSelectionCommon.js +8 -7
  396. package/cjs/PRIVATE_RichSelectionCommon.js.map +1 -1
  397. package/cjs/PRIVATE_SelectCommon.js +11 -11
  398. package/cjs/PRIVATE_Table.js +6 -6
  399. package/cjs/PRIVATE_TimeComponent.js +3 -3
  400. package/cjs/PRIVATE_VirtualizedCollection.js +2 -2
  401. package/cjs/PictoChart-fd613c80.js +747 -0
  402. package/cjs/PictoChart-fd613c80.js.map +1 -0
  403. package/cjs/ProgressButton-81474622.js +58 -0
  404. package/cjs/ProgressButton-81474622.js.map +1 -0
  405. package/cjs/RadioItem-3cc743ff.js +115 -0
  406. package/cjs/RadioItem-3cc743ff.js.map +1 -0
  407. package/cjs/RadioSet-f4ee4f80.js +45 -0
  408. package/cjs/RadioSet-f4ee4f80.js.map +1 -0
  409. package/cjs/RemovableNavigationListItem-f3ad6e8e.js +26 -0
  410. package/cjs/RemovableNavigationListItem-f3ad6e8e.js.map +1 -0
  411. package/cjs/RemovableTabBarItem-5c05fa32.js +38 -0
  412. package/cjs/RemovableTabBarItem-5c05fa32.js.map +1 -0
  413. package/cjs/RevealToggleIcon-4ec10dbe.js +28 -0
  414. package/cjs/RevealToggleIcon-4ec10dbe.js.map +1 -0
  415. package/cjs/ScatterChart-9226c20d.js +105 -0
  416. package/cjs/ScatterChart-9226c20d.js.map +1 -0
  417. package/cjs/SelectMultiple-3569988d.js +1299 -0
  418. package/cjs/SelectMultiple-3569988d.js.map +1 -0
  419. package/cjs/SelectSingle-43d6953e.js +732 -0
  420. package/cjs/SelectSingle-43d6953e.js.map +1 -0
  421. package/cjs/SplitMenuButton-9c1b081c.js +141 -0
  422. package/cjs/SplitMenuButton-9c1b081c.js.map +1 -0
  423. package/cjs/Table-6987731e.js +5499 -0
  424. package/cjs/Table-6987731e.js.map +1 -0
  425. package/cjs/TableView-1bed3e0b.js +33 -0
  426. package/cjs/TableView-1bed3e0b.js.map +1 -0
  427. package/cjs/TagCloud-2715c0e8.js +826 -0
  428. package/cjs/TagCloud-2715c0e8.js.map +1 -0
  429. package/cjs/TextArea-d8516f11.js +162 -0
  430. package/cjs/TextArea-d8516f11.js.map +1 -0
  431. package/cjs/TextAreaAutosize-1797d5b7.js +246 -0
  432. package/cjs/TextAreaAutosize-1797d5b7.js.map +1 -0
  433. package/cjs/Theme-redwood/theme.css +157 -157
  434. package/cjs/Theme-stable/theme.css +252 -252
  435. package/cjs/TimeComponentCanvas2D-13c06086.js +591 -0
  436. package/cjs/TimeComponentCanvas2D-13c06086.js.map +1 -0
  437. package/cjs/ToggleButton-c614bbec.js +30 -0
  438. package/cjs/ToggleButton-c614bbec.js.map +1 -0
  439. package/cjs/UNSAFE_BarChart/__test__/BarChart.spec.js +15 -15
  440. package/cjs/UNSAFE_BarChart.js +15 -15
  441. package/cjs/UNSAFE_BaseButton.js +2 -2
  442. package/cjs/UNSAFE_Button.js +3 -3
  443. package/cjs/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +5 -5
  444. package/cjs/UNSAFE_ButtonSetButton.js +3 -3
  445. package/cjs/UNSAFE_ButtonSetIconButton.js +3 -3
  446. package/cjs/UNSAFE_ButtonSetItem.js +5 -5
  447. package/cjs/UNSAFE_CardFlexView.js +4 -4
  448. package/cjs/UNSAFE_CardGridView.js +4 -4
  449. package/cjs/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -0
  450. package/cjs/UNSAFE_Checkbox/themes/CheckboxStyles.css.js.map +1 -1
  451. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -0
  452. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  453. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -0
  454. package/cjs/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js.map +1 -1
  455. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -0
  456. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  457. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -0
  458. package/cjs/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js.map +1 -1
  459. package/cjs/UNSAFE_Checkbox.js +8 -7
  460. package/cjs/UNSAFE_Checkbox.js.map +1 -1
  461. package/cjs/UNSAFE_CheckboxItem.js +5 -4
  462. package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
  463. package/cjs/UNSAFE_CheckboxSet.js +8 -7
  464. package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
  465. package/cjs/UNSAFE_ComboChart.js +15 -15
  466. package/cjs/UNSAFE_ComponentMessage.js +4 -4
  467. package/cjs/UNSAFE_ConveyorBelt.js +3 -3
  468. package/cjs/UNSAFE_DatePicker.js +10 -10
  469. package/cjs/UNSAFE_Diagram.js +9 -9
  470. package/cjs/UNSAFE_Dialog.js +4 -4
  471. package/cjs/UNSAFE_ExpandableList.js +7 -7
  472. package/cjs/UNSAFE_Gantt.js +5 -5
  473. package/cjs/UNSAFE_IconButton.js +3 -3
  474. package/cjs/UNSAFE_IconMenuButton.js +3 -3
  475. package/cjs/UNSAFE_IconProgressButton.js +3 -3
  476. package/cjs/UNSAFE_IconToggleButton.js +3 -3
  477. package/cjs/UNSAFE_Indexer.js +2 -2
  478. package/cjs/UNSAFE_InputDateMask.js +8 -8
  479. package/cjs/UNSAFE_InputDatePicker.js +95 -95
  480. package/cjs/UNSAFE_InputPassword.js +11 -11
  481. package/cjs/UNSAFE_InputSensitiveText.js +10 -10
  482. package/cjs/UNSAFE_InputText.js +9 -9
  483. package/cjs/UNSAFE_InputTimeMask.js +7 -7
  484. package/cjs/UNSAFE_Label.js +4 -4
  485. package/cjs/UNSAFE_LabelledLink.js +7 -7
  486. package/cjs/UNSAFE_LineAreaChart.js +15 -15
  487. package/cjs/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  488. package/cjs/UNSAFE_Link.js +2 -2
  489. package/cjs/UNSAFE_ListView.js +5 -5
  490. package/cjs/UNSAFE_MenuButton.js +3 -3
  491. package/cjs/UNSAFE_MessageBanner.js +4 -4
  492. package/cjs/UNSAFE_MessageToast.js +5 -5
  493. package/cjs/UNSAFE_NavigationList.js +8 -8
  494. package/cjs/UNSAFE_NavigationListCommon.js +4 -4
  495. package/cjs/UNSAFE_NumberInputText.js +8 -8
  496. package/cjs/UNSAFE_OverflowTabBar.js +8 -8
  497. package/cjs/UNSAFE_PictoChart.js +4 -4
  498. package/cjs/UNSAFE_ProgressButton.js +3 -3
  499. package/cjs/UNSAFE_RadioItem.js +4 -4
  500. package/cjs/UNSAFE_RadioSet.js +9 -8
  501. package/cjs/UNSAFE_RadioSet.js.map +1 -1
  502. package/cjs/UNSAFE_RichCheckboxSet.js +8 -7
  503. package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
  504. package/cjs/UNSAFE_RichRadioSet.js +8 -7
  505. package/cjs/UNSAFE_RichRadioSet.js.map +1 -1
  506. package/cjs/UNSAFE_ScatterChart.js +15 -15
  507. package/cjs/UNSAFE_SelectMultiple.js +15 -15
  508. package/cjs/UNSAFE_SelectSingle.js +14 -14
  509. package/cjs/UNSAFE_Sheet/__test__/Sheet.spec.js +3 -3
  510. package/cjs/UNSAFE_SplitMenuButton.js +3 -3
  511. package/cjs/UNSAFE_TabBar.js +7 -7
  512. package/cjs/UNSAFE_TabBarCommon.js +7 -7
  513. package/cjs/UNSAFE_TabBarMixed.js +7 -7
  514. package/cjs/UNSAFE_TableView.js +7 -7
  515. package/cjs/UNSAFE_TagCloud.js +4 -4
  516. package/cjs/UNSAFE_TextArea.js +8 -8
  517. package/cjs/UNSAFE_TextAreaAutosize.js +8 -8
  518. package/cjs/UNSAFE_ToggleButton.js +3 -3
  519. package/cjs/UNSAFE_Toolbar/tests/Toolbar.spec.js +5 -5
  520. package/cjs/UNSAFE_UserAssistance.js +6 -6
  521. package/cjs/UNSAFE_VirtualizedListView.js +5 -5
  522. package/cjs/VirtualizedCollection-00aedb8b.js +180 -0
  523. package/cjs/VirtualizedCollection-00aedb8b.js.map +1 -0
  524. package/cjs/VirtualizedListView-ad3219ba.js +16 -0
  525. package/cjs/VirtualizedListView-ad3219ba.js.map +1 -0
  526. package/cjs/YearsGridView-67ce0a3a.js +190 -0
  527. package/cjs/YearsGridView-67ce0a3a.js.map +1 -0
  528. package/cjs/hooks/PRIVATE_useChartEvents.js +4 -4
  529. package/cjs/hooks/PRIVATE_useChartMarquee.js +8 -8
  530. package/cjs/hooks/PRIVATE_useVisDragModeControls.js +7 -7
  531. package/cjs/hooks/PRIVATE_useVisSelection.js +3 -3
  532. package/cjs/hooks/UNSAFE_usePressClick.js +1 -1
  533. package/cjs/useCellNavigation-d503e35f.js +124 -0
  534. package/cjs/useCellNavigation-d503e35f.js.map +1 -0
  535. package/cjs/useChartMarquee-7ffcda9e.js +295 -0
  536. package/cjs/useChartMarquee-7ffcda9e.js.map +1 -0
  537. package/cjs/usePressClick-7a34624a.js +41 -0
  538. package/cjs/usePressClick-7a34624a.js.map +1 -0
  539. package/cjs/useSelectCommon-38a38427.js +709 -0
  540. package/cjs/useSelectCommon-38a38427.js.map +1 -0
  541. package/cjs/useSelectDrill-ad5864fd.js +107 -0
  542. package/cjs/useSelectDrill-ad5864fd.js.map +1 -0
  543. package/cjs/useSelection-8f68a23a.js +188 -0
  544. package/cjs/useSelection-8f68a23a.js.map +1 -0
  545. package/cjs/useVisDragModeControls-d3a7aa57.js +89 -0
  546. package/cjs/useVisDragModeControls-d3a7aa57.js.map +1 -0
  547. package/es/ActionCard-bac27bb9.js +1 -1
  548. package/es/BarChart-43dec3b7.js +179 -0
  549. package/es/BarChart-43dec3b7.js.map +1 -0
  550. package/es/BarGroup-dbf70e2c.js +1 -1
  551. package/es/BaseButton-61f6baa8.js +172 -0
  552. package/es/BaseButton-61f6baa8.js.map +1 -0
  553. package/es/BaseCardView-724422f3.js +7 -7
  554. package/es/BaseCardViewSelectionTest-ef070684.js +721 -0
  555. package/es/BaseCardViewSelectionTest-ef070684.js.map +1 -0
  556. package/es/BaseNavigationListItem-1c75c13f.js +47 -0
  557. package/es/BaseNavigationListItem-1c75c13f.js.map +1 -0
  558. package/es/BaseRichSelection-72edca7c.js +342 -0
  559. package/es/BaseRichSelection-72edca7c.js.map +1 -0
  560. package/es/Button-f90514b2.js +22 -0
  561. package/es/Button-f90514b2.js.map +1 -0
  562. package/es/ButtonSet-9b2c41be.js +2 -2
  563. package/es/ButtonSetButton-974fc462.js +33 -0
  564. package/es/ButtonSetButton-974fc462.js.map +1 -0
  565. package/es/ButtonSetIconButton-0081167a.js +40 -0
  566. package/es/ButtonSetIconButton-0081167a.js.map +1 -0
  567. package/es/ButtonSetItem-eb2d43d4.js +65 -0
  568. package/es/ButtonSetItem-eb2d43d4.js.map +1 -0
  569. package/es/Card-31dc8dc2.js +15 -0
  570. package/es/Card-31dc8dc2.js.map +1 -0
  571. package/es/Center-2be68188.js +16 -0
  572. package/es/Center-2be68188.js.map +1 -0
  573. package/es/Chart-4ec13697.js +491 -0
  574. package/es/Chart-4ec13697.js.map +1 -0
  575. package/es/Checkbox-74259575.js +104 -0
  576. package/es/Checkbox-74259575.js.map +1 -0
  577. package/es/CheckboxControl-c3c34028.js +109 -0
  578. package/es/CheckboxControl-c3c34028.js.map +1 -0
  579. package/es/CheckboxRadioField-294463ba.js +183 -0
  580. package/es/CheckboxRadioField-294463ba.js.map +1 -0
  581. package/es/CheckboxSetContext-1be56556.js +9 -0
  582. package/es/CheckboxSetContext-1be56556.js.map +1 -0
  583. package/es/CheckboxStyles.styles.css +6 -0
  584. package/es/Chip-8fd813ce.js +1 -1
  585. package/es/ClearIcon-acca9670.js +21 -0
  586. package/es/ClearIcon-acca9670.js.map +1 -0
  587. package/es/CollapseIcon-152e59b4.js +1 -1
  588. package/es/Collapsible-4dddc4f7.js +2 -2
  589. package/es/ComboChart-d1c3e17a.js +172 -0
  590. package/es/ComboChart-d1c3e17a.js.map +1 -0
  591. package/es/CompactHelpSource-c3044924.js +2 -2
  592. package/es/CompactLabelAssistance-0d70fceb.js +34 -0
  593. package/es/CompactLabelAssistance-0d70fceb.js.map +1 -0
  594. package/es/CompactUserAssistance-4f0ff3fc.js +47 -0
  595. package/es/CompactUserAssistance-4f0ff3fc.js.map +1 -0
  596. package/es/ComponentMessageContainer-13005c12.js +68 -0
  597. package/es/ComponentMessageContainer-13005c12.js.map +1 -0
  598. package/es/ConveyorBeltItem-53f383e1.js +638 -0
  599. package/es/ConveyorBeltItem-53f383e1.js.map +1 -0
  600. package/es/DatePicker-a57b08b1.js +564 -0
  601. package/es/DatePicker-a57b08b1.js.map +1 -0
  602. package/es/DatePickerHeader-8eee60aa.js +44 -0
  603. package/es/DatePickerHeader-8eee60aa.js.map +1 -0
  604. package/es/Diagram-29d78c10.js +2035 -0
  605. package/es/Diagram-29d78c10.js.map +1 -0
  606. package/es/Dialog-8a9a90a2.js +344 -0
  607. package/es/Dialog-8a9a90a2.js.map +1 -0
  608. package/es/DirectionalCollapseArrowIcon-e1b04846.js +1 -1
  609. package/es/DirectionalExpandArrowIcon-c9218fa7.js +1 -1
  610. package/es/DragHandle-198c3118.js +22 -0
  611. package/es/DragHandle-198c3118.js.map +1 -0
  612. package/es/DrawerPopup-5292bdfc.js +381 -0
  613. package/es/DrawerPopup-5292bdfc.js.map +1 -0
  614. package/es/Dropdown-698afbc6.js +80 -0
  615. package/es/Dropdown-698afbc6.js.map +1 -0
  616. package/es/EmbeddedIconButton-7215a912.js +11 -0
  617. package/es/EmbeddedIconButton-7215a912.js.map +1 -0
  618. package/es/EnvironmentProvider-713d0dec.js +58 -0
  619. package/es/EnvironmentProvider-713d0dec.js.map +1 -0
  620. package/es/ExpandableList-27f4f0d4.js +167 -0
  621. package/es/ExpandableList-27f4f0d4.js.map +1 -0
  622. package/es/FilePicker-c3f06d6f.js +2 -2
  623. package/es/Flex-2d9ebee9.js +30 -0
  624. package/es/Flex-2d9ebee9.js.map +1 -0
  625. package/es/Floating-5191a9e6.js +462 -0
  626. package/es/Floating-5191a9e6.js.map +1 -0
  627. package/es/FormLayout-b2993e0c.js +1 -1
  628. package/es/Gantt-e156bd33.js +3817 -0
  629. package/es/Gantt-e156bd33.js.map +1 -0
  630. package/es/Grid-238d8757.js +27 -0
  631. package/es/Grid-238d8757.js.map +1 -0
  632. package/es/Gridlines-d37f55d2.js +168 -0
  633. package/es/Gridlines-d37f55d2.js.map +1 -0
  634. package/es/GroupLoadingIndicator-93bcf33f.js +1 -1
  635. package/es/HighlightText-fef35694.js +31 -0
  636. package/es/HighlightText-fef35694.js.map +1 -0
  637. package/es/Icon-030b6dd4.js +3 -3
  638. package/es/IconButton-19fcf0a8.js +37 -0
  639. package/es/IconButton-19fcf0a8.js.map +1 -0
  640. package/es/IconMenuButton-4118bde6.js +56 -0
  641. package/es/IconMenuButton-4118bde6.js.map +1 -0
  642. package/es/IconProgressButton-a595c052.js +47 -0
  643. package/es/IconProgressButton-a595c052.js.map +1 -0
  644. package/es/IconSwitchButton-dcafa86c.js +44 -0
  645. package/es/IconSwitchButton-dcafa86c.js.map +1 -0
  646. package/es/IconToggleButton-94cbea2b.js +43 -0
  647. package/es/IconToggleButton-94cbea2b.js.map +1 -0
  648. package/es/IconUserAssistance-d9bc82d4.js +73 -0
  649. package/es/IconUserAssistance-d9bc82d4.js.map +1 -0
  650. package/es/Indexer-18ec7af3.js +4 -4
  651. package/es/InlineHelpSource-5ed4bb7d.js +1 -1
  652. package/es/InlineUserAssistance-65ca8810.js +81 -0
  653. package/es/InlineUserAssistance-65ca8810.js.map +1 -0
  654. package/es/InputDateMask-8258be53.js +1056 -0
  655. package/es/InputDateMask-8258be53.js.map +1 -0
  656. package/es/InputDatePicker-a659ed3a.js +307 -0
  657. package/es/InputDatePicker-a659ed3a.js.map +1 -0
  658. package/es/InputPassword-65336899.js +155 -0
  659. package/es/InputPassword-65336899.js.map +1 -0
  660. package/es/InputText-21591785.js +197 -0
  661. package/es/InputText-21591785.js.map +1 -0
  662. package/es/Label-25eba25e.js +83 -0
  663. package/es/Label-25eba25e.js.map +1 -0
  664. package/es/LabelValueLayout-1db91391.js +1 -1
  665. package/es/Layer-1eb18747.js +91 -0
  666. package/es/Layer-1eb18747.js.map +1 -0
  667. package/es/LayerHost-8b98d97d.js +41 -0
  668. package/es/LayerHost-8b98d97d.js.map +1 -0
  669. package/es/LayerManager-221afe20.js +34 -0
  670. package/es/LayerManager-221afe20.js.map +1 -0
  671. package/es/Legend-0e274097.js +3 -3
  672. package/es/LineAreaChart-6fabda31.js +170 -0
  673. package/es/LineAreaChart-6fabda31.js.map +1 -0
  674. package/es/LineSeries-139bda1a.js +109 -0
  675. package/es/LineSeries-139bda1a.js.map +1 -0
  676. package/es/Link-c7061441.js +33 -0
  677. package/es/Link-c7061441.js.map +1 -0
  678. package/es/LinkVariants.styles.css +2 -1
  679. package/es/LinkVariants.styles2.css +2 -1
  680. package/es/List-58b8d3c9.js +5 -5
  681. package/es/ListItemLayout-af86b17d.js +110 -0
  682. package/es/ListItemLayout-af86b17d.js.map +1 -0
  683. package/es/ListView-be2e2736.js +3 -3
  684. package/es/LiveRegion-c7bf2f21.js +39 -0
  685. package/es/LiveRegion-c7bf2f21.js.map +1 -0
  686. package/es/MaxLengthLiveRegion-d790e55c.js +23 -0
  687. package/es/MaxLengthLiveRegion-d790e55c.js.map +1 -0
  688. package/es/Menu-a5bf756f.js +6 -6
  689. package/es/MenuButton-e012a909.js +61 -0
  690. package/es/MenuButton-e012a909.js.map +1 -0
  691. package/es/MenuItem-54015ca3.js +1 -1
  692. package/es/Message-b0150c6f.js +203 -0
  693. package/es/Message-b0150c6f.js.map +1 -0
  694. package/es/MessageLayer-d9129e22.js +58 -0
  695. package/es/MessageLayer-d9129e22.js.map +1 -0
  696. package/es/MessageToast-933a0339.js +241 -0
  697. package/es/MessageToast-933a0339.js.map +1 -0
  698. package/es/MessagesManager-91ade5dc.js +3 -3
  699. package/es/MeterBar-732e3b2c.js +5 -5
  700. package/es/MeterCircle-2156d7ff.js +5 -5
  701. package/es/Modal-9980f6d1.js +288 -0
  702. package/es/Modal-9980f6d1.js.map +1 -0
  703. package/es/MonthView-d60a5df7.js +208 -0
  704. package/es/MonthView-d60a5df7.js.map +1 -0
  705. package/es/NavigationList-fb05e081.js +159 -0
  706. package/es/NavigationList-fb05e081.js.map +1 -0
  707. package/es/NavigationListItem-193a315a.js +10 -0
  708. package/es/NavigationListItem-193a315a.js.map +1 -0
  709. package/es/NumberInputText-2d1aef12.js +220 -0
  710. package/es/NumberInputText-2d1aef12.js.map +1 -0
  711. package/es/OverflowTabBar-894c7cd9.js +69 -0
  712. package/es/OverflowTabBar-894c7cd9.js.map +1 -0
  713. package/es/OverflowTabBarItem-a578401b.js +87 -0
  714. package/es/OverflowTabBarItem-a578401b.js.map +1 -0
  715. package/es/PRIVATE_BaseCardView.js +21 -21
  716. package/es/PRIVATE_Chart.js +43 -43
  717. package/es/PRIVATE_CheckboxControl.js +28 -27
  718. package/es/PRIVATE_CheckboxControl.js.map +1 -1
  719. package/es/PRIVATE_CheckboxRadioField.js +33 -32
  720. package/es/PRIVATE_CheckboxRadioField.js.map +1 -1
  721. package/es/PRIVATE_ClearIcon.js +21 -21
  722. package/es/PRIVATE_DatePickerHeader.js +23 -23
  723. package/es/PRIVATE_DatePickerLayout.js +4 -4
  724. package/es/PRIVATE_EmbeddedIconButton.js +6 -6
  725. package/es/PRIVATE_FormControls.js +19 -19
  726. package/es/PRIVATE_IconSwitchButton.js +18 -18
  727. package/es/PRIVATE_Icons/CheckboxMixed.js +15 -15
  728. package/es/PRIVATE_Icons/CheckboxOff.js +15 -15
  729. package/es/PRIVATE_Icons/CheckboxOn.js +15 -15
  730. package/es/PRIVATE_Icons/DragV.js +15 -15
  731. package/es/PRIVATE_Icons/WarningS.js +15 -15
  732. package/es/PRIVATE_List.js +19 -19
  733. package/es/PRIVATE_Message.js +22 -22
  734. package/es/PRIVATE_MessageLayer.js +12 -12
  735. package/es/PRIVATE_MonthView.js +8 -8
  736. package/es/PRIVATE_MonthYearGridView.js +8 -8
  737. package/es/PRIVATE_PlotArea.js +4 -4
  738. package/es/PRIVATE_RevealToggleIcon.js +20 -20
  739. package/es/PRIVATE_RichSelectionCommon.js +34 -33
  740. package/es/PRIVATE_RichSelectionCommon.js.map +1 -1
  741. package/es/PRIVATE_SelectCommon.js +35 -35
  742. package/es/PRIVATE_StyledCard.js +4 -4
  743. package/es/PRIVATE_StyledCheckbox.js +15 -15
  744. package/es/PRIVATE_Table.js +28 -28
  745. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +15 -15
  746. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +15 -15
  747. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +15 -15
  748. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +15 -15
  749. package/es/PRIVATE_ThemedIcons/CheckIcon.js +15 -15
  750. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +15 -15
  751. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +15 -15
  752. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +15 -15
  753. package/es/PRIVATE_ThemedIcons/CloseIcon.js +15 -15
  754. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +16 -16
  755. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +15 -15
  756. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +15 -15
  757. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +15 -15
  758. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +16 -16
  759. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +16 -16
  760. package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +15 -15
  761. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +15 -15
  762. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +15 -15
  763. package/es/PRIVATE_ThemedIcons/HelpIcon.js +15 -15
  764. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +15 -15
  765. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +15 -15
  766. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +15 -15
  767. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +15 -15
  768. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +15 -15
  769. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +15 -15
  770. package/es/PRIVATE_ThemedIcons/MinusIcon.js +15 -15
  771. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +15 -15
  772. package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +15 -15
  773. package/es/PRIVATE_ThemedIcons/PlusIcon.js +15 -15
  774. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +15 -15
  775. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +15 -15
  776. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +15 -15
  777. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +15 -15
  778. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +15 -15
  779. package/es/PRIVATE_ThemedIcons/ViewIcon.js +15 -15
  780. package/es/PRIVATE_TimeComponent.js +20 -20
  781. package/es/PRIVATE_VisOverview.js +15 -15
  782. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  783. package/es/PictoChart-9624c62e.js +744 -0
  784. package/es/PictoChart-9624c62e.js.map +1 -0
  785. package/es/PieChart-87a2913f.js +6 -6
  786. package/es/Popup-f6774b40.js +258 -0
  787. package/es/Popup-f6774b40.js.map +1 -0
  788. package/es/ProgressBar-6d816723.js +62 -0
  789. package/es/ProgressBar-6d816723.js.map +1 -0
  790. package/es/ProgressButton-bb52347a.js +56 -0
  791. package/es/ProgressButton-bb52347a.js.map +1 -0
  792. package/es/ProgressButtonLabelLayout-f1d097d6.js +3 -3
  793. package/es/ProgressCircle-bbcf67fd.js +48 -0
  794. package/es/ProgressCircle-bbcf67fd.js.map +1 -0
  795. package/es/RadioItem-81e9e082.js +113 -0
  796. package/es/RadioItem-81e9e082.js.map +1 -0
  797. package/es/RadioSet-d2820846.js +43 -0
  798. package/es/RadioSet-d2820846.js.map +1 -0
  799. package/es/RatingGauge-5e1e75b4.js +8 -8
  800. package/es/ReadonlyTextFieldInput-f407b86c.js +1 -1
  801. package/es/RemovableNavigationListItem-21cd36b7.js +25 -0
  802. package/es/RemovableNavigationListItem-21cd36b7.js.map +1 -0
  803. package/es/RemovableTabBarItem-60574a52.js +36 -0
  804. package/es/RemovableTabBarItem-60574a52.js.map +1 -0
  805. package/es/ReorderableTabBar-c280e7d4.js +77 -0
  806. package/es/ReorderableTabBar-c280e7d4.js.map +1 -0
  807. package/es/RevealToggleIcon-8e650973.js +26 -0
  808. package/es/RevealToggleIcon-8e650973.js.map +1 -0
  809. package/es/ScatterChart-1f818935.js +103 -0
  810. package/es/ScatterChart-1f818935.js.map +1 -0
  811. package/es/SectionalLegend-64670096.js +4 -4
  812. package/es/SectionedContent-48fa242f.js +64 -0
  813. package/es/SectionedContent-48fa242f.js.map +1 -0
  814. package/es/SelectMultiple-c7f9e747.js +1297 -0
  815. package/es/SelectMultiple-c7f9e747.js.map +1 -0
  816. package/es/SelectSingle-75270526.js +730 -0
  817. package/es/SelectSingle-75270526.js.map +1 -0
  818. package/es/SelectionCard-ce3012e8.js +16 -0
  819. package/es/SelectionCard-ce3012e8.js.map +1 -0
  820. package/es/Selector-41618991.js +1 -1
  821. package/es/SelectorAll-27744634.js +69 -0
  822. package/es/SelectorAll-27744634.js.map +1 -0
  823. package/es/Sheet-924cfdab.js +158 -0
  824. package/es/Sheet-924cfdab.js.map +1 -0
  825. package/es/SplitMenuButton-5cb6e8db.js +139 -0
  826. package/es/SplitMenuButton-5cb6e8db.js.map +1 -0
  827. package/es/StyledCard-c8d9836f.js +105 -0
  828. package/es/StyledCard-c8d9836f.js.map +1 -0
  829. package/es/StyledLabelValueLayout-5b9a731a.js +18 -0
  830. package/es/StyledLabelValueLayout-5b9a731a.js.map +1 -0
  831. package/es/StyledTextField-6d6dd43e.js +3 -3
  832. package/es/TabBar-4d7054f7.js +82 -0
  833. package/es/TabBar-4d7054f7.js.map +1 -0
  834. package/es/TabBarItem-b97091e4.js +3 -3
  835. package/es/TabBarLayout-bb3f9f69.js +1 -1
  836. package/es/TabBarMixed-b8e2427c.js +83 -0
  837. package/es/TabBarMixed-b8e2427c.js.map +1 -0
  838. package/es/TabBarMixedSeparator-7669e2f0.js +19 -0
  839. package/es/TabBarMixedSeparator-7669e2f0.js.map +1 -0
  840. package/es/Table-b8c41429.js +5497 -0
  841. package/es/Table-b8c41429.js.map +1 -0
  842. package/es/TableView-2261b9de.js +31 -0
  843. package/es/TableView-2261b9de.js.map +1 -0
  844. package/es/TagCloud-0fe9b648.js +824 -0
  845. package/es/TagCloud-0fe9b648.js.map +1 -0
  846. package/es/TextArea-6584935d.js +177 -0
  847. package/es/TextArea-6584935d.js.map +1 -0
  848. package/es/TextAreaAutosize-2ca5256e.js +244 -0
  849. package/es/TextAreaAutosize-2ca5256e.js.map +1 -0
  850. package/es/TextField-500c0227.js +3 -3
  851. package/es/TextFieldInput-cb551f4e.js +1 -1
  852. package/es/Theme-redwood/theme.css +590 -590
  853. package/es/Theme-stable/theme.css +476 -476
  854. package/es/TimeComponentCanvas2D-a5baa5f6.js +568 -0
  855. package/es/TimeComponentCanvas2D-a5baa5f6.js.map +1 -0
  856. package/es/ToggleButton-c50ac048.js +28 -0
  857. package/es/ToggleButton-c50ac048.js.map +1 -0
  858. package/es/Toolbar-35426a1b.js +1 -1
  859. package/es/TruncatingBadge-69621d89.js +1 -1
  860. package/es/TruncatingText-fd66e0e0.js +1 -1
  861. package/es/UNSAFE_ActionCard.js +3 -3
  862. package/es/UNSAFE_BarChart/__test__/BarChart.spec.js +44 -44
  863. package/es/UNSAFE_BarChart.js +44 -44
  864. package/es/UNSAFE_BaseButton.js +5 -5
  865. package/es/UNSAFE_Button.js +6 -6
  866. package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +26 -26
  867. package/es/UNSAFE_ButtonSet.js +4 -4
  868. package/es/UNSAFE_ButtonSetButton.js +6 -6
  869. package/es/UNSAFE_ButtonSetIconButton.js +18 -18
  870. package/es/UNSAFE_ButtonSetItem.js +20 -20
  871. package/es/UNSAFE_ButtonSetMultiple.js +4 -4
  872. package/es/UNSAFE_ButtonSetSingle.js +4 -4
  873. package/es/UNSAFE_Card.js +5 -5
  874. package/es/UNSAFE_CardFlexView.js +21 -21
  875. package/es/UNSAFE_CardGridView.js +21 -21
  876. package/es/UNSAFE_Center.js +5 -5
  877. package/es/UNSAFE_Checkbox/themes/CheckboxStyles.css.js +1 -0
  878. package/es/UNSAFE_Checkbox/themes/CheckboxStyles.css.js.map +1 -1
  879. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js +1 -0
  880. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxTheme.js.map +1 -1
  881. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js +1 -0
  882. package/es/UNSAFE_Checkbox/themes/redwood/CheckboxVariants.css.js.map +1 -1
  883. package/es/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js +1 -0
  884. package/es/UNSAFE_Checkbox/themes/stable/CheckboxTheme.js.map +1 -1
  885. package/es/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js +1 -0
  886. package/es/UNSAFE_Checkbox/themes/stable/CheckboxVariants.css.js.map +1 -1
  887. package/es/UNSAFE_Checkbox.js +31 -30
  888. package/es/UNSAFE_Checkbox.js.map +1 -1
  889. package/es/UNSAFE_CheckboxItem.js +57 -108
  890. package/es/UNSAFE_CheckboxItem.js.map +1 -1
  891. package/es/UNSAFE_CheckboxSet.js +75 -40
  892. package/es/UNSAFE_CheckboxSet.js.map +1 -1
  893. package/es/UNSAFE_Chip.js +2 -2
  894. package/es/UNSAFE_Collapsible.js +17 -17
  895. package/es/UNSAFE_ComboChart.js +46 -46
  896. package/es/UNSAFE_ComponentMessage.js +22 -22
  897. package/es/UNSAFE_ConveyorBelt.js +18 -18
  898. package/es/UNSAFE_DatePicker.js +30 -30
  899. package/es/UNSAFE_Diagram.js +27 -27
  900. package/es/UNSAFE_Dialog.js +24 -24
  901. package/es/UNSAFE_DragHandle.js +17 -17
  902. package/es/UNSAFE_DrawerLayout.js +12 -12
  903. package/es/UNSAFE_DrawerPopup.js +13 -13
  904. package/es/UNSAFE_Dropdown.js +13 -13
  905. package/es/UNSAFE_Environment.js +4 -4
  906. package/es/UNSAFE_ExpandableList.js +26 -26
  907. package/es/UNSAFE_FilePicker.js +4 -4
  908. package/es/UNSAFE_Flex.js +4 -4
  909. package/es/UNSAFE_Floating.js +11 -11
  910. package/es/UNSAFE_FormLayout.js +2 -2
  911. package/es/UNSAFE_Gantt.js +26 -26
  912. package/es/UNSAFE_Grid.js +4 -4
  913. package/es/UNSAFE_HighlightText.js +4 -4
  914. package/es/UNSAFE_Icon.js +15 -15
  915. package/es/UNSAFE_IconButton.js +18 -18
  916. package/es/UNSAFE_IconMenuButton.js +24 -24
  917. package/es/UNSAFE_IconProgressButton.js +21 -21
  918. package/es/UNSAFE_IconToggleButton.js +18 -18
  919. package/es/UNSAFE_Indexer.js +6 -6
  920. package/es/UNSAFE_InputDateMask.js +33 -33
  921. package/es/UNSAFE_InputDatePicker.js +119 -119
  922. package/es/UNSAFE_InputPassword.js +35 -35
  923. package/es/UNSAFE_InputSensitiveText.js +36 -36
  924. package/es/UNSAFE_InputText.js +36 -36
  925. package/es/UNSAFE_InputTimeMask.js +32 -32
  926. package/es/UNSAFE_Label.js +27 -27
  927. package/es/UNSAFE_LabelValueLayout.js +4 -4
  928. package/es/UNSAFE_LabelledLink.js +32 -32
  929. package/es/UNSAFE_Layer.js +8 -8
  930. package/es/UNSAFE_Legend.js +25 -25
  931. package/es/UNSAFE_LineAreaChart.js +46 -46
  932. package/es/UNSAFE_Link/themes/LinkStyles.css.js +1 -1
  933. package/es/UNSAFE_Link.js +4 -4
  934. package/es/UNSAFE_ListItemLayout.js +5 -5
  935. package/es/UNSAFE_ListView.js +28 -28
  936. package/es/UNSAFE_LiveRegion.js +4 -4
  937. package/es/UNSAFE_Menu.js +23 -23
  938. package/es/UNSAFE_MenuButton.js +24 -24
  939. package/es/UNSAFE_MessageBanner.js +22 -22
  940. package/es/UNSAFE_MessageToast.js +26 -26
  941. package/es/UNSAFE_MeterBar.js +16 -16
  942. package/es/UNSAFE_MeterCircle.js +17 -17
  943. package/es/UNSAFE_Modal.js +9 -9
  944. package/es/UNSAFE_NavigationList.js +45 -43
  945. package/es/UNSAFE_NavigationList.js.map +1 -1
  946. package/es/UNSAFE_NavigationListCommon.js +74 -73
  947. package/es/UNSAFE_NavigationListCommon.js.map +1 -1
  948. package/es/UNSAFE_NumberInputText.js +34 -34
  949. package/es/UNSAFE_OverflowTabBar.js +56 -54
  950. package/es/UNSAFE_OverflowTabBar.js.map +1 -1
  951. package/es/UNSAFE_PictoChart.js +17 -17
  952. package/es/UNSAFE_PieChart/__test__/PieChart.spec.js +22 -22
  953. package/es/UNSAFE_PieChart.js +22 -22
  954. package/es/UNSAFE_Popup.js +17 -17
  955. package/es/UNSAFE_ProgressBar.js +5 -5
  956. package/es/UNSAFE_ProgressButton.js +21 -21
  957. package/es/UNSAFE_ProgressButtonLabelLayout.js +10 -10
  958. package/es/UNSAFE_ProgressCircle.js +4 -4
  959. package/es/UNSAFE_RadioItem.js +27 -27
  960. package/es/UNSAFE_RadioSet.js +33 -32
  961. package/es/UNSAFE_RadioSet.js.map +1 -1
  962. package/es/UNSAFE_RatingGauge.js +17 -17
  963. package/es/UNSAFE_ReorderableTabBar.js +49 -38
  964. package/es/UNSAFE_ReorderableTabBar.js.map +1 -1
  965. package/es/UNSAFE_RichCheckboxSet.js +54 -56
  966. package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
  967. package/es/UNSAFE_RichRadioSet.js +34 -33
  968. package/es/UNSAFE_RichRadioSet.js.map +1 -1
  969. package/es/UNSAFE_RichSelectionItem.js +58 -196
  970. package/es/UNSAFE_RichSelectionItem.js.map +1 -1
  971. package/es/UNSAFE_ScatterChart.js +46 -46
  972. package/es/UNSAFE_SectionalLegend.js +26 -26
  973. package/es/UNSAFE_SelectMultiple.js +42 -42
  974. package/es/UNSAFE_SelectSingle.js +41 -41
  975. package/es/UNSAFE_SelectionCard.js +5 -5
  976. package/es/UNSAFE_Selector.js +15 -15
  977. package/es/UNSAFE_SelectorAll.js +19 -19
  978. package/es/UNSAFE_Sheet/__test__/Sheet.spec.js +18 -18
  979. package/es/UNSAFE_Sheet.js +12 -12
  980. package/es/UNSAFE_SplitMenuButton.js +24 -24
  981. package/es/UNSAFE_TabBar.js +56 -54
  982. package/es/UNSAFE_TabBar.js.map +1 -1
  983. package/es/UNSAFE_TabBarCommon.js +48 -46
  984. package/es/UNSAFE_TabBarCommon.js.map +1 -1
  985. package/es/UNSAFE_TabBarMixed.js +66 -64
  986. package/es/UNSAFE_TabBarMixed.js.map +1 -1
  987. package/es/UNSAFE_TableView.js +29 -29
  988. package/es/UNSAFE_TagCloud.js +27 -27
  989. package/es/UNSAFE_TextArea.js +35 -36
  990. package/es/UNSAFE_TextArea.js.map +1 -1
  991. package/es/UNSAFE_TextAreaAutosize.js +36 -36
  992. package/es/UNSAFE_TextField.js +8 -8
  993. package/es/UNSAFE_ToggleButton.js +6 -6
  994. package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +28 -28
  995. package/es/UNSAFE_Toolbar.js +4 -4
  996. package/es/UNSAFE_Train.js +16 -16
  997. package/es/UNSAFE_TruncatingBadge.js +16 -16
  998. package/es/UNSAFE_TruncatingText.js +16 -16
  999. package/es/UNSAFE_UserAssistance.js +30 -30
  1000. package/es/UNSAFE_View.js +7 -7
  1001. package/es/UNSAFE_VirtualizedListView.js +19 -19
  1002. package/es/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +8 -8
  1003. package/es/UNSAFE_VisProgressiveLoader.js +6 -6
  1004. package/es/UNSAFE_VisStatusMessage.js +6 -6
  1005. package/es/UNSAFE_WindowOverlay.js +4 -4
  1006. package/es/View-cf6dfd8e.js +167 -0
  1007. package/es/View-cf6dfd8e.js.map +1 -0
  1008. package/es/VisNoData-d6e475d8.js +32 -0
  1009. package/es/VisNoData-d6e475d8.js.map +1 -0
  1010. package/es/VisProgressiveLoader-36053d5a.js +51 -0
  1011. package/es/VisProgressiveLoader-36053d5a.js.map +1 -0
  1012. package/es/VisTabularDatatip-3497f5ff.js +24 -0
  1013. package/es/VisTabularDatatip-3497f5ff.js.map +1 -0
  1014. package/es/WindowOverlay-ca2baa48.js +110 -0
  1015. package/es/WindowOverlay-ca2baa48.js.map +1 -0
  1016. package/es/YearsGridView-2c978d9f.js +187 -0
  1017. package/es/YearsGridView-2c978d9f.js.map +1 -0
  1018. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  1019. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  1020. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  1021. package/es/hooks/PRIVATE_useChartContextMenu.js +21 -21
  1022. package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
  1023. package/es/hooks/PRIVATE_useChartEvents.js +20 -20
  1024. package/es/hooks/PRIVATE_useChartMarquee.js +25 -25
  1025. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  1026. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  1027. package/es/hooks/PRIVATE_useDatatip.js +12 -12
  1028. package/es/hooks/PRIVATE_useFloating.js +4 -4
  1029. package/es/hooks/PRIVATE_useReorderable.js +5 -5
  1030. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  1031. package/es/hooks/PRIVATE_useSelection.js +4 -4
  1032. package/es/hooks/PRIVATE_useTabBar.js +4 -4
  1033. package/es/hooks/PRIVATE_useTooltipOnTruncation.js +16 -16
  1034. package/es/hooks/PRIVATE_useVisContextMenu.js +21 -21
  1035. package/es/hooks/PRIVATE_useVisDragModeControls.js +24 -24
  1036. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  1037. package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  1038. package/es/hooks/PRIVATE_useVisSelection.js +15 -15
  1039. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  1040. package/es/hooks/UNSAFE_useCurrentBgColor.js +3 -3
  1041. package/es/hooks/UNSAFE_useDensity.js +3 -3
  1042. package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
  1043. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  1044. package/es/hooks/UNSAFE_usePressClick.js +1 -1
  1045. package/es/hooks/UNSAFE_useScale.js +3 -3
  1046. package/es/hooks/UNSAFE_useTestId.js +3 -3
  1047. package/es/hooks/UNSAFE_useTheme.js +3 -3
  1048. package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  1049. package/es/hooks/UNSAFE_useTooltip.js +16 -16
  1050. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  1051. package/es/hooks/UNSAFE_useUser.js +3 -3
  1052. package/es/index-3fdaba9a.js +11 -0
  1053. package/es/index-3fdaba9a.js.map +1 -0
  1054. package/es/listViewSelectionTests-d1f64e6f.js +3 -3
  1055. package/es/popupUtils-24a723a0.js +29 -0
  1056. package/es/popupUtils-24a723a0.js.map +1 -0
  1057. package/es/render-4d96f0d2.js +34 -0
  1058. package/es/render-4d96f0d2.js.map +1 -0
  1059. package/es/tabbableUtils-070beeed.js +79 -0
  1060. package/es/tabbableUtils-070beeed.js.map +1 -0
  1061. package/es/testData-e1df8616.js +256 -0
  1062. package/es/testData-e1df8616.js.map +1 -0
  1063. package/es/tooltipUtils-35655bd6.js +93 -0
  1064. package/es/tooltipUtils-35655bd6.js.map +1 -0
  1065. package/es/useCellNavigation-bdb3248d.js +121 -0
  1066. package/es/useCellNavigation-bdb3248d.js.map +1 -0
  1067. package/es/useChartContextMenu-61fe46b8.js +2 -2
  1068. package/es/useChartDatatip-b0d35cfe.js +165 -0
  1069. package/es/useChartDatatip-b0d35cfe.js.map +1 -0
  1070. package/es/useChartMarquee-7cd47205.js +293 -0
  1071. package/es/useChartMarquee-7cd47205.js.map +1 -0
  1072. package/es/useColorScheme-8e5e458d.js +19 -0
  1073. package/es/useColorScheme-8e5e458d.js.map +1 -0
  1074. package/es/useContextMenu-3c62d9eb.js +2 -2
  1075. package/es/useCssVars-608cb842.js +58 -0
  1076. package/es/useCssVars-608cb842.js.map +1 -0
  1077. package/es/useCurrentBgColor-ee671513.js +19 -0
  1078. package/es/useCurrentBgColor-ee671513.js.map +1 -0
  1079. package/es/useCurrentKey-b8e62707.js +81 -0
  1080. package/es/useCurrentKey-b8e62707.js.map +1 -0
  1081. package/es/useDatatip-daec4346.js +90 -0
  1082. package/es/useDatatip-daec4346.js.map +1 -0
  1083. package/es/useDensity-556ca8b2.js +19 -0
  1084. package/es/useDensity-556ca8b2.js.map +1 -0
  1085. package/es/useFloating-abfd69eb.js +1916 -0
  1086. package/es/useFloating-abfd69eb.js.map +1 -0
  1087. package/es/useKeyboardEvents-7202253d.js +78 -0
  1088. package/es/useKeyboardEvents-7202253d.js.map +1 -0
  1089. package/es/useLegendContextMenu-66d6eb7e.js +4 -4
  1090. package/es/useMeterDatatip-dcd2a05e.js +73 -0
  1091. package/es/useMeterDatatip-dcd2a05e.js.map +1 -0
  1092. package/es/useNavigationListItem-a28f2c34.js +81 -0
  1093. package/es/useNavigationListItem-a28f2c34.js.map +1 -0
  1094. package/es/useOutsideClick-817bf098.js +101 -0
  1095. package/es/useOutsideClick-817bf098.js.map +1 -0
  1096. package/es/usePopupAnimation-6e0781b5.js +85 -0
  1097. package/es/usePopupAnimation-6e0781b5.js.map +1 -0
  1098. package/es/usePrefixSuffix-0874343c.js +70 -0
  1099. package/es/usePrefixSuffix-0874343c.js.map +1 -0
  1100. package/es/usePressClick-945cc43b.js +39 -0
  1101. package/es/usePressClick-945cc43b.js.map +1 -0
  1102. package/es/useReorderableItem-99a9dbce.js +268 -0
  1103. package/es/useReorderableItem-99a9dbce.js.map +1 -0
  1104. package/es/useRovingTabIndexContainer-f7972085.js +98 -0
  1105. package/es/useRovingTabIndexContainer-f7972085.js.map +1 -0
  1106. package/es/useScale-1cdb639e.js +19 -0
  1107. package/es/useScale-1cdb639e.js.map +1 -0
  1108. package/es/useSelectCommon-896b594a.js +686 -0
  1109. package/es/useSelectCommon-896b594a.js.map +1 -0
  1110. package/es/useSelectDrill-5525e5a3.js +104 -0
  1111. package/es/useSelectDrill-5525e5a3.js.map +1 -0
  1112. package/es/useSelection-2d26ab04.js +239 -0
  1113. package/es/useSelection-2d26ab04.js.map +1 -0
  1114. package/es/useSelection-8be05a70.js +186 -0
  1115. package/es/useSelection-8be05a70.js.map +1 -0
  1116. package/es/useTabBar-cbac0c2e.js +1 -1
  1117. package/es/useTestId-474ac6ca.js +21 -0
  1118. package/es/useTestId-474ac6ca.js.map +1 -0
  1119. package/es/useTheme-5aa36f52.js +19 -0
  1120. package/es/useTheme-5aa36f52.js.map +1 -0
  1121. package/es/useThemeInterpolations-05e58770.js +57 -0
  1122. package/es/useThemeInterpolations-05e58770.js.map +1 -0
  1123. package/es/useTooltip-138c94ee.js +424 -0
  1124. package/es/useTooltip-138c94ee.js.map +1 -0
  1125. package/es/useTooltipOnTruncation-a97211b6.js +27 -0
  1126. package/es/useTooltipOnTruncation-a97211b6.js.map +1 -0
  1127. package/es/useTranslationBundle-2df40edf.js +29 -0
  1128. package/es/useTranslationBundle-2df40edf.js.map +1 -0
  1129. package/es/useUser-6b2e271a.js +19 -0
  1130. package/es/useUser-6b2e271a.js.map +1 -0
  1131. package/es/useVisDragModeControls-ed260d12.js +87 -0
  1132. package/es/useVisDragModeControls-ed260d12.js.map +1 -0
  1133. package/es/useVisEvents-d8652100.js +153 -0
  1134. package/es/useVisEvents-d8652100.js.map +1 -0
  1135. package/es/utils/PRIVATE_tooltipUtils.js +14 -14
  1136. package/es/utils/PRIVATE_visTestUtils.js +6 -6
  1137. package/es/utils/UNSAFE_popupUtils.js +8 -8
  1138. package/es/withDirectionIcon-fe0b69a7.js +14 -0
  1139. package/es/withDirectionIcon-fe0b69a7.js.map +1 -0
  1140. package/es/withThemeProps-1621f692.js +2 -2
  1141. package/package.json +2 -2
  1142. package/types/UNSAFE_DatePicker/useCellNavigation.d.ts +0 -1
  1143. package/types/UNSAFE_Link/themes/LinkStyles.css.d.ts +2 -1
  1144. package/types/UNSAFE_Link/themes/redwood/LinkVariants.css.d.ts +2 -1
  1145. package/types/UNSAFE_Link/themes/stable/LinkVariants.css.d.ts +2 -1
  1146. package/types/hooks/UNSAFE_usePressClick/usePressClick.d.ts +1 -0
  1147. package/amd/BarChart-1be56919.js +0 -2
  1148. package/amd/BarChart-1be56919.js.map +0 -1
  1149. package/amd/BaseButton-771c5db8.js +0 -2
  1150. package/amd/BaseButton-771c5db8.js.map +0 -1
  1151. package/amd/BaseCardView-4f88499c.js +0 -2
  1152. package/amd/BaseCardView-4f88499c.js.map +0 -1
  1153. package/amd/BaseCardViewSelectionTest-adaca8ca.js +0 -2
  1154. package/amd/BaseCardViewSelectionTest-adaca8ca.js.map +0 -1
  1155. package/amd/BaseRichSelection-eb93f0e2.js +0 -2
  1156. package/amd/BaseRichSelection-eb93f0e2.js.map +0 -1
  1157. package/amd/Button-af88bb81.js +0 -2
  1158. package/amd/Button-af88bb81.js.map +0 -1
  1159. package/amd/ButtonSetButton-00612cdd.js +0 -2
  1160. package/amd/ButtonSetButton-00612cdd.js.map +0 -1
  1161. package/amd/ButtonSetIconButton-d0684966.js +0 -2
  1162. package/amd/ButtonSetIconButton-d0684966.js.map +0 -1
  1163. package/amd/ButtonSetItem-1d88a72d.js +0 -2
  1164. package/amd/ButtonSetItem-1d88a72d.js.map +0 -1
  1165. package/amd/CardFlexView-86cb369a.js +0 -2
  1166. package/amd/CardFlexView-86cb369a.js.map +0 -1
  1167. package/amd/CardGridView-b3f11290.js +0 -2
  1168. package/amd/CardGridView-b3f11290.js.map +0 -1
  1169. package/amd/Chart-0a3205dd.js +0 -2
  1170. package/amd/Chart-0a3205dd.js.map +0 -1
  1171. package/amd/Checkbox-3a25138e.js +0 -2
  1172. package/amd/Checkbox-3a25138e.js.map +0 -1
  1173. package/amd/CheckboxControl-232e227d.js +0 -2
  1174. package/amd/CheckboxControl-232e227d.js.map +0 -1
  1175. package/amd/CheckboxRadioField-9b73f66b.js +0 -2
  1176. package/amd/CheckboxRadioField-9b73f66b.js.map +0 -1
  1177. package/amd/CheckboxSetContext-2e486ea8.js +0 -2
  1178. package/amd/CheckboxSetContext-2e486ea8.js.map +0 -1
  1179. package/amd/ClearIcon-f1befe37.js +0 -2
  1180. package/amd/ClearIcon-f1befe37.js.map +0 -1
  1181. package/amd/ComboChart-5dba7db4.js +0 -2
  1182. package/amd/ComboChart-5dba7db4.js.map +0 -1
  1183. package/amd/CompactUserAssistance-f962b357.js +0 -2
  1184. package/amd/CompactUserAssistance-f962b357.js.map +0 -1
  1185. package/amd/ComponentMessageContainer-13e53260.js +0 -2
  1186. package/amd/ComponentMessageContainer-13e53260.js.map +0 -1
  1187. package/amd/ConveyorBeltItem-1dfb412e.js +0 -2
  1188. package/amd/ConveyorBeltItem-1dfb412e.js.map +0 -1
  1189. package/amd/DatePicker-b907fb97.js +0 -2
  1190. package/amd/DatePicker-b907fb97.js.map +0 -1
  1191. package/amd/DatePickerHeader-d95959a6.js +0 -2
  1192. package/amd/DatePickerHeader-d95959a6.js.map +0 -1
  1193. package/amd/Diagram-92f409e0.js +0 -2
  1194. package/amd/Diagram-92f409e0.js.map +0 -1
  1195. package/amd/Dialog-b9dd8533.js +0 -2
  1196. package/amd/Dialog-b9dd8533.js.map +0 -1
  1197. package/amd/EmbeddedIconButton-8635fed8.js +0 -2
  1198. package/amd/EmbeddedIconButton-8635fed8.js.map +0 -1
  1199. package/amd/ExpandableList-c372fe68.js +0 -2
  1200. package/amd/ExpandableList-c372fe68.js.map +0 -1
  1201. package/amd/Gantt-f6a53a90.js +0 -2
  1202. package/amd/Gantt-f6a53a90.js.map +0 -1
  1203. package/amd/IconButton-05c6b793.js +0 -2
  1204. package/amd/IconButton-05c6b793.js.map +0 -1
  1205. package/amd/IconMenuButton-82a7258c.js +0 -2
  1206. package/amd/IconMenuButton-82a7258c.js.map +0 -1
  1207. package/amd/IconProgressButton-3bff5384.js +0 -2
  1208. package/amd/IconProgressButton-3bff5384.js.map +0 -1
  1209. package/amd/IconSwitchButton-faf2b405.js +0 -2
  1210. package/amd/IconSwitchButton-faf2b405.js.map +0 -1
  1211. package/amd/IconToggleButton-d5112634.js +0 -2
  1212. package/amd/IconToggleButton-d5112634.js.map +0 -1
  1213. package/amd/Indexer-510aaf3a.js +0 -2
  1214. package/amd/Indexer-510aaf3a.js.map +0 -1
  1215. package/amd/InlineUserAssistance-3d3e72a9.js +0 -2
  1216. package/amd/InlineUserAssistance-3d3e72a9.js.map +0 -1
  1217. package/amd/InputDateMask-55fcbf50.js +0 -2
  1218. package/amd/InputDateMask-55fcbf50.js.map +0 -1
  1219. package/amd/InputDatePicker-ecd4a7ce.js +0 -2
  1220. package/amd/InputDatePicker-ecd4a7ce.js.map +0 -1
  1221. package/amd/InputPassword-61090b77.js +0 -2
  1222. package/amd/InputPassword-61090b77.js.map +0 -1
  1223. package/amd/InputText-32954a14.js +0 -2
  1224. package/amd/InputText-32954a14.js.map +0 -1
  1225. package/amd/Label-7cbbe3b7.js +0 -2
  1226. package/amd/Label-7cbbe3b7.js.map +0 -1
  1227. package/amd/LineAreaChart-190b3d46.js +0 -2
  1228. package/amd/LineAreaChart-190b3d46.js.map +0 -1
  1229. package/amd/Link-2dae4de2.js +0 -2
  1230. package/amd/Link-2dae4de2.js.map +0 -1
  1231. package/amd/List-37e37948.js +0 -2
  1232. package/amd/List-37e37948.js.map +0 -1
  1233. package/amd/ListView-325e1814.js +0 -2
  1234. package/amd/ListView-325e1814.js.map +0 -1
  1235. package/amd/LoadMoreCollection-83413a59.js +0 -2
  1236. package/amd/LoadMoreCollection-83413a59.js.map +0 -1
  1237. package/amd/MenuButton-233a631a.js +0 -2
  1238. package/amd/MenuButton-233a631a.js.map +0 -1
  1239. package/amd/Message-40182dfc.js +0 -2
  1240. package/amd/Message-40182dfc.js.map +0 -1
  1241. package/amd/MessageToast-236687bd.js +0 -2
  1242. package/amd/MessageToast-236687bd.js.map +0 -1
  1243. package/amd/MonthView-c8a6ab15.js +0 -2
  1244. package/amd/MonthView-c8a6ab15.js.map +0 -1
  1245. package/amd/NumberInputText-91b73dcb.js +0 -2
  1246. package/amd/NumberInputText-91b73dcb.js.map +0 -1
  1247. package/amd/OverflowTabBar-ef21bcd3.js +0 -2
  1248. package/amd/OverflowTabBar-ef21bcd3.js.map +0 -1
  1249. package/amd/OverflowTabBarItem-db77f3d3.js +0 -2
  1250. package/amd/OverflowTabBarItem-db77f3d3.js.map +0 -1
  1251. package/amd/PictoChart-d5bedf82.js +0 -2
  1252. package/amd/PictoChart-d5bedf82.js.map +0 -1
  1253. package/amd/ProgressButton-e30c909b.js +0 -2
  1254. package/amd/ProgressButton-e30c909b.js.map +0 -1
  1255. package/amd/RadioItem-7ebada33.js +0 -2
  1256. package/amd/RadioItem-7ebada33.js.map +0 -1
  1257. package/amd/RadioSet-5e4b6669.js +0 -2
  1258. package/amd/RadioSet-5e4b6669.js.map +0 -1
  1259. package/amd/RemovableNavigationListItem-9950c473.js +0 -2
  1260. package/amd/RemovableNavigationListItem-9950c473.js.map +0 -1
  1261. package/amd/RemovableTabBarItem-fcada993.js +0 -2
  1262. package/amd/RemovableTabBarItem-fcada993.js.map +0 -1
  1263. package/amd/RevealToggleIcon-411d7a73.js +0 -2
  1264. package/amd/RevealToggleIcon-411d7a73.js.map +0 -1
  1265. package/amd/ScatterChart-3f6024a2.js +0 -2
  1266. package/amd/ScatterChart-3f6024a2.js.map +0 -1
  1267. package/amd/SelectMultiple-d3196bcd.js +0 -2
  1268. package/amd/SelectMultiple-d3196bcd.js.map +0 -1
  1269. package/amd/SelectSingle-007ab01c.js +0 -2
  1270. package/amd/SelectSingle-007ab01c.js.map +0 -1
  1271. package/amd/SplitMenuButton-65acf4d4.js +0 -2
  1272. package/amd/SplitMenuButton-65acf4d4.js.map +0 -1
  1273. package/amd/Table-52c72d48.js +0 -2
  1274. package/amd/Table-52c72d48.js.map +0 -1
  1275. package/amd/TableView-dc0766a7.js +0 -2
  1276. package/amd/TableView-dc0766a7.js.map +0 -1
  1277. package/amd/TagCloud-6afc73f7.js +0 -2
  1278. package/amd/TagCloud-6afc73f7.js.map +0 -1
  1279. package/amd/TextArea-f6b13c73.js +0 -2
  1280. package/amd/TextArea-f6b13c73.js.map +0 -1
  1281. package/amd/TextAreaAutosize-af350c32.js +0 -2
  1282. package/amd/TextAreaAutosize-af350c32.js.map +0 -1
  1283. package/amd/TimeComponentCanvas2D-27e55de9.js +0 -2
  1284. package/amd/TimeComponentCanvas2D-27e55de9.js.map +0 -1
  1285. package/amd/ToggleButton-a999647d.js +0 -2
  1286. package/amd/ToggleButton-a999647d.js.map +0 -1
  1287. package/amd/VirtualizedCollection-897516a5.js +0 -2
  1288. package/amd/VirtualizedCollection-897516a5.js.map +0 -1
  1289. package/amd/VirtualizedListView-0b9e1c53.js +0 -2
  1290. package/amd/VirtualizedListView-0b9e1c53.js.map +0 -1
  1291. package/amd/YearsGridView-c09d1d19.js +0 -2
  1292. package/amd/YearsGridView-c09d1d19.js.map +0 -1
  1293. package/amd/useCellNavigation-47060bc3.js +0 -2
  1294. package/amd/useCellNavigation-47060bc3.js.map +0 -1
  1295. package/amd/useChartMarquee-8ce16d57.js +0 -2
  1296. package/amd/useChartMarquee-8ce16d57.js.map +0 -1
  1297. package/amd/usePressClick-b7b38da2.js +0 -2
  1298. package/amd/usePressClick-b7b38da2.js.map +0 -1
  1299. package/amd/useSelectCommon-fd0e7664.js +0 -2
  1300. package/amd/useSelectCommon-fd0e7664.js.map +0 -1
  1301. package/amd/useSelectDrill-332195a7.js +0 -2
  1302. package/amd/useSelectDrill-332195a7.js.map +0 -1
  1303. package/amd/useSelection-04d131fa.js +0 -2
  1304. package/amd/useSelection-04d131fa.js.map +0 -1
  1305. package/amd/useVisDragModeControls-69001c64.js +0 -2
  1306. package/amd/useVisDragModeControls-69001c64.js.map +0 -1
  1307. package/cjs/BarChart-fae84003.js +0 -181
  1308. package/cjs/BarChart-fae84003.js.map +0 -1
  1309. package/cjs/BaseButton-97ec7696.js +0 -174
  1310. package/cjs/BaseButton-97ec7696.js.map +0 -1
  1311. package/cjs/BaseCardView-0be36db0.js +0 -687
  1312. package/cjs/BaseCardView-0be36db0.js.map +0 -1
  1313. package/cjs/BaseCardViewSelectionTest-d91b3015.js +0 -734
  1314. package/cjs/BaseCardViewSelectionTest-d91b3015.js.map +0 -1
  1315. package/cjs/BaseRichSelection-e2a38380.js +0 -344
  1316. package/cjs/BaseRichSelection-e2a38380.js.map +0 -1
  1317. package/cjs/Button-371573d5.js +0 -24
  1318. package/cjs/Button-371573d5.js.map +0 -1
  1319. package/cjs/ButtonSetButton-c6621073.js +0 -35
  1320. package/cjs/ButtonSetButton-c6621073.js.map +0 -1
  1321. package/cjs/ButtonSetIconButton-8645f3a5.js +0 -42
  1322. package/cjs/ButtonSetIconButton-8645f3a5.js.map +0 -1
  1323. package/cjs/ButtonSetItem-aa4211b4.js +0 -67
  1324. package/cjs/ButtonSetItem-aa4211b4.js.map +0 -1
  1325. package/cjs/CardFlexView-2547fc13.js +0 -29
  1326. package/cjs/CardFlexView-2547fc13.js.map +0 -1
  1327. package/cjs/CardGridView-c355e9d4.js +0 -17
  1328. package/cjs/CardGridView-c355e9d4.js.map +0 -1
  1329. package/cjs/Chart-b79289a8.js +0 -493
  1330. package/cjs/Chart-b79289a8.js.map +0 -1
  1331. package/cjs/Checkbox-5bfd221f.js +0 -106
  1332. package/cjs/Checkbox-5bfd221f.js.map +0 -1
  1333. package/cjs/CheckboxControl-3be46530.js +0 -111
  1334. package/cjs/CheckboxControl-3be46530.js.map +0 -1
  1335. package/cjs/CheckboxRadioField-037cddb9.js +0 -185
  1336. package/cjs/CheckboxRadioField-037cddb9.js.map +0 -1
  1337. package/cjs/ClearIcon-02e093be.js +0 -23
  1338. package/cjs/ClearIcon-02e093be.js.map +0 -1
  1339. package/cjs/ComboChart-e17d5863.js +0 -174
  1340. package/cjs/ComboChart-e17d5863.js.map +0 -1
  1341. package/cjs/CompactUserAssistance-b3c3929e.js +0 -49
  1342. package/cjs/CompactUserAssistance-b3c3929e.js.map +0 -1
  1343. package/cjs/ComponentMessageContainer-1cea67f6.js +0 -71
  1344. package/cjs/ComponentMessageContainer-1cea67f6.js.map +0 -1
  1345. package/cjs/ConveyorBeltItem-2577c86d.js +0 -641
  1346. package/cjs/ConveyorBeltItem-2577c86d.js.map +0 -1
  1347. package/cjs/DatePicker-c770df48.js +0 -566
  1348. package/cjs/DatePicker-c770df48.js.map +0 -1
  1349. package/cjs/DatePickerHeader-da8173f7.js +0 -46
  1350. package/cjs/DatePickerHeader-da8173f7.js.map +0 -1
  1351. package/cjs/Diagram-c4064fd7.js +0 -2037
  1352. package/cjs/Diagram-c4064fd7.js.map +0 -1
  1353. package/cjs/Dialog-c6c8024c.js +0 -346
  1354. package/cjs/Dialog-c6c8024c.js.map +0 -1
  1355. package/cjs/EmbeddedIconButton-89616e5f.js +0 -13
  1356. package/cjs/EmbeddedIconButton-89616e5f.js.map +0 -1
  1357. package/cjs/ExpandableList-d1823448.js +0 -169
  1358. package/cjs/ExpandableList-d1823448.js.map +0 -1
  1359. package/cjs/Gantt-674a89f8.js +0 -3819
  1360. package/cjs/Gantt-674a89f8.js.map +0 -1
  1361. package/cjs/IconButton-e7a68b4b.js +0 -39
  1362. package/cjs/IconButton-e7a68b4b.js.map +0 -1
  1363. package/cjs/IconMenuButton-3e540f38.js +0 -58
  1364. package/cjs/IconMenuButton-3e540f38.js.map +0 -1
  1365. package/cjs/IconProgressButton-3aa70c31.js +0 -49
  1366. package/cjs/IconProgressButton-3aa70c31.js.map +0 -1
  1367. package/cjs/IconSwitchButton-6bab813f.js +0 -46
  1368. package/cjs/IconSwitchButton-6bab813f.js.map +0 -1
  1369. package/cjs/IconToggleButton-7ec8c084.js +0 -45
  1370. package/cjs/IconToggleButton-7ec8c084.js.map +0 -1
  1371. package/cjs/Indexer-099ecbad.js +0 -339
  1372. package/cjs/Indexer-099ecbad.js.map +0 -1
  1373. package/cjs/InlineUserAssistance-5d6bac7a.js +0 -85
  1374. package/cjs/InlineUserAssistance-5d6bac7a.js.map +0 -1
  1375. package/cjs/InputDateMask-946f6dfa.js +0 -1060
  1376. package/cjs/InputDateMask-946f6dfa.js.map +0 -1
  1377. package/cjs/InputDatePicker-3dace90c.js +0 -309
  1378. package/cjs/InputDatePicker-3dace90c.js.map +0 -1
  1379. package/cjs/InputPassword-564260d2.js +0 -157
  1380. package/cjs/InputPassword-564260d2.js.map +0 -1
  1381. package/cjs/InputText-a9d46813.js +0 -199
  1382. package/cjs/InputText-a9d46813.js.map +0 -1
  1383. package/cjs/Label-2e05c87f.js +0 -85
  1384. package/cjs/Label-2e05c87f.js.map +0 -1
  1385. package/cjs/LineAreaChart-523ae108.js +0 -172
  1386. package/cjs/LineAreaChart-523ae108.js.map +0 -1
  1387. package/cjs/Link-a829e7f1.js +0 -35
  1388. package/cjs/Link-a829e7f1.js.map +0 -1
  1389. package/cjs/List-24abb3df.js +0 -722
  1390. package/cjs/List-24abb3df.js.map +0 -1
  1391. package/cjs/ListView-7e894199.js +0 -430
  1392. package/cjs/ListView-7e894199.js.map +0 -1
  1393. package/cjs/LoadMoreCollection-69bc038c.js +0 -34
  1394. package/cjs/LoadMoreCollection-69bc038c.js.map +0 -1
  1395. package/cjs/MenuButton-b811e5e4.js +0 -63
  1396. package/cjs/MenuButton-b811e5e4.js.map +0 -1
  1397. package/cjs/Message-d1d5538e.js +0 -208
  1398. package/cjs/Message-d1d5538e.js.map +0 -1
  1399. package/cjs/MessageToast-9154f05f.js +0 -243
  1400. package/cjs/MessageToast-9154f05f.js.map +0 -1
  1401. package/cjs/MonthView-35623a0e.js +0 -210
  1402. package/cjs/MonthView-35623a0e.js.map +0 -1
  1403. package/cjs/NavigationListItem-9b3d3258.js +0 -153
  1404. package/cjs/NavigationListItem-9b3d3258.js.map +0 -1
  1405. package/cjs/NumberInputText-6032717d.js +0 -223
  1406. package/cjs/NumberInputText-6032717d.js.map +0 -1
  1407. package/cjs/OverflowTabBar-794b4c93.js +0 -71
  1408. package/cjs/OverflowTabBar-794b4c93.js.map +0 -1
  1409. package/cjs/OverflowTabBarItem-43956479.js +0 -88
  1410. package/cjs/OverflowTabBarItem-43956479.js.map +0 -1
  1411. package/cjs/PictoChart-b650c050.js +0 -747
  1412. package/cjs/PictoChart-b650c050.js.map +0 -1
  1413. package/cjs/ProgressButton-1a01d49b.js +0 -58
  1414. package/cjs/ProgressButton-1a01d49b.js.map +0 -1
  1415. package/cjs/RadioItem-68304596.js +0 -115
  1416. package/cjs/RadioItem-68304596.js.map +0 -1
  1417. package/cjs/RadioSet-a16f664b.js +0 -45
  1418. package/cjs/RadioSet-a16f664b.js.map +0 -1
  1419. package/cjs/RemovableNavigationListItem-b13b3516.js +0 -26
  1420. package/cjs/RemovableNavigationListItem-b13b3516.js.map +0 -1
  1421. package/cjs/RemovableTabBarItem-e71b7be3.js +0 -38
  1422. package/cjs/RemovableTabBarItem-e71b7be3.js.map +0 -1
  1423. package/cjs/RevealToggleIcon-06b0b035.js +0 -28
  1424. package/cjs/RevealToggleIcon-06b0b035.js.map +0 -1
  1425. package/cjs/ScatterChart-bd2e0ebb.js +0 -105
  1426. package/cjs/ScatterChart-bd2e0ebb.js.map +0 -1
  1427. package/cjs/SelectMultiple-0d809f25.js +0 -1299
  1428. package/cjs/SelectMultiple-0d809f25.js.map +0 -1
  1429. package/cjs/SelectSingle-f5dd375a.js +0 -732
  1430. package/cjs/SelectSingle-f5dd375a.js.map +0 -1
  1431. package/cjs/SplitMenuButton-e7fd9b79.js +0 -141
  1432. package/cjs/SplitMenuButton-e7fd9b79.js.map +0 -1
  1433. package/cjs/Table-65e94df9.js +0 -5499
  1434. package/cjs/Table-65e94df9.js.map +0 -1
  1435. package/cjs/TableView-dfc37f9f.js +0 -33
  1436. package/cjs/TableView-dfc37f9f.js.map +0 -1
  1437. package/cjs/TagCloud-0aee2c72.js +0 -826
  1438. package/cjs/TagCloud-0aee2c72.js.map +0 -1
  1439. package/cjs/TextArea-a11875f3.js +0 -162
  1440. package/cjs/TextArea-a11875f3.js.map +0 -1
  1441. package/cjs/TextAreaAutosize-5a8e8335.js +0 -246
  1442. package/cjs/TextAreaAutosize-5a8e8335.js.map +0 -1
  1443. package/cjs/TimeComponentCanvas2D-e6be22d4.js +0 -591
  1444. package/cjs/TimeComponentCanvas2D-e6be22d4.js.map +0 -1
  1445. package/cjs/ToggleButton-8ac0ff29.js +0 -30
  1446. package/cjs/ToggleButton-8ac0ff29.js.map +0 -1
  1447. package/cjs/VirtualizedCollection-9e8c48b9.js +0 -180
  1448. package/cjs/VirtualizedCollection-9e8c48b9.js.map +0 -1
  1449. package/cjs/VirtualizedListView-0a4f07ca.js +0 -16
  1450. package/cjs/VirtualizedListView-0a4f07ca.js.map +0 -1
  1451. package/cjs/YearsGridView-83c7e684.js +0 -190
  1452. package/cjs/YearsGridView-83c7e684.js.map +0 -1
  1453. package/cjs/useCellNavigation-7a24d0c0.js +0 -129
  1454. package/cjs/useCellNavigation-7a24d0c0.js.map +0 -1
  1455. package/cjs/useChartMarquee-7c09d6ef.js +0 -295
  1456. package/cjs/useChartMarquee-7c09d6ef.js.map +0 -1
  1457. package/cjs/usePressClick-421494df.js +0 -33
  1458. package/cjs/usePressClick-421494df.js.map +0 -1
  1459. package/cjs/useSelectCommon-d593ef26.js +0 -709
  1460. package/cjs/useSelectCommon-d593ef26.js.map +0 -1
  1461. package/cjs/useSelectDrill-ddca7003.js +0 -107
  1462. package/cjs/useSelectDrill-ddca7003.js.map +0 -1
  1463. package/cjs/useSelection-810ecdc6.js +0 -188
  1464. package/cjs/useSelection-810ecdc6.js.map +0 -1
  1465. package/cjs/useVisDragModeControls-388926ea.js +0 -89
  1466. package/cjs/useVisDragModeControls-388926ea.js.map +0 -1
  1467. package/es/BarChart-bbc688ef.js +0 -179
  1468. package/es/BarChart-bbc688ef.js.map +0 -1
  1469. package/es/BaseButton-a0534b4d.js +0 -172
  1470. package/es/BaseButton-a0534b4d.js.map +0 -1
  1471. package/es/BaseCardViewSelectionTest-2e5f019a.js +0 -721
  1472. package/es/BaseCardViewSelectionTest-2e5f019a.js.map +0 -1
  1473. package/es/BaseNavigationListItem-af84a9ee.js +0 -119
  1474. package/es/BaseNavigationListItem-af84a9ee.js.map +0 -1
  1475. package/es/BaseRichSelection-9f2f2b59.js +0 -342
  1476. package/es/BaseRichSelection-9f2f2b59.js.map +0 -1
  1477. package/es/Button-f55c264d.js +0 -22
  1478. package/es/Button-f55c264d.js.map +0 -1
  1479. package/es/ButtonSetButton-226c9e73.js +0 -33
  1480. package/es/ButtonSetButton-226c9e73.js.map +0 -1
  1481. package/es/ButtonSetIconButton-2a046c9c.js +0 -40
  1482. package/es/ButtonSetIconButton-2a046c9c.js.map +0 -1
  1483. package/es/ButtonSetItem-43ef9553.js +0 -65
  1484. package/es/ButtonSetItem-43ef9553.js.map +0 -1
  1485. package/es/Card-f3b7c723.js +0 -15
  1486. package/es/Card-f3b7c723.js.map +0 -1
  1487. package/es/Center-76b761ea.js +0 -16
  1488. package/es/Center-76b761ea.js.map +0 -1
  1489. package/es/Chart-6291ad48.js +0 -491
  1490. package/es/Chart-6291ad48.js.map +0 -1
  1491. package/es/Checkbox-34816a7d.js +0 -104
  1492. package/es/Checkbox-34816a7d.js.map +0 -1
  1493. package/es/CheckboxControl-a9d4d9d5.js +0 -109
  1494. package/es/CheckboxControl-a9d4d9d5.js.map +0 -1
  1495. package/es/CheckboxRadioField-922ab9ff.js +0 -183
  1496. package/es/CheckboxRadioField-922ab9ff.js.map +0 -1
  1497. package/es/CheckboxSet-28953b25.js +0 -49
  1498. package/es/CheckboxSet-28953b25.js.map +0 -1
  1499. package/es/ClearIcon-29781882.js +0 -21
  1500. package/es/ClearIcon-29781882.js.map +0 -1
  1501. package/es/ComboChart-4738f936.js +0 -172
  1502. package/es/ComboChart-4738f936.js.map +0 -1
  1503. package/es/CompactLabelAssistance-fd3fb481.js +0 -34
  1504. package/es/CompactLabelAssistance-fd3fb481.js.map +0 -1
  1505. package/es/CompactUserAssistance-bd24e31a.js +0 -47
  1506. package/es/CompactUserAssistance-bd24e31a.js.map +0 -1
  1507. package/es/ComponentMessageContainer-6c106a09.js +0 -68
  1508. package/es/ComponentMessageContainer-6c106a09.js.map +0 -1
  1509. package/es/ConveyorBeltItem-ce67a451.js +0 -638
  1510. package/es/ConveyorBeltItem-ce67a451.js.map +0 -1
  1511. package/es/DatePicker-e7f2ef3c.js +0 -564
  1512. package/es/DatePicker-e7f2ef3c.js.map +0 -1
  1513. package/es/DatePickerHeader-9c0d4332.js +0 -44
  1514. package/es/DatePickerHeader-9c0d4332.js.map +0 -1
  1515. package/es/Diagram-b1f6a590.js +0 -2035
  1516. package/es/Diagram-b1f6a590.js.map +0 -1
  1517. package/es/Dialog-0ca362cc.js +0 -344
  1518. package/es/Dialog-0ca362cc.js.map +0 -1
  1519. package/es/DragHandle-99d4c921.js +0 -22
  1520. package/es/DragHandle-99d4c921.js.map +0 -1
  1521. package/es/DrawerPopup-9cdb203a.js +0 -381
  1522. package/es/DrawerPopup-9cdb203a.js.map +0 -1
  1523. package/es/Dropdown-60833900.js +0 -80
  1524. package/es/Dropdown-60833900.js.map +0 -1
  1525. package/es/EmbeddedIconButton-0c3562a1.js +0 -11
  1526. package/es/EmbeddedIconButton-0c3562a1.js.map +0 -1
  1527. package/es/EnvironmentProvider-bada8909.js +0 -58
  1528. package/es/EnvironmentProvider-bada8909.js.map +0 -1
  1529. package/es/ExpandableList-cbf9ae2c.js +0 -167
  1530. package/es/ExpandableList-cbf9ae2c.js.map +0 -1
  1531. package/es/Flex-ce31b351.js +0 -30
  1532. package/es/Flex-ce31b351.js.map +0 -1
  1533. package/es/Floating-f02677ba.js +0 -462
  1534. package/es/Floating-f02677ba.js.map +0 -1
  1535. package/es/Gantt-5a395647.js +0 -3817
  1536. package/es/Gantt-5a395647.js.map +0 -1
  1537. package/es/Grid-421eb560.js +0 -27
  1538. package/es/Grid-421eb560.js.map +0 -1
  1539. package/es/Gridlines-6098cb5b.js +0 -168
  1540. package/es/Gridlines-6098cb5b.js.map +0 -1
  1541. package/es/HighlightText-86d92552.js +0 -31
  1542. package/es/HighlightText-86d92552.js.map +0 -1
  1543. package/es/IconButton-f3f7af21.js +0 -37
  1544. package/es/IconButton-f3f7af21.js.map +0 -1
  1545. package/es/IconMenuButton-48909b85.js +0 -56
  1546. package/es/IconMenuButton-48909b85.js.map +0 -1
  1547. package/es/IconProgressButton-1c4d65c3.js +0 -47
  1548. package/es/IconProgressButton-1c4d65c3.js.map +0 -1
  1549. package/es/IconSwitchButton-5db4ae26.js +0 -44
  1550. package/es/IconSwitchButton-5db4ae26.js.map +0 -1
  1551. package/es/IconToggleButton-be6c0ba1.js +0 -43
  1552. package/es/IconToggleButton-be6c0ba1.js.map +0 -1
  1553. package/es/IconUserAssistance-92be9618.js +0 -73
  1554. package/es/IconUserAssistance-92be9618.js.map +0 -1
  1555. package/es/InlineUserAssistance-2677a1eb.js +0 -81
  1556. package/es/InlineUserAssistance-2677a1eb.js.map +0 -1
  1557. package/es/InputDateMask-76493bee.js +0 -1056
  1558. package/es/InputDateMask-76493bee.js.map +0 -1
  1559. package/es/InputDatePicker-836ee6f7.js +0 -307
  1560. package/es/InputDatePicker-836ee6f7.js.map +0 -1
  1561. package/es/InputPassword-fa63ac17.js +0 -155
  1562. package/es/InputPassword-fa63ac17.js.map +0 -1
  1563. package/es/InputText-ce2272a8.js +0 -197
  1564. package/es/InputText-ce2272a8.js.map +0 -1
  1565. package/es/Label-56ca049f.js +0 -83
  1566. package/es/Label-56ca049f.js.map +0 -1
  1567. package/es/Layer-446bf21e.js +0 -91
  1568. package/es/Layer-446bf21e.js.map +0 -1
  1569. package/es/LayerHost-e6402730.js +0 -41
  1570. package/es/LayerHost-e6402730.js.map +0 -1
  1571. package/es/LayerManager-fa745cec.js +0 -34
  1572. package/es/LayerManager-fa745cec.js.map +0 -1
  1573. package/es/LineAreaChart-d3586935.js +0 -170
  1574. package/es/LineAreaChart-d3586935.js.map +0 -1
  1575. package/es/LineSeries-fc167ea2.js +0 -109
  1576. package/es/LineSeries-fc167ea2.js.map +0 -1
  1577. package/es/Link-98742013.js +0 -33
  1578. package/es/Link-98742013.js.map +0 -1
  1579. package/es/ListItemLayout-e9854821.js +0 -110
  1580. package/es/ListItemLayout-e9854821.js.map +0 -1
  1581. package/es/LiveRegion-b56a1aa2.js +0 -39
  1582. package/es/LiveRegion-b56a1aa2.js.map +0 -1
  1583. package/es/MaxLengthCounter-181b4fc9.js +0 -25
  1584. package/es/MaxLengthCounter-181b4fc9.js.map +0 -1
  1585. package/es/MaxLengthLiveRegion-2f3d34cf.js +0 -23
  1586. package/es/MaxLengthLiveRegion-2f3d34cf.js.map +0 -1
  1587. package/es/MenuButton-c00e269e.js +0 -61
  1588. package/es/MenuButton-c00e269e.js.map +0 -1
  1589. package/es/Message-b9e16c1c.js +0 -203
  1590. package/es/Message-b9e16c1c.js.map +0 -1
  1591. package/es/MessageLayer-7e3184aa.js +0 -58
  1592. package/es/MessageLayer-7e3184aa.js.map +0 -1
  1593. package/es/MessageToast-f9b0a234.js +0 -241
  1594. package/es/MessageToast-f9b0a234.js.map +0 -1
  1595. package/es/Modal-24a0bf4b.js +0 -288
  1596. package/es/Modal-24a0bf4b.js.map +0 -1
  1597. package/es/MonthView-5e633194.js +0 -208
  1598. package/es/MonthView-5e633194.js.map +0 -1
  1599. package/es/NavigationListItem-37edc23b.js +0 -150
  1600. package/es/NavigationListItem-37edc23b.js.map +0 -1
  1601. package/es/NumberInputText-f5d01daa.js +0 -220
  1602. package/es/NumberInputText-f5d01daa.js.map +0 -1
  1603. package/es/OverflowTabBar-87b36877.js +0 -69
  1604. package/es/OverflowTabBar-87b36877.js.map +0 -1
  1605. package/es/OverflowTabBarItem-a2684d2b.js +0 -86
  1606. package/es/OverflowTabBarItem-a2684d2b.js.map +0 -1
  1607. package/es/PictoChart-5b71908b.js +0 -744
  1608. package/es/PictoChart-5b71908b.js.map +0 -1
  1609. package/es/Popup-d8bf7f4d.js +0 -258
  1610. package/es/Popup-d8bf7f4d.js.map +0 -1
  1611. package/es/ProgressBar-2fa99d6f.js +0 -62
  1612. package/es/ProgressBar-2fa99d6f.js.map +0 -1
  1613. package/es/ProgressButton-9390070e.js +0 -56
  1614. package/es/ProgressButton-9390070e.js.map +0 -1
  1615. package/es/ProgressCircle-faf79b79.js +0 -48
  1616. package/es/ProgressCircle-faf79b79.js.map +0 -1
  1617. package/es/RadioItem-96cbf0ed.js +0 -113
  1618. package/es/RadioItem-96cbf0ed.js.map +0 -1
  1619. package/es/RadioSet-c51b3d56.js +0 -43
  1620. package/es/RadioSet-c51b3d56.js.map +0 -1
  1621. package/es/RemovableNavigationListItem-517d59b0.js +0 -24
  1622. package/es/RemovableNavigationListItem-517d59b0.js.map +0 -1
  1623. package/es/RemovableTabBarItem-87ba87ca.js +0 -36
  1624. package/es/RemovableTabBarItem-87ba87ca.js.map +0 -1
  1625. package/es/ReorderableTabBar-fc76a33b.js +0 -77
  1626. package/es/ReorderableTabBar-fc76a33b.js.map +0 -1
  1627. package/es/RevealToggleIcon-35baaadf.js +0 -26
  1628. package/es/RevealToggleIcon-35baaadf.js.map +0 -1
  1629. package/es/ScatterChart-449ec029.js +0 -103
  1630. package/es/ScatterChart-449ec029.js.map +0 -1
  1631. package/es/SectionedContent-3274d8f9.js +0 -64
  1632. package/es/SectionedContent-3274d8f9.js.map +0 -1
  1633. package/es/SelectMultiple-50995ef7.js +0 -1297
  1634. package/es/SelectMultiple-50995ef7.js.map +0 -1
  1635. package/es/SelectSingle-dcf0e9b1.js +0 -730
  1636. package/es/SelectSingle-dcf0e9b1.js.map +0 -1
  1637. package/es/SelectionCard-1ed9cf08.js +0 -16
  1638. package/es/SelectionCard-1ed9cf08.js.map +0 -1
  1639. package/es/SelectorAll-f52550a6.js +0 -69
  1640. package/es/SelectorAll-f52550a6.js.map +0 -1
  1641. package/es/Sheet-da412baf.js +0 -158
  1642. package/es/Sheet-da412baf.js.map +0 -1
  1643. package/es/SplitMenuButton-f44064de.js +0 -139
  1644. package/es/SplitMenuButton-f44064de.js.map +0 -1
  1645. package/es/StyledCard-362bd74b.js +0 -105
  1646. package/es/StyledCard-362bd74b.js.map +0 -1
  1647. package/es/StyledLabelValueLayout-d4881d3b.js +0 -18
  1648. package/es/StyledLabelValueLayout-d4881d3b.js.map +0 -1
  1649. package/es/TabBar-2858ff9c.js +0 -77
  1650. package/es/TabBar-2858ff9c.js.map +0 -1
  1651. package/es/TabBarMixed-a4beabce.js +0 -78
  1652. package/es/TabBarMixed-a4beabce.js.map +0 -1
  1653. package/es/TabBarMixedSeparator-51c518a1.js +0 -19
  1654. package/es/TabBarMixedSeparator-51c518a1.js.map +0 -1
  1655. package/es/Table-9919625b.js +0 -5497
  1656. package/es/Table-9919625b.js.map +0 -1
  1657. package/es/TableView-c97ef8ee.js +0 -31
  1658. package/es/TableView-c97ef8ee.js.map +0 -1
  1659. package/es/TagCloud-3f81d651.js +0 -824
  1660. package/es/TagCloud-3f81d651.js.map +0 -1
  1661. package/es/TextArea-2eb362ec.js +0 -160
  1662. package/es/TextArea-2eb362ec.js.map +0 -1
  1663. package/es/TextAreaAutosize-35a923c3.js +0 -244
  1664. package/es/TextAreaAutosize-35a923c3.js.map +0 -1
  1665. package/es/TimeComponentCanvas2D-9fd1f811.js +0 -568
  1666. package/es/TimeComponentCanvas2D-9fd1f811.js.map +0 -1
  1667. package/es/ToggleButton-cf8226d9.js +0 -28
  1668. package/es/ToggleButton-cf8226d9.js.map +0 -1
  1669. package/es/View-afe98b65.js +0 -167
  1670. package/es/View-afe98b65.js.map +0 -1
  1671. package/es/VisNoData-9ceb58f4.js +0 -32
  1672. package/es/VisNoData-9ceb58f4.js.map +0 -1
  1673. package/es/VisProgressiveLoader-36c728ac.js +0 -51
  1674. package/es/VisProgressiveLoader-36c728ac.js.map +0 -1
  1675. package/es/VisTabularDatatip-59629377.js +0 -24
  1676. package/es/VisTabularDatatip-59629377.js.map +0 -1
  1677. package/es/WindowOverlay-a07b2e24.js +0 -110
  1678. package/es/WindowOverlay-a07b2e24.js.map +0 -1
  1679. package/es/YearsGridView-d859edba.js +0 -187
  1680. package/es/YearsGridView-d859edba.js.map +0 -1
  1681. package/es/index-e33bcd96.js +0 -11
  1682. package/es/index-e33bcd96.js.map +0 -1
  1683. package/es/popupUtils-58411a98.js +0 -29
  1684. package/es/popupUtils-58411a98.js.map +0 -1
  1685. package/es/render-343557e9.js +0 -34
  1686. package/es/render-343557e9.js.map +0 -1
  1687. package/es/tabbableUtils-d6485f5e.js +0 -79
  1688. package/es/tabbableUtils-d6485f5e.js.map +0 -1
  1689. package/es/testData-d5181e9f.js +0 -256
  1690. package/es/testData-d5181e9f.js.map +0 -1
  1691. package/es/tooltipUtils-768450a7.js +0 -93
  1692. package/es/tooltipUtils-768450a7.js.map +0 -1
  1693. package/es/useCellNavigation-88a1754f.js +0 -126
  1694. package/es/useCellNavigation-88a1754f.js.map +0 -1
  1695. package/es/useChartDatatip-d6a6c5e1.js +0 -165
  1696. package/es/useChartDatatip-d6a6c5e1.js.map +0 -1
  1697. package/es/useChartMarquee-6587dbec.js +0 -293
  1698. package/es/useChartMarquee-6587dbec.js.map +0 -1
  1699. package/es/useColorScheme-c4e237ad.js +0 -19
  1700. package/es/useColorScheme-c4e237ad.js.map +0 -1
  1701. package/es/useCssVars-d72a8439.js +0 -58
  1702. package/es/useCssVars-d72a8439.js.map +0 -1
  1703. package/es/useCurrentBgColor-14745af3.js +0 -19
  1704. package/es/useCurrentBgColor-14745af3.js.map +0 -1
  1705. package/es/useCurrentKey-7287061f.js +0 -81
  1706. package/es/useCurrentKey-7287061f.js.map +0 -1
  1707. package/es/useDatatip-9635bc2f.js +0 -90
  1708. package/es/useDatatip-9635bc2f.js.map +0 -1
  1709. package/es/useDensity-c17603b2.js +0 -19
  1710. package/es/useDensity-c17603b2.js.map +0 -1
  1711. package/es/useFloating-953362cf.js +0 -1916
  1712. package/es/useFloating-953362cf.js.map +0 -1
  1713. package/es/useKeyboardEvents-2378a650.js +0 -78
  1714. package/es/useKeyboardEvents-2378a650.js.map +0 -1
  1715. package/es/useMeterDatatip-834e67e1.js +0 -73
  1716. package/es/useMeterDatatip-834e67e1.js.map +0 -1
  1717. package/es/useOutsideClick-fd9ad806.js +0 -101
  1718. package/es/useOutsideClick-fd9ad806.js.map +0 -1
  1719. package/es/usePopupAnimation-f017bc43.js +0 -85
  1720. package/es/usePopupAnimation-f017bc43.js.map +0 -1
  1721. package/es/usePrefixSuffix-5a74f2c4.js +0 -70
  1722. package/es/usePrefixSuffix-5a74f2c4.js.map +0 -1
  1723. package/es/usePressClick-2ec8e098.js +0 -31
  1724. package/es/usePressClick-2ec8e098.js.map +0 -1
  1725. package/es/useReorderableItem-22ea4c46.js +0 -268
  1726. package/es/useReorderableItem-22ea4c46.js.map +0 -1
  1727. package/es/useRovingTabIndexContainer-bc7ae447.js +0 -98
  1728. package/es/useRovingTabIndexContainer-bc7ae447.js.map +0 -1
  1729. package/es/useScale-83881775.js +0 -19
  1730. package/es/useScale-83881775.js.map +0 -1
  1731. package/es/useSelectCommon-34645d9a.js +0 -686
  1732. package/es/useSelectCommon-34645d9a.js.map +0 -1
  1733. package/es/useSelectDrill-88337c1a.js +0 -104
  1734. package/es/useSelectDrill-88337c1a.js.map +0 -1
  1735. package/es/useSelection-01b28be6.js +0 -186
  1736. package/es/useSelection-01b28be6.js.map +0 -1
  1737. package/es/useSelection-649fd4f1.js +0 -239
  1738. package/es/useSelection-649fd4f1.js.map +0 -1
  1739. package/es/useTestId-9b504481.js +0 -21
  1740. package/es/useTestId-9b504481.js.map +0 -1
  1741. package/es/useTheme-93c07059.js +0 -19
  1742. package/es/useTheme-93c07059.js.map +0 -1
  1743. package/es/useThemeInterpolations-8dd8029f.js +0 -57
  1744. package/es/useThemeInterpolations-8dd8029f.js.map +0 -1
  1745. package/es/useTooltip-89ca3f3e.js +0 -424
  1746. package/es/useTooltip-89ca3f3e.js.map +0 -1
  1747. package/es/useTooltipOnTruncation-175bf8a6.js +0 -27
  1748. package/es/useTooltipOnTruncation-175bf8a6.js.map +0 -1
  1749. package/es/useTranslationBundle-09302c20.js +0 -29
  1750. package/es/useTranslationBundle-09302c20.js.map +0 -1
  1751. package/es/useUser-1cd223a9.js +0 -19
  1752. package/es/useUser-1cd223a9.js.map +0 -1
  1753. package/es/useVisDragModeControls-40fc83b5.js +0 -87
  1754. package/es/useVisDragModeControls-40fc83b5.js.map +0 -1
  1755. package/es/useVisEvents-8877743b.js +0 -153
  1756. package/es/useVisEvents-8877743b.js.map +0 -1
  1757. package/es/withDirectionIcon-19a1d777.js +0 -14
  1758. package/es/withDirectionIcon-19a1d777.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gantt-5a395647.js","sources":["../../src/UNSAFE_Gantt/GanttContainer.tsx","../../src/UNSAFE_Gantt/GanttWithRowAxisLayout.tsx","../../src/UNSAFE_Gantt/utils/rowAxisUtils.tsx","../../../../node_modules/flatqueue/index.js","../../../../node_modules/flatbush/index.js","../../src/UNSAFE_Gantt/utils/spatialUtils.ts","../../src/UNSAFE_Gantt/utils/dataLayoutUtils.ts","../../src/UNSAFE_Gantt/utils/ariaUtils.ts","../../src/UNSAFE_Gantt/GanttRowLabelContainer.tsx","../../src/UNSAFE_Gantt/hooks/useDatatip_FORK.tsx","../../src/UNSAFE_Gantt/hooks/useGanttRowLabelDatatip.ts","../../src/UNSAFE_Gantt/hooks/useGanttRowLabelPointerGestures.ts","../../src/UNSAFE_Gantt/GanttRowAxis.tsx","../../src/PRIVATE_TimeComponent/utils/panUtils.ts","../../src/PRIVATE_TimeComponent/hooks/useDragPan.ts","../../src/PRIVATE_TimeComponent/hooks/useWheelPan.ts","../../src/PRIVATE_TimeComponent/hooks/usePinchZoom.ts","../../src/PRIVATE_TimeComponent/hooks/useWheelZoom.ts","../../src/PRIVATE_TimeComponent/hooks/useKbZoom.ts","../../src/PRIVATE_TimeComponent/hooks/useKbPan.ts","../../src/UNSAFE_Gantt/utils/navigationUtils.ts","../../src/UNSAFE_Gantt/hooks/useGanttKbPan.ts","../../src/UNSAFE_Gantt/hooks/useGanttPanZoomGestures.ts","../../src/UNSAFE_Gantt/hooks/useGanttTaskPointerGestures.ts","../../src/UNSAFE_Gantt/utils/datatipUtils.tsx","../../src/UNSAFE_Gantt/hooks/useGanttTaskDatatip.ts","../../src/UNSAFE_Gantt/GanttTimeAxisDataBody.tsx","../../src/UNSAFE_Gantt/GanttHorizontalGridlinesLayer.tsx","../../src/UNSAFE_Gantt/GanttDesktopTaskAccContent.tsx","../../src/UNSAFE_Gantt/GanttMobileTaskAccContent.tsx","../../src/UNSAFE_Gantt/GanttTaskAccLayer.tsx","../../src/UNSAFE_Gantt/GanttRowBackgroundsLayer.tsx","../../src/UNSAFE_Gantt/utils/canvasDrawUtils.ts","../../src/UNSAFE_Gantt/GanttTaskFocusEffectsLayer.tsx","../../src/UNSAFE_Gantt/GanttTaskHoverEffectsLayer.tsx","../../src/UNSAFE_Gantt/GanttTaskSelectionEffectsLayer.tsx","../../src/UNSAFE_Gantt/GanttTaskEffectsLayer.tsx","../../src/UNSAFE_Gantt/GanttTaskLabel.tsx","../../src/UNSAFE_Gantt/GanttTaskLabelsLayer.tsx","../../src/UNSAFE_Gantt/GanttTasksLayer.tsx","../../src/UNSAFE_Gantt/GanttDataBody.tsx","../../src/UNSAFE_Gantt/GanttView.tsx","../../src/PRIVATE_TimeComponent/utils/timeAxisLayoutUtils.ts","../../src/PRIVATE_TimeComponent/utils/validationUtils.ts","../../src/PRIVATE_TimeComponent/utils/timeComponentStyleUtils.ts","../../src/UNSAFE_Gantt/utils/ganttStyleUtils.ts","../../src/UNSAFE_Gantt/utils/panZoomCanvasLayoutUtils.ts","../../src/UNSAFE_Gantt/utils/rowAxisLayoutUtils.ts","../../src/PRIVATE_TimeComponent/utils/scrollbarLayoutUtils.ts","../../src/UNSAFE_Gantt/hooks/useGanttLayout.tsx","../../src/PRIVATE_TimeComponent/hooks/useTimeComponentEvents.ts","../../src/PRIVATE_TimeComponent/utils/keyboardUtils.ts","../../src/PRIVATE_TimeComponent/hooks/useTimeComponentKeyboard.ts","../../src/UNSAFE_Gantt/hooks/useGanttTaskNavigation.ts","../../src/UNSAFE_Gantt/hooks/useGanttRowLabelNavigation.ts","../../src/UNSAFE_Gantt/hooks/useGanttKeyboard.ts","../../src/UNSAFE_Gantt/Gantt.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles as timeComponentStyles } from '#PRIVATE_TimeComponent/themes/TimeComponentStyles.css';\nimport { styles as ganttStyles } from './themes/GanttStyles.css';\nimport { HTMLAttributesSignalExcluded } from '#utils/UNSAFE_attributeUtils';\nimport { Size, sizeToCSS } from '#utils/UNSAFE_size';\nimport { type TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\n\ntype IntrinsicProps = HTMLAttributesSignalExcluded<HTMLDivElement>;\ntype Props = IntrinsicProps &\n TestIdProps & {\n innerRef: RefObject<HTMLDivElement>;\n width?: Size;\n height?: Size;\n };\n\nexport function GanttContainer({\n innerRef,\n width,\n height,\n testId,\n children,\n ...otherProps\n}: Props) {\n const testIdProps = useTestId(testId);\n\n return (\n <div\n ref={innerRef}\n tabIndex={0}\n {...testIdProps}\n {...otherProps}\n class={classNames([timeComponentStyles.baseStyle, ganttStyles.baseStyle])}\n style={{ width: width && sizeToCSS(width), height: height && sizeToCSS(height) }}>\n {children}\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { rowAxisLayoutStyles } from './themes/GanttStyles.css';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\n\ntype Props = {\n rowAxisTopGap?: string;\n rowAxisBottomGap?: string;\n resolvedRowAxisWidth: { value: number; suffix?: 'px' | '%' };\n resolvedRowAxisMaxWidth: { value: number; suffix?: 'px' | '%' };\n rowAxis: (resolvedWidth: number, resolvedMaxWidth: number) => ComponentChildren;\n ganttView: ComponentChildren;\n};\n\nexport function GanttWithRowAxisLayout({\n rowAxisTopGap = '0',\n rowAxisBottomGap = '0',\n resolvedRowAxisWidth,\n resolvedRowAxisMaxWidth,\n rowAxis,\n ganttView\n}: Props) {\n const isRelativeWidth = resolvedRowAxisWidth.suffix === '%';\n const isRelativeMaxWidth = resolvedRowAxisMaxWidth.suffix === '%';\n return isRelativeWidth || isRelativeMaxWidth ? (\n <TrackResizeContainer width=\"100%\" height=\"100%\">\n {(width, _) => (\n <div\n class={rowAxisLayoutStyles.base}\n style={{ gridTemplateRows: `${rowAxisTopGap} minmax(0, 1fr) ${rowAxisBottomGap}` }}>\n <div class={rowAxisLayoutStyles.rowAxis}>\n {rowAxis(\n isRelativeWidth\n ? width * (resolvedRowAxisWidth.value / 100)\n : resolvedRowAxisWidth.value,\n isRelativeMaxWidth\n ? width * (resolvedRowAxisMaxWidth.value / 100)\n : resolvedRowAxisMaxWidth.value\n )}\n </div>\n <div class={rowAxisLayoutStyles.ganttView}>{ganttView}</div>\n </div>\n )}\n </TrackResizeContainer>\n ) : (\n <div\n class={rowAxisLayoutStyles.base}\n style={{ gridTemplateRows: `${rowAxisTopGap} minmax(0, 1fr) ${rowAxisBottomGap}` }}>\n <div class={rowAxisLayoutStyles.rowAxis}>\n {rowAxis(resolvedRowAxisWidth.value, resolvedRowAxisMaxWidth.value)}\n </div>\n <div class={rowAxisLayoutStyles.ganttView}>{ganttView}</div>\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttRowData, GanttRowAxisProps, GanttTaskData } from '../gantt.types';\nimport { Text } from '#UNSAFE_Text';\nimport type { getRowDataLayout } from './dataLayoutUtils';\n\ntype RowDataLayout<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n\ntype RowAxisLabelRenderContext<D1> = Parameters<\n NonNullable<GanttRowAxisProps<D1>['labelRenderer']>\n>[0];\n\n/**\n * Gets the default row axis label renderer.\n * @param param0\n * @returns The default renderer.\n */\nconst defaultRowAxisLabelRender = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n maxWidth,\n maxHeight,\n data: { label = '', labelStyle }\n}: RowAxisLabelRenderContext<D1>) => {\n return (\n <div\n style={{\n width: maxWidth > -1 ? maxWidth : undefined,\n height: maxHeight,\n display: 'flex',\n alignItems: 'center',\n ...labelStyle\n }}>\n <Text size=\"md\" variant={labelStyle?.color ? 'inherit' : 'primary'} truncation=\"ellipsis\">\n {label}\n </Text>\n </div>\n );\n};\n\n/**\n * Gets the row label renderer context.\n * @param layoutObj The row layout object.\n * @param rowData The rows data.\n * @param maxWidth The max width of the row axis.\n * @returns The renderer context.\n */\nconst getRenderContext = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n layoutObj: RowDataLayout<K1, K2, D1, D2>['rowObjs'][0],\n rowData: RowDataLayout<K1, K2, D1, D2>['rowData'],\n maxWidth: number\n): RowAxisLabelRenderContext<D1> => {\n return {\n maxWidth,\n maxHeight: layoutObj.height,\n data: rowData[layoutObj.index]\n };\n};\n\nexport { defaultRowAxisLabelRender, getRenderContext };\n","\nexport default class FlatQueue {\n\n constructor() {\n this.ids = [];\n this.values = [];\n this.length = 0;\n }\n\n clear() {\n this.length = 0;\n }\n\n push(id, value) {\n let pos = this.length++;\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const parentValue = this.values[parent];\n if (value >= parentValue) break;\n this.ids[pos] = this.ids[parent];\n this.values[pos] = parentValue;\n pos = parent;\n }\n\n this.ids[pos] = id;\n this.values[pos] = value;\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.ids[0];\n this.length--;\n\n if (this.length > 0) {\n const id = this.ids[0] = this.ids[this.length];\n const value = this.values[0] = this.values[this.length];\n const halfLength = this.length >> 1;\n let pos = 0;\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n const right = left + 1;\n let bestIndex = this.ids[left];\n let bestValue = this.values[left];\n const rightValue = this.values[right];\n\n if (right < this.length && rightValue < bestValue) {\n left = right;\n bestIndex = this.ids[right];\n bestValue = rightValue;\n }\n if (bestValue >= value) break;\n\n this.ids[pos] = bestIndex;\n this.values[pos] = bestValue;\n pos = left;\n }\n\n this.ids[pos] = id;\n this.values[pos] = value;\n }\n\n return top;\n }\n\n peek() {\n if (this.length === 0) return undefined;\n return this.ids[0];\n }\n\n peekValue() {\n if (this.length === 0) return undefined;\n return this.values[0];\n }\n\n shrink() {\n this.ids.length = this.values.length = this.length;\n }\n}\n","import FlatQueue from 'flatqueue';\n\nconst ARRAY_TYPES = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\nconst VERSION = 3; // serialized format version\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nexport default class Flatbush {\n\n /**\n * Recreate a Flatbush index from raw `ArrayBuffer` or `SharedArrayBuffer` data.\n * @param {ArrayBuffer | SharedArrayBuffer} data\n * @returns {Flatbush} index\n */\n static from(data) {\n // @ts-expect-error duck typing array buffers\n if (!data || data.byteLength === undefined || data.buffer) {\n throw new Error('Data must be an instance of ArrayBuffer or SharedArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xfb) {\n throw new Error('Data does not appear to be in a Flatbush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new Flatbush(numItems, nodeSize, ArrayType, undefined, data);\n }\n\n /**\n * Create a Flatbush index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=16] Size of the tree node (16 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBufferConstructor | SharedArrayBufferConstructor} [ArrayBufferType=ArrayBuffer] The array buffer type used to store data (`ArrayBuffer` by default).\n * @param {ArrayBuffer | SharedArrayBuffer} [data] (Only used internally)\n */\n constructor(numItems, nodeSize = 16, ArrayType = Float64Array, ArrayBufferType = ArrayBuffer, data) {\n if (numItems === undefined) throw new Error('Missing required argument: numItems.');\n if (isNaN(numItems) || numItems <= 0) throw new Error(`Unexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n\n // calculate the total number of nodes in the R-tree to allocate space for\n // and the index of each tree level (used in search later)\n let n = numItems;\n let numNodes = n;\n this._levelBounds = [n * 4];\n do {\n n = Math.ceil(n / this.nodeSize);\n numNodes += n;\n this._levelBounds.push(numNodes * 4);\n } while (n !== 1);\n\n this.ArrayType = ArrayType;\n this.IndexArrayType = numNodes < 16384 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const nodesByteSize = numNodes * 4 * this.ArrayType.BYTES_PER_ELEMENT;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n // @ts-expect-error duck typing array buffers\n if (data && data.byteLength !== undefined && !data.buffer) {\n this.data = data;\n this._boxes = new this.ArrayType(this.data, 8, numNodes * 4);\n this._indices = new this.IndexArrayType(this.data, 8 + nodesByteSize, numNodes);\n\n this._pos = numNodes * 4;\n this.minX = this._boxes[this._pos - 4];\n this.minY = this._boxes[this._pos - 3];\n this.maxX = this._boxes[this._pos - 2];\n this.maxY = this._boxes[this._pos - 1];\n\n } else {\n this.data = new ArrayBufferType(8 + nodesByteSize + numNodes * this.IndexArrayType.BYTES_PER_ELEMENT);\n this._boxes = new this.ArrayType(this.data, 8, numNodes * 4);\n this._indices = new this.IndexArrayType(this.data, 8 + nodesByteSize, numNodes);\n this._pos = 0;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = -Infinity;\n this.maxY = -Infinity;\n\n new Uint8Array(this.data, 0, 2).set([0xfb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n\n // a priority queue for k-nearest-neighbors queries\n /** @type FlatQueue<number> */\n this._queue = new FlatQueue();\n }\n\n /**\n * Add a given rectangle to the index.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number} A zero-based, incremental number that represents the newly added rectangle.\n */\n add(minX, minY, maxX, maxY) {\n const index = this._pos >> 2;\n const boxes = this._boxes;\n this._indices[index] = index;\n boxes[this._pos++] = minX;\n boxes[this._pos++] = minY;\n boxes[this._pos++] = maxX;\n boxes[this._pos++] = maxY;\n\n if (minX < this.minX) this.minX = minX;\n if (minY < this.minY) this.minY = minY;\n if (maxX > this.maxX) this.maxX = maxX;\n if (maxY > this.maxY) this.maxY = maxY;\n\n return index;\n }\n\n /** Perform indexing of the added rectangles. */\n finish() {\n if (this._pos >> 2 !== this.numItems) {\n throw new Error(`Added ${this._pos >> 2} items when expected ${this.numItems}.`);\n }\n const boxes = this._boxes;\n\n if (this.numItems <= this.nodeSize) {\n // only one node, skip sorting and just fill the root box\n boxes[this._pos++] = this.minX;\n boxes[this._pos++] = this.minY;\n boxes[this._pos++] = this.maxX;\n boxes[this._pos++] = this.maxY;\n return;\n }\n\n const width = (this.maxX - this.minX) || 1;\n const height = (this.maxY - this.minY) || 1;\n const hilbertValues = new Uint32Array(this.numItems);\n const hilbertMax = (1 << 16) - 1;\n\n // map item centers into Hilbert coordinate space and calculate Hilbert values\n for (let i = 0, pos = 0; i < this.numItems; i++) {\n const minX = boxes[pos++];\n const minY = boxes[pos++];\n const maxX = boxes[pos++];\n const maxY = boxes[pos++];\n const x = Math.floor(hilbertMax * ((minX + maxX) / 2 - this.minX) / width);\n const y = Math.floor(hilbertMax * ((minY + maxY) / 2 - this.minY) / height);\n hilbertValues[i] = hilbert(x, y);\n }\n\n // sort items by their Hilbert value (for packing later)\n sort(hilbertValues, boxes, this._indices, 0, this.numItems - 1, this.nodeSize);\n\n // generate nodes at each tree level, bottom-up\n for (let i = 0, pos = 0; i < this._levelBounds.length - 1; i++) {\n const end = this._levelBounds[i];\n\n // generate a parent node for each block of consecutive <nodeSize> nodes\n while (pos < end) {\n const nodeIndex = pos;\n\n // calculate bbox for the new node\n let nodeMinX = boxes[pos++];\n let nodeMinY = boxes[pos++];\n let nodeMaxX = boxes[pos++];\n let nodeMaxY = boxes[pos++];\n for (let j = 1; j < this.nodeSize && pos < end; j++) {\n nodeMinX = Math.min(nodeMinX, boxes[pos++]);\n nodeMinY = Math.min(nodeMinY, boxes[pos++]);\n nodeMaxX = Math.max(nodeMaxX, boxes[pos++]);\n nodeMaxY = Math.max(nodeMaxY, boxes[pos++]);\n }\n\n // add the new node to the tree data\n this._indices[this._pos >> 2] = nodeIndex;\n boxes[this._pos++] = nodeMinX;\n boxes[this._pos++] = nodeMinY;\n boxes[this._pos++] = nodeMaxX;\n boxes[this._pos++] = nodeMaxY;\n }\n }\n }\n\n /**\n * Search the index by a bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items intersecting or touching the given bounding box.\n */\n search(minX, minY, maxX, maxY, filterFn) {\n if (this._pos !== this._boxes.length) {\n throw new Error('Data not yet indexed - call index.finish().');\n }\n\n /** @type number | undefined */\n let nodeIndex = this._boxes.length - 4;\n const queue = [];\n const results = [];\n\n while (nodeIndex !== undefined) {\n // find the end index of the node\n const end = Math.min(nodeIndex + this.nodeSize * 4, upperBound(nodeIndex, this._levelBounds));\n\n // search through child nodes\n for (let /** @type number */ pos = nodeIndex; pos < end; pos += 4) {\n // check if node bbox intersects with query bbox\n if (maxX < this._boxes[pos]) continue; // maxX < nodeMinX\n if (maxY < this._boxes[pos + 1]) continue; // maxY < nodeMinY\n if (minX > this._boxes[pos + 2]) continue; // minX > nodeMaxX\n if (minY > this._boxes[pos + 3]) continue; // minY > nodeMaxY\n\n const index = this._indices[pos >> 2] | 0;\n\n if (nodeIndex >= this.numItems * 4) {\n queue.push(index); // node; add it to the search queue\n\n } else if (filterFn === undefined || filterFn(index)) {\n results.push(index); // leaf item\n }\n }\n\n nodeIndex = queue.pop();\n }\n\n return results;\n }\n\n /**\n * Search items in order of distance from the given point.\n * @param {number} x\n * @param {number} y\n * @param {number} [maxResults=Infinity]\n * @param {number} [maxDistance=Infinity]\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items found.\n */\n neighbors(x, y, maxResults = Infinity, maxDistance = Infinity, filterFn) {\n if (this._pos !== this._boxes.length) {\n throw new Error('Data not yet indexed - call index.finish().');\n }\n\n /** @type number | undefined */\n let nodeIndex = this._boxes.length - 4;\n const q = this._queue;\n const results = [];\n const maxDistSquared = maxDistance * maxDistance;\n\n outer: while (nodeIndex !== undefined) {\n // find the end index of the node\n const end = Math.min(nodeIndex + this.nodeSize * 4, upperBound(nodeIndex, this._levelBounds));\n\n // add child nodes to the queue\n for (let pos = nodeIndex; pos < end; pos += 4) {\n const index = this._indices[pos >> 2] | 0;\n\n const dx = axisDist(x, this._boxes[pos], this._boxes[pos + 2]);\n const dy = axisDist(y, this._boxes[pos + 1], this._boxes[pos + 3]);\n const dist = dx * dx + dy * dy;\n if (dist > maxDistSquared) continue;\n\n if (nodeIndex >= this.numItems * 4) {\n q.push(index << 1, dist); // node (use even id)\n\n } else if (filterFn === undefined || filterFn(index)) {\n q.push((index << 1) + 1, dist); // leaf item (use odd id)\n }\n }\n\n // pop items from the queue\n // @ts-expect-error q.length check eliminates undefined values\n while (q.length && (q.peek() & 1)) {\n const dist = q.peekValue();\n // @ts-expect-error\n if (dist > maxDistSquared) break outer;\n // @ts-expect-error\n results.push(q.pop() >> 1);\n if (results.length === maxResults) break outer;\n }\n\n // @ts-expect-error\n nodeIndex = q.length ? q.pop() >> 1 : undefined;\n }\n\n q.clear();\n return results;\n }\n}\n\n/**\n * 1D distance from a value to a range.\n * @param {number} k\n * @param {number} min\n * @param {number} max\n */\nfunction axisDist(k, min, max) {\n return k < min ? min - k : k <= max ? 0 : k - max;\n}\n\n/**\n * Binary search for the first value in the array bigger than the given.\n * @param {number} value\n * @param {number[]} arr\n */\nfunction upperBound(value, arr) {\n let i = 0;\n let j = arr.length - 1;\n while (i < j) {\n const m = (i + j) >> 1;\n if (arr[m] > value) {\n j = m;\n } else {\n i = m + 1;\n }\n }\n return arr[i];\n}\n\n/**\n * Custom quicksort that partially sorts bbox data alongside the hilbert values.\n * @param {Uint32Array} values\n * @param {InstanceType<TypedArrayConstructor>} boxes\n * @param {Uint16Array | Uint32Array} indices\n * @param {number} left\n * @param {number} right\n * @param {number} nodeSize\n */\nfunction sort(values, boxes, indices, left, right, nodeSize) {\n if (Math.floor(left / nodeSize) >= Math.floor(right / nodeSize)) return;\n\n const pivot = values[(left + right) >> 1];\n let i = left - 1;\n let j = right + 1;\n\n while (true) {\n do i++; while (values[i] < pivot);\n do j--; while (values[j] > pivot);\n if (i >= j) break;\n swap(values, boxes, indices, i, j);\n }\n\n sort(values, boxes, indices, left, j, nodeSize);\n sort(values, boxes, indices, j + 1, right, nodeSize);\n}\n\n/**\n * Swap two values and two corresponding boxes.\n * @param {Uint32Array} values\n * @param {InstanceType<TypedArrayConstructor>} boxes\n * @param {Uint16Array | Uint32Array} indices\n * @param {number} i\n * @param {number} j\n */\nfunction swap(values, boxes, indices, i, j) {\n const temp = values[i];\n values[i] = values[j];\n values[j] = temp;\n\n const k = 4 * i;\n const m = 4 * j;\n\n const a = boxes[k];\n const b = boxes[k + 1];\n const c = boxes[k + 2];\n const d = boxes[k + 3];\n boxes[k] = boxes[m];\n boxes[k + 1] = boxes[m + 1];\n boxes[k + 2] = boxes[m + 2];\n boxes[k + 3] = boxes[m + 3];\n boxes[m] = a;\n boxes[m + 1] = b;\n boxes[m + 2] = c;\n boxes[m + 3] = d;\n\n const e = indices[i];\n indices[i] = indices[j];\n indices[j] = e;\n}\n\n/**\n * Fast Hilbert curve algorithm by http://threadlocalmutex.com/\n * Ported from C++ https://github.com/rawrunprotected/hilbert_curves (public domain)\n * @param {number} x\n * @param {number} y\n */\nfunction hilbert(x, y) {\n let a = x ^ y;\n let b = 0xFFFF ^ a;\n let c = 0xFFFF ^ (x | y);\n let d = x & (y ^ 0xFFFF);\n\n let A = a | (b >> 1);\n let B = (a >> 1) ^ a;\n let C = ((c >> 1) ^ (b & (d >> 1))) ^ c;\n let D = ((a & (c >> 1)) ^ (d >> 1)) ^ d;\n\n a = A; b = B; c = C; d = D;\n A = ((a & (a >> 2)) ^ (b & (b >> 2)));\n B = ((a & (b >> 2)) ^ (b & ((a ^ b) >> 2)));\n C ^= ((a & (c >> 2)) ^ (b & (d >> 2)));\n D ^= ((b & (c >> 2)) ^ ((a ^ b) & (d >> 2)));\n\n a = A; b = B; c = C; d = D;\n A = ((a & (a >> 4)) ^ (b & (b >> 4)));\n B = ((a & (b >> 4)) ^ (b & ((a ^ b) >> 4)));\n C ^= ((a & (c >> 4)) ^ (b & (d >> 4)));\n D ^= ((b & (c >> 4)) ^ ((a ^ b) & (d >> 4)));\n\n a = A; b = B; c = C; d = D;\n C ^= ((a & (c >> 8)) ^ (b & (d >> 8)));\n D ^= ((b & (c >> 8)) ^ ((a ^ b) & (d >> 8)));\n\n a = C ^ (C >> 1);\n b = D ^ (D >> 1);\n\n let i0 = x ^ y;\n let i1 = b | (0xFFFF ^ (i0 | a));\n\n i0 = (i0 | (i0 << 8)) & 0x00FF00FF;\n i0 = (i0 | (i0 << 4)) & 0x0F0F0F0F;\n i0 = (i0 | (i0 << 2)) & 0x33333333;\n i0 = (i0 | (i0 << 1)) & 0x55555555;\n\n i1 = (i1 | (i1 << 8)) & 0x00FF00FF;\n i1 = (i1 | (i1 << 4)) & 0x0F0F0F0F;\n i1 = (i1 | (i1 << 2)) & 0x33333333;\n i1 = (i1 | (i1 << 1)) & 0x55555555;\n\n return ((i1 << 1) | i0) >>> 0;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport Flatbush from 'flatbush';\n\ntype RowObj = {\n taskObjs: {\n overallStartTime: number;\n overallEndTime: number;\n y: number;\n height: number;\n }[];\n};\n\ntype TimePoint = { time: number; y: number };\n\ntype SpatialIndex = {\n tasks: Flatbush;\n};\n\n/**\n * Gets the task spatial index.\n * @param rowObjs The row layout objects (for the entier dataset).\n * @returns The task spatial index.\n */\nconst getTasksSpatialIndex = (rowObjs: RowObj[]) => {\n const numTasks = rowObjs.map((r) => r.taskObjs.length).reduce((a, b) => a + b, 0);\n const index = new Flatbush(numTasks);\n rowObjs.forEach((r) =>\n r.taskObjs.forEach(({ overallStartTime, overallEndTime, y, height }) => {\n index.add(overallStartTime, y, overallEndTime, y + height);\n })\n );\n index.finish();\n return index;\n};\n\n/**\n * Gets all spatial indices of the component.\n * @param rowObjs The row layout objects (for the entier dataset).\n * @returns The spatial indices.\n */\nconst getSpatialIndex = (rowObjs: RowObj[]): SpatialIndex => {\n // TODO: add more spatial indices for non task bar stuff\n return {\n tasks: getTasksSpatialIndex(rowObjs)\n };\n};\n\n/**\n * Returns the target task that overlaps with the given point.\n * @param rowObjs The row layout objects (for the entier dataset).\n * @param index The spatial index to query.\n * @param param2 The point.\n * @returns The target task.\n */\nconst queryTasksSpatialIndex = (\n rowObjs: RowObj[],\n index: SpatialIndex['tasks'],\n { time, y }: TimePoint\n) => {\n const found = index.search(time, y, time, y);\n if (found.length === 0) return;\n\n // TODO: Handle task overlaps. Not a problem yet for V1.\n // Instead of depending on order gaurantees from Flatbush (there might not be any), we should\n // just check chronological task order and overlap behavior (when we support that API)\n // to figure out the topmost task in the search result.\n let flatIndex = found[0];\n\n // TODO: improve this with binary search\n for (let i = 0; i < rowObjs.length; i++) {\n const rowObj = rowObjs[i];\n for (let j = 0; j < rowObj.taskObjs.length; j++) {\n if (flatIndex === 0) return { rowIndex: i, taskIndex: j };\n flatIndex -= 1;\n }\n }\n return;\n};\n\nexport { getSpatialIndex, queryTasksSpatialIndex };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type {\n GanttCurrentTask,\n GanttProps,\n GanttRowData,\n GanttSelection as GanttSelectionProps,\n GanttTaskData,\n GanttTaskHover\n} from '../gantt.types';\nimport { Property } from 'csstype';\nimport { getTimePosition, parseDate } from '#PRIVATE_TimeComponent/utils/timeUtils';\nimport { getResolvedRowVars, getResolvedTaskVars } from './ganttStyleUtils';\nimport { getSpatialIndex } from './spatialUtils';\n\ntype GanttRowLayoutObj<K1, K2> = {\n id: K1;\n y: number;\n height: number;\n depth?: number;\n expanded?: boolean;\n index: number;\n parentIndex?: number;\n isSelected: boolean;\n taskObjs: GanttTaskLayoutObj<K2>[];\n};\n\ntype GanttTaskLayoutObj<K2> = {\n id: K2;\n renderIndex: number;\n index: number;\n rowIndex: number;\n y: number;\n height: number;\n borderRadius: string;\n fill: string;\n stroke: string;\n strokeWidth: number;\n isSelectable: boolean;\n isSelected: boolean;\n selectionEffect: {\n stroke: string;\n strokeWidth: number;\n padding: number;\n };\n hoverEffect: {\n stroke: string;\n strokeWidth: number;\n padding: number;\n shadow: {\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n shadowBlur: number;\n };\n };\n focusEffect: {\n stroke: string;\n strokeWidth: number;\n padding: number;\n };\n startTime: number;\n endTime: number;\n overallStartTime: number;\n overallEndTime: number;\n rowLevel: number;\n previousAdjacentTaskObj?: GanttTaskLayoutObj<K2>;\n nextAdjacentTaskObj?: GanttTaskLayoutObj<K2>;\n labelObj?: {\n startTime: number;\n endTime: number;\n label: string;\n isInner: boolean;\n position: 'start' | 'center' | 'end';\n };\n};\n\ntype GanttViewportRowLayoutObj<K1, K2> = Omit<GanttRowLayoutObj<K1, K2>, 'taskObjs'> & {\n taskObjs: GanttViewportTaskLayoutObj<K2>[];\n};\n\ntype GanttViewportTaskLayoutObj<K2> = GanttTaskLayoutObj<K2> & {\n x: number;\n width: number;\n};\n\ntype GanttViewPortTaskLabelLayoutObj = {\n x: number;\n y: number;\n width: number;\n height: number;\n label: string;\n isInner: boolean;\n textAlign: 'left' | 'center' | 'right';\n labelStyle?: {\n color?: Property.Color;\n fontFamily?: Property.FontFamily;\n fontSize?: Property.FontSize;\n fontStyle?: Property.FontStyle;\n fontWeight?: Property.FontWeight;\n textDecoration?: Property.TextDecoration;\n };\n};\n\ntype ViewportLayout<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = ReturnType<typeof getResolvedViewportLayout<K1, K2, D1, D2>>;\n\n/**\n * Determines whether given two intervals overlap\n * @param s1 interval 1 start\n * @param e1 interval 1 end\n * @param s2 interval 2 start\n * @param e2 interval 2 end\n * @param isClosedComparison True if closed interval comparison, else open\n * @returns Whether the two intervals overlap\n */\nconst isIntervalOverlap = (\n s1: number,\n e1: number,\n s2: number,\n e2: number,\n isClosedComparison = true\n) => (isClosedComparison ? s1 <= e2 && s2 <= e1 : s1 < e2 && s2 < e1);\n\n/**\n * Determines whether given two tasks overlap chronologically\n * @param taskObj1 task layout object\n * @param taskObj2 task layout object\n * @returns Whether the two tasks overlap chronologically\n */\nconst isOverlap = (\n taskObj1: { overallStartTime: number; overallEndTime: number },\n taskObj2: { overallStartTime: number; overallEndTime: number }\n) => {\n // Open interval comparison: if interval 1 ends at the same time interval 2 starts, they are still NOT overlapping.\n return isIntervalOverlap(\n taskObj1.overallStartTime,\n taskObj1.overallEndTime,\n taskObj2.overallStartTime,\n taskObj2.overallEndTime,\n false\n );\n};\n\n/**\n * Binary search for the index of the leftmost element that equals the target.\n * If the target is not in the array, then the returned value is:\n * - the index of rightmost element less than the target if approximateMode is 'predecessor'\n * - the index of the leftmost element greater than the target if approximateMode is 'successor'\n * Search is O(lgN), N being the length of the array.\n * @param array The array\n * @param target The target\n * @param approximateMode The behavior if target is not in the array. 'predecessor' or 'successor'\n * @returns The leftmost index at which the target is found, or the index of the predecessor/successor element as per approximateMode param\n */\nconst binarySearchLeftMost = (\n array: number[],\n target: number,\n approximateMode: 'predecessor' | 'successor'\n) => {\n if (array.length === 0) return 0;\n\n let L = 0;\n let R = array.length;\n while (L < R) {\n const m = Math.floor((L + R) / 2);\n const value = array[m];\n if (value < target) L = m + 1;\n else R = m;\n }\n // If target is not in the array, then L at this point is the rank of the target in the array,\n // i.e. the number of elements in the array that are less than the target.\n if (L < array.length) {\n const value = array[L];\n if (value === target || approximateMode === 'successor') return L;\n }\n // L - 1 would give the index of the rightmost element less than the target (predecessor)\n return L > 0 ? L - 1 : 0;\n};\n\n/**\n * Finds the minimum and maximum row indices relevant to the given viewport bounds\n * @param rowYs The row y coords\n * @param yMin The minimum y bound\n * @param yMax The maximum y bound\n * @returns The minimum and maximum row indices\n */\nconst findRowIndRange = (rowYs: number[], yMin: number, yMax: number) => {\n // O(lgN) binary search for first row (intersecting yMin)\n const minRowInd = binarySearchLeftMost(rowYs, yMin, 'predecessor');\n let maxRowInd = minRowInd;\n\n // linear search from that row to search for last row (intersecting yMax)\n for (let i = minRowInd; i < rowYs.length; i++) {\n if (rowYs[i] <= yMax) {\n maxRowInd = i;\n } else {\n break;\n }\n }\n return { minRowInd, maxRowInd };\n};\n\n/**\n * Gets the height of an empty row.\n * @param resolvedVars The resolved CSS vars.\n * @returns The height of an empty row.\n */\nconst getEmptyRowHeight = (resolvedVars: {\n rowPaddingTop: number;\n rowPaddingBottom: number;\n taskHeight: number;\n}) => resolvedVars.rowPaddingTop + resolvedVars.taskHeight + resolvedVars.rowPaddingBottom;\n\n/**\n * Computes the vertical layout of the given row and its tasks.\n * This method modifies the given task layout objects with resolved layout information.\n * @param param0\n * @returns The resolved height of the row.\n */\nconst calcRowTaskVerticalLayout = <K2>({\n rowHeight,\n rowY,\n taskObjs,\n resolvedVars\n}: {\n rowHeight?: number;\n rowY: number;\n taskObjs: GanttTaskLayoutObj<K2>[];\n resolvedVars: ReturnType<typeof getResolvedRowVars> & ReturnType<typeof getResolvedTaskVars>;\n}) => {\n if (taskObjs.length === 0) return getEmptyRowHeight(resolvedVars);\n\n // Handle properly in the future when we support these APIs\n const overlapOffset = undefined;\n\n taskObjs[0].rowLevel = 0;\n taskObjs[0].y = 0;\n const overlapChains = [[taskObjs[0]]];\n const rowLevelRecentTaskObjs = [taskObjs[0]];\n for (let i = 1; i < taskObjs.length; i++) {\n const taskObj = taskObjs[i];\n // Handle properly in the future when we support these APIs\n const overlapBehavior = 'stack';\n\n const previousTaskObj = taskObjs[i - 1];\n const thisOverlapsPrevious = isOverlap(taskObj, previousTaskObj);\n if (thisOverlapsPrevious) {\n overlapChains[overlapChains.length - 1].push(taskObj);\n } else {\n overlapChains.push([taskObj]);\n }\n\n let rowLevel = 0;\n let previousAdjacentTaskObj;\n switch (overlapBehavior) {\n case 'stack': {\n let promote = true;\n for (let j = 0; j < rowLevelRecentTaskObjs.length; j++) {\n previousAdjacentTaskObj = undefined;\n if (isOverlap(taskObj, rowLevelRecentTaskObjs[j])) {\n rowLevel += 1;\n } else {\n previousAdjacentTaskObj = rowLevelRecentTaskObjs[j];\n rowLevelRecentTaskObjs[j] = taskObj;\n promote = false;\n break;\n }\n }\n if (promote) {\n rowLevelRecentTaskObjs.push(taskObj);\n }\n taskObj.y = overlapOffset !== undefined ? rowLevel * overlapOffset : 0;\n if (previousAdjacentTaskObj) {\n taskObj.previousAdjacentTaskObj = previousAdjacentTaskObj;\n previousAdjacentTaskObj.nextAdjacentTaskObj = taskObj;\n }\n break;\n }\n // More cases in the future when we support the overlap behavior APIs\n default: {\n const _exhaustiveCheck: never = overlapBehavior;\n return _exhaustiveCheck;\n }\n }\n taskObj.rowLevel = rowLevel;\n }\n\n // Add padding to task y when row height is not fixed\n const rowPaddingTop = resolvedVars.rowPaddingTop;\n const rowPaddingBottom = resolvedVars.rowPaddingBottom;\n\n const rowLevelHeights = rowLevelRecentTaskObjs.map(() => 0);\n if (rowHeight === undefined) {\n // Figure out offset based on row level height\n if (overlapOffset === undefined) {\n taskObjs.forEach((taskObj) => {\n if (taskObj.height > rowLevelHeights[taskObj.rowLevel]) {\n rowLevelHeights[taskObj.rowLevel] = taskObj.height;\n }\n });\n const rowLevelCumHeightsWithPadding = rowLevelHeights\n .map((rowLevelHeight) => rowLevelHeight + rowPaddingTop + rowPaddingBottom)\n .reduce((acc, curr, i) => {\n acc.push((acc[i - 1] || 0) + curr);\n return acc;\n }, [] as number[]);\n taskObjs.forEach((taskObj) => {\n taskObj.y += (rowLevelCumHeightsWithPadding[taskObj.rowLevel - 1] || 0) + rowPaddingTop;\n });\n } else {\n taskObjs.forEach((taskObj) => {\n taskObj.y += rowPaddingTop;\n });\n }\n }\n\n const overlapChainHeights = overlapChains.map((chain) => {\n let chainHeight = 0;\n chain.forEach((chainTaskObj) => {\n const distanceFromBottomToRowTop = chainTaskObj.y + chainTaskObj.height;\n if (distanceFromBottomToRowTop > chainHeight) {\n chainHeight = distanceFromBottomToRowTop;\n }\n });\n return chainHeight;\n });\n\n let resolvedRowHeight: number;\n if (rowHeight === undefined) {\n // Grow the row height to accommodate everything\n resolvedRowHeight =\n overlapChainHeights.reduce((a, b) => {\n return Math.max(a, b);\n }) + rowPaddingTop;\n // If no overlapping offset specified: Mid align task within its row level\n if (overlapOffset === undefined) {\n overlapChains.forEach((chain) => {\n chain.forEach((taskObj) => {\n const rowLevelHeight = rowLevelHeights[taskObj.rowLevel];\n taskObj.y += (rowLevelHeight - taskObj.height) / 2 + rowY;\n });\n });\n } else {\n // Otherwise align all tasks to top (with offset)\n overlapChains.forEach((chain) => {\n chain.forEach((taskObj) => {\n taskObj.y += rowY;\n });\n });\n }\n } else {\n // Fix the row height and mid align everything\n resolvedRowHeight = rowHeight;\n overlapChains.forEach((chain, i) => {\n const chainHeight = overlapChainHeights[i];\n let minTaskY = Number.MAX_VALUE;\n chain.forEach((taskObj) => {\n taskObj.y += Math.floor((resolvedRowHeight - taskObj.height) / 2);\n if (taskObj.y < minTaskY) {\n minTaskY = taskObj.y;\n }\n });\n const offsetFromRowCenter = Math.floor((resolvedRowHeight - chainHeight) / 2) - minTaskY;\n chain.forEach((taskObj) => {\n taskObj.y += rowY + offsetFromRowCenter;\n });\n });\n }\n\n return resolvedRowHeight;\n};\n\n/**\n * Computes the (unresolved) task labels layout.\n * This method modifies the given task layout objects with resolved layout information.\n * @param taskObjs The task layout object.\n * @param rowData The rows data.\n */\nconst calcTaskLabelLayout = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n taskObjs: GanttTaskLayoutObj<K2>[],\n rowData: GanttProps<K2, D1, D2>['rows']\n) => {\n // TODO: Support other label positions when we get to exposing those APIs\n // For now, just take care of label position \"innerCenter\"\n taskObjs.forEach((taskObj) => {\n const { index, rowIndex } = taskObj;\n const labelText = rowData[rowIndex].tasks[index].label;\n if (labelText) {\n taskObj.labelObj = {\n startTime: taskObj.startTime,\n endTime: taskObj.endTime,\n label: labelText,\n isInner: true,\n position: 'center' // Future: unless inner, 'start' if labelPosition is 'end', 'end if labelPosition is 'start'\n // TODO: Handle contrast color\n };\n }\n });\n};\n\n/**\n * Computes the resolved task label layout given the unresolved label layout and the viewport.\n * @param labelObj The unresolved label layout object.\n * @param labelStyle The label style.\n * @param y The y position of the task.\n * @param height The height of the task.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @param viewportWidth The viewport width.\n * @param isRTL Whether the reading direction is rtl.\n * @returns The resolved label layout object.\n */\nconst getResolvedTaskLabelLayout = <K2>(\n labelObj: GanttTaskLayoutObj<K2>['labelObj'],\n labelStyle: GanttViewPortTaskLabelLayoutObj['labelStyle'],\n y: number,\n height: number,\n viewportStartTime: number,\n viewportEndTime: number,\n viewportWidth: number,\n isRTL: boolean\n) => {\n if (!labelObj) return;\n const startPos = getTimePosition(\n labelObj.startTime,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n isRTL\n );\n const endPos = getTimePosition(\n labelObj.endTime,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n isRTL\n );\n let textAlign: 'left' | 'center' | 'right';\n switch (labelObj.position) {\n case 'center':\n textAlign = 'center';\n break;\n case 'start':\n textAlign = isRTL ? 'right' : 'left';\n break;\n case 'end':\n textAlign = isRTL ? 'left' : 'right';\n break;\n default: {\n const _exhaustiveCheck: never = labelObj.position;\n return _exhaustiveCheck;\n }\n }\n return {\n x: isRTL ? endPos : startPos,\n y,\n width: isRTL ? startPos - endPos : endPos - startPos,\n height,\n label: labelObj.label,\n isInner: labelObj.isInner,\n textAlign,\n labelStyle\n };\n};\n\n/**\n * Gets normalized start and end date strings from props,\n * e.g. one of them may be undefined in the props, but that really means both\n * start and end are the same.\n * @param task The task data containing the start and end date strings.\n * @returns Normalized start and end date strings.\n */\nconst getNormalizedStartEnd = (task: { start?: string; end?: string }) => {\n const start = task.start ? task.start : task.end!;\n const end = task.end ? task.end : task.start!;\n return { start, end };\n};\n\n/**\n * Returns whether selection is supported given the selection mode.\n * @param selectionMode The selection mode from props.\n * @returns Whether selection is supported.\n */\nconst supportsSelection = (selectionMode?: 'none' | 'single' | 'multiple') => {\n return !!(selectionMode && selectionMode !== 'none');\n};\n\n/**\n * Gets the (unresolved) rows data layout. Note that this is done for all rows in the data.\n * @param rowData The rows data.\n * @param resolvedVars The resolved CSS vars.\n * @param gridlines The gridlines prop value.\n * @param selectionProps The selection related props.\n * @returns The (unresolved) rows data layout.\n */\nconst getRowDataLayout = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n rowData: GanttProps<K2, D1, D2>['rows'],\n resolvedVars: ReturnType<typeof getResolvedRowVars> & ReturnType<typeof getResolvedTaskVars>,\n gridlines: { horizontal: 'on' | 'off'; vertical: 'on' | 'off' },\n selectionProps: Omit<GanttSelectionProps<K2, D2>, 'onSelectionChange'>\n) => {\n const selectionEnabled = supportsSelection(selectionProps.selectionMode);\n const selectedIds = new Set(selectionProps.selectedIds);\n\n let rowY = 0;\n const rowObjs: GanttRowLayoutObj<K1, K2>[] = rowData.map((row, i) => {\n const taskObjs: GanttTaskLayoutObj<K2>[] = row.tasks.map((task, j) => {\n const { start, end } = getNormalizedStartEnd(task);\n const startTime = parseDate(start);\n const endTime = parseDate(end);\n return {\n id: task.id,\n renderIndex: 0, // calculated downstream\n index: j,\n rowIndex: i,\n y: -1, // calculated downstream\n startTime,\n endTime,\n overallStartTime: startTime,\n overallEndTime: endTime,\n rowLevel: 0, // calculated downstream\n height: task.height !== undefined ? task.height : resolvedVars.taskHeight,\n borderRadius:\n task.borderRadius !== undefined\n ? task.borderRadius.toString()\n : resolvedVars.taskBorderRadius,\n fill: task.color ? task.color : resolvedVars.taskBgColor,\n stroke: resolvedVars.taskBorderColor,\n strokeWidth: 1,\n isSelectable: selectionEnabled,\n isSelected: selectedIds.has(task.id),\n selectionEffect: {\n stroke: resolvedVars.taskEffectBorderColor,\n strokeWidth: 2,\n padding: 2\n },\n hoverEffect: {\n stroke: resolvedVars.taskEffectBorderColor,\n strokeWidth: 1,\n padding: 0,\n shadow: {\n ...resolvedVars.taskEffectBoxShadow\n }\n },\n focusEffect: {\n stroke: resolvedVars.taskEffectBorderColor,\n strokeWidth: 1,\n padding: 2\n }\n };\n });\n\n taskObjs.sort((a, b) => a.startTime - b.startTime);\n taskObjs.forEach((t, i) => (t.renderIndex = i));\n\n const resolvedRowHeight = calcRowTaskVerticalLayout({\n rowHeight: row.height,\n rowY,\n taskObjs,\n resolvedVars\n });\n calcTaskLabelLayout<K1, K2, D1, D2>(taskObjs, rowData);\n\n const rowObj = {\n id: row.id,\n y: rowY,\n height: resolvedRowHeight,\n index: i,\n isSelected: taskObjs.some((t) => t.isSelected),\n taskObjs\n };\n\n const horizontalLineHeightOffset = gridlines.horizontal === 'on' ? 1 : 0;\n\n rowY += resolvedRowHeight + horizontalLineHeightOffset;\n return rowObj;\n });\n\n const lastRowLayoutObj = rowObjs[rowObjs.length - 1];\n const totalRowsHeight = lastRowLayoutObj ? lastRowLayoutObj.y + lastRowLayoutObj.height : 0;\n\n const idTaskObjMap = new Map<K2, GanttTaskLayoutObj<K2>>();\n rowObjs.forEach((rowObj) =>\n rowObj.taskObjs.forEach((taskObj) => idTaskObjMap.set(taskObj.id, taskObj))\n );\n const idRowObjMap = new Map<K1, GanttRowLayoutObj<K1, K2>>();\n rowObjs.forEach((rowObj) => idRowObjMap.set(rowObj.id, rowObj));\n\n const spatialIndex = getSpatialIndex(rowObjs);\n\n return {\n rowData,\n rowObjs,\n rowPadding: resolvedVars.rowPaddingTop,\n totalRowsHeight,\n gridlines,\n spatialIndex,\n idRowObjMap,\n idTaskObjMap,\n getTaskDataById: (id: K2) => {\n const data = idTaskObjMap.get(id);\n return data && rowData[data.rowIndex].tasks[data.index];\n }\n };\n};\n\n/**\n * Gets the corresponding task layout object given the id of the tasks, for each effect.\n * @param effectProps The task ids associated with each effect.\n * @param idTaskObjMap A Map between task ids and task layout objects.\n * @returns The task layout objects for each effect.\n */\nconst getEffectTaskObjs = <K2, D2>(\n effectProps: {\n selectionProps: Omit<GanttSelectionProps<K2, D2>, 'onSelectionChange'>;\n hoverProps: Omit<GanttTaskHover<K2>, 'onTaskHoverChange'>;\n currentProps: Omit<GanttCurrentTask<K2>, 'onCurrentTaskChange'>;\n },\n idTaskObjMap: Map<K2, GanttViewportTaskLayoutObj<K2>>\n) => {\n // TODO: Decide whether the task selection source of truth should be in\n // the rowObjs layout, or determined dynamically here, or both.\n // Right now it's in both places.\n // Let's decide after we figure out where eactly to memo for performance.\n //\n // Note we're rendering selectedIds regardless of selectionMode.\n const selectedIds = effectProps.selectionProps.selectedIds || [];\n const selectedTaskObjs: GanttViewportTaskLayoutObj<K2>[] = [];\n selectedIds.forEach((id) => {\n const selectedTaskObj = idTaskObjMap.get(id);\n if (selectedTaskObj) selectedTaskObjs.push(selectedTaskObj);\n });\n\n const hoveredId = supportsSelection(effectProps.selectionProps.selectionMode)\n ? effectProps.hoverProps.hoveredTaskId\n : undefined;\n const hoveredTaskObj = hoveredId !== undefined ? idTaskObjMap.get(hoveredId) : undefined;\n\n const currentTask = effectProps.currentProps.currentTask;\n const isTaskFocused = currentTask?.isFocused === true;\n const currentTaskId = currentTask?.id;\n const focusedTaskObj =\n isTaskFocused && currentTaskId !== undefined ? idTaskObjMap.get(currentTaskId) : undefined;\n\n return {\n selectedTaskObjs,\n hoveredTaskObj,\n focusedTaskObj\n };\n};\n\n/**\n * Gets the resolved task layout object for the given viewport, given the unresolved task layout object.\n * @param taskObj The unresolved task layout object.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @param viewportWidth The viewport width.\n * @param scrollPosition The scroll position.\n * @param isRTL Whether the reading direction is rtl.\n * @returns The resolved task layout object.\n */\nconst getResolvedTaskObj = <K2>(\n taskObj: GanttTaskLayoutObj<K2>,\n viewportStartTime: number,\n viewportEndTime: number,\n viewportWidth: number,\n scrollPosition: number,\n isRTL: boolean\n) => {\n const startPos = getTimePosition(\n taskObj.startTime,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n isRTL\n );\n const endPos = getTimePosition(\n taskObj.endTime,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n isRTL\n );\n return {\n ...taskObj,\n x: isRTL ? endPos : startPos,\n y: taskObj.y - scrollPosition,\n width: isRTL ? startPos - endPos : endPos - startPos\n };\n};\n\n/**\n * Gets the resolved rows data layout for the given viewport.\n * @param rowDataLayout The unresolved rows data layout object for all data.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @param scrollPosition The scroll position.\n * @param viewportWidth The viewport width.\n * @param viewportHeight The viewport height.\n * @param isRTL Whether the reading direction is rtl.\n * @returns The resolved rows data layout for the given viewport.\n */\nconst getResolvedViewportLayout = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>,\n viewportStartTime: number,\n viewportEndTime: number,\n scrollPosition: number,\n viewportWidth: number,\n viewportHeight: number,\n isRTL: boolean\n) => {\n const viewportYMin = scrollPosition;\n const viewportYMax = scrollPosition + viewportHeight;\n const rowYs = rowDataLayout.rowObjs.map((r) => r.y);\n const { minRowInd, maxRowInd } = findRowIndRange(rowYs, viewportYMin, viewportYMax);\n\n const viewportRowsLayout: GanttViewportRowLayoutObj<K1, K2>[] = [];\n for (let i = minRowInd; i <= maxRowInd; i++) {\n const rowObj = rowDataLayout.rowObjs[i];\n const viewportTaskObjs = rowObj.taskObjs.filter(({ overallStartTime, overallEndTime }) =>\n isIntervalOverlap(overallStartTime, overallEndTime, viewportStartTime, viewportEndTime)\n );\n const resolvedViewportTaskObjs = viewportTaskObjs.map((taskObj) =>\n getResolvedTaskObj(\n taskObj,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n scrollPosition,\n isRTL\n )\n );\n const resolvedViewportRowObjs = {\n ...rowObj,\n y: rowObj.y - scrollPosition,\n taskObjs: resolvedViewportTaskObjs\n };\n viewportRowsLayout.push(resolvedViewportRowObjs);\n }\n\n const viewportTaskLabelsLayout: GanttViewPortTaskLabelLayoutObj[] = [];\n viewportRowsLayout.forEach((rowObj) => {\n rowObj.taskObjs.forEach(({ index, rowIndex, labelObj, y, height }) => {\n const labelStyle = rowDataLayout.rowData[rowIndex].tasks[index].labelStyle;\n const labelLayout = getResolvedTaskLabelLayout(\n labelObj,\n labelStyle,\n y,\n height,\n viewportStartTime,\n viewportEndTime,\n viewportWidth,\n isRTL\n );\n if (labelLayout) viewportTaskLabelsLayout.push(labelLayout);\n });\n });\n\n // due to pixel hinting, odd value stroke width needs it's position to be offset by 0.5 to ensure consistent behavior across browsers\n // i.e. pos = pos + (strokeWidth % 2) * 0.5\n // e.g. stroke-width of 1px means 0.5px above and below the reference coordinate. With pixel hinting, some browsers\n // renders 1px above the reference, some renders 1px below the reference. If we offset the reference by 0.5px, the stroke location\n // becomes unambiguous (it'll lock onto whole pixel grid) so all browsers will render this consistently.\n const horizontalGridlinesPos =\n rowDataLayout.gridlines.horizontal === 'on'\n ? viewportRowsLayout.map(({ y, height }) => y + height + 0.5)\n : undefined;\n\n const idTaskObjMap = new Map<K2, GanttViewportTaskLayoutObj<K2>>();\n viewportRowsLayout.forEach((rowObj) =>\n rowObj.taskObjs.forEach((taskObj) => idTaskObjMap.set(taskObj.id, taskObj))\n );\n\n return {\n spatialIndex: rowDataLayout.spatialIndex,\n gridlines: rowDataLayout.gridlines,\n horizontalGridlinesPos,\n rowData: rowDataLayout.rowData,\n allRowObjs: rowDataLayout.rowObjs,\n allIdTaskObjMap: rowDataLayout.idTaskObjMap,\n allIdRowObjMap: rowDataLayout.idRowObjMap,\n rowPadding: rowDataLayout.rowPadding,\n rowObjs: viewportRowsLayout,\n taskLabelObjs: viewportTaskLabelsLayout,\n idTaskObjMap,\n getTaskDataById: rowDataLayout.getTaskDataById\n };\n};\n\nexport {\n getRowDataLayout,\n getResolvedViewportLayout,\n getEffectTaskObjs,\n getNormalizedStartEnd,\n supportsSelection,\n getResolvedTaskObj\n};\nexport type {\n GanttRowLayoutObj,\n GanttTaskLayoutObj,\n GanttViewportRowLayoutObj,\n GanttViewportTaskLayoutObj,\n ViewportLayout\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { generateAriaLabel } from '#utils/UNSAFE_visUtils/accUtils';\nimport { BundleType } from '#resources/nls/bundle';\nimport type { GanttProps, GanttRowData, GanttTaskData } from '../gantt.types';\nimport { GanttRowLayoutObj, GanttTaskLayoutObj, getNormalizedStartEnd } from './dataLayoutUtils';\n\n/**\n * Gets the default aria label for the task.\n * @param taskObj The task layout object.\n * @param rowData The rows data.\n * @param dateFormatter The date formatter.\n * @param translations The translations bundle.\n * @returns The default aria label.\n */\nconst getDefaultTaskAccessibleLabel = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n taskObj: GanttTaskLayoutObj<K2>,\n rowData: GanttProps<K2, D1, D2>['rows'],\n // TODO: take valueFormats instead of dateFormatter when we support the API\n dateFormatter: (date: string) => string,\n translations: BundleType\n) => {\n const row = rowData[taskObj.rowIndex];\n const task = row.tasks[taskObj.index];\n\n const { start, end } = getNormalizedStartEnd(task);\n const isMilestone = start === end;\n\n const desc = [];\n if (row.label) {\n const rowDesc = translations.vis_labelAndValue({\n LABEL: translations.gantt_labelRow(),\n VALUE: row.label\n });\n desc.push(rowDesc);\n }\n if (!isMilestone) {\n const startDesc = translations.vis_labelAndValue({\n LABEL: translations.gantt_labelStart(),\n VALUE: dateFormatter(start)\n });\n const endDesc = translations.vis_labelAndValue({\n LABEL: translations.gantt_labelEnd(),\n VALUE: dateFormatter(end)\n });\n desc.push(startDesc);\n desc.push(endDesc);\n } else {\n const dateDesc = translations.vis_labelAndValue({\n LABEL: translations.gantt_labelDate(),\n VALUE: dateFormatter(start)\n });\n desc.push(dateDesc);\n }\n if (task.label) {\n const labelDesc = translations.vis_labelAndValue({\n LABEL: translations.gantt_labelLabel(),\n VALUE: task.label\n });\n desc.push(labelDesc);\n }\n return desc.join('; ');\n};\n\n/**\n * Gets the aria label for the task.\n * @param taskObj The task layout object.\n * @param rowData The rows data.\n * @param dateFormatter The date formatter.\n * @param translations The translations bundle.\n * @returns The aria label for the task.\n */\nconst getTaskAriaLabel = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n taskObj: GanttTaskLayoutObj<K2>,\n rowData: GanttProps<K2, D1, D2>['rows'],\n dateFormatter: (date: string) => string,\n translations: BundleType\n) => {\n const data = rowData[taskObj.rowIndex].tasks[taskObj.index];\n const accessibleLabel =\n data.accessibleLabel !== undefined\n ? data.accessibleLabel\n : getDefaultTaskAccessibleLabel<K1, K2, D1, D2>(\n taskObj,\n rowData,\n dateFormatter,\n translations\n );\n\n return generateAriaLabel(translations, accessibleLabel, { isSelected: taskObj.isSelected });\n};\n\n/**\n * Gets the aria label for the row label\n * @param rowObj The row layout object.\n * @param rowData The rows data.\n * @returns The aria label for the row label.\n */\nconst getRowLabelAriaLabel = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n rowObj: GanttRowLayoutObj<K1, K2>,\n rowData: GanttProps<K2, D1, D2>['rows']\n) => {\n // TODO: There will be states when we support tree data\n const data = rowData[rowObj.index];\n const accessibleLabel = data.accessibleLabel || data.label;\n return accessibleLabel;\n};\n\nexport { getTaskAriaLabel, getRowLabelAriaLabel };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { rowAxisStyles, rowBackgroundStyles } from './themes/GanttStyles.css';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport type { GanttProps, GanttRowData, GanttTaskData } from './gantt.types';\nimport { getRowLabelAriaLabel } from './utils/ariaUtils';\nimport { GanttRowLayoutObj } from './utils/dataLayoutUtils';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n rowObj: GanttRowLayoutObj<K1, K2>;\n rowData: GanttProps<K2, D1, D2>['rows'];\n isRowSelected: boolean;\n isFocused: boolean;\n isHorizontalGridlinesVisible: boolean;\n ariaActive?: { dataId: K1; ariaId: string; type: 'rowLabel' };\n children: ComponentChildren;\n};\n\nexport function GanttRowLabelContainer<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n rowObj,\n rowData,\n isRowSelected,\n isFocused,\n isHorizontalGridlinesVisible,\n ariaActive,\n children\n}: Props<K1, K2, D1, D2>) {\n const ariaLabel = getRowLabelAriaLabel(rowObj, rowData);\n return (\n <div\n id={ariaActive?.dataId === rowObj.id ? ariaActive.ariaId : undefined}\n key={rowObj.id}\n data-oj-row-index={rowObj.index}\n role=\"row\"\n aria-label={ariaLabel}\n class={classNames([\n rowAxisStyles.labelContainer,\n isRowSelected && rowBackgroundStyles.selected,\n isFocused && rowAxisStyles.labelContainerFocused,\n isHorizontalGridlinesVisible && rowAxisStyles.withLabelSeparatorBottom\n ])}>\n <div role=\"rowheader\">{children}</div>\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { RefObject, ComponentChildren } from 'preact';\nimport { Layer } from '#UNSAFE_Layer';\nimport { Floating, Placement } from '#UNSAFE_Floating';\nimport { useRef, useState } from 'preact/hooks';\nimport { styles } from '#hooks/PRIVATE_useDatatip/themes/useDatatip.css';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { Property } from 'csstype';\nimport { DATATIP_OFFSET } from '#utils/UNSAFE_visUtils/datatipUtils';\n\nexport type Dimension = { x: number; width: number; y: number; height: number };\n\ntype DatatipProps = {\n /**\n * The datatip content.\n */\n content?: ComponentChildren;\n\n /**\n * Whether the datatip is anchored to pointer or element.\n *\n */\n anchor: 'element' | 'pointer';\n\n /**\n * The offset from the anchor element or pointer.\n */\n offset?: {\n mainAxis?: number;\n crossAxis?: number;\n };\n\n /**\n * The border color of the datatip.\n */\n borderColor?: Property.BorderColor;\n\n /**\n * The placement of datatip from anchor point.\n */\n placement?: Placement;\n\n targetFocusRef: RefObject<HTMLElement>;\n};\n\n/**\n * The hook to support custom datatip in visualization components.\n * TODO: THIS IS A TEMPORARY FORK OF PRIVATE_useDatatip until Gantt moves state up.\n */\nexport function useDatatip({\n content,\n placement = 'top-end-corner',\n offset,\n borderColor,\n anchor,\n targetFocusRef\n}: DatatipProps) {\n const uniqueIdRef = useRef<string>(useId());\n const [coords, setCoords] = useState({ x: 0, y: 0 });\n const offsetValue = offset || { mainAxis: DATATIP_OFFSET, crossAxis: -1 * DATATIP_OFFSET };\n const targetRef = useRef<HTMLElement | null>(null);\n\n const onPointerMove = (event: PointerEvent) => {\n setCoords({ x: event.clientX, y: event.clientY });\n };\n\n const onFocus = (event: FocusEvent) => {\n if (event.eventPhase === Event.AT_TARGET || event.eventPhase === Event.BUBBLING_PHASE) {\n targetRef.current = event.target as HTMLElement;\n }\n };\n\n const onShowFocusDatatip = () => {\n targetRef.current = targetFocusRef.current;\n };\n\n const onPointerEnter = (event: PointerEvent) => {\n if (event.eventPhase === Event.AT_TARGET || event.eventPhase === Event.BUBBLING_PHASE) {\n targetRef.current = event.currentTarget as HTMLElement;\n }\n };\n\n // TODO: Why don't others need this? Find a way to remove this workaround\n const onPointerLeave = () => {\n setCoords({ x: -10000, y: -10000 });\n };\n\n const anchorRef = anchor === 'element' ? targetRef : { current: coords };\n const datatipContent =\n content != null ? (\n <Layer>\n <Floating\n anchorRef={anchorRef}\n placement={placement}\n offsetValue={offsetValue}\n flipOptions={{ crossAxis: true, mainAxis: true }}\n shiftOptions={{ crossAxis: false, mainAxis: false }}>\n <div id={uniqueIdRef.current} className={styles.visDatatipStyle} style={{ borderColor }}>\n {content}\n </div>\n </Floating>\n </Layer>\n ) : null;\n\n return {\n datatipContent,\n datatipProps: {\n 'aria-describedby': uniqueIdRef.current,\n onPointerEnter,\n onPointerLeave,\n onPointerMove,\n onFocus,\n onShowFocusDatatip\n }\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type { RefObject } from 'preact';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useDatatip } from './useDatatip_FORK';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport type { GanttRowLayoutObj } from '../utils/dataLayoutUtils';\nimport type { GanttProps, GanttRowData, GanttTaskData } from '../gantt.types';\n\ntype UseGanttRowLabelDatatipOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n targetRef: RefObject<HTMLElement>;\n rowData: GanttProps<K2, D1, D2>['rows'];\n hoveredRowObj?: GanttRowLayoutObj<K1, K2>;\n focusedRowObj?: GanttRowLayoutObj<K1, K2>;\n currentRowLabelInteraction: 'hover' | 'focus' | 'none';\n rowAxisRegion: { x: number; y: number; w: number; h: number };\n};\n\n/**\n * Hook that handles row label datatip.\n */\nconst useGanttRowLabelDatatip = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n targetRef,\n rowData,\n hoveredRowObj,\n focusedRowObj,\n currentRowLabelInteraction,\n rowAxisRegion\n}: UseGanttRowLabelDatatipOptions<K1, K2, D1, D2>) => {\n const { direction } = useUser();\n const isRTL = direction === 'rtl';\n\n const config = {\n hover: {\n rowObj: hoveredRowObj,\n anchor: 'pointer' as const\n },\n focus: {\n rowObj: focusedRowObj,\n anchor: 'element' as const\n },\n none: {\n rowObj: undefined,\n anchor: 'pointer' as const\n }\n };\n\n const { anchor, rowObj: activeRowObj } = config[currentRowLabelInteraction];\n\n const content = activeRowObj ? rowData[activeRowObj.index].accessibleLabel : undefined;\n\n const elementBounds =\n activeRowObj && anchor === 'element'\n ? {\n x: 0,\n y: activeRowObj.y + rowAxisRegion.y,\n width: rowAxisRegion.w,\n height: activeRowObj.height\n }\n : undefined;\n\n return useDatatip({\n content,\n anchor,\n placement: 'top-start',\n offset: calculateOffset(isRTL, rowAxisRegion.w, elementBounds),\n targetFocusRef: targetRef\n });\n};\n\nexport { useGanttRowLabelDatatip };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttRowLabelHover } from '../gantt.types';\nimport { GanttRowLayoutObj } from '../utils/dataLayoutUtils';\n\ntype UseRowLabelPointerGestureOptions<K1, K2> = {\n rowObjs: GanttRowLayoutObj<K1, K2>[];\n hoverProps: GanttRowLabelHover<K1>;\n};\n\n/**\n * Hook that handles row labels pointer gestures.\n */\nconst useGanttRowLabelPointerGestures = <K1, K2>({\n rowObjs,\n hoverProps\n}: UseRowLabelPointerGestureOptions<K1, K2>) => {\n const idExtracter = (event: PointerEvent) => {\n const { clientX: x, clientY: y } = event;\n // Just for fun, an alternative to getInfo -> getElementData that Chart is doing.\n // TODO: think about whether this is more useful if we were to have a\n // Visualization shared \"points to elements\" system. At face value, this actually might be slightly less\n // efficient than the Chart method right now *in general*, because elementsFromPoint gives us ancestors\n // beyond the root. For our row labels purpose however, there's no \"non-rowlabel\" whitespace\n // so we'll definitely hit the element we want in like 2ish iterations so poor performance is not a concern.\n const elements = document.elementsFromPoint(x, y) as HTMLElement[] | SVGElement[];\n for (let i = 0; i < elements.length; i++) {\n const dataRowIndex = elements[i].dataset['ojRowIndex'];\n if (dataRowIndex) {\n return rowObjs[Number(dataRowIndex)].id;\n }\n }\n return undefined;\n };\n\n const onPointerMove = (event: PointerEvent) => {\n const id = idExtracter(event);\n if (id !== hoverProps.hoveredRowLabelId) {\n hoverProps.onRowLabelHoverChange({ id });\n }\n };\n\n return { onPointerMove };\n};\n\nexport { useGanttRowLabelPointerGestures };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport type {\n GanttCurrentRowLabel,\n GanttRowData,\n GanttRowAxisProps as GanttRowAxisObject,\n GanttRowLabelHover,\n GanttTaskData,\n GanttRowAxisLabelContext\n} from './gantt.types';\nimport { getRenderContext } from './utils/rowAxisUtils';\nimport type { getRowDataLayout } from './utils/dataLayoutUtils';\nimport { rowAxisStyles } from './themes/GanttStyles.css';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { GanttRowLabelContainer } from './GanttRowLabelContainer';\nimport { useGanttRowLabelDatatip } from './hooks/useGanttRowLabelDatatip';\nimport { useGanttRowLabelPointerGestures } from './hooks/useGanttRowLabelPointerGestures';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\n\ntype RowDataLayout<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\ntype GanttRowAxisLabel<D1> = NonNullable<GanttRowAxisObject<D1>['labelRenderer']>;\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n innerRef: RefObject<HTMLDivElement>;\n scrollPosition: number;\n resolvedWidth: number;\n resolvedMaxWidth: number;\n currentRowLabel: GanttCurrentRowLabel<K1>['currentRowLabel'];\n currentRowLabelInteraction: 'hover' | 'focus' | 'none';\n layoutObj: {\n labelPaddingInlineStart: number;\n labelPaddingInlineEnd: number;\n rowData: RowDataLayout<K1, K2, D1, D2>['rowData'];\n rowObjs: RowDataLayout<K1, K2, D1, D2>['rowObjs'];\n idRowObjMap: RowDataLayout<K1, K2, D1, D2>['idRowObjMap'];\n isHorizontalGridlinesVisible: boolean;\n };\n ariaActive?: { dataId: K1; ariaId: string; type: 'rowLabel' };\n children: GanttRowAxisLabel<D1>;\n} & GanttRowLabelHover<K1>;\n\nexport function GanttRowAxis<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n innerRef,\n scrollPosition,\n resolvedWidth,\n resolvedMaxWidth,\n currentRowLabel,\n currentRowLabelInteraction,\n hoveredRowLabelId,\n onRowLabelHoverChange,\n layoutObj: {\n labelPaddingInlineStart,\n labelPaddingInlineEnd,\n rowData,\n rowObjs,\n idRowObjMap,\n isHorizontalGridlinesVisible\n },\n ariaActive,\n children\n}: Props<K1, K2, D1, D2>) {\n const width = resolvedWidth !== Infinity ? resolvedWidth : undefined;\n const maxWidth = resolvedMaxWidth !== Infinity ? resolvedMaxWidth : undefined;\n const availableWidth = Math.min(resolvedWidth, resolvedMaxWidth);\n const contextMaxWidth =\n availableWidth === Infinity\n ? -1\n : availableWidth - (labelPaddingInlineStart + labelPaddingInlineEnd);\n\n const gestureProps = useGanttRowLabelPointerGestures({\n rowObjs,\n hoverProps: { hoveredRowLabelId, onRowLabelHoverChange }\n });\n\n const { datatipContent, datatipProps } = useGanttRowLabelDatatip<K1, K2, D1, D2>({\n rowData,\n hoveredRowObj: hoveredRowLabelId && idRowObjMap.get(hoveredRowLabelId),\n focusedRowObj: currentRowLabel?.isFocused ? idRowObjMap.get(currentRowLabel.id) : undefined,\n currentRowLabelInteraction,\n // TODO: Evaluate whether we should get real element bounds by measuring.\n // It's unfortunate that we need to measure JUST for keyboard datatip positioning...\n rowAxisRegion: {\n x: 0,\n y: -scrollPosition,\n w: (labelPaddingInlineStart + labelPaddingInlineEnd) * 2,\n h: -1\n },\n targetRef: innerRef\n });\n\n return (\n <div\n ref={innerRef}\n {...mergeProps(gestureProps, datatipProps)}\n class={classNames([\n rowAxisStyles.base,\n isHorizontalGridlinesVisible && rowAxisStyles.withSeparatorTop\n ])}\n style={{ width, maxWidth }}>\n <div role=\"grid\" class={rowAxisStyles.contentContainer} style={{ top: -scrollPosition }}>\n {rowObjs.map((rowObj) => {\n return (\n <GanttRowLabelContainer\n ariaActive={ariaActive}\n rowObj={rowObj}\n rowData={rowData}\n isRowSelected={rowObj.isSelected}\n isFocused={!!currentRowLabel?.isFocused && currentRowLabel.id === rowObj.id}\n isHorizontalGridlinesVisible={isHorizontalGridlinesVisible}>\n {children(\n getRenderContext(rowObj, rowData, contextMaxWidth) as GanttRowAxisLabelContext<D1>\n )}\n </GanttRowLabelContainer>\n );\n })}\n </div>\n {datatipContent}\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\ntype Range = { min: number; max: number };\n\n/**\n * Gets the new range given the initial, global, and range ratio to apply. This applies a linear scale.\n * @param rangeRatio The range ratio to scale by.\n * @param initialRange The initial range.\n * @param globalRange The global range.\n * @returns The new linearly scaled range.\n */\nconst getNewRange = (rangeRatio: number, initialRange: Range, globalRange: Range) => {\n const dRangeMin = initialRange.max - globalRange.max;\n const dRangeMax = initialRange.min - globalRange.min;\n const dRange = rangeRatio * (initialRange.max - initialRange.min);\n const dRangeClamped = Math.max(dRangeMin, Math.min(dRange, dRangeMax));\n return {\n // Ensure positive min;\n // For vertical scroll for example,\n // it's possible for globalRange to be smaller than initialRange\n // due to the component being taller than the height the data occupies\n // e.g. tall Gantt with 1 row\n min: Math.max(0, initialRange.min - dRangeClamped),\n max: initialRange.max - dRangeClamped\n };\n};\n\n/**\n * Performs a pan, by invoking the given onRangeChange callback with the new range.\n * @param rangeRatio The range ratio to scale by.\n * @param initialRange The initial range.\n * @param prevRange The previous range.\n * @param globalRange The global range.\n * @param onRangeChange The callback to invoke with the new range.\n * @returns The new range and whether the range actually changed.\n */\nconst pan = (\n rangeRatio: number,\n initialRange: Range,\n prevRange: Range,\n globalRange: Range,\n onRangeChange: (detail: Range) => void\n) => {\n const newRange = getNewRange(rangeRatio, initialRange, globalRange);\n const { min: prevMin, max: prevMax } = prevRange;\n const isRangeChanged = newRange.min !== prevMin || newRange.max !== prevMax;\n isRangeChanged && onRangeChange(newRange);\n return { newRange, isRangeChanged };\n};\n\nexport { type Range, pan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { useDrag } from './useDrag';\nimport { Range, pan } from '../utils/panUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\n\ntype UseDragPanOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n width: number;\n height: number;\n getRangeX: () => Range;\n getRangeY: () => Range;\n globalRangeX: Range;\n globalRangeY: Range;\n onRangeXChange: (detail: Range) => void;\n onRangeYChange: (detail: Range) => void;\n onDragPanStart?: () => void;\n onDragPanEnd?: () => void;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles drag pan gestures.\n */\nconst useDragPan = ({\n captureTargetRef,\n width,\n height,\n getRangeX,\n getRangeY,\n globalRangeX,\n globalRangeY,\n onRangeXChange,\n onRangeYChange,\n onDragPanStart,\n onDragPanEnd,\n isDisabled = false\n}: UseDragPanOptions) => {\n const { direction } = useUser();\n const prevRangeX = useRef({ min: 0, max: 0 });\n const prevRangeY = useRef({ min: 0, max: 0 });\n const initialRangeX = useRef({ min: 0, max: 0 });\n const initialRangeY = useRef({ min: 0, max: 0 });\n const isPanning = useRef(false);\n\n const dragProps = useDrag({\n captureTargetRef,\n onDragStart: () => {\n initialRangeX.current = getRangeX();\n initialRangeY.current = getRangeY();\n onDragPanStart && onDragPanStart();\n },\n onDragMove: ({ dx, dy }) => {\n isPanning.current = true;\n\n const { newRange: newRangeX } = pan(\n ((direction === 'rtl' ? -1 : 1) * dx) / width,\n initialRangeX.current,\n prevRangeX.current,\n globalRangeX,\n onRangeXChange\n );\n prevRangeX.current = newRangeX;\n\n const { newRange: newRangeY } = pan(\n dy / height,\n initialRangeY.current,\n prevRangeY.current,\n globalRangeY,\n onRangeYChange\n );\n prevRangeY.current = newRangeY;\n },\n onDragEnd: ({ originalEvent }) => {\n // If panning occurred, call preventDefault to prevent selection from occurring\n if (isPanning.current) originalEvent.preventDefault();\n isPanning.current = false;\n onDragPanEnd && onDragPanEnd();\n },\n isDisabled\n });\n\n return isDisabled ? {} : dragProps;\n};\n\nexport { useDragPan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useRef } from 'preact/hooks';\nimport { useWheel } from './useWheel';\nimport { Range, pan } from '../utils/panUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\n\ntype UseWheelPanOptions = {\n width: number;\n height: number;\n getRangeX: () => Range;\n getRangeY: () => Range;\n globalRangeX: Range;\n globalRangeY: Range;\n onRangeXChange: (detail: Range) => void;\n onRangeYChange: (detail: Range) => void;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles wheel pan gestures.\n */\nconst useWheelPan = ({\n width,\n height,\n getRangeX,\n getRangeY,\n globalRangeX,\n globalRangeY,\n onRangeXChange,\n onRangeYChange,\n isDisabled = false\n}: UseWheelPanOptions) => {\n const { direction } = useUser();\n const prevRangeX = useRef({ min: 0, max: 0 });\n const prevRangeY = useRef({ min: 0, max: 0 });\n\n const wheelProps = useWheel({\n onWheel: ({ deltaX: dx, deltaY: dy, ctrlKey }) => {\n // WheelEvent with ctrlKey means pinch/zoom gesture\n if (ctrlKey) return;\n\n const { newRange: newRangeX } = pan(\n ((direction === 'rtl' ? -1 : 1) * dx) / width,\n getRangeX(),\n prevRangeX.current,\n globalRangeX,\n onRangeXChange\n );\n prevRangeX.current = newRangeX;\n\n const { newRange: newRangeY } = pan(\n dy / height,\n getRangeY(),\n prevRangeY.current,\n globalRangeY,\n onRangeYChange\n );\n prevRangeY.current = newRangeY;\n },\n isDisabled\n });\n\n return isDisabled ? {} : wheelProps;\n};\n\nexport { useWheelPan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { usePinch } from './usePinch';\nimport { getGestureZoomFactor, zoomTime } from '../utils/timeZoomUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { OnTimeComponentViewportChange, TimeComponentZoomParameters } from '../timeComponent.types';\nimport { getPositionTime } from '../utils/timeUtils';\n\ntype UsePinchZoomOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n width: number;\n startTime: number;\n endTime: number;\n viewportStartTime: number;\n viewportEndTime: number;\n majorAxisZoomOrder?: TimeComponentZoomParameters['majorAxisZoomOrder'];\n majorAxisZoomOrderIndex?: TimeComponentZoomParameters['majorAxisZoomOrderIndex'];\n minorAxisZoomOrder: TimeComponentZoomParameters['minorAxisZoomOrder'];\n minorAxisZoomOrderIndex: TimeComponentZoomParameters['minorAxisZoomOrderIndex'];\n zoomOrderViewDurationThresholds: ReturnType<\n TimeComponentZoomParameters['getZoomOrderViewDurationThresholds']\n >;\n minZoomViewportDuration: TimeComponentZoomParameters['minZoomViewportDuration'];\n maxZoomViewportDuration: TimeComponentZoomParameters['maxZoomViewportDuration'];\n onViewportChange?: OnTimeComponentViewportChange;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles pinch zoom gestures.\n */\nconst usePinchZoom = ({\n captureTargetRef,\n width,\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n zoomOrderViewDurationThresholds,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n onViewportChange,\n isDisabled = false\n}: UsePinchZoomOptions) => {\n const { direction } = useUser();\n const isRTL = direction === 'rtl';\n\n const pinchProps = usePinch({\n captureTargetRef,\n onPinchZoomChange: ({ origin: { x }, delta }) => {\n const time = getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL);\n zoomTime(\n time,\n viewportStartTime,\n viewportEndTime,\n startTime,\n endTime,\n getGestureZoomFactor(delta),\n minZoomViewportDuration,\n maxZoomViewportDuration,\n zoomOrderViewDurationThresholds,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n onViewportChange\n );\n },\n isDisabled\n });\n\n return isDisabled ? {} : pinchProps;\n};\n\nexport { usePinchZoom };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useWheel } from './useWheel';\nimport { getGestureZoomFactor, zoomTime } from '../utils/timeZoomUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { OnTimeComponentViewportChange, TimeComponentZoomParameters } from '../timeComponent.types';\nimport { getPositionTime } from '../utils/timeUtils';\n\ntype UseWheelZoomOptions = {\n width: number;\n startTime: number;\n endTime: number;\n viewportStartTime: number;\n viewportEndTime: number;\n majorAxisZoomOrder?: TimeComponentZoomParameters['majorAxisZoomOrder'];\n majorAxisZoomOrderIndex?: TimeComponentZoomParameters['majorAxisZoomOrderIndex'];\n minorAxisZoomOrder: TimeComponentZoomParameters['minorAxisZoomOrder'];\n minorAxisZoomOrderIndex: TimeComponentZoomParameters['minorAxisZoomOrderIndex'];\n zoomOrderViewDurationThresholds: ReturnType<\n TimeComponentZoomParameters['getZoomOrderViewDurationThresholds']\n >;\n minZoomViewportDuration: TimeComponentZoomParameters['minZoomViewportDuration'];\n maxZoomViewportDuration: TimeComponentZoomParameters['maxZoomViewportDuration'];\n onViewportChange?: OnTimeComponentViewportChange;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles wheen zoom gestures.\n */\nconst useWheelZoom = ({\n width,\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n zoomOrderViewDurationThresholds,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n onViewportChange,\n isDisabled = false\n}: UseWheelZoomOptions) => {\n const { direction } = useUser();\n const isRTL = direction === 'rtl';\n\n const wheelProps = useWheel({\n onWheel: ({ x, deltaY, ctrlKey }) => {\n // WheelEvent with ctrlKey means pinch/zoom gesture\n if (!ctrlKey) return;\n\n const time = getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL);\n zoomTime(\n time,\n viewportStartTime,\n viewportEndTime,\n startTime,\n endTime,\n getGestureZoomFactor(deltaY),\n minZoomViewportDuration,\n maxZoomViewportDuration,\n zoomOrderViewDurationThresholds,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n onViewportChange\n );\n },\n isDisabled\n });\n\n return isDisabled ? {} : wheelProps;\n};\n\nexport { useWheelZoom };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { zoomTime } from '../utils/timeZoomUtils';\nimport { KbZoomEvent } from '../utils/keyboardUtils';\nimport { OnTimeComponentViewportChange, TimeComponentZoomParameters } from '../timeComponent.types';\n\ntype UseKbZoomOptions = {\n startTime: number;\n endTime: number;\n viewportStartTime: number;\n viewportEndTime: number;\n majorAxisZoomOrder?: TimeComponentZoomParameters['majorAxisZoomOrder'];\n majorAxisZoomOrderIndex?: TimeComponentZoomParameters['majorAxisZoomOrderIndex'];\n minorAxisZoomOrder: TimeComponentZoomParameters['minorAxisZoomOrder'];\n minorAxisZoomOrderIndex: TimeComponentZoomParameters['minorAxisZoomOrderIndex'];\n zoomOrderViewDurationThresholds: ReturnType<\n TimeComponentZoomParameters['getZoomOrderViewDurationThresholds']\n >;\n minZoomViewportDuration: TimeComponentZoomParameters['minZoomViewportDuration'];\n maxZoomViewportDuration: TimeComponentZoomParameters['maxZoomViewportDuration'];\n onViewportChange?: OnTimeComponentViewportChange;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles keyboard zooming gestures.\n */\nconst useKbZoom = ({\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n zoomOrderViewDurationThresholds,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n onViewportChange,\n isDisabled = false\n}: UseKbZoomOptions) => {\n const onKbZoomIn = (e: KbZoomEvent) => {\n const viewportCenter = viewportStartTime + (viewportEndTime - viewportStartTime) / 2;\n zoomTime(\n viewportCenter,\n viewportStartTime,\n viewportEndTime,\n startTime,\n endTime,\n e.detail.zoomFactor,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n zoomOrderViewDurationThresholds,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n onViewportChange\n );\n };\n\n const onKbZoomOut = (e: KbZoomEvent) => {\n const viewportCenter = viewportStartTime + (viewportEndTime - viewportStartTime) / 2;\n zoomTime(\n viewportCenter,\n viewportStartTime,\n viewportEndTime,\n startTime,\n endTime,\n e.detail.zoomFactor,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n zoomOrderViewDurationThresholds,\n minorAxisZoomOrder,\n minorAxisZoomOrderIndex,\n majorAxisZoomOrder,\n majorAxisZoomOrderIndex,\n onViewportChange\n );\n };\n\n return isDisabled\n ? {}\n : {\n onKbZoomIn,\n onKbZoomOut\n };\n};\n\nexport { useKbZoom };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useRef } from 'preact/hooks';\nimport { Range, pan } from '../utils/panUtils';\nimport { KbPanEvent } from '../utils/keyboardUtils';\n\ntype UseKbPanOptions = {\n width: number;\n height: number;\n getRangeX: () => Range;\n getRangeY: () => Range;\n globalRangeX: Range;\n globalRangeY: Range;\n onRangeXChange: (detail: Range) => void;\n onRangeYChange: (detail: Range) => void;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that enables and handles keyboard panning gesture.\n */\nconst useKbPan = ({\n getRangeX,\n getRangeY,\n globalRangeX,\n globalRangeY,\n onRangeXChange,\n onRangeYChange,\n isDisabled = false\n}: UseKbPanOptions) => {\n const prevRangeX = useRef({ min: 0, max: 0 });\n const prevRangeY = useRef({ min: 0, max: 0 });\n\n const onKbPanHorizontal = (e: KbPanEvent) => {\n const {\n detail: { rangeRatio }\n } = e;\n const { newRange: newRangeX } = pan(\n rangeRatio,\n getRangeX(),\n prevRangeX.current,\n globalRangeX,\n onRangeXChange\n );\n prevRangeX.current = newRangeX;\n };\n\n const onKbPanVertical = (e: KbPanEvent) => {\n const {\n detail: { rangeRatio }\n } = e;\n const { newRange: newRangeY } = pan(\n rangeRatio,\n getRangeY(),\n prevRangeY.current,\n globalRangeY,\n onRangeYChange\n );\n prevRangeY.current = newRangeY;\n };\n\n return isDisabled\n ? {}\n : {\n onKbPanHorizontal,\n onKbPanVertical\n };\n};\n\nexport { useKbPan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttRowData, GanttTaskData } from '#UNSAFE_Gantt/gantt.types';\nimport type { getRowDataLayout } from './dataLayoutUtils';\n\ntype RowDataLayout<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n\n/**\n * Gets the default task to initially receive logical focus upon component focus.\n * @param param0 The (unresolved) row data layout.\n * @returns The task (if there are any) to receive focus.\n */\nconst getDefaultInitialFocusTask = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n rowObjs\n}: RowDataLayout<K1, K2, D1, D2>) => {\n // Default to the first task of the first row (if it exists)\n if (rowObjs.length === 0) return;\n if (rowObjs[0].taskObjs.length === 0) return;\n return { id: rowObjs[0].taskObjs[0].id, isFocused: true };\n};\n\n/**\n * Gets next or previous navigable task from the current task.\n * @param currentTask The current task.\n * @param param1 The (unresolved) row data layout.\n * @param direction 'next' or 'prev'\n * @returns The adjacent navigable task according to the given direction.\n */\nconst getAdjacentTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n { rowObjs, idTaskObjMap }: RowDataLayout<K1, K2, D1, D2>,\n direction: 'next' | 'prev'\n) => {\n const currentTaskObj = idTaskObjMap.get(currentTask);\n if (!currentTaskObj) return;\n\n const indexOffset = direction === 'next' ? 1 : -1;\n const { rowIndex, renderIndex: index } = currentTaskObj;\n\n // Return adjacent task in the row if it exists\n const adjTaskObj = rowObjs[rowIndex].taskObjs[index + indexOffset];\n if (adjTaskObj) return adjTaskObj.id;\n\n // Return a task in adjacent row if it exists\n // For 'next' direction, this is the first task of the next row\n // For 'prev' direction, this is the last task of the previous row\n const adjRowObj = rowObjs[rowIndex + indexOffset];\n if (adjRowObj) {\n const adjTaskObj =\n direction === 'next'\n ? adjRowObj.taskObjs[0]\n : adjRowObj.taskObjs[adjRowObj.taskObjs.length - 1];\n if (adjTaskObj) return adjTaskObj.id;\n }\n\n return;\n};\n\n/**\n * Gets above or below navigable task from the current task.\n * @param currentTask The current task.\n * @param param1 The (unresolved) row data layout.\n * @param direction 'up' or 'down'\n * @returns The adjacent navigable task according to the given direction.\n */\nconst getVerticalTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n { rowObjs, idTaskObjMap }: RowDataLayout<K1, K2, D1, D2>,\n direction: 'up' | 'down'\n) => {\n const currentTaskObj = idTaskObjMap.get(currentTask);\n if (!currentTaskObj) return;\n\n const rowIndexOffset = direction === 'down' ? 1 : -1;\n const { rowIndex } = currentTaskObj;\n\n // Return first task in the adjacent row if it exists\n const adjRowObj = rowObjs[rowIndex + rowIndexOffset];\n if (!adjRowObj) return;\n\n const adjTaskObj = adjRowObj.taskObjs[0];\n if (adjTaskObj) return adjTaskObj.id;\n\n return;\n};\n\n/**\n * Gets the next navigable task from the current task.\n * @param currentTask The current task.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The next navigable task.\n */\nconst getNextTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getAdjacentTaskNavigable(currentTask, rowDataLayout, 'next');\n\n/**\n * Gets the previous navigable task from the current task.\n * @param currentTask The current task.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The previous navigable task.\n */\nconst getPrevTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getAdjacentTaskNavigable(currentTask, rowDataLayout, 'prev');\n\n/**\n * Gets the navigable task above the current task.\n * @param currentTask The current task.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The navigable task above.\n */\nconst getAboveTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getVerticalTaskNavigable(currentTask, rowDataLayout, 'up');\n\n/**\n * Gets the navigable task below the current task.\n * @param currentTask The current task.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The navigable task below.\n */\nconst getBelowTaskNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getVerticalTaskNavigable(currentTask, rowDataLayout, 'down');\n\n/**\n * Gets above or below navigable row label from the current row label.\n * @param currentRowLabel The current row label.\n * @param param1 The (unresolved) row data layout.\n * @param direction 'up' or 'down'\n * @returns The adjacent navigable row label according to the given direction.\n */\nconst getAdjacentRowLabelNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentRowLabel: K1,\n { rowObjs, idRowObjMap }: RowDataLayout<K1, K2, D1, D2>,\n direction: 'up' | 'down'\n) => {\n const currentRowObj = idRowObjMap.get(currentRowLabel);\n if (!currentRowObj) return;\n\n const rowIndexOffset = direction === 'down' ? 1 : -1;\n const { index: rowIndex } = currentRowObj;\n const adjRowObj = rowObjs[rowIndex + rowIndexOffset];\n if (!adjRowObj) return;\n\n return adjRowObj.id;\n};\n\n/**\n * Gets the navigable row label above the current row label.\n * @param currentRowLabel The current row label.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The navigable row label above.\n */\nconst getAboveRowLabelNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentRowLabel: K1,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getAdjacentRowLabelNavigable(currentRowLabel, rowDataLayout, 'up');\n\n/**\n * Gets the navigable row label below the current row label.\n * @param currentRowLabel The current row label.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The navigable row label below.\n */\nconst getBelowRowLabelNavigable = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentRowLabel: K1,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => getAdjacentRowLabelNavigable(currentRowLabel, rowDataLayout, 'down');\n\n/**\n * Gets the row label navigable from the current task.\n * @param currentTask The current task.\n * @param rowDataLayout The (unresolved) row data layout.\n * @returns The row label navigable from the current task.\n */\nconst getRowLabelNavigableFromTask = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentTask: K2,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>\n) => {\n // taskObj should not be undefined because you must start from\n // a focused task to get to a rowlabel.\n const taskObj = rowDataLayout.idTaskObjMap.get(currentTask)!;\n const { rowIndex } = taskObj;\n const rowObj = rowDataLayout.rowObjs[rowIndex];\n return rowObj.id;\n};\n\n/**\n * Gets the task navigable from the current row label.\n * @param currentRowLabel The current row label.\n * @param rowDataLayout The (unresolved) row data layout.\n * @param currentTask If any, the last current task (e.g. the last focused task).\n * @returns The task navigable from the current row label.\n */\nconst getTaskNavigableFromRowLabel = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n currentRowLabel: K1,\n rowDataLayout: RowDataLayout<K1, K2, D1, D2>,\n currentTask?: K2\n) => {\n if (currentTask !== undefined) {\n const taskObj = rowDataLayout.idTaskObjMap.get(currentTask);\n if (taskObj) {\n const { rowIndex } = taskObj;\n const rowObj = rowDataLayout.rowObjs[rowIndex];\n if (rowObj.id === currentRowLabel) {\n return currentTask;\n }\n }\n }\n const rowObj = rowDataLayout.idRowObjMap.get(currentRowLabel);\n const firstTaskObj = rowObj?.taskObjs[0];\n if (firstTaskObj) {\n return firstTaskObj.id;\n }\n const defaultTask = getDefaultInitialFocusTask(rowDataLayout);\n return defaultTask?.id;\n};\n\n/**\n * Gets the dx and dy necessary to pan the given region into view.\n * @param region The target region to pan into view.\n * @param viewportRegion The viewport region.\n * @param isRTL Whether the reading direction is rtl.\n * @param xPriority The side in the x direction to prioritize scroll into view.\n * @param yPriority The side in the y direction to prioritize scroll into view.\n * @param overShoot The extra amount of space to pan by.\n * @returns The dx and dy values.\n */\nconst getPanIntoViewValues = (\n region: { x: number; y: number; w: number; h: number },\n viewportRegion: { x: number; y: number; w: number; h: number },\n isRTL: boolean,\n xPriority: 'start' | 'end' | 'auto' = 'auto',\n yPriority: 'top' | 'bottom' | 'auto' = 'auto',\n overShoot = 0\n) => {\n const deltaXLeftVisible = Math.min(region.x - viewportRegion.x - overShoot, 0);\n const deltaXRightVisible = Math.max(\n 0,\n region.x + region.w - (viewportRegion.x + viewportRegion.w) + overShoot\n );\n const deltaXStartVisible = isRTL ? deltaXRightVisible : deltaXLeftVisible;\n const deltaXEndVisible = isRTL ? deltaXLeftVisible : deltaXRightVisible;\n\n let deltaX = 0;\n switch (xPriority) {\n case 'start':\n deltaX = deltaXStartVisible;\n break;\n case 'end':\n deltaX = deltaXEndVisible;\n break;\n case 'auto':\n deltaX = (!isRTL ? deltaXEndVisible > 0 : deltaXEndVisible < 0)\n ? deltaXEndVisible\n : deltaXStartVisible; // 'end' wins if just 'end', or both sides, require panning. 'start' otherwise.\n break;\n default: {\n const _exhaustiveCheck: never = xPriority;\n return _exhaustiveCheck;\n }\n }\n\n const deltaYTopVisible = Math.min(region.y - viewportRegion.y - overShoot, 0);\n const deltaYBottomVisible = Math.max(\n 0,\n region.y + region.h - (viewportRegion.y + viewportRegion.h) + overShoot\n );\n\n let deltaY = 0;\n switch (yPriority) {\n case 'top':\n deltaY = deltaYTopVisible;\n break;\n case 'bottom':\n deltaY = deltaYBottomVisible;\n break;\n case 'auto':\n deltaY = deltaYTopVisible < 0 ? deltaYTopVisible : deltaYBottomVisible; // 'top' wins if just 'top', or both sides, require panning. 'bottom' otherwise.\n break;\n default: {\n const _exhaustiveCheck: never = yPriority;\n return _exhaustiveCheck;\n }\n }\n\n return { dx: -deltaX, dy: -deltaY };\n};\n\nexport {\n getDefaultInitialFocusTask,\n getNextTaskNavigable,\n getPrevTaskNavigable,\n getAboveTaskNavigable,\n getBelowTaskNavigable,\n getPanIntoViewValues,\n getAboveRowLabelNavigable,\n getBelowRowLabelNavigable,\n getRowLabelNavigableFromTask,\n getTaskNavigableFromRowLabel\n};\n","import { useRef } from 'preact/hooks';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useKbPan } from '#PRIVATE_TimeComponent/hooks/useKbPan';\nimport { getResolvedTaskObj, type ViewportLayout } from '../utils/dataLayoutUtils';\nimport { getPanIntoViewValues } from '../utils/navigationUtils';\nimport { pan } from '#PRIVATE_TimeComponent/utils/panUtils';\nimport type { GanttRowData, GanttTaskData } from '../gantt.types';\n\ntype UseGanttKbPan<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = Parameters<typeof useKbPan>[0] & {\n viewportLayout: ViewportLayout<K1, K2, D1, D2>;\n dataBodyWidth: number;\n dataBodyHeight: number;\n viewportStartTime: number;\n viewportEndTime: number;\n scrollPosition: number;\n};\n\n/**\n * Hook that handles keyboard panning related gestures on a Gantt.\n */\nconst useGanttKbPan = <K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>>({\n viewportLayout,\n dataBodyWidth,\n dataBodyHeight,\n viewportStartTime,\n viewportEndTime,\n scrollPosition,\n ...panOptions\n}: UseGanttKbPan<K1, K2, D1, D2>) => {\n const { direction } = useUser();\n const isRTL = direction === 'rtl';\n const kbPanProps = useKbPan(panOptions);\n\n const prevRangeX = useRef({ min: 0, max: 0 });\n const prevRangeY = useRef({ min: 0, max: 0 });\n const panBy = (dx = 0, dy = 0) => {\n if (dx !== 0) {\n const { newRange: newRangeX } = pan(\n dx / dataBodyWidth,\n panOptions.getRangeX(),\n prevRangeX.current,\n panOptions.globalRangeX,\n panOptions.onRangeXChange\n );\n prevRangeX.current = newRangeX;\n }\n\n if (dy !== 0) {\n const { newRange: newRangeY } = pan(\n dy / dataBodyHeight,\n panOptions.getRangeY(),\n prevRangeY.current,\n panOptions.globalRangeY,\n panOptions.onRangeYChange\n );\n prevRangeY.current = newRangeY;\n }\n };\n\n const onKbPanTaskIntoView = (e: CustomEvent<{ id: K2 }>) => {\n let taskObj = viewportLayout.idTaskObjMap.get(e.detail.id);\n if (!taskObj) {\n // task may be outside viewport\n const unresolvedTaskObj = viewportLayout.allIdTaskObjMap.get(e.detail.id);\n if (!unresolvedTaskObj) return;\n taskObj = getResolvedTaskObj(\n unresolvedTaskObj,\n viewportStartTime,\n viewportEndTime,\n dataBodyWidth,\n scrollPosition,\n isRTL\n );\n }\n\n const { x, y, width: w, height: h } = taskObj;\n\n const region = { x, y, w, h };\n const viewportRegion = { x: 0, y: 0, w: dataBodyWidth, h: dataBodyHeight };\n const overShoot = viewportLayout.rowPadding;\n const { dx, dy } = getPanIntoViewValues(\n region,\n viewportRegion,\n isRTL,\n 'auto',\n 'auto',\n overShoot\n );\n panBy(dx, dy);\n };\n\n const onKbPanRowIntoView = (e: CustomEvent<{ id: K1 }>) => {\n const rowObj = viewportLayout.allIdRowObjMap.get(e.detail.id);\n if (!rowObj) return;\n\n const region = { x: 0, y: rowObj.y - scrollPosition, w: dataBodyWidth, h: rowObj.height };\n const viewportRegion = { x: 0, y: 0, w: dataBodyWidth, h: dataBodyHeight };\n const overShoot = viewportLayout.rowPadding;\n const { dy } = getPanIntoViewValues(region, viewportRegion, isRTL, 'auto', 'auto', overShoot);\n panBy(0, dy);\n };\n\n return panOptions.isDisabled\n ? {}\n : {\n ...kbPanProps,\n onKbPanTaskIntoView,\n onKbPanRowIntoView\n };\n};\n\nexport { useGanttKbPan };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useDragPan } from '#PRIVATE_TimeComponent/hooks/useDragPan';\nimport { useWheelPan } from '#PRIVATE_TimeComponent/hooks/useWheelPan';\nimport { usePinchZoom } from '#PRIVATE_TimeComponent/hooks/usePinchZoom';\nimport { useWheelZoom } from '#PRIVATE_TimeComponent/hooks/useWheelZoom';\nimport { useKbZoom } from '#PRIVATE_TimeComponent/hooks/useKbZoom';\nimport { useGanttKbPan } from './useGanttKbPan';\nimport { getISOString } from '#PRIVATE_TimeComponent/utils/timeUtils';\nimport {\n OnTimeComponentViewportChange,\n TimeComponentScale,\n TimeComponentZoomParameters\n} from '#PRIVATE_TimeComponent/timeComponent.types';\nimport { GanttRowData, GanttTaskData, OnGanttScrollPositionChange } from '../gantt.types';\nimport type { ViewportLayout } from '../utils/dataLayoutUtils';\n\ntype UsePanZoomGestureOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n captureTargetRef: RefObject<HTMLDivElement>;\n width: number;\n height: number;\n viewportStartTime: number;\n viewportEndTime: number;\n majorAxisScale?: TimeComponentScale;\n minorAxisScale: TimeComponentScale;\n startTime: number;\n endTime: number;\n zoomParameters: TimeComponentZoomParameters;\n scrollPosition: number;\n dataBodyHeight: number;\n totalRowsHeight: number;\n viewportLayout: ViewportLayout<K1, K2, D1, D2>;\n onViewportChange?: OnTimeComponentViewportChange;\n onScrollPositionChange?: OnGanttScrollPositionChange;\n onCursorChange?: (detail: { cursor: 'grabbing' | 'grabbingUnset' }) => void;\n isPanDisabled?: boolean;\n isZoomDisabled?: boolean;\n};\n\n/**\n * Hook that handles pan/zoom related gestures on a Gantt.\n */\nconst useGanttPanZoomGestures = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n captureTargetRef,\n width,\n height,\n viewportStartTime,\n viewportEndTime,\n majorAxisScale,\n minorAxisScale,\n startTime,\n endTime,\n zoomParameters,\n scrollPosition,\n dataBodyHeight,\n totalRowsHeight,\n viewportLayout,\n onViewportChange,\n onScrollPositionChange,\n onCursorChange,\n isPanDisabled,\n isZoomDisabled\n}: UsePanZoomGestureOptions<K1, K2, D1, D2>) => {\n const panOptions = {\n captureTargetRef,\n width,\n height,\n getRangeX: () => ({ min: viewportStartTime, max: viewportEndTime }),\n getRangeY: () => ({ min: scrollPosition, max: scrollPosition + dataBodyHeight }),\n globalRangeX: { min: startTime, max: endTime },\n globalRangeY: { min: 0, max: totalRowsHeight },\n onRangeXChange: (newRange: { min: number; max: number }) => {\n onViewportChange?.({\n viewportStart: getISOString(newRange.min),\n viewportEnd: getISOString(newRange.max),\n majorAxisScale,\n minorAxisScale\n });\n },\n onRangeYChange: (newRange: { min: number; max: number }) => {\n onScrollPositionChange?.({\n y: newRange.min\n });\n },\n isDisabled: isPanDisabled\n };\n\n const { getZoomOrderViewDurationThresholds, ...restZoomParameters } = zoomParameters;\n const zoomOrderViewDurationThresholds = getZoomOrderViewDurationThresholds(width);\n const zoomOptions = {\n captureTargetRef,\n width,\n ...restZoomParameters,\n zoomOrderViewDurationThresholds,\n onViewportChange,\n isDisabled: isZoomDisabled\n };\n\n const dragPanProps = useDragPan({\n ...panOptions,\n onDragPanStart: () => onCursorChange?.({ cursor: 'grabbing' }),\n onDragPanEnd: () => onCursorChange?.({ cursor: 'grabbingUnset' })\n });\n const wheelPanProps = useWheelPan(panOptions);\n const kbPanProps = useGanttKbPan<K1, K2, D1, D2>({\n ...panOptions,\n viewportLayout,\n dataBodyWidth: width,\n dataBodyHeight,\n viewportStartTime,\n viewportEndTime,\n scrollPosition\n });\n const pinchZoomProps = usePinchZoom(zoomOptions);\n const wheelZoomProps = useWheelZoom(zoomOptions);\n const kbZoomProps = useKbZoom(zoomOptions);\n const gestureProps = mergeProps(\n dragPanProps,\n wheelPanProps,\n kbPanProps,\n pinchZoomProps,\n wheelZoomProps,\n kbZoomProps\n );\n\n return { gestureProps };\n};\n\nexport { useGanttPanZoomGestures };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { getPositionTime } from '#PRIVATE_TimeComponent/utils/timeUtils';\nimport { useSelection } from '#hooks/PRIVATE_useVisSelection';\nimport type {\n GanttCurrentTask,\n GanttRowData,\n GanttSelection as GanttSelectionProps,\n GanttTaskData,\n GanttTaskHover\n} from '../gantt.types';\nimport { type ViewportLayout, supportsSelection } from '../utils/dataLayoutUtils';\nimport { queryTasksSpatialIndex } from '../utils/spatialUtils';\n\ntype UseTaskPointerGestureOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n viewportLayout: ViewportLayout<K1, K2, D1, D2>;\n viewportYOffset: number;\n dataBodyRegion: { x: number; y: number; w: number; h: number };\n viewportStartTime: number;\n viewportEndTime: number;\n width: number;\n isRTL: boolean;\n selectionProps: GanttSelectionProps<K2, D2>;\n hoverProps: GanttTaskHover<K2>;\n currentProps: GanttCurrentTask<K2>;\n onCursorChange?: (detail: { cursor: 'pointer' | 'pointerUnset' }) => void;\n};\n\n/**\n * Hook that handles task pointer gestures.\n */\nconst useGanttTaskPointerGestures = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n viewportLayout,\n viewportYOffset,\n dataBodyRegion,\n viewportStartTime,\n viewportEndTime,\n width,\n isRTL,\n selectionProps,\n hoverProps,\n currentProps,\n onCursorChange\n}: UseTaskPointerGestureOptions<K1, K2, D1, D2>) => {\n const { x: dbx, y: dby, w: dbw, h: dbh } = dataBodyRegion;\n const selectionSupported = supportsSelection(selectionProps.selectionMode);\n\n const idExtracter = (event: Event) => {\n const rowObjs = viewportLayout.allRowObjs;\n const spatialIndex = viewportLayout.spatialIndex;\n const { offsetX: x, offsetY: y } = event as MouseEvent;\n const inDataBody = !(x < dbx || x > dbx + dbw || y < dby || y > dby + dbh);\n if (!inDataBody) return;\n\n const timePoint = {\n time: getPositionTime(x, viewportStartTime, viewportEndTime, width, isRTL),\n y: y + viewportYOffset\n };\n const targetIndices = queryTasksSpatialIndex(rowObjs, spatialIndex.tasks, timePoint);\n if (!targetIndices) return;\n\n const { rowIndex, taskIndex } = targetIndices;\n return rowObjs[rowIndex].taskObjs[taskIndex].id;\n };\n\n const onPointerMove = (event: PointerEvent) => {\n const id = idExtracter(event);\n if (id !== hoverProps.hoveredTaskId) {\n hoverProps.onTaskHoverChange({ id });\n }\n selectionSupported &&\n onCursorChange?.({ cursor: id !== undefined ? 'pointer' : 'pointerUnset' });\n };\n\n const onPointerUp = (event: PointerEvent) => {\n const id = idExtracter(event);\n if (id !== undefined) {\n selectionSupported && onCursorChange?.({ cursor: 'pointer' });\n if (id !== currentProps?.currentTask?.id) {\n currentProps.onCurrentTaskChange({ id, isFocused: false });\n }\n }\n };\n\n const hoverPointerGestureProps = { onPointerMove };\n const focusPointerGestureProps = { onPointerUp };\n\n const {\n selectionProps: { onKeyUp, ...selectionPointerGestureProps },\n selectionContent\n } = useSelection<K2, D2>({\n idExtracter,\n selection: selectionProps.selectedIds,\n selectionMode: selectionProps.selectionMode,\n onChange: selectionProps.onSelectionChange,\n getDataById: viewportLayout.getTaskDataById\n });\n\n const gestureProps = mergeProps(\n hoverPointerGestureProps,\n focusPointerGestureProps,\n selectionPointerGestureProps\n );\n\n return { gestureProps, selectionContent };\n};\n\nexport { useGanttTaskPointerGestures };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { VisTabularDatatip } from '#PRIVATE_VisTabularDatatip';\nimport type { BundleType } from '#resources/nls/bundle';\nimport type { GanttDatatipContext, GanttProps, GanttRowData, GanttTaskData } from '../gantt.types';\nimport { getNormalizedStartEnd } from './dataLayoutUtils';\n\n/**\n * Gets the default datatip renderer.\n * @param options Relevant information.\n * @returns The default datatip renderer.\n */\nconst getDefaultDatatipRenderer = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(options: {\n translations: BundleType;\n dateFormatter: (date: string) => string;\n isRTL: boolean;\n}): NonNullable<GanttProps<K2, D1, D2>['datatip']> => {\n const { translations, dateFormatter } = options;\n const defaultDatatipRenderer = ({ data, rowData }: GanttDatatipContext<D1, D2>) => {\n if (data.accessibleLabel !== undefined) {\n return { content: data.accessibleLabel };\n }\n\n const { start, end } = getNormalizedStartEnd(data);\n const isMilestone = start === end;\n\n const tableData = [];\n\n if (rowData.label) {\n tableData.push({ key: translations.gantt_labelRow(), value: rowData.label });\n }\n if (!isMilestone) {\n tableData.push({ key: translations.gantt_labelStart(), value: dateFormatter(start) });\n tableData.push({ key: translations.gantt_labelEnd(), value: dateFormatter(end) });\n } else {\n tableData.push({ key: translations.gantt_labelDate(), value: dateFormatter(start) });\n }\n if (data.label) {\n tableData.push({ key: translations.gantt_labelLabel(), value: data.label });\n }\n\n const content = <VisTabularDatatip tableData={tableData} />;\n return { content };\n };\n return defaultDatatipRenderer;\n};\n\n/**\n * Gets the datatip renderer context.\n * @param rows The rows data.\n * @param layoutObj The task layout object.\n * @returns\n */\nconst getRenderContext = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>(\n rows: GanttProps<K2, D1, D2>['rows'],\n layoutObj: { index: number; rowIndex: number }\n): GanttDatatipContext<D1, D2> => {\n const { index, rowIndex } = layoutObj;\n return {\n data: rows[rowIndex].tasks[index],\n rowData: rows[rowIndex]\n };\n};\n\nexport { getDefaultDatatipRenderer, getRenderContext };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type { RefObject } from 'preact';\nimport { useDatatip } from './useDatatip_FORK';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport type { GanttViewportTaskLayoutObj } from '../utils/dataLayoutUtils';\nimport type { GanttProps, GanttRowData, GanttTaskData } from '../gantt.types';\nimport { getDefaultDatatipRenderer, getRenderContext } from '../utils/datatipUtils';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { useUser } from '#hooks/UNSAFE_useUser';\n\ntype UseGanttTaskDatatipOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n targetRef: RefObject<HTMLElement>;\n datatip?: GanttProps<K2, D1, D2>['datatip'];\n rowData: GanttProps<K2, D1, D2>['rows'];\n dateFormatter: (date: string) => string;\n hoveredTaskObj?: GanttViewportTaskLayoutObj<K2>;\n focusedTaskObj?: GanttViewportTaskLayoutObj<K2>;\n currentTaskInteraction: 'hover' | 'focus' | 'none';\n dataBodyRegion: { x: number; y: number; w: number; h: number };\n};\n\n/**\n * Hook that handles task datatip.\n */\nconst useGanttTaskDatatip = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n targetRef,\n datatip,\n rowData,\n dateFormatter,\n hoveredTaskObj,\n focusedTaskObj,\n currentTaskInteraction,\n dataBodyRegion\n}: UseGanttTaskDatatipOptions<K1, K2, D1, D2>) => {\n const { direction } = useUser();\n const isRTL = direction === 'rtl';\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const config = {\n hover: {\n taskObj: hoveredTaskObj,\n anchor: 'pointer' as const\n },\n focus: {\n taskObj: focusedTaskObj,\n anchor: 'element' as const\n },\n none: {\n taskObj: undefined,\n anchor: 'pointer' as const\n }\n };\n\n const { anchor, taskObj: activeTaskObj } = config[currentTaskInteraction];\n\n const datatipRenderer =\n datatip ??\n getDefaultDatatipRenderer<K1, K2, D1, D2>({\n translations,\n dateFormatter,\n isRTL\n });\n\n const { content, borderColor } = activeTaskObj\n ? datatipRenderer(getRenderContext<K1, K2, D1, D2>(rowData, activeTaskObj))\n : { content: undefined, borderColor: undefined };\n\n const elementBounds =\n activeTaskObj && anchor === 'element'\n ? {\n x: activeTaskObj.x,\n y: activeTaskObj.y + dataBodyRegion.y,\n width: activeTaskObj.width,\n height: activeTaskObj.height\n }\n : undefined;\n\n return useDatatip({\n content,\n anchor,\n placement: 'top-start',\n offset: calculateOffset(isRTL, dataBodyRegion.w, elementBounds),\n borderColor,\n targetFocusRef: targetRef\n });\n};\n\nexport { useGanttTaskDatatip };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { RefObject, ComponentChildren } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { Property } from 'csstype';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\nimport { getResolvedTimeAxesLayout } from '#PRIVATE_TimeComponent/utils/timeAxisLayoutUtils';\nimport { timeAxisDataBodyStyles } from './themes/GanttStyles.css';\nimport {\n OnTimeComponentViewportChange,\n TimeComponentZoomParameters\n} from '#PRIVATE_TimeComponent/timeComponent.types';\nimport { getDefaultDateFormatter, getISOString } from '#PRIVATE_TimeComponent/utils/timeUtils';\nimport {\n getEffectTaskObjs,\n getResolvedViewportLayout,\n type ViewportLayout,\n type getRowDataLayout\n} from './utils/dataLayoutUtils';\nimport { useGanttPanZoomGestures } from './hooks/useGanttPanZoomGestures';\nimport type {\n GanttCurrentTask,\n GanttProps,\n GanttRowData,\n GanttSelection as GanttSelectionProps,\n GanttTaskData,\n GanttTaskHover,\n OnGanttScrollPositionChange\n} from './gantt.types';\nimport { useGanttTaskPointerGestures } from './hooks/useGanttTaskPointerGestures';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useGanttTaskDatatip } from './hooks/useGanttTaskDatatip';\n\ntype GetTimeAxesLayout = ReturnType<typeof getResolvedTimeAxesLayout>;\ntype MajorAxisLayout = Omit<\n NonNullable<ReturnType<GetTimeAxesLayout>['majorAxis']>,\n 'gridTicksPos'\n>;\ntype MinorAxisLayout = Omit<ReturnType<GetTimeAxesLayout>['minorAxis'], 'gridTicksPos'>;\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n innerRef: RefObject<HTMLDivElement>;\n isRTL: boolean;\n scrollPosition: number;\n onScrollPositionChange?: OnGanttScrollPositionChange;\n isViewportDefined: boolean;\n onViewportChange?: OnTimeComponentViewportChange;\n zoomParameters?: TimeComponentZoomParameters;\n zooming: 'on' | 'off';\n getTimeAxesLayout: ReturnType<typeof getResolvedTimeAxesLayout>;\n getResolvedViewportLayout: typeof getResolvedViewportLayout<K1, K2, D1, D2>;\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n rowAxisSeparator: boolean;\n datatip?: GanttProps<K2, D1, D2>['datatip'];\n majorAxis: (layout: MajorAxisLayout) => ComponentChildren;\n minorAxis: (layout: MinorAxisLayout) => ComponentChildren;\n dataBody: (layout: {\n width: number;\n height: number;\n viewportLayout: ViewportLayout<K1, K2, D1, D2>;\n minorAxisLayout: MinorAxisLayout;\n effectsLayout: ReturnType<typeof getEffectTaskObjs<K2, D2>>;\n dateFormatter: (date: string) => string;\n ariaActiveTask?: { dataId: K2; ariaId: string; type: 'task' };\n }) => ComponentChildren;\n currentTaskInteraction: 'hover' | 'focus' | 'none';\n ariaActive?: { dataId: K2; ariaId: string; type: 'task' };\n} & GanttSelectionProps<K2, D2> &\n GanttTaskHover<K2> &\n GanttCurrentTask<K2>;\n\nexport function GanttTimeAxisDataBody<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n innerRef,\n isRTL,\n scrollPosition,\n onScrollPositionChange,\n isViewportDefined,\n onViewportChange,\n zoomParameters,\n zooming,\n selectedIds,\n selectionMode,\n onSelectionChange,\n hoveredTaskId,\n onTaskHoverChange,\n currentTask,\n onCurrentTaskChange,\n currentTaskInteraction,\n ariaActive,\n getTimeAxesLayout,\n getResolvedViewportLayout,\n rowDataLayout,\n rowAxisSeparator,\n datatip,\n majorAxis,\n minorAxis,\n dataBody\n}: Props<K1, K2, D1, D2>) {\n if (!isViewportDefined) {\n return (\n <TrackResizeContainer width=\"100%\" height=\"100%\">\n {(width) => {\n const timeAxesLayout = getTimeAxesLayout(width);\n const {\n majorAxis: majorAxisLayout,\n minorAxis: minorAxisLayout,\n viewportStartTime,\n viewportEndTime\n } = timeAxesLayout;\n const majorAxisScale =\n majorAxisLayout && majorAxisLayout.zoomOrder[majorAxisLayout.zoomOrderIndex];\n const minorAxisScale = minorAxisLayout.zoomOrder[minorAxisLayout.zoomOrderIndex];\n\n onViewportChange?.({\n viewportStart: getISOString(viewportStartTime),\n viewportEnd: getISOString(viewportEndTime),\n majorAxisScale,\n minorAxisScale\n });\n return null;\n }}\n </TrackResizeContainer>\n );\n }\n return (\n <TrackResizeContainer width=\"100%\" height=\"100%\">\n {function _(width, height) {\n const timeAxesLayout = getTimeAxesLayout(width);\n const {\n position,\n majorAxis: majorAxisLayout,\n minorAxis: minorAxisLayout,\n viewportStartTime,\n viewportEndTime,\n startTime,\n endTime\n } = timeAxesLayout;\n const majorAxisScale =\n majorAxisLayout && majorAxisLayout.zoomOrder[majorAxisLayout.zoomOrderIndex];\n const minorAxisScale = minorAxisLayout.zoomOrder[minorAxisLayout.zoomOrderIndex];\n\n const majorAxisHeight = majorAxisLayout ? majorAxisLayout.height : 0;\n const { height: minorAxisHeight } = minorAxisLayout;\n const dataBodyHeight = height - (majorAxisHeight + minorAxisHeight);\n\n const viewportLayout = getResolvedViewportLayout(\n rowDataLayout,\n viewportStartTime,\n viewportEndTime,\n scrollPosition,\n width,\n dataBodyHeight,\n isRTL\n );\n const effectsLayout = getEffectTaskObjs(\n {\n selectionProps: { selectedIds, selectionMode },\n hoverProps: { hoveredTaskId },\n currentProps: { currentTask }\n },\n viewportLayout.idTaskObjMap\n );\n const defaultDateFormatter = getDefaultDateFormatter(minorAxisScale, viewportStartTime);\n\n const majorAxisComp = majorAxisLayout && majorAxis(majorAxisLayout);\n const minorAxisComp = minorAxis(minorAxisLayout);\n const dataBodyComp = dataBody({\n width,\n height: dataBodyHeight,\n viewportLayout,\n minorAxisLayout,\n effectsLayout,\n dateFormatter: defaultDateFormatter,\n ariaActiveTask: ariaActive\n });\n\n const layout = {\n top: {\n components: [majorAxisComp, minorAxisComp, dataBodyComp],\n dataBodyPos: height - dataBodyHeight\n },\n bottom: {\n components: [dataBodyComp, minorAxisComp, majorAxisComp],\n dataBodyPos: 0\n }\n };\n\n // Temporary; this will be a Gantt prop when we add marquee selection support\n const dragMode = 'pan';\n\n // TODO: think about a better cursor management system\n const [cursor, setCursor] = useState<Property.Cursor>();\n const onCursorChange = (detail: {\n cursor: 'grabbing' | 'grabbingUnset' | 'pointer' | 'pointerUnset';\n }) =>\n setCursor((prevCursor) => {\n if (prevCursor === undefined) return detail.cursor;\n if (prevCursor === 'grabbing' && detail.cursor !== 'grabbingUnset') return 'grabbing';\n if (detail.cursor === 'grabbingUnset' || detail.cursor === 'pointerUnset')\n return undefined;\n return detail.cursor;\n });\n\n const { gestureProps: panZoomGestureProps } = useGanttPanZoomGestures({\n captureTargetRef: innerRef,\n width,\n height,\n viewportStartTime,\n viewportEndTime,\n majorAxisScale,\n minorAxisScale,\n startTime,\n endTime,\n zoomParameters: zoomParameters!,\n scrollPosition,\n dataBodyHeight,\n totalRowsHeight: rowDataLayout.totalRowsHeight,\n viewportLayout,\n onViewportChange: (args) => {\n if (onViewportChange) {\n onViewportChange(args);\n // TODO: Evaluate whether it's okay to clear hover behavior on pan and zoom\n onTaskHoverChange({ id: undefined });\n }\n },\n onScrollPositionChange: (args) => {\n if (onScrollPositionChange) {\n onScrollPositionChange(args);\n // TODO: Evaluate whether it's okay to clear hover behavior on pan\n onTaskHoverChange({ id: undefined });\n }\n },\n onCursorChange,\n isPanDisabled: dragMode !== 'pan',\n isZoomDisabled: zooming === 'off'\n });\n\n const dataBodyRegion = {\n x: 0,\n y: layout[position].dataBodyPos,\n w: width,\n h: dataBodyHeight\n };\n const { gestureProps: taskGestureProps, selectionContent } = useGanttTaskPointerGestures({\n viewportLayout,\n viewportYOffset: scrollPosition - layout[position].dataBodyPos,\n dataBodyRegion,\n viewportStartTime,\n viewportEndTime,\n width,\n isRTL,\n selectionProps: { selectedIds, selectionMode, onSelectionChange },\n hoverProps: { hoveredTaskId, onTaskHoverChange },\n currentProps: { currentTask, onCurrentTaskChange },\n onCursorChange\n });\n\n const { datatipContent, datatipProps } = useGanttTaskDatatip<K1, K2, D1, D2>({\n datatip,\n rowData: viewportLayout.rowData,\n dateFormatter: defaultDateFormatter,\n hoveredTaskObj: hoveredTaskId && viewportLayout.idTaskObjMap.get(hoveredTaskId),\n focusedTaskObj: effectsLayout.focusedTaskObj,\n currentTaskInteraction,\n dataBodyRegion,\n targetRef: innerRef\n });\n\n const gestureProps = mergeProps(panZoomGestureProps, taskGestureProps, datatipProps);\n\n return (\n <div\n ref={innerRef}\n {...gestureProps}\n class={classNames([\n timeAxisDataBodyStyles.base,\n dragMode === 'pan' && timeAxisDataBodyStyles.pannable,\n isRTL\n ? rowAxisSeparator && timeAxisDataBodyStyles.withRowAxisSeparatorRight\n : rowAxisSeparator && timeAxisDataBodyStyles.withRowAxisSeparatorLeft\n ])}\n style={{ cursor }}>\n {layout[position].components}\n {datatipContent}\n {selectionContent}\n </div>\n );\n }}\n </TrackResizeContainer>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { horizontalGridlinesStyles } from './themes/GanttStyles.css';\n\ntype Props = {\n width: number;\n height: number;\n positions: number[];\n};\n\nexport function GanttHorizontalGridlinesLayer({ width, height, positions }: Props) {\n const cmd = positions.map((p) => `M0,${p} H${width}`).join(' ');\n return (\n <svg width={width} height={height}>\n <path class={horizontalGridlinesStyles.base} d={cmd} />\n </svg>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { getRandomId } from '#utils/PRIVATE_visLayoutUtils';\nimport type { GanttViewportTaskLayoutObj, ViewportLayout } from './utils/dataLayoutUtils';\nimport { useMemo, useRef } from 'preact/hooks';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { getTaskAriaLabel } from './utils/ariaUtils';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n rowData: ViewportLayout<K1, K2, D1, D2>['rowData'];\n dateFormatter: (date: string) => string;\n ariaActiveId?: string;\n ariaActiveTaskObj?: GanttViewportTaskLayoutObj<K2>;\n};\n\nexport function GanttDesktopTaskAccContent<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n width,\n height,\n rowData,\n dateFormatter,\n ariaActiveId,\n ariaActiveTaskObj\n}: Props<K1, K2, D1, D2>) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const idIndex = useRef(0);\n const ids = useMemo(() => {\n const ids =\n idIndex.current === 0 ? [ariaActiveId, getRandomId()] : [getRandomId(), ariaActiveId];\n idIndex.current = Math.abs(idIndex.current - 1);\n return ids;\n }, [ariaActiveId]);\n\n const ariaLabel =\n ariaActiveTaskObj && getTaskAriaLabel(ariaActiveTaskObj, rowData, dateFormatter, translations);\n\n return (\n <div style={{ width, height }}>\n <div role=\"img\" id={ids[0]} aria-label={ariaLabel}></div>\n <div role=\"img\" id={ids[1]} aria-label={ariaLabel}></div>\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport type { ViewportLayout } from './utils/dataLayoutUtils';\nimport { getTaskAriaLabel } from './utils/ariaUtils';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { taskMobileAccStyles } from './themes/GanttStyles.css';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n rowData: ViewportLayout<K1, K2, D1, D2>['rowData'];\n dateFormatter: (date: string) => string;\n layoutObjs: ViewportLayout<K1, K2, D1, D2>['rowObjs'];\n};\n\nexport function GanttMobileTaskAccContent<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({ width, height, rowData, dateFormatter, layoutObjs }: Props<K1, K2, D1, D2>) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const content: ComponentChildren[] = [];\n layoutObjs.forEach((rowObj) => {\n rowObj.taskObjs.forEach((taskObj) => {\n const ariaLabel = getTaskAriaLabel(taskObj, rowData, dateFormatter, translations);\n content.push(\n <div\n role=\"img\"\n aria-label={ariaLabel}\n class={taskMobileAccStyles.content}\n style={{\n width: taskObj.width,\n height: taskObj.height,\n top: taskObj.y,\n left: taskObj.x\n }}></div>\n );\n });\n });\n\n return (\n <div class={taskMobileAccStyles.base} style={{ width, height }}>\n {content}\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { supportsMobileScreenReader } from '#utils/UNSAFE_visUtils';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\nimport { GanttDesktopTaskAccContent } from './GanttDesktopTaskAccContent';\nimport { GanttMobileTaskAccContent } from './GanttMobileTaskAccContent';\nimport type { GanttViewportTaskLayoutObj, ViewportLayout } from './utils/dataLayoutUtils';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n rowData: ViewportLayout<K1, K2, D1, D2>['rowData'];\n dateFormatter: (date: string) => string;\n ariaActiveId?: string;\n ariaActiveTaskObj?: GanttViewportTaskLayoutObj<K2>;\n layoutObjs: ViewportLayout<K1, K2, D1, D2>['rowObjs'];\n};\n\nexport function GanttTaskAccLayer<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n width,\n height,\n rowData,\n dateFormatter,\n ariaActiveId,\n ariaActiveTaskObj,\n layoutObjs\n}: Props<K1, K2, D1, D2>) {\n return supportsMobileScreenReader ? (\n <GanttMobileTaskAccContent\n width={width}\n height={height}\n layoutObjs={layoutObjs}\n rowData={rowData}\n dateFormatter={dateFormatter}\n />\n ) : (\n <GanttDesktopTaskAccContent\n width={width}\n height={height}\n rowData={rowData}\n dateFormatter={dateFormatter}\n ariaActiveId={ariaActiveId}\n ariaActiveTaskObj={ariaActiveTaskObj}\n />\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\nimport { rowBackgroundStyles } from './themes/GanttStyles.css';\nimport type { ViewportLayout } from './utils/dataLayoutUtils';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n layoutObjs: ViewportLayout<K1, K2, D1, D2>['rowObjs'];\n};\n\nexport function GanttRowBackgroundsLayer<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({ width, height, layoutObjs }: Props<K1, K2, D1, D2>) {\n const selectedRowObjs = layoutObjs.filter((rowObj) => rowObj.isSelected);\n const selectedRowsCmd = selectedRowObjs\n .map(({ y, height }) => {\n // Reduce left and right edge by 1px to ensure the rendering doesn't\n // interfere with the row axis separator\n return `M1,${y} H${width - 1} V${y + height} H${1} Z`;\n })\n .join(' ');\n\n return selectedRowObjs.length > 0 ? (\n <svg width={width} height={height}>\n <path class={rowBackgroundStyles.selected} d={selectedRowsCmd} />\n </svg>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { rectangleWithBorderRadius } from '#utils/PRIVATE_visSVGUtils';\nimport { GanttViewportTaskLayoutObj } from './dataLayoutUtils';\n\n/**\n * Draws a given task effect onto a given Canvas.\n * @param ctx The Canvas's 2D context.\n * @param effectLayout The task effect layout object.\n */\nconst drawTaskEffectRing = (\n ctx: CanvasRenderingContext2D,\n effectLayout: {\n x: number;\n y: number;\n width: number;\n height: number;\n borderRadius: string;\n stroke: string;\n strokeWidth: number;\n padding: number;\n }\n) => {\n const { x, y, width, height, borderRadius, stroke, strokeWidth, padding } = effectLayout;\n const ringX = x - padding;\n const ringY = y - padding;\n const ringWidth = width + 2 * padding;\n const ringHeight = height + 2 * padding;\n const effectRingCmd = rectangleWithBorderRadius(\n ringX,\n ringY,\n ringWidth,\n ringHeight,\n borderRadius,\n Math.min(ringWidth, ringHeight),\n '0'\n );\n const effectRingPath = new Path2D(effectRingCmd);\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.stroke(effectRingPath);\n};\n\n/**\n * Draws a given task effect shadow onto a given Canvas.\n * @param ctx The Canvas's 2D context.\n * @param shadow The shadow definition.\n */\nconst drawTaskEffectShadow = (\n ctx: CanvasRenderingContext2D,\n shadow: {\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n shadowBlur: number;\n }\n) => {\n ctx.shadowColor = shadow.shadowColor;\n ctx.shadowOffsetX = shadow.shadowOffsetX;\n ctx.shadowOffsetY = shadow.shadowOffsetY;\n ctx.shadowBlur = shadow.shadowBlur;\n};\n\n/**\n * Resets any shadow settings in the Canvas's context.\n * @param ctx The Canvas's 2D context.\n */\nconst resetShadow = (ctx: CanvasRenderingContext2D) => {\n ctx.shadowColor = 'transparent';\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = 0;\n};\n\n/**\n * Draws a given task onto a given Canvas.\n * @param ctx The Canvas's 2D context.\n * @param taskLayoutObj The task layout object.\n * @param state The task's state.\n */\nconst drawTask = <K2>(\n ctx: CanvasRenderingContext2D,\n taskLayoutObj: GanttViewportTaskLayoutObj<K2>,\n state?: 'selected' | 'hovered' | 'focused'\n) => {\n const drawShadow = state === 'hovered';\n const { x, y, width, height, borderRadius, fill, stroke, strokeWidth } = taskLayoutObj;\n\n const roundRectCmd = rectangleWithBorderRadius(\n x,\n y,\n width,\n height,\n borderRadius,\n Math.min(width, height),\n '0'\n );\n const roundRectPath = new Path2D(roundRectCmd);\n\n // Draw white task backdrop\n if (drawShadow) drawTaskEffectShadow(ctx, taskLayoutObj.hoverEffect.shadow);\n ctx.fillStyle = '#ffffff';\n ctx.fill(roundRectPath);\n if (drawShadow) resetShadow(ctx);\n\n // Draw task\n ctx.strokeStyle = stroke;\n ctx.fillStyle = fill;\n ctx.lineWidth = strokeWidth;\n ctx.fill(roundRectPath);\n ctx.stroke(roundRectPath);\n\n switch (state) {\n case 'selected': {\n drawTaskEffectRing(ctx, {\n x,\n y,\n width,\n height,\n borderRadius,\n ...taskLayoutObj.selectionEffect\n });\n break;\n }\n case 'hovered': {\n drawTaskEffectRing(ctx, { x, y, width, height, borderRadius, ...taskLayoutObj.hoverEffect });\n break;\n }\n case 'focused': {\n drawTaskEffectRing(ctx, { x, y, width, height, borderRadius, ...taskLayoutObj.focusEffect });\n break;\n }\n case undefined: {\n // No effect\n break;\n }\n default: {\n const _exhaustiveCheck: never = state;\n return _exhaustiveCheck;\n }\n }\n};\n\nexport { drawTask };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttViewportTaskLayoutObj } from './utils/dataLayoutUtils';\nimport { TimeComponentCanvas2D } from '#PRIVATE_TimeComponent';\nimport { drawTask } from './utils/canvasDrawUtils';\n\ntype Props<K2> = {\n width: number;\n height: number;\n layoutObj?: GanttViewportTaskLayoutObj<K2>;\n};\n\nexport function GanttTaskFocusEffectsLayer<K2>({ width, height, layoutObj: taskObj }: Props<K2>) {\n const draw = (ctx: CanvasRenderingContext2D) => {\n taskObj && drawTask(ctx, taskObj, 'focused');\n };\n return <TimeComponentCanvas2D width={width} height={height} draw={draw} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttViewportTaskLayoutObj } from './utils/dataLayoutUtils';\nimport { TimeComponentCanvas2D } from '#PRIVATE_TimeComponent';\nimport { drawTask } from './utils/canvasDrawUtils';\n\ntype Props<K2> = {\n width: number;\n height: number;\n layoutObj?: GanttViewportTaskLayoutObj<K2>;\n};\n\nexport function GanttTaskHoverEffectsLayer<K2>({ width, height, layoutObj: taskObj }: Props<K2>) {\n const draw = (ctx: CanvasRenderingContext2D) => {\n taskObj && drawTask(ctx, taskObj, 'hovered');\n };\n return <TimeComponentCanvas2D width={width} height={height} draw={draw} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttViewportTaskLayoutObj } from './utils/dataLayoutUtils';\nimport { TimeComponentCanvas2D } from '#PRIVATE_TimeComponent';\nimport { drawTask } from './utils/canvasDrawUtils';\n\ntype Props<K2> = {\n width: number;\n height: number;\n layoutObjs: GanttViewportTaskLayoutObj<K2>[];\n};\n\nexport function GanttTaskSelectionEffectsLayer<K2>({ width, height, layoutObjs }: Props<K2>) {\n const draw = (ctx: CanvasRenderingContext2D) => {\n layoutObjs.forEach((taskObj) => drawTask(ctx, taskObj, 'selected'));\n };\n return <TimeComponentCanvas2D width={width} height={height} draw={draw} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { TimeComponentLayersStack } from '#PRIVATE_TimeComponent';\nimport { GanttTaskFocusEffectsLayer } from './GanttTaskFocusEffectsLayer';\nimport { GanttTaskHoverEffectsLayer } from './GanttTaskHoverEffectsLayer';\nimport { GanttTaskSelectionEffectsLayer } from './GanttTaskSelectionEffectsLayer';\nimport type { getEffectTaskObjs } from './utils/dataLayoutUtils';\n\ntype Props<K2, D2> = {\n width: number;\n height: number;\n layoutObjs: ReturnType<typeof getEffectTaskObjs<K2, D2>>;\n};\n\nexport function GanttTaskEffectsLayer<K2, D2>({\n width,\n height,\n layoutObjs: { selectedTaskObjs, hoveredTaskObj, focusedTaskObj }\n}: Props<K2, D2>) {\n return (\n <TimeComponentLayersStack width={`${width}px`} height={`${height}px`}>\n <GanttTaskFocusEffectsLayer<K2> width={width} height={height} layoutObj={focusedTaskObj} />\n <GanttTaskSelectionEffectsLayer<K2>\n width={width}\n height={height}\n layoutObjs={selectedTaskObjs}\n />\n <GanttTaskHoverEffectsLayer<K2> width={width} height={height} layoutObj={hoveredTaskObj} />\n </TimeComponentLayersStack>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { Property } from 'csstype';\nimport { Text } from '#UNSAFE_Text';\nimport { taskLabelLayerStyles } from './themes/GanttStyles.css';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\ntype Props = {\n x: number;\n y: number;\n width: number;\n height: number;\n label: string;\n isInner: boolean;\n textAlign: 'left' | 'center' | 'right';\n labelStyle?: {\n color?: Property.Color;\n fontFamily?: Property.FontFamily;\n fontSize?: Property.FontSize;\n fontStyle?: Property.FontStyle;\n fontWeight?: Property.FontWeight;\n textDecoration?: Property.TextDecoration;\n };\n};\n\nexport function GanttTaskLabel({\n x,\n y,\n width,\n height,\n label,\n isInner,\n textAlign,\n labelStyle\n}: Props) {\n return (\n <div\n aria-hidden=\"true\"\n class={classNames([taskLabelLayerStyles.label, isInner && taskLabelLayerStyles.innerLabel])}\n style={{\n left: x,\n top: y,\n width,\n height,\n textAlign,\n ...labelStyle\n }}>\n <Text\n variant={labelStyle?.color ? 'inherit' : 'primary'}\n truncation=\"ellipsis\"\n size=\"md\"\n weight=\"inherit\">\n {label}\n </Text>\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { ViewportLayout } from './utils/dataLayoutUtils';\nimport { taskLabelLayerStyles } from './themes/GanttStyles.css';\nimport { GanttTaskLabel } from './GanttTaskLabel';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n layoutObjs: ViewportLayout<K1, K2, D1, D2>['taskLabelObjs'];\n};\n\nexport function GanttTaskLabelsLayer<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({ width, height, layoutObjs }: Props<K1, K2, D1, D2>) {\n return (\n <div class={taskLabelLayerStyles.base} style={{ width, height }}>\n {layoutObjs.map((labelObj) => (\n <GanttTaskLabel {...labelObj} />\n ))}\n </div>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { ViewportLayout } from './utils/dataLayoutUtils';\nimport { TimeComponentCanvas2D } from '#PRIVATE_TimeComponent';\nimport { drawTask } from './utils/canvasDrawUtils';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n layoutObjs: ViewportLayout<K1, K2, D1, D2>['rowObjs'];\n};\n\nexport function GanttTasksLayer<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({ width, height, layoutObjs }: Props<K1, K2, D1, D2>) {\n const draw = (ctx: CanvasRenderingContext2D) => {\n layoutObjs.forEach((rowObj) => {\n rowObj.taskObjs.forEach((taskObj) => drawTask(ctx, taskObj));\n });\n };\n\n return <TimeComponentCanvas2D width={width} height={height} draw={draw} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport {\n TimeComponentLayersStack,\n TimeComponentVerticalGridlines as GanttVerticalGridlinesLayer\n} from '#PRIVATE_TimeComponent';\nimport { GanttHorizontalGridlinesLayer } from './GanttHorizontalGridlinesLayer';\nimport { GanttTaskAccLayer } from './GanttTaskAccLayer';\nimport { GanttRowBackgroundsLayer } from './GanttRowBackgroundsLayer';\nimport { GanttTaskEffectsLayer } from './GanttTaskEffectsLayer';\nimport { GanttTaskLabelsLayer } from './GanttTaskLabelsLayer';\nimport { GanttTasksLayer } from './GanttTasksLayer';\nimport type { getEffectTaskObjs, ViewportLayout } from './utils/dataLayoutUtils';\nimport type { GanttRowData, GanttTaskData } from './gantt.types';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n width: number;\n height: number;\n minorAxisLayout: {\n minorGridTicksPos: number[];\n majorGridTicksPos?: number[];\n };\n viewportLayout: ViewportLayout<K1, K2, D1, D2>;\n effectsLayout: ReturnType<typeof getEffectTaskObjs<K2, D2>>;\n dateFormatter: (date: string) => string;\n ariaActiveTask?: {\n dataId: K2;\n ariaId: string;\n };\n};\n\nexport function GanttDataBody<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n width,\n height,\n minorAxisLayout: { minorGridTicksPos, majorGridTicksPos },\n viewportLayout: {\n gridlines,\n rowData,\n rowObjs,\n taskLabelObjs,\n horizontalGridlinesPos,\n idTaskObjMap\n },\n effectsLayout,\n dateFormatter,\n ariaActiveTask\n}: Props<K1, K2, D1, D2>) {\n return (\n <TimeComponentLayersStack width={`${width}px`} height={`${height}px`}>\n <GanttRowBackgroundsLayer width={width} height={height} layoutObjs={rowObjs} />\n {gridlines.vertical === 'on' && (\n <GanttVerticalGridlinesLayer\n width={width}\n height={height}\n positions={minorGridTicksPos}\n variant=\"minor\"\n />\n )}\n {gridlines.vertical === 'on' && majorGridTicksPos && (\n <GanttVerticalGridlinesLayer\n width={width}\n height={height}\n positions={majorGridTicksPos}\n variant=\"major\"\n />\n )}\n {horizontalGridlinesPos && (\n <GanttHorizontalGridlinesLayer\n width={width}\n height={height}\n positions={horizontalGridlinesPos}\n />\n )}\n <GanttTaskAccLayer\n width={width}\n height={height}\n layoutObjs={rowObjs}\n rowData={rowData}\n dateFormatter={dateFormatter}\n ariaActiveId={ariaActiveTask?.ariaId}\n ariaActiveTaskObj={ariaActiveTask && idTaskObjMap.get(ariaActiveTask.dataId)}\n />\n <GanttTasksLayer width={width} height={height} layoutObjs={rowObjs} />\n <GanttTaskEffectsLayer width={width} height={height} layoutObjs={effectsLayout} />\n <GanttTaskLabelsLayer width={width} height={height} layoutObjs={taskLabelObjs} />\n </TimeComponentLayersStack>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport {\n TimeComponentPanZoomLayout,\n TimeComponentZoomControls,\n TimeComponentVerticalScrollbarContainer,\n TimeComponentVerticalScrollbar,\n TimeComponentHorizontalScrollbarContainer,\n TimeComponentHorizontalScrollbar,\n TimeComponentHorizontalTimeAxis\n} from '#PRIVATE_TimeComponent';\nimport type {\n OnTimeComponentViewportChange,\n TimeComponentZoomParameters\n} from '#PRIVATE_TimeComponent/timeComponent.types';\nimport type { getPanZoomCanvasLayout } from './utils/panZoomCanvasLayoutUtils';\nimport type { getResolvedTimeAxesLayout } from '#PRIVATE_TimeComponent/utils/timeAxisLayoutUtils';\nimport type {\n getResolvedHorizontalScrollbarLayout,\n getResolvedVerticalScrollbarLayout\n} from '#PRIVATE_TimeComponent/utils/scrollbarLayoutUtils';\nimport { GanttTimeAxisDataBody } from './GanttTimeAxisDataBody';\nimport { GanttDataBody } from './GanttDataBody';\nimport { getResolvedViewportLayout, type getRowDataLayout } from './utils/dataLayoutUtils';\nimport type {\n GanttCurrentTask,\n GanttProps,\n GanttRowData,\n GanttSelection as GanttSelectionProps,\n GanttTaskData,\n GanttTaskHover,\n OnGanttScrollPositionChange\n} from './gantt.types';\nimport { Size } from '#utils/UNSAFE_size';\n\ntype Props<K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>> = {\n visRef: RefObject<HTMLDivElement>;\n overlayControlsContainerRef: RefObject<HTMLDivElement>;\n panZoomLayout: ReturnType<typeof getPanZoomCanvasLayout>;\n getTimeAxesLayout: ReturnType<typeof getResolvedTimeAxesLayout>;\n getHorizontalScrollbarLayout: ReturnType<typeof getResolvedHorizontalScrollbarLayout>;\n onHorizontalScrollChange: (newViewStartTime: number, newViewEndTime: number) => void;\n getVerticalScrollbarLayout: ReturnType<typeof getResolvedVerticalScrollbarLayout>;\n onVerticalScrollChange: (newScrollPosition: number) => void;\n rowAxisSeparator?: boolean;\n zoomParameters?: TimeComponentZoomParameters;\n zooming?: 'on' | 'off';\n isViewportDefined: boolean;\n onViewportChange?: OnTimeComponentViewportChange;\n getResolvedViewportLayout: typeof getResolvedViewportLayout;\n datatip?: GanttProps<K2, D1, D2>['datatip'];\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n isRTL: boolean;\n scrollPosition: number;\n onScrollPositionChange?: OnGanttScrollPositionChange;\n width?: Size;\n height?: Size;\n currentTaskInteraction: 'hover' | 'focus' | 'none';\n ariaActive?: { dataId: K2; ariaId: string; type: 'task' };\n} & GanttSelectionProps<K2, D2> &\n GanttTaskHover<K2> &\n GanttCurrentTask<K2>;\n\nexport function GanttView<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n visRef,\n overlayControlsContainerRef,\n panZoomLayout,\n getTimeAxesLayout,\n getHorizontalScrollbarLayout,\n onHorizontalScrollChange,\n getVerticalScrollbarLayout,\n onVerticalScrollChange,\n rowAxisSeparator = false,\n zoomParameters,\n zooming = 'on',\n isViewportDefined,\n onViewportChange,\n getResolvedViewportLayout,\n datatip,\n rowDataLayout,\n isRTL,\n scrollPosition,\n onScrollPositionChange,\n selectedIds,\n selectionMode,\n onSelectionChange,\n hoveredTaskId,\n onTaskHoverChange,\n currentTask,\n onCurrentTaskChange,\n currentTaskInteraction,\n ariaActive,\n width,\n height\n}: Props<K1, K2, D1, D2>) {\n return (\n <TimeComponentPanZoomLayout\n overlayControlsContainerRef={overlayControlsContainerRef}\n {...panZoomLayout}\n width={width}\n height={height}\n overlayControls={\n zooming === 'on' && zoomParameters && isViewportDefined ? (\n <TimeComponentZoomControls\n position={panZoomLayout.overlayControlsPosition}\n zoomParameters={zoomParameters}\n onViewportChange={onViewportChange}\n />\n ) : undefined\n }\n verticalControl={\n <TimeComponentVerticalScrollbarContainer\n getLayout={getVerticalScrollbarLayout}\n onRangeChange={onVerticalScrollChange}>\n {(layout) => <TimeComponentVerticalScrollbar {...layout} />}\n </TimeComponentVerticalScrollbarContainer>\n }\n horizontalControl={\n <TimeComponentHorizontalScrollbarContainer\n getLayout={getHorizontalScrollbarLayout}\n onRangeChange={onHorizontalScrollChange}>\n {(layout) => <TimeComponentHorizontalScrollbar {...layout} />}\n </TimeComponentHorizontalScrollbarContainer>\n }\n vis={\n <GanttTimeAxisDataBody\n innerRef={visRef}\n isRTL={isRTL}\n scrollPosition={scrollPosition}\n onScrollPositionChange={onScrollPositionChange}\n isViewportDefined={isViewportDefined}\n onViewportChange={onViewportChange}\n zoomParameters={zoomParameters}\n zooming={zooming}\n rowAxisSeparator={rowAxisSeparator}\n selectedIds={selectedIds}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n hoveredTaskId={hoveredTaskId}\n onTaskHoverChange={onTaskHoverChange}\n currentTask={currentTask}\n onCurrentTaskChange={onCurrentTaskChange}\n currentTaskInteraction={currentTaskInteraction}\n ariaActive={ariaActive}\n getTimeAxesLayout={getTimeAxesLayout}\n getResolvedViewportLayout={getResolvedViewportLayout}\n rowDataLayout={rowDataLayout}\n datatip={datatip}\n majorAxis={(layout) => <TimeComponentHorizontalTimeAxis {...layout} />}\n minorAxis={(layout) => <TimeComponentHorizontalTimeAxis {...layout} />}\n dataBody={(layout) => <GanttDataBody {...layout} />}\n />\n }\n />\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport type { TimeComponentTimeAxis } from '../timeComponent.types';\nimport { bridgeValues } from '../themes/TimeComponentStyles.css';\nimport { getTimePosition } from './timeUtils';\nimport type { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\ntype GetTextDimensions = NonNullable<ReturnType<typeof useTextDimensions>['getTextDimensions']>;\ntype Font = NonNullable<Parameters<GetTextDimensions>[1]>;\n\n// TODO: Remove and replace this with the future useTextDimensions batch text measurements solution.\n// We also just need width, so maybe we can make useTextDimensions optimize for that case too\n// e.g. use canvas backend for width only measurements, etc.\n/**\n * Gets the text dimensions of the given array of texts.\n * @param getTextDimensions The measurement function.\n * @param texts An array of texts.\n * @param font The font of the texts.\n * @returns An array of text dimensions.\n */\nconst getBatchTextDimensions = (\n getTextDimensions: GetTextDimensions,\n texts: string[],\n font?: Font\n) => texts.map((text) => getTextDimensions(text, font));\n\n/**\n * Gets the (unresolved) time axis height.\n * @param axisProps The axis props.\n * @returns The (unresolved) height.\n */\nconst getUnresolvedTimeAxisHeight = (axisProps?: TimeComponentTimeAxis) => {\n return axisProps === undefined\n ? '0px'\n : axisProps.height !== undefined\n ? `${axisProps.height}px`\n : bridgeValues.horizontalTimeAxisHeight;\n};\n\n/**\n * Gets the unresolved time axis layout.\n * @param axisPosition The axis position.\n * @param minorAxis The minor axis props.\n * @param majorAxis The major axis props.\n * @returns The unresovled time axis layout.\n */\nconst getUnresolvedTimeAxesLayout = (\n axisPosition: 'top' | 'bottom',\n minorAxis?: TimeComponentTimeAxis,\n majorAxis?: TimeComponentTimeAxis\n) => {\n const minorAxisHeight = getUnresolvedTimeAxisHeight(minorAxis);\n const majorAxisHeight = getUnresolvedTimeAxisHeight(majorAxis);\n const totalHeight = `calc(${majorAxisHeight} + ${minorAxisHeight})`;\n return {\n position: axisPosition,\n height: totalHeight\n };\n};\n\n/**\n * Gets the resolved time axis height.\n * @param defaultHeight The default time axis height.\n * @param axisProps The axis props.\n * @returns The time axis height in pixels.\n */\nconst getResolvedTimeAxisHeight = (defaultHeight: number, axisProps?: TimeComponentTimeAxis) => {\n return axisProps === undefined\n ? 0\n : axisProps.height !== undefined\n ? axisProps.height\n : defaultHeight;\n};\n\n/**\n * Gets the resolved time axis props.\n * @param defaultHeight The default time axis height.\n * @param axisProps The axis props.\n * @returns The resolved axis props.\n */\nconst getResolvedTimeAxisProps = (defaultHeight: number, axisProps: TimeComponentTimeAxis) => {\n const height = getResolvedTimeAxisHeight(defaultHeight, axisProps);\n const { scale, zoomOrder = [axisProps.scale] } = axisProps;\n return {\n height,\n zoomOrder,\n zoomOrderIndex: zoomOrder.indexOf(scale)\n };\n};\n\n/**\n * Gets the interval start time relative to the given time according to the given scale.\n * @param scale The time scale.\n * @param time The query time.\n * @returns The interval start time.\n */\nconst getPreviousTime = (scale: TimeComponentTimeAxis['scale'], time: number) => {\n return Date.parse(scale.getPreviousDate(new Date(time).toISOString()));\n};\n\n/**\n * Gets the interval end time relative to the given time according to the given scale.\n * @param scale The time scale.\n * @param time The query time.\n * @returns The interval end time.\n */\nconst getNextTime = (scale: TimeComponentTimeAxis['scale'], time: number) => {\n return Date.parse(scale.getNextDate(new Date(time).toISOString()));\n};\n\n/**\n * Gets the time axis ticks in the given viewport.\n * @param scale The time scale.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @returns The ticks (in time).\n */\nconst getViewportTicks = (\n scale: TimeComponentTimeAxis['scale'],\n viewportStartTime: number,\n viewportEndTime: number\n) => {\n const times = [getPreviousTime(scale, viewportStartTime)];\n while (times[times.length - 1] < viewportEndTime) {\n times.push(getNextTime(scale, times[times.length - 1]));\n }\n return times;\n};\n\n/**\n * Returns a set of date intervals sampled using the following procedure:\n * 1. Divide up the time range into numSections sections\n * 2. For each section, take the first numIntervalsPerSection intervals from the start,\n * plus the last interval of the section.\n * 3. Consolidate all of them and return\n * @param scale\n * @param startTime\n * @param endTime\n * @param numSections\n * @param numIntervalsPerSection\n * @returns The unique intervals retrieved (as a Map of <start time, end time>)\n */\nconst sampleIntervals = (\n scale: TimeComponentTimeAxis['scale'],\n startTime: number,\n endTime: number,\n numSections: number,\n numIntervalsPerSection: number\n) => {\n // key: interval start time, value: interval end time\n // Use Map to prevent duplicate intervals\n const intervals = new Map<number, number>();\n\n const sectionInterval = Math.floor((endTime - startTime) / numSections);\n for (let i = 0; i < numSections; i++) {\n const sectionStartTime = startTime + sectionInterval * i;\n const sectionEndTime = Math.min(startTime + sectionInterval * (i + 1), endTime);\n\n let prevTime = getPreviousTime(scale, sectionStartTime);\n for (let j = 0; j < numIntervalsPerSection; j++) {\n if (prevTime >= sectionEndTime) {\n break;\n }\n const currTime = getNextTime(scale, prevTime);\n intervals.set(prevTime, currTime);\n prevTime = currTime;\n }\n\n // Also consider last label at the end of the section\n prevTime = getPreviousTime(scale, sectionEndTime - 1);\n intervals.set(prevTime, getNextTime(scale, prevTime));\n }\n\n return intervals;\n};\n\n/**\n * Gets (a representative set of) the time intervals in the given time scale.\n * @param scale The time scale.\n * @param samplingStrategy The sampling strategy to use.\n * The 'exact' type would retrieve ALL intervals in the given range and scale.\n * 'approximate' would retrieve only a representative subset of intervals.\n * @returns (A representative set of) the time intervals in the given time scale.\n */\nconst getTimeAxisIntervals = (\n scale: TimeComponentTimeAxis['scale'],\n samplingStrategy:\n | {\n type: 'exact';\n params: { startTime: number; endTime: number };\n }\n | {\n type: 'approximate';\n params: {\n numSections: number;\n numIntervalsPerSection: number;\n startTime: number;\n endTime: number;\n };\n }\n) => {\n const { type, params } = samplingStrategy;\n switch (type) {\n case 'exact': {\n const intervals = new Map<number, number>();\n const viewportTimes = getViewportTicks(scale, params.startTime, params.endTime);\n for (let i = 0; i < viewportTimes.length - 1; i++) {\n intervals.set(viewportTimes[i], viewportTimes[i + 1]);\n }\n return { intervals, numIntervals: intervals.size };\n }\n case 'approximate': {\n // Rather than computing all dates (and labels) to obtain exact dimensions,\n // heuristically sample a subset of dates for better performance.\n // Assumption is that in many usecases, label widths have small variance.\n // Even if our estimation is off and cause a label trunction, users can manually zoom in to see the full label.\n const { startTime, endTime, numSections, numIntervalsPerSection } = params;\n const intervals = sampleIntervals(\n scale,\n startTime,\n endTime,\n numSections,\n numIntervalsPerSection\n );\n // Estimate real number of intervals\n const intervalStartTimes = [...intervals.keys()];\n const avgTimePerInterval =\n intervalStartTimes.reduce((sum, prevTime) => {\n return sum + (intervals.get(prevTime)! - Number(prevTime));\n }, 0) / intervalStartTimes.length;\n const estNumIntervals = (endTime - startTime) / avgTimePerInterval;\n return { intervals, numIntervals: estNumIntervals };\n }\n default: {\n const _exhaustiveCheck: never = type;\n return _exhaustiveCheck;\n }\n }\n};\n\n/**\n * Gets the zoom order characteristics based on the given time intervals, and widths of those intervals.\n * @param getTextDimensions The text measurement function.\n * @param intervalPaddingStart The interval padding start.\n * @param intervalPaddingEnd The interval padding end.\n * @param minIntervalWidth The minimum interval width.\n * @param axisFont The font.\n * @param zoomOrder The zoom order.\n * @param samplingStrategy The sampling strategy to use to retrieve intervals.\n * @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.\n */\nconst getZoomOrderCharacteristics = (\n getTextDimensions: GetTextDimensions,\n intervalPaddingStart: number,\n intervalPaddingEnd: number,\n minIntervalWidth: number,\n axisFont: Font,\n zoomOrder: NonNullable<TimeComponentTimeAxis['zoomOrder']>,\n samplingStrategy: Parameters<typeof getTimeAxisIntervals>[1]\n) => {\n const intervalPadding = intervalPaddingStart + intervalPaddingEnd;\n const zoomLevelIntervals = zoomOrder.map((scale) =>\n getTimeAxisIntervals(scale, samplingStrategy)\n );\n const maxNumIntervals = Math.max(...zoomLevelIntervals.map(({ numIntervals }) => numIntervals));\n const zoomOrderMinLengthFactor = zoomLevelIntervals.map(({ intervals }, i) => {\n const scale = zoomOrder[i];\n const prevTimes = [...intervals.keys()];\n const labels = prevTimes.map((prevTime) => getTimeLabel(scale, intervals.get(prevTime)!));\n const intervalDurations = prevTimes.map((prevTime) => intervals.get(prevTime)! - prevTime);\n const intervalLabelDimensions = getBatchTextDimensions(getTextDimensions, labels, axisFont);\n const minLengthFactor = Math.min(\n ...intervalDurations.map((duration, i) => {\n const contentWidth = Math.max(\n minIntervalWidth,\n intervalLabelDimensions[i].width + intervalPadding\n );\n return duration / contentWidth;\n })\n );\n return minLengthFactor;\n });\n\n return {\n zoomOrderMinLengthFactor,\n maxNumIntervals\n };\n};\n\n/**\n * Gets the resolved viewport range given the range constraints.\n * @param viewportDuration The viewport duration.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @returns The resolved viewport range.\n */\nconst getResolvedViewport = (\n viewportDuration: number,\n startTime: number,\n endTime: number,\n viewportStartTime?: number,\n viewportEndTime?: number\n) => {\n if (viewportStartTime !== undefined && viewportEndTime !== undefined) {\n return { viewportStartTime, viewportEndTime };\n }\n if (viewportStartTime !== undefined && viewportEndTime === undefined) {\n return {\n viewportStartTime,\n viewportEndTime: Math.min(endTime, viewportStartTime + viewportDuration)\n };\n }\n if (viewportStartTime === undefined && viewportEndTime !== undefined) {\n return {\n viewportStartTime: Math.max(startTime, viewportEndTime - viewportDuration),\n viewportEndTime\n };\n }\n return {\n viewportStartTime: startTime,\n viewportEndTime: Math.min(endTime, startTime + viewportDuration)\n };\n};\n\n/**\n * Gets the formatted string for the given time in the given scale.\n * This is used for the time axis interval labels.\n * @param scale The time scale.\n * @param time The time.\n * @returns The formatted string.\n */\nconst getTimeLabel = (scale: TimeComponentTimeAxis['scale'], time: number) =>\n scale.formatter(new Date(time).toISOString());\n\n/**\n * Gets the viewport axis ticks and labels for the given scale.\n * @param scale The time scale.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @returns The ticks and labels.\n */\nconst getViewportLabelsTicks = (\n scale: TimeComponentTimeAxis['scale'],\n viewportStartTime: number,\n viewportEndTime: number\n) => {\n // ticks.length >= 2 always, because there's always the first and last tick.\n const ticks = getViewportTicks(scale, viewportStartTime, viewportEndTime);\n\n // We don't need the label of the last tick.\n const labels = ticks.slice(0, ticks.length - 1).map((t) => getTimeLabel(scale, t));\n\n return { ticks, labels };\n};\n\n/**\n * Gets the time axis layout.\n * @param getTextDimensions The text measurement function.\n * @param labelPaddingStart The interval label padding start.\n * @param labelPaddingEnd The interval label padding end.\n * @param font The font.\n * @param labelPosition The label position.\n * @param ticks The ticks (in time).\n * @param gridTicks The subset of visible ticks that mark the vertical tick lines (in time).\n * @param labels The interval labels.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @param width The viewport width.\n * @param isRTL Whether the reading direction is rtl.\n * @returns The time axis layout.\n */\nconst getTimeAxisLayout = (\n getTextDimensions: GetTextDimensions,\n labelPaddingStart: number,\n labelPaddingEnd: number,\n font: Font,\n labelPosition: TimeComponentTimeAxis['scale']['labelPosition'] = 'start',\n ticks: number[],\n gridTicks: number[],\n labels: string[],\n startTime: number,\n endTime: number,\n viewportStartTime: number,\n viewportEndTime: number,\n width: number,\n isRTL: boolean\n) => {\n const intervalPadding = labelPaddingStart + labelPaddingEnd;\n const vs = viewportStartTime;\n const ve = viewportEndTime;\n const labelTicks = ticks.slice(0, ticks.length - 1);\n const gridTicksPos = gridTicks.map((t) => getTimePosition(t, vs, ve, width, isRTL));\n const ticksPos = ticks.map((t) => getTimePosition(t, vs, ve, width, isRTL));\n const intervalWidths = ticksPos\n .slice(1)\n .map((p, i) => (isRTL ? ticksPos[i] - p : p - ticksPos[i]));\n // Labels that start before the startTime or ends after the endTime need to be truncated\n const isIntervalStartTruncated = ticks[0] < startTime;\n if (isIntervalStartTruncated) {\n ticksPos[0] = 0;\n intervalWidths[0] = ticksPos[1];\n }\n if (ticks[ticks.length - 1] > endTime) {\n ticksPos[ticksPos.length - 1] = isRTL ? 0 : width;\n intervalWidths[intervalWidths.length - 1] = isRTL\n ? ticksPos[ticksPos.length - 2] - ticksPos[ticksPos.length - 1]\n : ticksPos[ticksPos.length - 1] - ticksPos[ticksPos.length - 2];\n }\n const labelPositions = ticksPos\n .slice(0, ticksPos.length - 1)\n .map((p, i) => (isRTL ? p - intervalWidths[i] : p));\n const isLabelTruncated = getBatchTextDimensions(getTextDimensions, labels, font).map(\n ({ width }, i) => Math.floor(width) - Math.floor(intervalWidths[i] - intervalPadding) > 0\n );\n\n return {\n font,\n labelPosition,\n labels,\n labelTicks,\n labelPositions,\n isLabelTruncated,\n isIntervalStartTruncated,\n intervalWidths,\n gridTicksPos,\n isRTL\n };\n};\n\n/**\n * Gets the time axes layout for the viewport.\n * @param getTextDimensions The text measurement function.\n * @param labelPaddingStart The interval label padding start.\n * @param labelPaddingEnd The interval label padding end.\n * @param majorAxisFont The major axis font.\n * @param minorAxisFont The minor axis font.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @param width The viewport width.\n * @param isRTL Whether the reading direction is rtl.\n * @param minorAxisScale The minor axis scale.\n * @param majorAxisScale The major axis scale.\n * @returns The time axes layout for the viewport.\n */\nconst getTimeAxesViewportLayout = (\n getTextDimensions: GetTextDimensions,\n labelPaddingStart: number,\n labelPaddingEnd: number,\n majorAxisFont: Font,\n minorAxisFont: Font,\n startTime: number,\n endTime: number,\n viewportStartTime: number,\n viewportEndTime: number,\n width: number,\n isRTL: boolean,\n minorAxisScale: TimeComponentTimeAxis['scale'],\n majorAxisScale?: TimeComponentTimeAxis['scale']\n) => {\n const majorAxisLabelsTicks = majorAxisScale\n ? getViewportLabelsTicks(majorAxisScale, viewportStartTime, viewportEndTime)\n : { ticks: [], labels: [] };\n\n const minorAxisLabelsTicks = getViewportLabelsTicks(\n minorAxisScale,\n viewportStartTime,\n viewportEndTime\n );\n\n // Determine whether to render secondary major gridlines\n // If major dates is a subset of minor dates, then the two grids line up.\n // Don't render the minor dates at overlap\n // (due to opacity, minor line would show through major line otherwise).\n // Otherwise the major and minor axis do not \"line up\"\n // (e.g. months and weeks scale together). Render minor lines only.\n const { ticks: majorTicks, labels: majorLabels } = majorAxisLabelsTicks;\n const { ticks: minorTicks, labels: minorLabels } = minorAxisLabelsTicks;\n const majorTicksSet = new Set(majorTicks);\n const minorTicksSet = new Set(minorTicks);\n // only consider major dates that are in range (e.g. first and/or last ticks may be out of range)\n const showMajorTicks =\n majorTicks.filter((t) => t > viewportStartTime && t < viewportEndTime && !minorTicksSet.has(t))\n .length === 0;\n const minorGridTicks = showMajorTicks\n ? minorTicks.filter((t) => !majorTicksSet.has(t))\n : minorTicks;\n\n const majorAxisLayout =\n majorAxisScale &&\n getTimeAxisLayout(\n getTextDimensions,\n labelPaddingStart,\n labelPaddingEnd,\n majorAxisFont,\n majorAxisScale.labelPosition,\n majorTicks,\n majorTicks,\n majorLabels,\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n width,\n isRTL\n );\n\n const minorAxisLayout = getTimeAxisLayout(\n getTextDimensions,\n labelPaddingStart,\n labelPaddingEnd,\n minorAxisFont,\n minorAxisScale.labelPosition,\n minorTicks,\n minorGridTicks,\n minorLabels,\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n width,\n isRTL\n );\n\n return {\n minorAxisLayout: {\n majorGridTicksPos:\n showMajorTicks && majorAxisLayout ? majorAxisLayout.gridTicksPos : undefined,\n minorGridTicksPos: minorAxisLayout.gridTicksPos,\n variant: 'minor' as const,\n ...minorAxisLayout\n },\n majorAxisLayout: majorAxisLayout && {\n majorGridTicksPos: majorAxisLayout.gridTicksPos,\n minorGridTicksPos: undefined,\n variant: 'major' as const,\n ...majorAxisLayout\n }\n };\n};\n\n/**\n * Gets the time axes zoom parameters.\n * @param getTextDimensions The text measurement function.\n * @param labelPaddingStart The interval label padding start.\n * @param labelPaddingEnd The interval label padding end.\n * @param labelMinWidth The interval label min width.\n * @param minorAxisFont The minor axis font.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param minorAxisZoomOrder The minor axis zoom order.\n * @returns The time axes zoom parameters.\n */\nconst getTimeAxesZoomParameters = (\n getTextDimensions: GetTextDimensions,\n labelPaddingStart: number,\n labelPaddingEnd: number,\n labelMinWidth: number,\n minorAxisFont: Font,\n startTime: number,\n endTime: number,\n minorAxisZoomOrder: NonNullable<TimeComponentTimeAxis['zoomOrder']>\n) => {\n const { zoomOrderMinLengthFactor, maxNumIntervals } = getZoomOrderCharacteristics(\n getTextDimensions,\n labelPaddingStart,\n labelPaddingEnd,\n labelMinWidth,\n minorAxisFont,\n minorAxisZoomOrder,\n // 4 sections and 10 interval sections is arbitrary, which samples some labels at every quarter.\n // This is more than enough for the current default scales and labels because they're very equally spaced.\n // but this may not work well with weird custom scales such as reptitions of e.g. [3 weeks, 7 days, 2 months]\n // for a span of 1 year, in which case we may only see weeks and months in our sample, but not days,\n // and we underestimate the content lengths.\n // But even then, users may still be able to zoom in sufficiently to see everything they need.\n // If it turns out this doesn't work well for some common cases, we can bump these params up\n // to cover more intervals in the future.\n {\n type: 'approximate',\n params: { numSections: 4, numIntervalsPerSection: 10, startTime, endTime }\n }\n );\n\n const getZoomOrderViewDurationThresholds = (width: number) =>\n zoomOrderMinLengthFactor.map((l) => width * l);\n const minZoomViewportDuration = (endTime - startTime) / maxNumIntervals;\n const maxZoomViewportDuration = endTime - startTime;\n\n return {\n getZoomOrderViewDurationThresholds,\n minorAxisZoomOrder,\n minZoomViewportDuration,\n maxZoomViewportDuration,\n startTime,\n endTime\n };\n};\n\n/**\n * Returns a function that given the viewport width, returns the resolved time axes layout for the given viewport.\n * @param getTextDimensions The text measurement function.\n * @param labelPaddingStart The interval label padding start.\n * @param labelPaddingEnd The interval label padding end.\n * @param majorAxisFont The major axis font.\n * @param minorAxisFont The minor axis font.\n * @param getZoomOrderViewDurationThresholds A function that given the viewport width, returns the zoom order viewport duration thresholds.\n * @param axisPosition The axis position.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param isRTL Whether the reading direction is rtl.\n * @param resolvedMinorAxisProps The resolved minor axis props.\n * @param resolvedMajorAxisProps The resolved major axis props.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @returns A function that given the viewport width, returns the resolved time axes layout for the given viewport.\n */\nconst getResolvedTimeAxesLayout = (\n getTextDimensions: GetTextDimensions,\n labelPaddingStart: number,\n labelPaddingEnd: number,\n majorAxisFont: Font,\n minorAxisFont: Font,\n getZoomOrderViewDurationThresholds: (width: number) => number[],\n axisPosition: 'top' | 'bottom',\n startTime: number,\n endTime: number,\n isRTL: boolean,\n resolvedMinorAxisProps: ReturnType<typeof getResolvedTimeAxisProps>,\n resolvedMajorAxisProps?: ReturnType<typeof getResolvedTimeAxisProps>,\n viewportStartTime?: number,\n viewportEndTime?: number\n) => {\n return (width: number) => {\n const { zoomOrder, zoomOrderIndex } = resolvedMinorAxisProps;\n const zoomOrderViewDurationThresholds = getZoomOrderViewDurationThresholds(width);\n\n const {\n viewportStartTime: resolvedViewportStartTime,\n viewportEndTime: resolvedViewportEndTime\n } = getResolvedViewport(\n zoomOrderViewDurationThresholds[zoomOrderIndex],\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime\n );\n\n const { majorAxisLayout, minorAxisLayout } = getTimeAxesViewportLayout(\n getTextDimensions,\n labelPaddingStart,\n labelPaddingEnd,\n majorAxisFont,\n minorAxisFont,\n startTime,\n endTime,\n resolvedViewportStartTime,\n resolvedViewportEndTime,\n width,\n isRTL,\n zoomOrder[zoomOrderIndex],\n resolvedMajorAxisProps &&\n resolvedMajorAxisProps.zoomOrder[resolvedMajorAxisProps.zoomOrderIndex]\n );\n\n return {\n position: axisPosition,\n startTime,\n endTime,\n viewportStartTime: resolvedViewportStartTime,\n viewportEndTime: resolvedViewportEndTime,\n width,\n majorAxis: majorAxisLayout && { width, ...resolvedMajorAxisProps!, ...majorAxisLayout },\n minorAxis: { width, ...resolvedMinorAxisProps, ...minorAxisLayout }\n };\n };\n};\n\nexport {\n getResolvedTimeAxisProps,\n getUnresolvedTimeAxesLayout,\n getResolvedTimeAxesLayout,\n getTimeAxesZoomParameters\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { parseDate } from './timeUtils';\n\n/**\n * Returns whether the given configration is valid.\n * @param startTime The start time.\n * @param endTime The end time.\n * @param viewportStartTime The viewport start time.\n * @param viewportEndTime The viewport end time.\n * @returns Whether the given configuration is valid.\n */\nconst hasValidTimeConfig = (\n startTime: number,\n endTime: number,\n viewportStartTime?: number,\n viewportEndTime?: number\n) => {\n const hasValidStartAndEnd = endTime > startTime;\n const hasValidViewport =\n viewportStartTime !== undefined && viewportEndTime !== undefined\n ? viewportEndTime > viewportStartTime\n : true;\n const hasValidViewportStart =\n viewportStartTime !== undefined\n ? viewportStartTime >= startTime && viewportStartTime < endTime\n : true;\n const hasValidViewportEnd =\n viewportEndTime !== undefined\n ? viewportEndTime > startTime && viewportEndTime <= endTime\n : true;\n return hasValidStartAndEnd && hasValidViewport && hasValidViewportStart && hasValidViewportEnd;\n};\n\n/**\n * Gets the parsed time axis params.\n * @param start The start date string.\n * @param end The end date string.\n * @param viewportStart The viewport start date string.\n * @param viewportEnd The viewport end date string.\n * @returns The parsed params.\n */\nconst getParsedTimeAxisParams = (\n start: string,\n end: string,\n viewportStart?: string,\n viewportEnd?: string\n) => {\n const startTime = parseDate(start);\n const endTime = parseDate(end);\n const viewportStartTime = viewportStart ? parseDate(viewportStart) : undefined;\n const viewportEndTime = viewportEnd ? parseDate(viewportEnd) : undefined;\n const isValidTimeConfig = hasValidTimeConfig(\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime\n );\n return { startTime, endTime, viewportStartTime, viewportEndTime, isValidTimeConfig };\n};\n\nexport { hasValidTimeConfig, getParsedTimeAxisParams };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { useCssVars } from '#hooks/PRIVATE_useCssVars';\nimport { bridgeValues } from '../themes/TimeComponentStyles.css';\nimport { typographyVars } from '#Common/themes/themeContract.css';\nimport { xUnits } from '#UNSAFE_Theme/utils';\n\nconst timeComponentUnresolvedVars: Parameters<typeof useCssVars>[0] = [\n {\n tokenVar: bridgeValues.horizontalTimeAxisHeight,\n key: 'defaultTimeAxisHeight',\n cssProp: 'height'\n },\n {\n tokenVar: bridgeValues.horizontalTimeAxisLabelPaddingInlineStart,\n key: 'timeAxisLabelPaddingInlineStart',\n cssProp: 'margin-inline-start'\n },\n {\n tokenVar: bridgeValues.horizontalTimeAxisLabelPaddingInlineEnd,\n key: 'timeAxisLabelPaddingInlineEnd',\n cssProp: 'margin-inline-end'\n },\n {\n tokenVar: xUnits(12.5),\n key: 'timeAxisLabelMinWidth',\n cssProp: 'min-width'\n },\n {\n tokenVar: typographyVars.body.md.fontSize,\n key: 'majorAxisFontSize',\n cssProp: 'font-size'\n },\n {\n tokenVar: typographyVars.body.sm.fontSize,\n key: 'minorAxisFontSize',\n cssProp: 'margin-block-start'\n },\n {\n tokenVar: typographyVars.body.md.fontWeight.semibold,\n key: 'majorAxisFontWeight'\n },\n {\n tokenVar: typographyVars.body.sm.fontWeight.regular,\n key: 'minorAxisFontWeight'\n }\n];\n\n/**\n * Gets the resolved time axis related CSS vars.\n * @param resolvedVars The resolved CSS vars.\n * @returns The resolved values.\n */\nconst getResolvedTimeAxisVars = (resolvedVars: ReturnType<typeof useCssVars>['resolvedVars']) => ({\n defaultTimeAxisHeight: pxToNumber(resolvedVars['defaultTimeAxisHeight']),\n timeAxisLabelPaddingInlineStart: pxToNumber(resolvedVars['timeAxisLabelPaddingInlineStart']),\n timeAxisLabelPaddingInlineEnd: pxToNumber(resolvedVars['timeAxisLabelPaddingInlineEnd']),\n timeAxisLabelMinWidth: pxToNumber(resolvedVars['timeAxisLabelMinWidth']),\n majorAxisFont: {\n fontSize: resolvedVars['majorAxisFontSize'],\n fontWeight: resolvedVars['majorAxisFontWeight']\n },\n minorAxisFont: {\n fontSize: resolvedVars['minorAxisFontSize'],\n fontWeight: resolvedVars['minorAxisFontWeight']\n }\n});\n\n// TODO: Export this from useCssVars? Or make useCssVars output number for px strings?\n/**\n * Parses the number from a pixel string.\n * @param length The pixel string.\n * @returns The number.\n */\nconst pxToNumber = (length: string) =>\n length === '0' ? 0 : Number(length.substring(0, length.length - 2));\n\nexport { timeComponentUnresolvedVars, getResolvedTimeAxisVars, pxToNumber };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { useCssVars } from '#hooks/PRIVATE_useCssVars';\nimport { baseVars } from '#Common/themes/themeContract.css';\nimport { xUnits } from '#UNSAFE_Theme/utils';\nimport { pxToNumber } from '#PRIVATE_TimeComponent/utils/timeComponentStyleUtils';\nimport { bridgeValues } from '../themes/GanttStyles.css';\n\nconst ganttUnresolvedVars: Parameters<typeof useCssVars>[0] = [\n {\n tokenVar: bridgeValues.rowLabelPaddingInlineStart,\n key: 'rowLabelPaddingInlineStart',\n cssProp: 'padding-inline-start'\n },\n {\n tokenVar: bridgeValues.rowLabelPaddingInlineStart,\n key: 'rowLabelPaddingInlineEnd',\n cssProp: 'padding-inline-end'\n },\n {\n tokenVar: xUnits(3),\n key: 'rowPaddingTop',\n cssProp: 'padding-top'\n },\n {\n tokenVar: xUnits(3),\n key: 'rowPaddingBottom',\n cssProp: 'padding-bottom'\n },\n {\n tokenVar: xUnits(6),\n key: 'taskHeight',\n cssProp: 'min-height'\n },\n {\n tokenVar: xUnits(1),\n key: 'taskBorderRadius',\n cssProp: 'border-radius'\n },\n {\n tokenVar: bridgeValues.taskBgColor,\n key: 'taskBgColor',\n cssProp: 'background-color'\n },\n {\n tokenVar: bridgeValues.taskBorderColor,\n key: 'taskBorderColor',\n cssProp: 'border-color'\n },\n {\n tokenVar: bridgeValues.taskEffectBorderColor,\n key: 'taskEffectBorderColor',\n cssProp: 'outline-color'\n },\n {\n tokenVar: baseVars.boxShadow.md,\n key: 'taskEffectBoxShadow',\n cssProp: 'box-shadow'\n }\n];\n\n/**\n * Parses a CSS box-shadow string.\n * @param boxShadow A CSS box-shadow string, of the form \"color offsetX offsetY blur spread\".\n * @returns The components of the box-shadow.\n */\nconst parseBoxShadow = (boxShadow: string) => {\n // boxShadow: \"color offsetX offsetY blur spread\"\n // color may have spaces e.g. rgb(0, 0, 0, 0.2)\n const [_, shadowBlur, shadowOffsetY, shadowOffsetX, ...rest] = boxShadow.split(' ').reverse();\n const shadowColor = rest.reverse().join(' ');\n return {\n shadowColor,\n shadowOffsetX: pxToNumber(shadowOffsetX ?? '0'),\n shadowOffsetY: pxToNumber(shadowOffsetY ?? '0'),\n shadowBlur: pxToNumber(shadowBlur ?? '0')\n };\n};\n\n/**\n * Gets the resolved row axis related CSS vars.\n * @param resolvedVars The resolved CSS vars.\n * @returns The resolved values.\n */\nconst getResolvedRowAxisVars = (resolvedVars: ReturnType<typeof useCssVars>['resolvedVars']) => ({\n rowLabelPaddingInlineStart: pxToNumber(resolvedVars['rowLabelPaddingInlineStart']),\n rowLabelPaddingInlineEnd: pxToNumber(resolvedVars['rowLabelPaddingInlineEnd'])\n});\n\n/**\n * Gets the resolved row related CSS vars.\n * @param resolvedVars The resolved CSS vars.\n * @returns The resolved values.\n */\nconst getResolvedRowVars = (resolvedVars: ReturnType<typeof useCssVars>['resolvedVars']) => ({\n rowPaddingTop: pxToNumber(resolvedVars['rowPaddingTop']),\n rowPaddingBottom: pxToNumber(resolvedVars['rowPaddingBottom'])\n});\n\n/**\n * Gets the resolved task related CSS vars.\n * @param resolvedVars The resolved CSS vars.\n * @returns The resolved values.\n */\nconst getResolvedTaskVars = (resolvedVars: ReturnType<typeof useCssVars>['resolvedVars']) => ({\n taskHeight: pxToNumber(resolvedVars['taskHeight']),\n taskBorderRadius: resolvedVars['taskBorderRadius'] as string,\n taskBgColor: resolvedVars['taskBgColor'] as string,\n taskBorderColor: resolvedVars['taskBorderColor'] as string,\n taskEffectBorderColor: resolvedVars['taskEffectBorderColor'] as string,\n taskEffectBoxShadow: parseBoxShadow(resolvedVars['taskEffectBoxShadow'])\n});\n\nexport { ganttUnresolvedVars, getResolvedRowAxisVars, getResolvedRowVars, getResolvedTaskVars };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { getUnresolvedTimeAxesLayout } from '#PRIVATE_TimeComponent/utils/timeAxisLayoutUtils';\n\n/**\n * Gets the pan zoom canvas layout given the time axes layout.\n * @param timeAxesLayout The time axes layout.\n * @returns The pan zoom canvas layout.\n */\nconst getPanZoomCanvasLayout = (timeAxesLayout: ReturnType<typeof getUnresolvedTimeAxesLayout>) => {\n const layout = {\n top: {\n overlayControlsPosition: 'topEnd' as const,\n verticalControlTopGap: timeAxesLayout.height,\n verticalControlBottomGap: '0'\n },\n bottom: {\n overlayControlsPosition: 'bottomEnd' as const,\n verticalControlTopGap: '0',\n verticalControlBottomGap: timeAxesLayout.height\n }\n };\n return layout[timeAxesLayout.position];\n};\n\nexport { getPanZoomCanvasLayout };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttRowAxisProps } from '../gantt.types';\nimport { getUnresolvedTimeAxesLayout } from '#PRIVATE_TimeComponent/utils/timeAxisLayoutUtils';\nimport { bridgeValues as timeCompBridgeValues } from '#PRIVATE_TimeComponent/themes/TimeComponentStyles.css';\nimport { xUnits } from '#UNSAFE_Theme';\n\ntype RowAxisWidth<D1> = NonNullable<GanttRowAxisProps<D1>['width']>;\ntype RowAxisMaxWidth<D1> = NonNullable<GanttRowAxisProps<D1>['maxWidth']>;\ntype RowAxisLabel<D1> = NonNullable<GanttRowAxisProps<D1>['labelRenderer']>;\n\n/**\n * Gets the row axis layout.\n * @param timeAxesLayout The time axes layout.\n * @param rowAxisProps The row axis props.\n * @returns\n */\nconst getWithRowAxisLayout = <D1>(\n timeAxesLayout: ReturnType<typeof getUnresolvedTimeAxesLayout>,\n rowAxisProps: {\n width: RowAxisWidth<D1>;\n maxWidth: RowAxisMaxWidth<D1>;\n label: RowAxisLabel<D1>;\n }\n) => {\n const horiScrollbarHeight = `${xUnits(1)} + ${timeCompBridgeValues.horizontalScrollbarHeight}`;\n const generalLayout = {\n top: {\n rowAxisTopGap: timeAxesLayout.height,\n rowAxisBottomGap: `calc(${horiScrollbarHeight})`\n },\n bottom: {\n rowAxisTopGap: '0',\n rowAxisBottomGap: `calc(${timeAxesLayout.height} + ${horiScrollbarHeight})`\n }\n };\n\n const resolvedWidth = getResolvedLength(rowAxisProps.width);\n const resolvedMaxWidth = getResolvedLength(rowAxisProps.maxWidth);\n\n return {\n ...generalLayout[timeAxesLayout.position],\n resolvedRowAxisWidth: resolvedWidth,\n resolvedRowAxisMaxWidth: resolvedMaxWidth,\n label: rowAxisProps.label\n };\n};\n\n/**\n * Gets the parsed length given the values that the row axis accepts.\n * @param length The length values that the row axis accepts.\n * @returns The parsed length.\n */\nconst getResolvedLength = <D1>(length: RowAxisWidth<D1> | RowAxisMaxWidth<D1>) => {\n if (length.endsWith('px')) {\n return {\n value: Number(length.substring(0, length.length - 2)),\n suffix: 'px' as const\n };\n }\n if (length.endsWith('%')) {\n return {\n value: Number(length.substring(0, length.length - 1)),\n suffix: '%' as const\n };\n }\n // length is 'max-content' for width and 'none' for max-width\n return {\n value: Infinity,\n suffix: undefined\n };\n};\n\nexport { getWithRowAxisLayout };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\n/**\n * Gets the resolved horizontal scrollbar layout.\n * @param min The range min.\n * @param max The range max.\n * @param globalMin The global min.\n * @param globalMax The global max.\n * @param isRTL Whether the reading direction is rtl.\n * @returns The resolved horizontal scrollbar layout.\n */\nconst getResolvedHorizontalScrollbarLayout = (\n min: number,\n max: number,\n globalMin: number,\n globalMax: number,\n isRTL: boolean\n) => {\n return (width: number) => {\n const localRange = max - min;\n const globalRange = globalMax - globalMin;\n const thumbWidth = (width * localRange) / globalRange;\n const thumbStartOffset = (width * (min - globalMin)) / globalRange;\n const logicalThumbLeft = isRTL ? width - thumbStartOffset - thumbWidth : thumbStartOffset;\n const thumbLeft = isRTL ? undefined : thumbStartOffset;\n const thumbRight = isRTL ? thumbStartOffset : undefined;\n\n const draggableRegion = {\n xMin: logicalThumbLeft,\n xMax: logicalThumbLeft + thumbWidth,\n yMin: -Infinity,\n yMax: Infinity\n };\n\n const getNewRange = (newThumbLeft: number) => {\n const p = isRTL ? Math.max(0, width - newThumbLeft - thumbWidth) : newThumbLeft;\n const newMin = Math.min(globalMin + (p / width) * globalRange, globalMax - localRange);\n const newMax = newMin + localRange;\n return { newMin, newMax };\n };\n\n return {\n thumbWidth,\n thumbLeft,\n thumbRight,\n draggableRegion,\n getNewRange\n };\n };\n};\n\n/**\n * Gets the resolved vertical scrollbar layout.\n * @param min The range min.\n * @param max The range max (if any).\n * @param globalMin The global min.\n * @param globalMax The global max.\n * @returns The resolved vertical scrollbar layout.\n */\nconst getResolvedVerticalScrollbarLayout = (\n min: number,\n max: number | undefined,\n globalMin: number,\n globalMax: number\n) => {\n return (height: number) => {\n // It's possible for globalRange to be smaller than localRange\n // due to the component being taller than the height the data occupies\n // e.g. tall Gantt with 1 row\n // So throughout this code we make sure to clamp thumb dimensions and ranges\n const localRange = (max ?? height + min) - min;\n const globalRange = globalMax - globalMin;\n const thumbHeight = Math.min(height, (height * localRange) / globalRange);\n const thumbTop = Math.max(0, (height * (min - globalMin)) / globalRange);\n\n const draggableRegion = {\n xMin: -Infinity,\n xMax: Infinity,\n yMin: thumbTop,\n yMax: thumbTop + thumbHeight\n };\n\n const getNewRange = (newThumbTop: number) => {\n const newMin = Math.max(\n 0,\n Math.min(globalMin + (newThumbTop / height) * globalRange, globalMax - localRange)\n );\n const newMax = newMin + localRange;\n return { newMin, newMax };\n };\n\n return {\n thumbHeight,\n thumbTop,\n draggableRegion,\n getNewRange\n };\n };\n};\n\nexport { getResolvedHorizontalScrollbarLayout, getResolvedVerticalScrollbarLayout };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { GanttProps, GanttRowData, GanttTaskData } from '../gantt.types';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useCssVars } from '#hooks/PRIVATE_useCssVars';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport {\n getResolvedTimeAxisProps,\n getUnresolvedTimeAxesLayout,\n getResolvedTimeAxesLayout,\n getTimeAxesZoomParameters\n} from '#PRIVATE_TimeComponent/utils/timeAxisLayoutUtils';\nimport { getParsedTimeAxisParams } from '#PRIVATE_TimeComponent/utils/validationUtils';\nimport { getISOString } from '#PRIVATE_TimeComponent/utils/timeUtils';\nimport {\n ganttUnresolvedVars,\n getResolvedRowAxisVars,\n getResolvedRowVars,\n getResolvedTaskVars\n} from '../utils/ganttStyleUtils';\nimport {\n timeComponentUnresolvedVars,\n getResolvedTimeAxisVars\n} from '#PRIVATE_TimeComponent/utils/timeComponentStyleUtils';\nimport { getPanZoomCanvasLayout } from '../utils/panZoomCanvasLayoutUtils';\nimport { getWithRowAxisLayout } from '../utils/rowAxisLayoutUtils';\nimport { getResolvedViewportLayout, getRowDataLayout } from '../utils/dataLayoutUtils';\nimport {\n getResolvedHorizontalScrollbarLayout,\n getResolvedVerticalScrollbarLayout\n} from '#PRIVATE_TimeComponent/utils/scrollbarLayoutUtils';\nimport { defaultRowAxisLabelRender } from '../utils/rowAxisUtils';\n\nconst cssVars = timeComponentUnresolvedVars.concat(ganttUnresolvedVars);\n\n/**\n * Hook that computes layout related information for the Gantt.\n */\nconst useGanttLayout = <K1, K2, D1 extends GanttRowData<K1, D1, D2>, D2 extends GanttTaskData<K2>>({\n rowAxis: rowAxisProps,\n gridlines: { horizontal: gridlinesHorizontal = 'off', vertical: gridlinesVertical = 'on' } = {\n horizontal: 'off',\n vertical: 'on'\n },\n axisPosition = 'top',\n minorAxis,\n majorAxis,\n start,\n end,\n viewportStart,\n viewportEnd,\n onViewportChange,\n scrollPosition: { y: scrollPosition = 0 } = { y: 0 },\n onScrollPositionChange,\n rows,\n selectedIds,\n selectionMode = 'none'\n}: Omit<GanttProps<K2, D1, D2>, 'width' | 'height'>) => {\n const { direction } = useUser();\n const { resolvedVars, cssContent } = useCssVars(cssVars);\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n\n const isRTL = direction === 'rtl';\n const layoutContent = (\n <>\n {textMeasureContent}\n {cssContent}\n </>\n );\n\n const {\n startTime,\n endTime,\n viewportStartTime,\n viewportEndTime,\n isValidTimeConfig: isValidConfig\n } = getParsedTimeAxisParams(start, end, viewportStart, viewportEnd);\n\n // TODO: take a look a useCssVars and see if we can tighten the types more and make the following check nicer.\n if (!getTextDimensions || Object.keys(resolvedVars).length === 0) {\n return { isRTL, layoutContent, isValidConfig, isReady: false };\n }\n\n if (!isValidConfig) {\n return { isRTL, layoutContent, isValidConfig, isReady: true };\n }\n\n // Resolve row axis props\n const rowAxisRendered = rowAxisProps === undefined ? 'off' : 'on';\n const rowAxis = rowAxisProps === 'on' ? {} : rowAxisProps;\n const rowAxisWidth = rowAxis?.width ?? 'max-content';\n const rowAxisMaxWidth = rowAxis?.maxWidth ?? 'none';\n const rowAxisLabelRender = rowAxis?.labelRenderer ?? defaultRowAxisLabelRender;\n\n // General layout\n const unresolvedTimeAxesLayout = getUnresolvedTimeAxesLayout(axisPosition, minorAxis, majorAxis);\n const panZoomLayout = getPanZoomCanvasLayout(unresolvedTimeAxesLayout);\n const withRowAxisLayout =\n rowAxisRendered === 'on'\n ? getWithRowAxisLayout<D1>(unresolvedTimeAxesLayout, {\n width: rowAxisWidth,\n maxWidth: rowAxisMaxWidth,\n label: rowAxisLabelRender\n })\n : undefined;\n\n // Time axes layout and Zoom parameters\n const timeAxisResolvedVars = getResolvedTimeAxisVars(resolvedVars);\n const resolvedMajorAxisProps =\n majorAxis && getResolvedTimeAxisProps(timeAxisResolvedVars.defaultTimeAxisHeight, majorAxis);\n const resolvedMinorAxisProps = getResolvedTimeAxisProps(\n timeAxisResolvedVars.defaultTimeAxisHeight,\n minorAxis\n );\n // TODO: see if we need to useMemo this\n const zoomParameters = getTimeAxesZoomParameters(\n getTextDimensions,\n timeAxisResolvedVars.timeAxisLabelPaddingInlineStart,\n timeAxisResolvedVars.timeAxisLabelPaddingInlineEnd,\n timeAxisResolvedVars.timeAxisLabelMinWidth,\n timeAxisResolvedVars.minorAxisFont,\n startTime,\n endTime,\n resolvedMinorAxisProps.zoomOrder\n );\n const getTimeAxesLayout = getResolvedTimeAxesLayout(\n getTextDimensions,\n timeAxisResolvedVars.timeAxisLabelPaddingInlineStart,\n timeAxisResolvedVars.timeAxisLabelPaddingInlineEnd,\n timeAxisResolvedVars.majorAxisFont,\n timeAxisResolvedVars.minorAxisFont,\n zoomParameters.getZoomOrderViewDurationThresholds,\n axisPosition,\n startTime,\n endTime,\n isRTL,\n resolvedMinorAxisProps,\n resolvedMajorAxisProps,\n viewportStartTime,\n viewportEndTime\n );\n\n // Row data layout\n const rowResolvedVars = getResolvedRowVars(resolvedVars);\n const taskResolvedVars = getResolvedTaskVars(resolvedVars);\n const gridlines = { horizontal: gridlinesHorizontal, vertical: gridlinesVertical };\n const rowDataLayout = getRowDataLayout<K1, K2, D1, D2>(\n rows,\n { ...rowResolvedVars, ...taskResolvedVars },\n gridlines,\n { selectedIds, selectionMode }\n );\n\n // Row axis layout\n const rowAxisResolvedVars = getResolvedRowAxisVars(resolvedVars);\n const rowAxisLayout = {\n labelPaddingInlineStart: rowAxisResolvedVars.rowLabelPaddingInlineStart,\n labelPaddingInlineEnd: rowAxisResolvedVars.rowLabelPaddingInlineEnd,\n rowData: rowDataLayout.rowData,\n rowObjs: rowDataLayout.rowObjs,\n idRowObjMap: rowDataLayout.idRowObjMap,\n isHorizontalGridlinesVisible: gridlinesHorizontal === 'on'\n };\n\n // Horizontal scrollbar layout\n const getHorizontalScrollbarLayout = getResolvedHorizontalScrollbarLayout(\n viewportStartTime ?? startTime,\n viewportEndTime ?? endTime,\n startTime,\n endTime,\n isRTL\n );\n\n const onHorizontalScrollChange = (newViewStartTime: number, newViewEndTime: number) => {\n onViewportChange?.({\n viewportStart: getISOString(newViewStartTime),\n viewportEnd: getISOString(newViewEndTime),\n majorAxisScale: majorAxis?.scale,\n minorAxisScale: minorAxis.scale\n });\n };\n\n // Vertical scrollbar layout\n const getVerticalScrollbarLayout = getResolvedVerticalScrollbarLayout(\n scrollPosition,\n undefined,\n 0,\n rowDataLayout.totalRowsHeight\n );\n\n const onVerticalScrollChange = (newScrollPosition: number) => {\n onScrollPositionChange?.({ y: newScrollPosition });\n };\n\n return {\n scrollPosition,\n panZoomLayout,\n withRowAxisLayout,\n getTimeAxesLayout,\n zoomParameters:\n viewportStartTime !== undefined && viewportEndTime !== undefined\n ? {\n viewportStartTime,\n viewportEndTime,\n minorAxisZoomOrderIndex: resolvedMinorAxisProps.zoomOrderIndex,\n majorAxisZoomOrder: resolvedMajorAxisProps?.zoomOrder,\n majorAxisZoomOrderIndex: resolvedMajorAxisProps?.zoomOrderIndex,\n ...zoomParameters\n }\n : undefined,\n rowDataLayout,\n rowAxisLayout,\n getResolvedViewportLayout,\n getHorizontalScrollbarLayout,\n onHorizontalScrollChange,\n getVerticalScrollbarLayout,\n onVerticalScrollChange,\n isRTL,\n layoutContent,\n isValidConfig,\n isReady: true\n };\n};\n\nexport { useGanttLayout };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\n\ntype UseTimeComponentEventsOptions = {\n rootRef: RefObject<HTMLDivElement>;\n overlayControlsContainerRef: RefObject<HTMLDivElement>;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that handles various Time Component gestures.\n */\nconst useTimeComponentEvents = ({\n rootRef,\n overlayControlsContainerRef,\n isDisabled = false\n}: UseTimeComponentEventsOptions) => {\n const isFocused = useRef(false);\n\n const dispatchControlsShow = () => {\n const e = new Event('ControlsShow');\n overlayControlsContainerRef.current?.dispatchEvent(e);\n };\n\n const dispatchControlsHide = () => {\n const e = new Event('ControlsHide');\n overlayControlsContainerRef.current?.dispatchEvent(e);\n };\n\n const onFocus = () => {\n isFocused.current = true;\n dispatchControlsShow();\n };\n\n const onBlur = (e: FocusEvent) => {\n if (!e.relatedTarget || !rootRef.current?.contains(e.relatedTarget as Node)) {\n isFocused.current = false;\n dispatchControlsHide();\n }\n };\n\n const onPointerDown = (e: PointerEvent) => {\n if (e.pointerType !== 'mouse') {\n // Ensure component is focused upon interaction\n // e.g. on touch devices, if the component is not initially focused\n // then one tries to drag pan the component, the component is still\n // not focused. This is not a problem with mouse devices.\n rootRef.current?.focus();\n }\n };\n\n const onPointerOver = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n dispatchControlsShow();\n }\n };\n\n const onPointerOut = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n if (!isFocused.current) dispatchControlsHide();\n }\n };\n\n return isDisabled\n ? {}\n : {\n onFocus,\n onBlur,\n onPointerDown,\n onPointerOver,\n onPointerOut\n };\n};\n\nexport { useTimeComponentEvents };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { DEFAULT_ZOOM_IN_FACTOR, DEFAULT_ZOOM_OUT_FACTOR } from './timeZoomUtils';\n\nconst DEFAULT_PAN_UP_RANGE_RATIO = 0.25;\nconst DEFAULT_PAN_DOWN_RANGE_RATIO = -0.25;\nconst DEFAULT_PAN_START_RANGE_RATIO = 0.25;\nconst DEFAULT_PAN_END_RANGE_RATIO = -0.25;\n\ntype KbPanEvent = CustomEvent<{ rangeRatio: number }>;\ntype KbZoomEvent = CustomEvent<{ zoomFactor: number }>;\n\nconst createKbPanUpEvent = () =>\n new CustomEvent('KbPanVertical', { detail: { rangeRatio: DEFAULT_PAN_UP_RANGE_RATIO } });\n\nconst createKbPanDownEvent = () =>\n new CustomEvent('KbPanVertical', { detail: { rangeRatio: DEFAULT_PAN_DOWN_RANGE_RATIO } });\n\nconst createKbPanStartEvent = () =>\n new CustomEvent('KbPanHorizontal', { detail: { rangeRatio: DEFAULT_PAN_START_RANGE_RATIO } });\n\nconst createKbPanEndEvent = () =>\n new CustomEvent('KbPanHorizontal', { detail: { rangeRatio: DEFAULT_PAN_END_RANGE_RATIO } });\n\nconst createKbZoomInEvent = () =>\n new CustomEvent('KbZoomIn', { detail: { zoomFactor: DEFAULT_ZOOM_IN_FACTOR } });\n\nconst createKbZoomOutEvent = () =>\n new CustomEvent('KbZoomIn', { detail: { zoomFactor: DEFAULT_ZOOM_OUT_FACTOR } });\n\nexport {\n type KbPanEvent,\n createKbPanUpEvent,\n createKbPanDownEvent,\n createKbPanStartEvent,\n createKbPanEndEvent,\n type KbZoomEvent,\n createKbZoomInEvent,\n createKbZoomOutEvent\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { cancelEvent } from '#utils/UNSAFE_visUtils';\nimport {\n createKbPanDownEvent,\n createKbPanEndEvent,\n createKbPanStartEvent,\n createKbPanUpEvent,\n createKbZoomInEvent,\n createKbZoomOutEvent\n} from '../utils/keyboardUtils';\n\ntype UseTimeComponentKeyboardOptions = {\n visRef: RefObject<HTMLDivElement>;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that handles various Time Component keyboard gestures.\n */\nconst useTimeComponentKeyboard = ({\n visRef,\n isDisabled = false\n}: UseTimeComponentKeyboardOptions) => {\n const onKeyDown = (event: KeyboardEvent) => {\n const key = event.key;\n switch (key) {\n case '=':\n case '+': {\n const e = createKbZoomInEvent();\n visRef.current?.dispatchEvent(e);\n cancelEvent(event);\n break;\n }\n case '-':\n case '_': {\n const e = createKbZoomOutEvent();\n visRef.current?.dispatchEvent(e);\n cancelEvent(event);\n break;\n }\n case 'PageUp': {\n const e = event.shiftKey ? createKbPanStartEvent() : createKbPanUpEvent();\n visRef.current?.dispatchEvent(e);\n cancelEvent(event);\n break;\n }\n case 'PageDown': {\n const e = event.shiftKey ? createKbPanEndEvent() : createKbPanDownEvent();\n visRef.current?.dispatchEvent(e);\n cancelEvent(event);\n break;\n }\n }\n };\n\n return isDisabled ? {} : { onKeyDown };\n};\n\nexport { useTimeComponentKeyboard };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { cancelEvent } from '#utils/UNSAFE_visUtils';\nimport type { GanttCurrentTask, GanttRowData, GanttTaskData } from '../gantt.types';\nimport type { getRowDataLayout } from '../utils/dataLayoutUtils';\nimport {\n getAboveTaskNavigable,\n getBelowTaskNavigable,\n getNextTaskNavigable,\n getPrevTaskNavigable\n} from '../utils/navigationUtils';\n\ntype UseGanttTaskNavigationOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n currentTask: GanttCurrentTask<K2>['currentTask'];\n onCurrentTaskChange: GanttCurrentTask<K2>['onCurrentTaskChange'];\n isRTL: boolean;\n isDisabled?: boolean;\n};\n\n/**\n * Hook that handles row labels keyboard navigation.\n */\nconst useGanttTaskNavigation = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n rowDataLayout,\n currentTask,\n onCurrentTaskChange,\n isRTL,\n isDisabled = false\n}: UseGanttTaskNavigationOptions<K1, K2, D1, D2>) => {\n const onKeyDown = (event: KeyboardEvent) => {\n const key = event.key;\n switch (key) {\n case 'ArrowRight': {\n const nextTaskId =\n currentTask &&\n (!isRTL\n ? getNextTaskNavigable(currentTask.id, rowDataLayout)\n : getPrevTaskNavigable(currentTask.id, rowDataLayout));\n if (nextTaskId !== undefined) {\n onCurrentTaskChange({ id: nextTaskId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n case 'ArrowLeft': {\n const prevTaskId =\n currentTask &&\n (!isRTL\n ? getPrevTaskNavigable(currentTask.id, rowDataLayout)\n : getNextTaskNavigable(currentTask.id, rowDataLayout));\n if (prevTaskId !== undefined) {\n onCurrentTaskChange({ id: prevTaskId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n case 'ArrowUp': {\n const aboveTaskId = currentTask && getAboveTaskNavigable(currentTask.id, rowDataLayout);\n if (aboveTaskId !== undefined) {\n onCurrentTaskChange({ id: aboveTaskId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n case 'ArrowDown': {\n const belowTaskId = currentTask && getBelowTaskNavigable(currentTask.id, rowDataLayout);\n if (belowTaskId !== undefined) {\n onCurrentTaskChange({ id: belowTaskId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n }\n };\n\n return isDisabled ? {} : { onKeyDown };\n};\n\nexport { useGanttTaskNavigation };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { cancelEvent } from '#utils/UNSAFE_visUtils';\nimport type { GanttCurrentRowLabel, GanttRowData, GanttTaskData } from '../gantt.types';\nimport type { getRowDataLayout } from '../utils/dataLayoutUtils';\nimport { getAboveRowLabelNavigable, getBelowRowLabelNavigable } from '../utils/navigationUtils';\n\ntype UseGanttRowLabelNavigationOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n currentRowLabel: GanttCurrentRowLabel<K1>['currentRowLabel'];\n onCurrentRowLabelChange: GanttCurrentRowLabel<K1>['onCurrentRowLabelChange'];\n isDisabled?: boolean;\n};\n\n/**\n * Hook that handles row labels keyboard navigation.\n */\nconst useGanttRowLabelNavigation = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n rowDataLayout,\n currentRowLabel,\n onCurrentRowLabelChange,\n isDisabled = false\n}: UseGanttRowLabelNavigationOptions<K1, K2, D1, D2>) => {\n const onKeyDown = (event: KeyboardEvent) => {\n const key = event.key;\n switch (key) {\n case 'ArrowUp': {\n const aboveRowId =\n currentRowLabel && getAboveRowLabelNavigable(currentRowLabel.id, rowDataLayout);\n if (aboveRowId !== undefined) {\n onCurrentRowLabelChange({ id: aboveRowId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n case 'ArrowDown': {\n const belowRowId =\n currentRowLabel && getBelowRowLabelNavigable(currentRowLabel.id, rowDataLayout);\n if (belowRowId !== undefined) {\n onCurrentRowLabelChange({ id: belowRowId, isFocused: true });\n }\n cancelEvent(event);\n break;\n }\n }\n };\n\n return isDisabled ? {} : { onKeyDown };\n};\n\nexport { useGanttRowLabelNavigation };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { cancelEvent } from '#utils/UNSAFE_visUtils';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useTimeComponentKeyboard } from '#PRIVATE_TimeComponent/hooks/useTimeComponentKeyboard';\nimport { useSelection } from '#hooks/PRIVATE_useVisSelection';\nimport type {\n GanttCurrentRowLabel,\n GanttCurrentTask,\n GanttRowData,\n GanttSelection as GanttSelectionProps,\n GanttTaskData\n} from '../gantt.types';\nimport type { getRowDataLayout } from '../utils/dataLayoutUtils';\nimport {\n getDefaultInitialFocusTask,\n getRowLabelNavigableFromTask,\n getTaskNavigableFromRowLabel\n} from '../utils/navigationUtils';\nimport { useGanttTaskNavigation } from './useGanttTaskNavigation';\nimport { useGanttRowLabelNavigation } from './useGanttRowLabelNavigation';\n\n/**\n * Hook that handles keyboard gestures on a Gantt.\n */\ntype UseGanttKeyboardOptions<\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n> = {\n visRef: RefObject<HTMLDivElement>;\n rowAxisRef: RefObject<HTMLDivElement>;\n rowDataLayout: ReturnType<typeof getRowDataLayout<K1, K2, D1, D2>>;\n navigationModes: {\n tasks: {\n currentItem: GanttCurrentTask<K2>['currentTask'];\n onCurrentItemChange: GanttCurrentTask<K2>['onCurrentTaskChange'];\n };\n rowLabels: {\n currentItem: GanttCurrentRowLabel<K1>['currentRowLabel'];\n onCurrentItemChange: GanttCurrentRowLabel<K1>['onCurrentRowLabelChange'];\n };\n };\n selectionProps: GanttSelectionProps<K2, D2>;\n isRTL: boolean;\n isDisabled?: boolean;\n};\n\nconst useGanttKeyboard = <\n K1,\n K2,\n D1 extends GanttRowData<K1, D1, D2>,\n D2 extends GanttTaskData<K2>\n>({\n visRef,\n rowAxisRef,\n rowDataLayout,\n navigationModes,\n selectionProps,\n isRTL,\n isDisabled = false\n}: UseGanttKeyboardOptions<K1, K2, D1, D2>) => {\n const currentNavMode = useRef<keyof typeof navigationModes>('tasks');\n\n const idExtracter = (event: Event) => {\n if (currentNavMode.current !== 'tasks' || event.type !== 'keyup') return;\n return navigationModes.tasks.currentItem?.id;\n };\n\n const { onKeyUp: selectionKeyup } = useSelection<K2, D2>({\n idExtracter,\n selection: selectionProps.selectedIds,\n selectionMode: selectionProps.selectionMode,\n onChange: selectionProps.onSelectionChange,\n // TODO: rowDataLayout is undefined when isDisabled is true. Let's reevalute the lifecycle when we work on JET-62889\n getDataById: rowDataLayout?.getTaskDataById || (() => undefined)\n }).selectionProps;\n const selectionKeyboardProps =\n currentNavMode.current === 'tasks' ? { onKeyUp: selectionKeyup } : {};\n\n const keyboardProps = useTimeComponentKeyboard({\n visRef,\n isDisabled\n });\n\n const taskNavProps = useGanttTaskNavigation({\n rowDataLayout,\n currentTask: navigationModes.tasks.currentItem,\n onCurrentTaskChange: navigationModes.tasks.onCurrentItemChange,\n isRTL\n });\n\n const rowLabelNavProps = useGanttRowLabelNavigation({\n rowDataLayout,\n currentRowLabel: navigationModes.rowLabels.currentItem,\n onCurrentRowLabelChange: navigationModes.rowLabels.onCurrentItemChange\n });\n\n const onKeyDown = (event: KeyboardEvent) => {\n let stopImmediatePropagation = false;\n const applyFocus = (item: { id: K1; type: 'rowLabels' } | { id: K2; type: 'tasks' }) => {\n const { onCurrentItemChange } = navigationModes[item.type];\n onCurrentItemChange({ id: item.id as any, isFocused: true });\n };\n const removeFocus = (navType: keyof typeof navigationModes) => {\n const { currentItem, onCurrentItemChange } = navigationModes[navType];\n currentItem && onCurrentItemChange({ id: currentItem.id as any, isFocused: false });\n };\n const enterRowLabelsNavigation = () => {\n const id = getRowLabelNavigableFromTask(navigationModes.tasks.currentItem!.id, rowDataLayout);\n applyFocus({ id, type: 'rowLabels' });\n removeFocus('tasks');\n currentNavMode.current = 'rowLabels';\n stopImmediatePropagation = true;\n cancelEvent(event);\n };\n const enterTasksNavigation = () => {\n const id = getTaskNavigableFromRowLabel(\n navigationModes.rowLabels.currentItem!.id,\n rowDataLayout,\n navigationModes.tasks.currentItem?.id\n );\n id !== undefined && applyFocus({ id, type: 'tasks' });\n removeFocus('rowLabels');\n currentNavMode.current = 'tasks';\n stopImmediatePropagation = true;\n cancelEvent(event);\n };\n\n const key = event.key;\n switch (key) {\n case 'Tab': {\n // Tab OUT of component\n // Remove focus visuals\n removeFocus(currentNavMode.current);\n break;\n }\n case 'ArrowLeft': {\n if (event.altKey) {\n if (!isRTL && currentNavMode.current === 'tasks') {\n enterRowLabelsNavigation();\n } else if (isRTL && currentNavMode.current === 'rowLabels') {\n enterTasksNavigation();\n }\n }\n break;\n }\n case 'ArrowRight': {\n if (event.altKey) {\n if (!isRTL && currentNavMode.current === 'rowLabels') {\n enterTasksNavigation();\n } else if (isRTL && currentNavMode.current === 'tasks') {\n enterRowLabelsNavigation();\n }\n }\n break;\n }\n }\n\n if (!stopImmediatePropagation) {\n switch (currentNavMode.current) {\n case 'tasks':\n taskNavProps.onKeyDown?.(event);\n break;\n case 'rowLabels':\n rowLabelNavProps.onKeyDown?.(event);\n break;\n default: {\n const _exhaustiveCheck: never = currentNavMode.current;\n return _exhaustiveCheck;\n }\n }\n }\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n const key = event.key;\n switch (key) {\n case 'Tab': {\n // Tab INTO component\n const { currentItem, onCurrentItemChange } = navigationModes[currentNavMode.current];\n // currentItem should only ever be undefined on first Tab\n const itemToFocus = currentItem ? currentItem : getDefaultInitialFocusTask(rowDataLayout);\n itemToFocus && onCurrentItemChange({ id: itemToFocus.id as any, isFocused: true });\n cancelEvent(event);\n break;\n }\n }\n };\n\n // 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)\n const focusDatatipProps = {\n onFocus: () => {\n const e = new Event('ShowFocusDatatip');\n visRef.current?.dispatchEvent(e);\n rowAxisRef.current?.dispatchEvent(e);\n }\n };\n\n return isDisabled\n ? {}\n : mergeProps(keyboardProps, focusDatatipProps, { onKeyDown, onKeyUp }, selectionKeyboardProps);\n};\n\nexport { useGanttKeyboard };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useRef, useState } from 'preact/hooks';\nimport type {\n GanttCurrentRowLabel,\n GanttCurrentTask,\n GanttProps,\n GanttRowData,\n GanttTaskData\n} from './gantt.types';\nimport { GanttContainer } from './GanttContainer';\nimport { GanttWithRowAxisLayout } from './GanttWithRowAxisLayout';\nimport { GanttRowAxis } from './GanttRowAxis';\nimport { GanttView } from './GanttView';\nimport { useGanttLayout } from './hooks/useGanttLayout';\nimport { useTimeComponentEvents } from '#PRIVATE_TimeComponent/hooks/useTimeComponentEvents';\nimport { useGanttKeyboard } from './hooks/useGanttKeyboard';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { getRandomId } from '#utils/PRIVATE_visLayoutUtils';\n\n/**\n * A gantt displays scheduling information graphically, making it easier to plan, coordinate, and track various tasks and resources.\n */\nexport function Gantt<\n K1 extends string | number,\n D1 extends GanttRowData<K1, D1, D2>,\n K2 extends string | number,\n D2 extends GanttTaskData<K2>\n>({ width, height, testId, ...props }: GanttProps<K2, D1, D2>) {\n const ref = useRef<HTMLDivElement>(null);\n const {\n scrollPosition,\n panZoomLayout,\n withRowAxisLayout,\n getTimeAxesLayout,\n zoomParameters,\n rowDataLayout,\n rowAxisLayout,\n getResolvedViewportLayout,\n getHorizontalScrollbarLayout,\n onHorizontalScrollChange,\n getVerticalScrollbarLayout,\n onVerticalScrollChange,\n isRTL,\n layoutContent,\n isValidConfig,\n isReady\n } = useGanttLayout<K1, K2, D1, D2>(props);\n\n const ariaProps = {\n 'aria-label': props['aria-label'],\n 'aria-describedby': props['aria-describedby'],\n 'aria-labelledby': props['aria-labelledby'],\n role: 'application' as const\n };\n\n const isViewportDefined = props.viewportStart !== undefined && props.viewportEnd !== undefined;\n\n const [ariaActive, setAriaActive] = useState<\n { dataId: K2; ariaId: string; type: 'task' } | { dataId: K1; ariaId: string; type: 'rowLabel' }\n >();\n const [currentTaskInteraction, setCurrentTaskInteraction] = useState<'hover' | 'focus' | 'none'>(\n 'none'\n );\n const [hoveredTaskId, setHoveredTaskId] = useState<K2>();\n const onTaskHoverChange = (detail: { id?: K2 }) => {\n detail.id !== undefined &&\n setAriaActive({ dataId: detail.id, ariaId: getRandomId(), type: 'task' });\n setCurrentTaskInteraction(detail.id !== undefined ? 'hover' : 'none');\n setHoveredTaskId(detail.id);\n };\n const [currentRowLabelInteraction, setCurrentRowLabelInteraction] = useState<\n 'hover' | 'focus' | 'none'\n >('none');\n const [hoveredRowLabelId, setHoveredRowLabelId] = useState<K1>();\n const onRowLabelHoverChange = (detail: { id?: K1 }) => {\n detail.id !== undefined &&\n setAriaActive({ dataId: detail.id, ariaId: getRandomId(), type: 'rowLabel' });\n setCurrentRowLabelInteraction(detail.id !== undefined ? 'hover' : 'none');\n setHoveredRowLabelId(detail.id);\n };\n const [currentTask, setCurrentTask] = useState<GanttCurrentTask<K2>['currentTask']>();\n const onCurrentTaskChange = (detail: { id: K2; isFocused: boolean }) => {\n if (detail.isFocused) {\n const e = new CustomEvent('KbPanTaskIntoView', { detail: { id: detail.id } });\n visRef.current?.dispatchEvent(e);\n setAriaActive({ dataId: detail.id, ariaId: getRandomId(), type: 'task' });\n setCurrentTaskInteraction('focus');\n }\n setCurrentTask(detail);\n };\n const [currentRowLabel, setCurrentRowLabel] =\n useState<GanttCurrentRowLabel<K1>['currentRowLabel']>();\n const onCurrentRowLabelChange = (detail: { id: K1; isFocused: boolean }) => {\n if (detail.isFocused) {\n const e = new CustomEvent('KbPanRowIntoView', { detail: { id: detail.id } });\n visRef.current?.dispatchEvent(e);\n setAriaActive({ dataId: detail.id, ariaId: getRandomId(), type: 'rowLabel' });\n setCurrentRowLabelInteraction('focus');\n }\n setCurrentRowLabel(detail);\n };\n\n const visRef = useRef<HTMLDivElement>(null);\n const rowAxisRef = useRef<HTMLDivElement>(null);\n const overlayControlsContainerRef = useRef<HTMLDivElement>(null);\n const eventProps = useTimeComponentEvents({\n rootRef: ref,\n overlayControlsContainerRef,\n isDisabled: !isViewportDefined\n });\n const keyboardProps = useGanttKeyboard({\n visRef,\n rowAxisRef,\n navigationModes: {\n tasks: { currentItem: currentTask, onCurrentItemChange: onCurrentTaskChange },\n rowLabels: { currentItem: currentRowLabel, onCurrentItemChange: onCurrentRowLabelChange }\n },\n rowDataLayout: rowDataLayout!,\n selectionProps: {\n selectedIds: props.selectedIds,\n selectionMode: props.selectionMode,\n onSelectionChange: props.onSelectionChange\n },\n isRTL,\n isDisabled: !isViewportDefined\n });\n\n // TODO: Move check to util and call in corepack to decide whether to render invalid data state?\n if (!isReady || !isValidConfig) {\n return (\n <GanttContainer innerRef={ref} width={width} height={height} {...ariaProps}>\n {layoutContent}\n </GanttContainer>\n );\n }\n\n const ganttView = (\n <GanttView\n visRef={visRef}\n overlayControlsContainerRef={overlayControlsContainerRef}\n isRTL={isRTL}\n isViewportDefined={isViewportDefined}\n scrollPosition={scrollPosition!}\n onScrollPositionChange={props.onScrollPositionChange}\n onViewportChange={props.onViewportChange}\n rowAxisSeparator={!!withRowAxisLayout}\n zoomParameters={zoomParameters}\n zooming={props.zooming}\n panZoomLayout={panZoomLayout!}\n getTimeAxesLayout={getTimeAxesLayout!}\n getHorizontalScrollbarLayout={getHorizontalScrollbarLayout!}\n onHorizontalScrollChange={onHorizontalScrollChange!}\n getVerticalScrollbarLayout={getVerticalScrollbarLayout!}\n onVerticalScrollChange={onVerticalScrollChange!}\n getResolvedViewportLayout={getResolvedViewportLayout!}\n rowDataLayout={rowDataLayout!}\n datatip={props.datatip}\n selectedIds={props.selectedIds}\n selectionMode={props.selectionMode}\n onSelectionChange={props.onSelectionChange}\n hoveredTaskId={hoveredTaskId}\n onTaskHoverChange={onTaskHoverChange}\n currentTask={currentTask}\n onCurrentTaskChange={onCurrentTaskChange}\n currentTaskInteraction={currentTaskInteraction}\n ariaActive={ariaActive?.type === 'task' ? ariaActive : undefined}\n />\n );\n\n const ganttViewWithRowAxis = withRowAxisLayout && (\n <GanttWithRowAxisLayout\n {...withRowAxisLayout}\n rowAxis={(resolvedWidth, resolvedMaxWidth) => (\n <GanttRowAxis\n innerRef={rowAxisRef}\n resolvedWidth={resolvedWidth}\n resolvedMaxWidth={resolvedMaxWidth}\n currentRowLabel={currentRowLabel}\n hoveredRowLabelId={hoveredRowLabelId}\n onRowLabelHoverChange={onRowLabelHoverChange}\n currentRowLabelInteraction={currentRowLabelInteraction}\n ariaActive={ariaActive?.type === 'rowLabel' ? ariaActive : undefined}\n layoutObj={rowAxisLayout}\n scrollPosition={scrollPosition}>\n {withRowAxisLayout.label}\n </GanttRowAxis>\n )}\n ganttView={ganttView}\n />\n );\n\n return (\n <GanttContainer\n innerRef={ref}\n width={width}\n height={height}\n testId={testId}\n {...ariaProps}\n {...mergeProps(keyboardProps, eventProps)}\n aria-activedescendant={ariaActive?.ariaId}>\n {ganttViewWithRowAxis || ganttView}\n {layoutContent}\n </GanttContainer>\n );\n}\n"],"names":["_jsx","timeComponentStyles","ganttStyles","_jsxs","getRenderContext","styles","GanttVerticalGridlinesLayer","bridgeValues","timeCompBridgeValues","_Fragment"],"mappings":"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"}