@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table-b8c41429.js","sources":["../../src/PRIVATE_Table/TableColGroup.tsx","../../src/PRIVATE_Table/TableSkeleton.tsx","../../src/PRIVATE_Table/TableSkeletonRow.tsx","../../src/PRIVATE_Table/utils/TableThemeUtils.ts","../../src/PRIVATE_Table/utils/TableDomUtils.ts","../../src/PRIVATE_Table/utils/TableTooltipUtils.ts","../../src/PRIVATE_Table/TableCell.tsx","../../src/PRIVATE_Table/TableRow.tsx","../../src/PRIVATE_Table/TableNoData.tsx","../../src/PRIVATE_Table/TableBody.tsx","../../src/PRIVATE_Table/TableHeaderCell.tsx","../../src/PRIVATE_Table/TableHeader.tsx","../../src/PRIVATE_Table/TableFooterCell.tsx","../../src/PRIVATE_Table/TableFooter.tsx","../../src/PRIVATE_Table/TableDragIndicator.tsx","../../src/PRIVATE_Table/TableContextMenu.tsx","../../src/PRIVATE_Table/hooks/useDataManager.ts","../../src/PRIVATE_Table/utils/TableScrollUtils.ts","../../src/PRIVATE_Table/utils/TableFocusUtils.ts","../../src/PRIVATE_Table/hooks/useContextMenu.ts","../../src/PRIVATE_Table/hooks/useTruncationTooltip.tsx","../../src/PRIVATE_Table/hooks/useFocusHandling.ts","../../src/PRIVATE_Table/utils/TableActionUtils.ts","../../src/PRIVATE_Table/utils/TableNavigationUtils.ts","../../src/PRIVATE_Table/utils/TableSelectionUtils.ts","../../src/PRIVATE_Table/hooks/useKeyboardHandling.ts","../../src/PRIVATE_Table/utils/TableSizingUtils.ts","../../src/PRIVATE_Table/utils/TableSortUtils.ts","../../src/PRIVATE_Table/hooks/usePointerHandling.ts","../../src/PRIVATE_Table/hooks/useScrollHandling.ts","../../src/PRIVATE_Table/hooks/useInteractionManager.ts","../../src/PRIVATE_Table/utils/TableLayoutUtils.ts","../../src/PRIVATE_Table/hooks/useSizingManager.ts","../../src/PRIVATE_Table/Table.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\n/**\n * Props for the TableColGroup Component\n */\nexport type TableColGroupProps = {\n tableId: string;\n isRendered: boolean;\n columnWidthsArray: (number | undefined)[];\n};\n\n/**\n * The internal component used to render a single colgroup in Table.\n */\nexport function TableColGroup({ tableId, isRendered, columnWidthsArray }: TableColGroupProps) {\n const getColStyle = (columnWidth?: number) => {\n return columnWidth == null ? '' : `width:${columnWidth}px;`;\n };\n\n return isRendered ? (\n <colgroup>\n {columnWidthsArray.map((columnWidth?: number) => {\n return <col style={getColStyle(columnWidth)} data-oj-table-col={tableId} />;\n })}\n </colgroup>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Size } from '../utils/UNSAFE_size';\nimport { dimensionInterpolations } from '../utils/UNSAFE_interpolations/dimensions';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { tableSkeletonStyles, tableSkeletonStylesHC } from './themes/TableSkeletonStyles.css';\n\nconst dimensions = ['height', 'width'] as const;\n//This type has StyleInterpolationProps with the height prop made required.\ntype TableSkeletonProps = {\n isHighContrast: boolean;\n height?: Size;\n width?: Size;\n};\n\n// Create an array [dimensionInterpolations['height'], dimensionInterpolations['width']]\nconst skeletonDimensionInterpolation = Array.from(dimensions, (x) => dimensionInterpolations[x]);\nconst interpolations = [...Object.values(skeletonDimensionInterpolation)];\nconst SkeletonInterpolations = mergeInterpolations<TableSkeletonProps>(interpolations);\n\n/**\n * TableSkeleton component allows the appropriate skeleton to be rendered based on the\n * property values\n **/\nexport function TableSkeleton({ ...props }: TableSkeletonProps) {\n const skeletonStyles = props.isHighContrast ? tableSkeletonStylesHC : tableSkeletonStyles;\n const classes = classNames([skeletonStyles.bar]);\n\n const skeletonDimensions = SkeletonInterpolations({ width: '100%', ...props });\n return <div style={skeletonDimensions} class={classes} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { BundleType } from '../resources/nls/bundle';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { tableSkeletonStyles, tableSkeletonStylesHC } from './themes/TableSkeletonStyles.css';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { TableSkeleton } from './TableSkeleton';\n\ntype SkeletonRowProps = {\n tableId: string;\n colspan: number;\n hasTabIndex: boolean;\n isShowFocusRing: boolean;\n isPendingLayout?: boolean;\n isLoadMore?: boolean;\n isHighContrast: boolean;\n};\n\n/**\n * TableSkeletonRow renders a set of 'loading' skeletons.\n **/\nexport function TableSkeletonRow({\n tableId,\n colspan,\n hasTabIndex,\n isShowFocusRing,\n isPendingLayout = false,\n isLoadMore = false,\n isHighContrast\n}: SkeletonRowProps) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const skeletonStyles = isHighContrast ? tableSkeletonStylesHC : tableSkeletonStyles;\n const cellClassArray = [skeletonStyles.cell];\n if (isShowFocusRing) {\n cellClassArray.push(skeletonStyles.focus);\n }\n const cellClasses = classNames(cellClassArray);\n const innerCellClasses = classNames([skeletonStyles.innerCell]);\n const rowClasses = classNames([skeletonStyles.row, skeletonStyles.rowHeight]);\n const firstRowClasses = isPendingLayout\n ? classNames([skeletonStyles.row, skeletonStyles.headerHeight])\n : rowClasses;\n\n const accCellContent = (\n <div style={'width:1px;height:0px;overflow:hidden;'}>{translations.collection_loading()}</div>\n );\n\n return (\n <tr class={LOADMORE_STYLE_CLASS} role={'row'}>\n <td\n class={cellClasses}\n colSpan={colspan}\n role={'gridcell'}\n tabIndex={hasTabIndex ? 0 : -1}\n data-oj-cell-type={isPendingLayout ? 'pending' : isLoadMore ? 'loadMore' : 'loading'}\n {...(isPendingLayout\n ? { 'data-oj-table-pending-cell': tableId }\n : isLoadMore\n ? { 'data-oj-table-load-more-cell': tableId }\n : { 'data-oj-table-loading-cell': tableId })}\n data-oj-table-focusable={tableId}>\n <div class={innerCellClasses}>\n {accCellContent}\n {[...Array(isLoadMore ? 3 : 25)].map((_element, index) => (\n <div class={index === 0 ? firstRowClasses : rowClasses}>\n <TableSkeleton height=\"4x\" isHighContrast={isHighContrast} />\n </div>\n ))}\n </div>\n </td>\n </tr>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { textAlignStyles, verticalAlignStyles } from '../themes/Table.css';\nimport { CellStyles, tableCellStyles, tableCellStylesHC } from '../themes/TableCellStyles.css';\nimport {\n FooterCellStyles,\n tableFooterCellStyles,\n tableFooterCellStylesHC,\n footerPreviousInteractiveBorderStart,\n footerPreviousInteractiveBorderStartHC,\n footerPreviousInteractiveBorderStartNoPadding,\n footerPreviousInteractiveBorderStartNoPaddingHC,\n footerPreviousPseudoHoverBorderStart,\n footerPreviousPseudoHoverBorderStartHC,\n footerPreviousPseudoHoverBorderStartNoPadding,\n footerPreviousPseudoHoverBorderStartNoPaddingHC\n} from '../themes/TableFooterCellStyles.css';\nimport {\n HeaderCellStyles,\n tableHeaderCellStyles,\n tableHeaderCellStylesHC,\n headerPreviousInteractiveBorderStart,\n headerPreviousInteractiveBorderStartHC,\n headerPreviousInteractiveBorderStartNoPadding,\n headerPreviousInteractiveBorderStartNoPaddingHC,\n headerPreviousPseudoHoverBorderStart,\n headerPreviousPseudoHoverBorderStartHC,\n headerPreviousPseudoHoverBorderStartNoPadding,\n headerPreviousPseudoHoverBorderStartNoPaddingHC\n} from '../themes/TableHeaderCellStyles.css';\nimport { CellPadding, CurrentRowVariant } from '../../UNSAFE_TableView';\n\ntype DataCellThemingProps = {\n isFirstColumnIndex: boolean;\n isFinalColumnIndex: boolean;\n isFirstRowIndex: boolean;\n isFinalRowIndex: boolean;\n hasVerticalGridlines: boolean;\n hasHorizontalGridlines: boolean;\n hasLastHorizontalGridline: boolean;\n isRowSelected: boolean;\n isPreviousRowSelected: boolean;\n isColumnSelected: boolean;\n isPreviousColumnSelected: boolean;\n isShowFocusRing: boolean;\n isSticky: boolean;\n isRowSelectionEnabled: boolean;\n isRowSingleSelection: boolean;\n isActive: boolean;\n isHover: boolean;\n isPseudoHover: boolean;\n isStickyStartEdge: boolean;\n isStickyEndEdge: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n horizontalAlignment: 'start' | 'end' | 'left' | 'right' | 'center';\n verticalAlignment: 'top' | 'center' | 'bottom';\n variant?: CurrentRowVariant;\n padding?: CellPadding;\n};\n\n/**\n * Helper function to generate the class array for a data cell.\n */\nexport const getDataCellClassArray = ({\n isFirstColumnIndex,\n isFinalColumnIndex,\n isFirstRowIndex,\n isFinalRowIndex,\n hasVerticalGridlines,\n hasHorizontalGridlines,\n hasLastHorizontalGridline,\n isRowSelected,\n isPreviousRowSelected,\n isColumnSelected,\n isPreviousColumnSelected,\n isShowFocusRing,\n isSticky,\n isRowSelectionEnabled,\n isRowSingleSelection,\n isActive,\n isHover,\n isPseudoHover,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n isHighContrast,\n horizontalAlignment,\n verticalAlignment,\n variant,\n padding\n}: DataCellThemingProps) => {\n const cellStyles = isHighContrast ? tableCellStylesHC : tableCellStyles;\n const classArray = [cellStyles.base];\n\n // Padding styling logic\n const { isTopPadding, isBottomPadding, isStartPadding, isEndPadding } = _getPaddingInfo(padding);\n\n // Horizontal and vertical alignment styling logic\n _applyAlignmentStyling(classArray, horizontalAlignment, verticalAlignment);\n\n // Sticky styling logic\n _applyStickyStyling(classArray, cellStyles, isSticky, isStickyStartEdge, isStickyEndEdge, isRtl);\n\n // Interaction styling logic\n if (isRowSelectionEnabled) {\n if (isActive) {\n classArray.push(cellStyles.active);\n } else if (isHover) {\n classArray.push(cellStyles.hover);\n } else if (isPseudoHover) {\n classArray.push(cellStyles.pseudoHover);\n }\n }\n if (variant === 'highlight') {\n classArray.push(cellStyles.rowHighlight);\n }\n _applyFocusStyling(classArray, cellStyles, isShowFocusRing);\n\n // Selected Rows and Horizontal Gridline styling logic\n let hasBackground = false;\n if (isRowSelected) {\n hasBackground = true;\n classArray.push(cellStyles.selectedBackground);\n }\n if (isRowSingleSelection && (isRowSelected || isPreviousRowSelected)) {\n classArray.push(cellStyles.horizontalSelectedGridTop);\n classArray.push(\n isTopPadding ? cellStyles.selectedBorderTopPadding : cellStyles.selectedBorderTopNoPadding\n );\n } else if (!isFirstRowIndex && hasHorizontalGridlines) {\n classArray.push(cellStyles.horizontalGridTop);\n classArray.push(isTopPadding ? cellStyles.borderTopPadding : cellStyles.borderTopNoPadding);\n } else {\n classArray.push(isTopPadding ? cellStyles.topSpacerPadding : cellStyles.topSpacerNoPadding);\n }\n if (isFinalRowIndex) {\n classArray.push(cellStyles.lastRow);\n if (isRowSingleSelection && isRowSelected) {\n classArray.push(cellStyles.horizontalSelectedGridBottom);\n classArray.push(\n isBottomPadding\n ? cellStyles.selectedBorderBottomPadding\n : cellStyles.selectedBorderBottomNoPadding\n );\n } else if (hasLastHorizontalGridline) {\n classArray.push(cellStyles.horizontalGridBottom);\n classArray.push(\n isBottomPadding ? cellStyles.borderBottomPadding : cellStyles.borderBottomNoPadding\n );\n } else {\n classArray.push(\n isBottomPadding ? cellStyles.bottomSpacerPadding : cellStyles.bottomSpacerNoPadding\n );\n }\n } else {\n classArray.push(cellStyles.notLastRow);\n classArray.push(isBottomPadding ? cellStyles.bottomPadding : cellStyles.bottomNoPadding);\n }\n\n // Selected Columns and Vertical Gridline styling logic\n if (isColumnSelected) {\n if (!hasBackground) {\n classArray.push(cellStyles.selectedBackground);\n hasBackground = true;\n }\n _applySelectedColumnStyling(\n classArray,\n cellStyles,\n isStartPadding,\n isEndPadding,\n isFinalColumnIndex\n );\n } else {\n if (!hasBackground) {\n classArray.push(cellStyles.background);\n }\n _applyColumnStyling(\n classArray,\n cellStyles,\n isPreviousColumnSelected,\n isStartPadding,\n isEndPadding,\n isFirstColumnIndex,\n isFinalColumnIndex,\n hasVerticalGridlines\n );\n }\n return classArray;\n};\n\ntype HeaderFooterCellThemingProps = {\n isHeader: boolean;\n isActive: boolean;\n isHover: boolean;\n isPseudoHover: boolean;\n isFirstColumnIndex: boolean;\n isFinalColumnIndex: boolean;\n hasVerticalGridlines: boolean;\n isColumnSelectionEnabled: boolean;\n isSelected: boolean;\n isPreviousColumnSelected: boolean;\n isColumnSelectable: boolean;\n isShowFocusRing: boolean;\n isSticky: boolean;\n isStickyStartEdge: boolean;\n isStickyEndEdge: boolean;\n isRtl: boolean;\n horizontalAlignment: 'start' | 'end' | 'left' | 'right' | 'center';\n verticalAlignment: 'top' | 'center' | 'bottom';\n isHighContrast: boolean;\n padding?: CellPadding;\n};\n\n/**\n * Helper function to generate the class array for a header or footer cell.\n */\nexport const getHeaderFooterCellClassArray = ({\n isHeader,\n isActive,\n isHover,\n isPseudoHover,\n isFirstColumnIndex,\n isFinalColumnIndex,\n hasVerticalGridlines,\n isColumnSelectionEnabled,\n isSelected,\n isPreviousColumnSelected,\n isColumnSelectable,\n isShowFocusRing,\n isSticky,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n horizontalAlignment,\n verticalAlignment,\n isHighContrast,\n padding\n}: HeaderFooterCellThemingProps) => {\n let cellStyles;\n let previousInteractiveBorderStart;\n let previousInteractiveBorderStartNoPadding;\n let previousPseudoHoverBorderStart;\n let previousPseudoHoverBorderStartNoPadding;\n\n if (isHeader) {\n if (isHighContrast) {\n cellStyles = tableHeaderCellStylesHC;\n previousInteractiveBorderStart = headerPreviousInteractiveBorderStartHC;\n previousPseudoHoverBorderStart = headerPreviousPseudoHoverBorderStartHC;\n previousInteractiveBorderStartNoPadding = headerPreviousInteractiveBorderStartNoPaddingHC;\n previousPseudoHoverBorderStartNoPadding = headerPreviousPseudoHoverBorderStartNoPaddingHC;\n } else {\n cellStyles = tableHeaderCellStyles;\n previousInteractiveBorderStart = headerPreviousInteractiveBorderStart;\n previousPseudoHoverBorderStart = headerPreviousPseudoHoverBorderStart;\n previousInteractiveBorderStartNoPadding = headerPreviousInteractiveBorderStartNoPadding;\n previousPseudoHoverBorderStartNoPadding = headerPreviousPseudoHoverBorderStartNoPadding;\n }\n } else if (isHighContrast) {\n cellStyles = tableFooterCellStylesHC;\n previousInteractiveBorderStart = footerPreviousInteractiveBorderStartHC;\n previousInteractiveBorderStartNoPadding = footerPreviousInteractiveBorderStartNoPaddingHC;\n previousPseudoHoverBorderStart = footerPreviousPseudoHoverBorderStartHC;\n previousPseudoHoverBorderStartNoPadding = footerPreviousPseudoHoverBorderStartNoPaddingHC;\n } else {\n cellStyles = tableFooterCellStyles;\n previousInteractiveBorderStart = footerPreviousInteractiveBorderStart;\n previousInteractiveBorderStartNoPadding = footerPreviousInteractiveBorderStartNoPadding;\n previousPseudoHoverBorderStart = footerPreviousPseudoHoverBorderStart;\n previousPseudoHoverBorderStartNoPadding = footerPreviousPseudoHoverBorderStartNoPadding;\n }\n const classArray = [cellStyles.base];\n\n // Padding styling logic\n const { isTopPadding, isBottomPadding, isStartPadding, isEndPadding } = _getPaddingInfo(padding);\n classArray.push(isBottomPadding ? cellStyles.bottomPadding : cellStyles.bottomNoPadding);\n classArray.push(isTopPadding ? cellStyles.topPadding : cellStyles.topNoPadding);\n\n // Horizontal and vertical alignment styling logic\n _applyAlignmentStyling(classArray, horizontalAlignment, verticalAlignment);\n\n // Sticky styling logic\n _applyStickyStyling(classArray, cellStyles, isSticky, isStickyStartEdge, isStickyEndEdge, isRtl);\n\n // Selected and Vertical Gridline styling logic\n if (isSelected) {\n classArray.push(cellStyles.selectedBackground);\n _applySelectedColumnStyling(\n classArray,\n cellStyles,\n isStartPadding,\n isEndPadding,\n isFinalColumnIndex\n );\n } else {\n classArray.push(cellStyles.background);\n let additionalStyles;\n if (isColumnSelectionEnabled) {\n // dynamic start borders for when previous cell has hover / active states\n additionalStyles = {\n startInteractivePaddingStyles: [\n previousInteractiveBorderStart,\n previousPseudoHoverBorderStart\n ],\n startInteractiveNoPaddingStyles: [\n previousInteractiveBorderStartNoPadding,\n previousPseudoHoverBorderStartNoPadding\n ]\n };\n }\n _applyColumnStyling(\n classArray,\n cellStyles,\n isPreviousColumnSelected,\n isStartPadding,\n isEndPadding,\n isFirstColumnIndex,\n isFinalColumnIndex,\n hasVerticalGridlines,\n additionalStyles\n );\n }\n\n // Interaction styling logic\n _applyFocusStyling(classArray, cellStyles, isShowFocusRing);\n if (isColumnSelectable) {\n let interactiveStyles;\n if (isActive) {\n interactiveStyles = {\n selectedStyle: cellStyles.activeSelected,\n notSelectedStyle: cellStyles.active,\n borderStartStyle: cellStyles.activeBorderStart,\n borderStartNoPaddingStyle: cellStyles.activeBorderStartNoPadding,\n borderEndStyle: cellStyles.activeBorderEnd,\n borderEndNoPaddingStyle: cellStyles.activeBorderEndNoPadding\n };\n } else if (isHover) {\n interactiveStyles = {\n selectedStyle: cellStyles.hoverSelected,\n notSelectedStyle: cellStyles.hover,\n borderStartStyle: cellStyles.hoverBorderStart,\n borderStartNoPaddingStyle: cellStyles.hoverBorderStartNoPadding,\n borderEndStyle: cellStyles.hoverBorderEnd,\n borderEndNoPaddingStyle: cellStyles.hoverBorderEndNoPadding\n };\n } else if (isPseudoHover) {\n interactiveStyles = {\n selectedStyle: cellStyles.pseudoHoverSelected,\n notSelectedStyle: cellStyles.pseudoHover,\n borderStartStyle: cellStyles.pseudoHoverBorderStart,\n borderStartNoPaddingStyle: cellStyles.pseudoHoverBorderStartNoPadding,\n borderEndStyle: cellStyles.pseudoHoverBorderEnd,\n borderEndNoPaddingStyle: cellStyles.pseudoHoverBorderEndNoPadding\n };\n }\n if (interactiveStyles != null) {\n if (isSelected) {\n classArray.push(interactiveStyles.selectedStyle);\n } else {\n classArray.push(interactiveStyles.notSelectedStyle);\n if (!isPreviousColumnSelected && (!hasVerticalGridlines || isFirstColumnIndex)) {\n classArray.push(\n isStartPadding\n ? interactiveStyles.borderStartStyle\n : interactiveStyles.borderStartNoPaddingStyle\n );\n }\n if (isFinalColumnIndex) {\n classArray.push(\n isEndPadding\n ? interactiveStyles.borderEndStyle\n : interactiveStyles.borderEndNoPaddingStyle\n );\n }\n }\n }\n }\n return classArray;\n};\n\nconst _getPaddingInfo = (padding?: CellPadding) => {\n const isPaddingDisabled = padding === 'disabled';\n const isComplexPadding = padding instanceof Object;\n const isBottomPadding = !(\n isPaddingDisabled ||\n (isComplexPadding && padding?.bottom === 'disabled')\n );\n const isEndPadding = !(isPaddingDisabled || (isComplexPadding && padding?.end === 'disabled'));\n const isStartPadding = !(\n isPaddingDisabled ||\n (isComplexPadding && padding?.start === 'disabled')\n );\n const isTopPadding = !(isPaddingDisabled || (isComplexPadding && padding?.top === 'disabled'));\n return { isTopPadding, isBottomPadding, isStartPadding, isEndPadding };\n};\n\nconst _applyAlignmentStyling = (\n classArray: string[],\n horizontalAlignment: 'start' | 'end' | 'left' | 'right' | 'center',\n verticalAlignment: 'top' | 'center' | 'bottom'\n) => {\n classArray.push(textAlignStyles[horizontalAlignment]);\n classArray.push(verticalAlignStyles[verticalAlignment]);\n};\n\nconst _applyFocusStyling = (\n classArray: string[],\n cellStyles: CellStyles | HeaderCellStyles | FooterCellStyles,\n isShowFocusRing: boolean\n) => {\n if (isShowFocusRing) {\n classArray.push(cellStyles.focused);\n }\n};\n\nconst _applyStickyStyling = (\n classArray: string[],\n cellStyles: CellStyles | HeaderCellStyles | FooterCellStyles,\n isSticky: boolean,\n isStickyStartEdge: boolean,\n isStickyEndEdge: boolean,\n isRtl: boolean\n) => {\n if (isSticky) {\n classArray.push(cellStyles.stickyColumn);\n }\n if (isStickyStartEdge) {\n classArray.push(cellStyles.stickyEdge);\n classArray.push(isRtl ? cellStyles.stickyEdgeLeft : cellStyles.stickyEdgeRight);\n } else if (isStickyEndEdge) {\n classArray.push(cellStyles.stickyEdge);\n classArray.push(isRtl ? cellStyles.stickyEdgeRight : cellStyles.stickyEdgeLeft);\n }\n};\n\nconst _applyColumnStyling = (\n classArray: string[],\n cellStyles: CellStyles | HeaderCellStyles | FooterCellStyles,\n isPreviousColumnSelected: boolean,\n isStartPadding: boolean,\n isEndPadding: boolean,\n isFirstColumnIndex: boolean,\n isFinalColumnIndex: boolean,\n hasVerticalGridlines: boolean,\n additionalStyles?: {\n startInteractivePaddingStyles: string[];\n startInteractiveNoPaddingStyles: string[];\n }\n) => {\n if (isPreviousColumnSelected) {\n classArray.push(cellStyles.verticalSelectedGridStart);\n classArray.push(\n isStartPadding\n ? cellStyles.selectedBorderStartPadding\n : cellStyles.selectedBorderStartNoPadding\n );\n } else if (!isFirstColumnIndex && hasVerticalGridlines) {\n classArray.push(cellStyles.verticalGridStart);\n classArray.push(\n isStartPadding ? cellStyles.borderStartPadding : cellStyles.borderStartNoPadding\n );\n } else if (isStartPadding) {\n classArray.push(cellStyles.startSpacerPadding);\n if (additionalStyles != null) {\n classArray.push(...additionalStyles.startInteractivePaddingStyles);\n }\n } else {\n classArray.push(cellStyles.startSpacerNoPadding);\n if (additionalStyles != null) {\n classArray.push(...additionalStyles.startInteractiveNoPaddingStyles);\n }\n }\n if (isFinalColumnIndex) {\n classArray.push(isEndPadding ? cellStyles.endSpacerPadding : cellStyles.endSpacerNoPadding);\n } else {\n classArray.push(isEndPadding ? cellStyles.endPadding : cellStyles.endNoPadding);\n }\n};\n\nconst _applySelectedColumnStyling = (\n classArray: string[],\n cellStyles: CellStyles | HeaderCellStyles | FooterCellStyles,\n isStartPadding: boolean,\n isEndPadding: boolean,\n isFinalColumnIndex: boolean\n) => {\n classArray.push(cellStyles.verticalSelectedGridStart);\n classArray.push(\n isStartPadding ? cellStyles.selectedBorderStartPadding : cellStyles.selectedBorderStartNoPadding\n );\n if (isFinalColumnIndex) {\n classArray.push(cellStyles.verticalSelectedGridEnd);\n classArray.push(\n isEndPadding ? cellStyles.selectedBorderEndPadding : cellStyles.selectedBorderEndNoPadding\n );\n } else {\n classArray.push(isEndPadding ? cellStyles.endPadding : cellStyles.endNoPadding);\n }\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { keyExtractor } from '../../utils/PRIVATE_collectionUtils';\nimport { FocusableElement } from '../../utils/PRIVATE_tabbableUtils';\nimport { ActiveCell, TableColumn } from '../Table';\nimport { Cell } from '../../UNSAFE_TableView';\n\n/**\n * Returns the cell type for the given cell element\n */\nexport const getCellType = (element: FocusableElement) => {\n return element.dataset['ojCellType'];\n};\n\n/**\n * Returns the row key for the given row element\n */\nexport const getRowKey = <K>(element: HTMLElement) => {\n return (\n element.dataset['ojKeyType'] === 'number'\n ? Number(element.dataset['ojKey'])\n : element.dataset['ojKey']\n ) as K;\n};\n\n/**\n * Returns the key for the row at the given index\n */\nexport const getRowKeyForRowIndex = <K>(\n rootElement: HTMLElement,\n tableId: string,\n index: number\n) => {\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n if (rowElements.length > index) {\n return getRowKey<K>(rowElements[index] as HTMLElement);\n }\n return undefined;\n};\n\n/**\n * Returns the index of the given row element\n */\nexport const getRowIndexForRowElement = (\n rootElement: HTMLElement,\n tableId: string,\n rowElement: HTMLElement\n) => {\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n const index = Array.prototype.indexOf.call(rowElements, rowElement);\n if (index > -1) {\n return index;\n }\n return undefined;\n};\n\n/**\n * Returns the index of the row for the given key.\n */\nexport function getRowIndexForRowKey<K>(rootElement: HTMLElement, tableId: string, rowKey: K) {\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n for (let i = 0; i < rowElements.length; i++) {\n if (rowKey === getRowKey(rowElements[i] as HTMLElement)) {\n return i;\n }\n }\n return undefined;\n}\n\n/**\n * Returns the column key for the given cell element\n */\nexport const getColumnKey = <C>(element: HTMLElement) => {\n return element.dataset['ojColumnKey'] as C;\n};\n\n/**\n * Returns the key for the column at the given index\n */\nexport const getColumnKeyForColumnIndex = (\n rootElement: HTMLElement,\n tableId: string,\n index: number\n) => {\n const headerElements = rootElement.querySelectorAll(`[data-oj-table-header-cell='${tableId}']`);\n if (headerElements.length > index) {\n return getColumnKey(headerElements[index] as HTMLElement);\n }\n return undefined;\n};\n\n/**\n * Returns the index of the given column header element or footer element\n */\nexport const getColumnIndexForHeaderFooterElement = (\n rootElement: HTMLElement,\n tableId: string,\n cellElement: HTMLElement,\n isHeader: boolean\n) => {\n const columnElements = rootElement.querySelectorAll(\n isHeader\n ? `[data-oj-table-header-cell='${tableId}']`\n : `[data-oj-table-footer-cell='${tableId}']`\n );\n const index = Array.prototype.indexOf.call(columnElements, cellElement);\n if (index > -1) {\n return index;\n }\n return undefined;\n};\n\n/**\n * Helper method to get the cell key definition from an element\n */\nexport function logicalCellExtractor<K extends string | number, D, C extends string>(\n element: HTMLElement,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n cellSelector?: string,\n onlyAncestors?: boolean\n): ActiveCell<K, C> | undefined {\n const selectorString =\n cellSelector != null ? cellSelector : `[data-oj-table-focusable='${tableId}']`;\n const startingElement = onlyAncestors ? element.parentElement : element;\n if (startingElement != null) {\n const cellElement = startingElement.closest(selectorString) as HTMLElement;\n if (cellElement != null) {\n const cellType = getCellType(cellElement);\n if (cellType === 'data') {\n return {\n rowKey: keyExtractor<K>(cellElement, `[data-oj-table-data-row='${tableId}']`)!,\n columnKey: getColumnKey<C>(cellElement),\n type: cellType\n };\n } else if (cellType === 'header' || cellType === 'footer') {\n return { columnKey: getColumnKey<C>(cellElement), type: cellType };\n } else if (cellType === 'noData' || cellType === 'pending') {\n return { type: cellType };\n } else if (cellType === 'loading' || cellType === 'loadMore') {\n const columnKey = getBoundaryColumnKey<K, D, C>(columnsArray, true);\n if (columnKey != null) {\n return { columnKey: columnKey, type: cellType };\n }\n }\n }\n }\n return undefined;\n}\n\n/**\n * Helper method to get an element from a cell descriptor\n */\nexport function getElementFromCell<K, C>(\n rootElement: HTMLElement,\n tableId: string,\n cell: ActiveCell<K, C> | Cell<K, C>\n): HTMLElement | undefined {\n if (cell.type === 'header') {\n // header case\n const headerElements = rootElement.querySelectorAll(`[data-oj-table-header-cell='${tableId}']`);\n for (const headerElement of headerElements) {\n if (cell.columnKey === getColumnKey(headerElement as HTMLElement)) {\n return headerElement as HTMLElement;\n }\n }\n } else if (cell.type === 'footer') {\n // footer case\n const footerElements = rootElement.querySelectorAll(`[data-oj-table-footer-cell='${tableId}']`);\n for (const footerElement of footerElements) {\n if (cell.columnKey === getColumnKey(footerElement as HTMLElement)) {\n return footerElement as HTMLElement;\n }\n }\n } else if (cell.type === 'data') {\n // data body case\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n for (const rowElement of rowElements) {\n if (cell.rowKey === getRowKey(rowElement as HTMLElement)) {\n const cellElements = rowElement.querySelectorAll(`[data-oj-table-focusable='${tableId}']`);\n for (const cellElement of cellElements) {\n if (cell.columnKey === getColumnKey(cellElement as HTMLElement)) {\n return cellElement as HTMLElement;\n }\n }\n }\n }\n } else if (cell.type === 'noData') {\n // no data case\n return rootElement.querySelector(`[data-oj-table-nodata-cell='${tableId}']`) as HTMLElement;\n } else if (cell.type === 'pending') {\n // pending skeletons case\n return rootElement.querySelector(`[data-oj-table-pending-cell='${tableId}']`) as HTMLElement;\n } else if (cell.type === 'loading') {\n // loading skeletons case\n return rootElement.querySelector(`[data-oj-table-loading-cell='${tableId}']`) as HTMLElement;\n } else if (cell.type === 'loadMore') {\n // loadMore skeletons case\n return rootElement.querySelector(`[data-oj-table-load-more-cell='${tableId}']`) as HTMLElement;\n }\n return undefined;\n}\n\n/**\n * Helper method to get the top scroller offset of the Table\n */\nexport const getScrollerTopOffset = (rootElement: HTMLElement, tableId: string) => {\n const headerRowElement = rootElement.querySelector(\n `[data-oj-table-header-row='${tableId}']`\n ) as HTMLElement;\n return headerRowElement != null ? headerRowElement.getBoundingClientRect().height : 0;\n};\n\n/**\n * Helper method to get the bottom scroller offset of the Table\n */\nexport const getScrollerBottomOffset = (rootElement: HTMLElement, tableId: string) => {\n const footerRowElement = rootElement.querySelector(\n `[data-oj-table-footer-row='${tableId}']`\n ) as HTMLElement;\n return footerRowElement != null ? footerRowElement.getBoundingClientRect().height : 0;\n};\n\n/**\n * Returns the key of the first focusable row in the Table\n */\nexport const getFirstFocusableRowKey = <K>(rootElement: HTMLElement, tableId: string) => {\n const firstRowElement = rootElement.querySelector(`[data-oj-table-data-row='${tableId}']`);\n if (firstRowElement != null) {\n return getRowKey<K>(firstRowElement as HTMLElement);\n }\n return undefined;\n};\n\n/**\n * Returns the key of the last focusable row in the Table\n */\nexport const getLastFocusableRowKey = <K>(rootElement: HTMLElement, tableId: string) => {\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n const rowCount = rowElements.length;\n if (rowCount > 0) {\n return getRowKey(rowElements[rowCount - 1] as HTMLElement) as K;\n }\n return undefined;\n};\n\n/**\n * Returns the cell definition of the first rendered cell in the Table\n */\nexport const getFirstFocusableCell = <K extends string | number, C extends string>(\n rootElement: HTMLElement,\n tableId: string\n): ActiveCell<K, C> | undefined => {\n const firstCellElement = rootElement.querySelector(\n `[data-oj-table-focusable='${tableId}']`\n ) as HTMLElement;\n if (firstCellElement != null) {\n const firstCellType = getCellType(firstCellElement);\n if (firstCellType === 'header' || firstCellType === 'footer') {\n return { columnKey: getColumnKey<C>(firstCellElement), type: firstCellType };\n } else if (firstCellType === 'noData') {\n return { type: 'noData' };\n }\n return {\n rowKey: keyExtractor<K>(firstCellElement, `[data-oj-table-data-row='${tableId}']`)!,\n columnKey: getColumnKey<C>(firstCellElement),\n type: 'data'\n };\n }\n return undefined;\n};\n\n/**\n * Helper function to get the first or last column key.\n */\nexport const getBoundaryColumnKey = <K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n isFirst: boolean\n) => {\n if (columnsArray.length > 0) {\n return isFirst ? columnsArray[0].key : columnsArray[columnsArray.length - 1].key;\n }\n return undefined;\n};\n\n/**\n * Helper method to get the 'pending' layout cell\n */\nexport const getPendingLayoutCellElement = (rootElement: HTMLElement, tableId: string) => {\n return rootElement.querySelector(`[data-oj-table-pending-cell='${tableId}']`) as HTMLElement;\n};\n\n/**\n * Helper method to get the 'noData' cell\n */\nexport const getNoDataCellElement = (rootElement: HTMLElement, tableId: string) => {\n return rootElement.querySelector(`[data-oj-table-nodata-cell='${tableId}']`) as HTMLElement;\n};\n\n/**\n * Helper method to determine if the 'loading' cell is present in the Table\n */\nexport const hasLoadingCell = (rootElement: HTMLElement, tableId: string) => {\n return rootElement.querySelector(`[data-oj-table-loading-cell='${tableId}']`) != null;\n};\n\n/**\n * Helper method to determine if the no data cell is present in the Table\n */\nexport const hasNoDataCell = (rootElement: HTMLElement, tableId: string) => {\n return getNoDataCellElement(rootElement, tableId) != null;\n};\n\n/**\n * Helper method to determine if footer cells are present in the Table\n */\nexport const hasFooterCells = (rootElement: HTMLElement, tableId: string) => {\n return rootElement.querySelectorAll(`[data-oj-table-footer-row='${tableId}']`).length > 0;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { getCellType, getElementFromCell, logicalCellExtractor } from './TableDomUtils';\nimport { preventBrowserTooltipStyle } from '../themes/Table.css';\nimport { ActiveCell, TableColumn } from '../Table';\nimport { Cell } from '../../UNSAFE_TableView';\n\n/**\n * Helper method to determine if a given cell contains truncated text.\n */\nexport const hasTruncatedText = (cellElement: HTMLElement) => {\n if (cellElement.getAttribute('data-oj-table-tooltip') !== 'enabled') {\n return false;\n }\n const innerText = String(cellElement.innerText).trim();\n if (innerText === '') {\n return false;\n }\n\n const walker = document.createTreeWalker(cellElement, NodeFilter.SHOW_TEXT);\n while (walker.nextNode()) {\n const range = new Range();\n const textNode = walker.currentNode;\n range.selectNodeContents(textNode);\n const untruncatedTextLength = range.getBoundingClientRect().width;\n\n let firstParent = true;\n let parentElement = textNode.parentElement;\n while (parentElement != null) {\n const parentStyles = getComputedStyle(parentElement);\n if (firstParent) {\n // only verify truncation status of 'visible' text nodes\n if (untruncatedTextLength === 0 || parentStyles.visibility === 'hidden') {\n break;\n }\n firstParent = false;\n }\n const padding = parseFloat(parentStyles.paddingLeft) + parseFloat(parentStyles.paddingRight);\n const border = parseFloat(parentStyles.borderLeft) + parseFloat(parentStyles.borderRight);\n const renderedTextLength = parentElement.getBoundingClientRect().width - padding - border;\n\n // ensure at least 0.015px difference as browser zoom levels cause false positives due to rounding\n // smaller than that value (0.01 for example) causes unnecessary tooltips to be shown on headers\n // larger than that value (0.05 for example) causes actual truncation cases to be missed\n if (untruncatedTextLength - renderedTextLength > 0.015) {\n return true;\n }\n if (parentElement === cellElement) {\n break;\n }\n parentElement = parentElement.parentElement;\n }\n }\n return false;\n};\n\n/**\n * Helper function to handle updating the Table's tooltip due to a focus navigation gesture.\n */\nexport function handleNavigationTooltipGesture<K, C>(\n rootElement: HTMLDivElement,\n tableId: string,\n cell: ActiveCell<K, C>,\n showTooltip: (cell: Cell<K, C>) => void,\n hideTooltip: (isImmediate?: boolean) => void\n) {\n hideTooltip(true);\n if (cell.type === 'data' || cell.type === 'header' || cell.type === 'footer') {\n const cellElement = getElementFromCell(rootElement, tableId, cell);\n if (cellElement != null) {\n showTooltip(cell);\n }\n }\n}\n\n/**\n * Helper function to handle updating the Table's tooltip due to a pointer move gesture.\n */\nexport function handleMoveTooltipGesture<K extends string | number, D, C extends string>(\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n event: PointerEvent,\n showTooltip: (cell: Cell<K, C>) => void,\n hideTooltip: (isImmediate?: boolean) => void,\n tooltipId: string\n) {\n let tooltipShown = false;\n const targetElement = event.relatedTarget as HTMLElement;\n if (targetElement != null && targetElement.closest(`#${tooltipId}`) != null) {\n return;\n }\n const cellElement = (event.target as HTMLElement).closest(\n `[data-oj-table-focusable='${tableId}']`\n ) as HTMLElement;\n if (cellElement != null) {\n const type = getCellType(cellElement);\n if (type === 'data' || type === 'header' || type === 'footer') {\n showTooltip(logicalCellExtractor<K, D, C>(cellElement, tableId, columnsArray) as Cell<K, C>);\n tooltipShown = true;\n }\n }\n if (!tooltipShown) {\n hideTooltip();\n }\n}\n\n/**\n * Helper function to handle updating the Table's tooltip due to a pointer leave gesture.\n */\nexport const handleLeaveTableTooltipGesture = (\n rootElement: HTMLDivElement,\n event: PointerEvent,\n hideTooltip: (isImmediate?: boolean) => void,\n tooltipId: string\n) => {\n const targetElement = event.relatedTarget as HTMLElement;\n if (targetElement != null && targetElement.closest(`#${tooltipId}`) != null) {\n // the pointer 'left' the table, but is only over a cell tooltip - in most cases, we want\n // to just return here as the pointer is still 'over' the table. however, this can also\n // occur when the pointer is technically outside of the table's bounds, and in that case\n // we don't actually want to return as we should clear out our cell tooltip as expected\n const boundingRect = rootElement.getBoundingClientRect();\n const isOutOfBounds =\n event.clientX < boundingRect.left ||\n event.clientX > boundingRect.right ||\n event.clientY < boundingRect.top ||\n event.clientY > boundingRect.bottom;\n if (!isOutOfBounds) {\n return;\n }\n }\n hideTooltip();\n};\n\n// Pointer Enter handler for elements that need to prevent default browser tooltips\nconst _pointerEnterHandler = (event: PointerEvent) => {\n const targetElement = event.target as HTMLElement;\n targetElement.classList.add(preventBrowserTooltipStyle);\n};\n\n// Pointer Leave handler for elements that need to prevent default browser tooltips\nconst _pointerLeaveHandler = (event: PointerEvent) => {\n const targetElement = event.target as HTMLElement;\n targetElement.classList.remove(preventBrowserTooltipStyle);\n};\n\n/*\n * Props that can be spread on elements that need to prevent default browser tooltips\n */\nexport const preventBrowserTooltipProps = {\n onPointerEnter: _pointerEnterHandler,\n onPointerLeave: _pointerLeaveHandler\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport {\n CurrentRowVariant,\n DataCellPadding,\n DataCellTooltip,\n TableRendererContext,\n TableRowContext\n} from '../UNSAFE_TableView';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { getDataCellClassArray } from './utils/TableThemeUtils';\nimport { preventBrowserTooltipProps } from './utils/TableTooltipUtils';\n\n/**\n * Props for the TableCell Component\n */\nexport type TableCellProps<K, D, C> = {\n tableId: string;\n rowData: D;\n columnKey: C;\n columnIndex: number;\n rowKey: K;\n rowIndex: number;\n isFinalRowIndex: boolean;\n isFinalColumnIndex: boolean;\n hasVerticalGridlines: boolean;\n hasHorizontalGridlines: boolean;\n hasFooters: boolean;\n hasVerticalUnderflow: boolean;\n hasMore: boolean;\n isRowSelected: boolean;\n isPreviousRowSelected: boolean;\n isColumnSelected: boolean;\n isPreviousColumnSelected: boolean;\n isShowFocusRing: boolean;\n hasTabIndex: boolean;\n isTabbableMode: boolean;\n isStickyStartEdge: boolean;\n isStickyEndEdge: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n isRowHeader: boolean;\n isRowSelectionEnabled: boolean;\n isRowSingleSelection: boolean;\n applyActiveStyle: boolean;\n applyHoverStyle: boolean;\n applyPseudoHoverStyle: boolean;\n field?: keyof D;\n stickyColumn?: 'enabled' | 'disabled';\n renderer?: (context: TableRendererContext<K, D, C>) => ComponentChildren;\n selectorRenderer?: () => ComponentChildren;\n variant?: CurrentRowVariant;\n padding?: DataCellPadding<K, D>;\n tooltip?: DataCellTooltip<K, D>;\n horizontalAlignment?: 'start' | 'end' | 'left' | 'right' | 'center';\n verticalAlignment?: 'top' | 'center' | 'bottom';\n};\n\nfunction _defaultCellRenderer<K, D, C>({ rowData, field }: TableRendererContext<K, D, C>) {\n return field != null ? String(rowData[field]) : undefined;\n}\n\n/**\n * The internal component used to render a single cell in a TableRow.\n */\nexport function TableCell<K, D, C>({\n tableId,\n rowData,\n field,\n columnKey,\n columnIndex,\n rowKey,\n rowIndex,\n isFinalRowIndex,\n isFinalColumnIndex,\n hasVerticalGridlines,\n hasHorizontalGridlines,\n hasFooters,\n hasVerticalUnderflow,\n hasMore,\n isRowSelected,\n isPreviousRowSelected,\n isColumnSelected,\n isPreviousColumnSelected,\n isShowFocusRing,\n hasTabIndex,\n isTabbableMode,\n isRowHeader,\n stickyColumn = 'disabled',\n renderer = _defaultCellRenderer,\n selectorRenderer,\n isRowSelectionEnabled,\n isRowSingleSelection,\n variant,\n applyActiveStyle,\n applyHoverStyle,\n applyPseudoHoverStyle,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n isHighContrast,\n padding,\n tooltip,\n horizontalAlignment = 'start',\n verticalAlignment = 'center'\n}: TableCellProps<K, D, C>) {\n const browser = getClientHints().browser;\n\n const rowContext: TableRowContext<K, D> = { key: rowKey, data: rowData };\n const columnPadding = typeof padding === 'function' ? padding(rowContext) : padding;\n const columnTooltip = typeof tooltip === 'function' ? tooltip(rowContext) : tooltip;\n const supportsDefaultTooltip = columnTooltip !== 'disabled';\n const hasLastHorizontalGridline =\n hasHorizontalGridlines && (hasMore || hasVerticalUnderflow || !hasFooters);\n\n const cellClasses = classNames(\n getDataCellClassArray({\n isFirstColumnIndex: columnIndex === 0,\n isFinalColumnIndex,\n isFirstRowIndex: rowIndex === 0,\n isFinalRowIndex,\n hasVerticalGridlines,\n hasHorizontalGridlines,\n hasLastHorizontalGridline,\n isRowSelected,\n isPreviousRowSelected,\n isColumnSelected,\n isPreviousColumnSelected,\n isShowFocusRing,\n isSticky: stickyColumn === 'enabled',\n isRowSelectionEnabled,\n isRowSingleSelection,\n isActive: applyActiveStyle,\n isHover: applyHoverStyle,\n isPseudoHover: applyPseudoHoverStyle,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n isHighContrast,\n horizontalAlignment,\n verticalAlignment,\n variant,\n padding: columnPadding\n })\n );\n\n const cellRendererProps = {\n rowData: rowData,\n rowKey: rowKey,\n field: field,\n columnKey: columnKey,\n selector: selectorRenderer,\n isTabbable: isTabbableMode\n };\n\n return (\n <td\n aria-colindex={columnIndex + 1}\n class={cellClasses}\n tabIndex={hasTabIndex ? 0 : -1}\n role={isRowHeader ? 'rowheader' : 'gridcell'}\n data-oj-cell-type={'data'}\n data-oj-column-key={columnKey}\n data-oj-table-focusable={tableId}\n data-oj-table-data-cell={tableId}\n data-oj-table-tooltip={supportsDefaultTooltip ? 'enabled' : undefined}\n {...(supportsDefaultTooltip && browser === 'safari' ? preventBrowserTooltipProps : {})}\n {...(isColumnSelected ? { 'aria-selected': true } : {})}>\n {renderer(cellRendererProps)}\n </td>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { memo } from 'preact/compat';\nimport { SelectionDetail } from '../UNSAFE_Collection';\nimport { Selector } from '../UNSAFE_Selector';\nimport { CurrentRowVariant, TableSelectionDetail } from '../UNSAFE_TableView';\nimport { tableRowStyles, tableRowStylesHC } from './themes/TableRowStyles.css';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Keys, containsKey, isSameKey } from '../utils/UNSAFE_keys';\nimport { TableColumn } from './Table';\nimport { TableCell } from './TableCell';\nimport { BundleType } from '../resources/nls/bundle';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\n\n/**\n * Props for the TableRow Component\n */\nexport type TableRowProps<K, D, C> = {\n tableId: string;\n rowKey: K;\n rowData: D;\n rowIndex: number;\n isFinalRow: boolean;\n columnsArray: TableColumn<K, D, C>[];\n rowHeaderColumnKeys: Set<C>;\n hasVerticalGridlines: boolean;\n hasHorizontalGridlines: boolean;\n hasFooters: boolean;\n hasVerticalUnderflow: boolean;\n hasMore: boolean;\n isSelected: boolean;\n isPreviousSelected: boolean;\n isRowSelectionEnabled: boolean;\n isSingleRowSelectionEnabled: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n selectedRowKeys?: Keys<K>;\n isShowFocusRing: boolean;\n activeColumnKey?: C;\n isTabbableMode: boolean;\n selectedColumnKeys?: Keys<C>;\n variant?: CurrentRowVariant;\n onSelectionChange?: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void;\n startStickyEdge?: number;\n endStickyEdge?: number;\n disabledInteractionKeys?: ('enter' | 'space')[];\n};\n\n/**\n * The internal component used to render a single row in Table.\n */\nfunction TableRow<K, D, C>({\n tableId,\n rowKey,\n rowData,\n rowIndex,\n isFinalRow,\n columnsArray,\n rowHeaderColumnKeys,\n hasVerticalGridlines,\n hasHorizontalGridlines,\n hasFooters,\n hasVerticalUnderflow,\n hasMore,\n isSelected,\n isPreviousSelected,\n isRowSelectionEnabled,\n isSingleRowSelectionEnabled,\n selectedRowKeys = { all: false, keys: new Set<K>() },\n isShowFocusRing,\n activeColumnKey,\n isTabbableMode,\n selectedColumnKeys = { all: false, keys: new Set<C>() },\n variant,\n disabledInteractionKeys,\n onSelectionChange,\n startStickyEdge,\n endStickyEdge,\n isRtl,\n isHighContrast\n}: TableRowProps<K, D, C>) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { interactionProps, applyActiveStyle, applyHoverStyle, applyPseudoHoverStyle } =\n useInteractionStyle({ disabledKeys: disabledInteractionKeys });\n\n const rowStyles = isHighContrast ? tableRowStylesHC : tableRowStyles;\n const classArray = [rowStyles.base, isFinalRow ? rowStyles.lastRowHeight : rowStyles.rowHeight];\n const classes = classNames(classArray);\n\n const accessibleRowName = (rowIndex + 2).toString();\n const handleRowSelectorChange = (detail: SelectionDetail<K>) => {\n if (onSelectionChange != null) {\n onSelectionChange(\n {\n value: {\n row: detail.value,\n column: { all: false, keys: new Set<C>() }\n },\n target: detail.target\n },\n false\n );\n }\n };\n const selectorRenderer =\n isRowSelectionEnabled && !isSingleRowSelectionEnabled\n ? () => {\n // conversion from 0-based index and adding the header row as it is always rendered\n return (\n <Selector\n aria-label={translations.collection_selectRow({ ROW_NAME: accessibleRowName })}\n onChange={handleRowSelectorChange}\n rowKey={rowKey}\n selectedKeys={selectedRowKeys}\n />\n );\n }\n : undefined;\n\n let isPreviousColumnSelected = false;\n return (\n <tr\n aria-rowindex={rowIndex + 2}\n class={classes}\n role={'row'}\n data-oj-key={rowKey}\n data-oj-table-data-row={tableId}\n {...(isRowSelectionEnabled\n ? isSelected\n ? { 'aria-selected': true }\n : { 'aria-selected': false }\n : {})}\n {...(typeof rowKey === 'number' && { 'data-oj-key-type': 'number' })}\n {...(isRowSelectionEnabled && interactionProps)}>\n {columnsArray.map((column: TableColumn<K, D, C>, columnIndex: number) => {\n const columnKey = column.key;\n const isColumnSelected = containsKey(selectedColumnKeys, columnKey);\n const isActive = columnKey === activeColumnKey;\n const hasTabIndex = isActive && !isTabbableMode;\n const cellProps = {\n tableId: tableId,\n rowData: rowData,\n field: column.value.field,\n stickyColumn: column.value.sticky,\n columnKey: columnKey,\n columnIndex: columnIndex,\n rowKey: rowKey,\n rowIndex: rowIndex,\n isFinalRowIndex: isFinalRow,\n isFinalColumnIndex: columnIndex === columnsArray.length - 1,\n hasVerticalGridlines: hasVerticalGridlines,\n hasHorizontalGridlines: hasHorizontalGridlines,\n hasFooters: hasFooters,\n hasVerticalUnderflow: hasVerticalUnderflow,\n hasMore: hasMore,\n isRowSelected: isSelected,\n isPreviousRowSelected: isPreviousSelected,\n isColumnSelected: isColumnSelected,\n isPreviousColumnSelected: isPreviousColumnSelected,\n isShowFocusRing: isShowFocusRing && isActive,\n hasTabIndex: hasTabIndex,\n isTabbableMode: isTabbableMode,\n isRowHeader: rowHeaderColumnKeys.has(column.key),\n renderer: column.value.renderer,\n selectorRenderer: selectorRenderer,\n isRowSelectionEnabled: isRowSelectionEnabled,\n variant: variant,\n isRowSingleSelection: isSingleRowSelectionEnabled,\n applyActiveStyle: applyActiveStyle,\n applyHoverStyle: applyHoverStyle,\n applyPseudoHoverStyle: applyPseudoHoverStyle,\n isStickyStartEdge: columnIndex === startStickyEdge,\n isStickyEndEdge: columnIndex === endStickyEdge,\n isRtl: isRtl,\n isHighContrast: isHighContrast,\n padding: column.value.padding,\n tooltip: column.value.tooltip,\n horizontalAlignment:\n column.value.alignment?.horizontal != null\n ? column.value.alignment.horizontal\n : column.value.horizontalAlignment,\n verticalAlignment: column.value.alignment?.vertical\n };\n isPreviousColumnSelected = isColumnSelected;\n return <TableCell {...cellProps} />;\n })}\n </tr>\n );\n}\n\nconst _areStringSetsEquivalent = (set1?: Set<string>, set2?: Set<string>) => {\n if (set1 == null) {\n return set2 == null;\n }\n if (set2 == null) {\n return false;\n }\n return set1.size === set2.size && [...set1].every((x) => set2.has(x));\n};\n\nconst _areColumnsArraysEquivalent = (\n columnsArray1: TableColumn<string | number, any, string>[],\n columnsArray2: TableColumn<string | number, any, string>[]\n) => {\n if (columnsArray1.length === columnsArray2.length) {\n for (let i = 0; i < columnsArray1.length; i++) {\n if (\n columnsArray1[i].key !== columnsArray2[i].key ||\n columnsArray1[i].value !== columnsArray2[i].value\n ) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\nexport const MemoizeTableRow = memo(TableRow, (prev: any, next: any) => {\n if (prev && next) {\n return (\n prev.tableId === next.tableId &&\n prev.rowKey === next.rowKey &&\n prev.rowData === next.rowData &&\n prev.rowIndex === next.rowIndex &&\n prev.isFinalRow === next.isFinalRow &&\n _areColumnsArraysEquivalent(prev.columnsArray, next.columnsArray) &&\n prev.hasHorizontalGridlines === next.hasHorizontalGridlines &&\n prev.hasVerticalGridlines === next.hasVerticalGridlines &&\n (!next.isFinalRow ||\n (prev.hasFooters === next.hasFooters &&\n prev.hasVerticalUnderflow === next.hasVerticalUnderflow &&\n prev.hasMore === next.hasMore)) &&\n _areStringSetsEquivalent(prev.rowHeaderColumnKeys, next.rowHeaderColumnKeys) &&\n prev.isSelected === next.isSelected &&\n prev.isPreviousSelected === next.isPreviousSelected &&\n prev.isRowSelectionEnabled === next.isRowSelectionEnabled &&\n prev.isSingleRowSelectionEnabled === next.isSingleRowSelectionEnabled &&\n (prev.isRowSelectionEnabled && !prev.isSingleRowSelectionEnabled\n ? isSameKey(prev.selectedRowKeys, next.selectedRowKeys)\n : true) &&\n isSameKey(prev.selectedColumnKeys, next.selectedColumnKeys) &&\n prev.isShowFocusRing === next.isShowFocusRing &&\n prev.activeColumnKey === next.activeColumnKey &&\n prev.isTabbableMode === next.isTabbableMode &&\n prev.variant === next.variant &&\n prev.onSelectionChange === next.onSelectionChange &&\n prev.startStickyEdge === next.startStickyEdge &&\n prev.endStickyEdge === next.endStickyEdge &&\n prev.isRtl === next.isRtl &&\n prev.isHighContrast === next.isHighContrast &&\n prev.disabledInteractionKeys === next.disabledInteractionKeys\n );\n }\n return false;\n});\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { ComponentChildren, RefObject } from 'preact';\nimport { TableNoDataRendererContext } from '../UNSAFE_TableView';\nimport { useLayoutEffect } from 'preact/hooks';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { tableRowStyles } from './themes/TableRowStyles.css';\nimport { TableNoDataVariantOptions } from './themes/TableNoDataStyles.css';\nimport { TableNoDataRedwoodTheme } from './themes/redwood/TableNoDataTheme';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { BundleType } from '../resources/nls/bundle';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\n\n/**\n * Props for the TableCell Component\n */\nexport type TableNoDataProps = {\n rootRef: RefObject<HTMLDivElement>;\n tableId: string;\n columnsCount: number;\n isShowFocusRing: boolean;\n hasTabIndex: boolean;\n isTabbableMode: boolean;\n ariaRowIndex: number;\n renderer?: (context: TableNoDataRendererContext) => ComponentChildren;\n};\n\n/**\n * The internal component used to render a single cell in a TableRow.\n */\nexport function TableNoData({\n rootRef,\n tableId,\n columnsCount,\n isShowFocusRing,\n hasTabIndex,\n isTabbableMode,\n ariaRowIndex,\n renderer\n}: TableNoDataProps) {\n const browser = getClientHints().browser;\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const rowClasses = classNames([tableRowStyles.base]);\n\n const { classes: themeClasses } = useComponentTheme<TableNoDataVariantOptions>(\n TableNoDataRedwoodTheme,\n {\n defaultRenderer: renderer == null ? 'isDefaultRenderer' : 'notDefaultRenderer',\n showFocusRing: isShowFocusRing ? 'isShowFocusRing' : 'notShowFocusRing'\n }\n );\n\n const cellClasses = classNames([themeClasses]);\n\n function defaultContentRenderer() {\n return translations.collection_noData();\n }\n\n const contentRenderer = renderer != null ? renderer : defaultContentRenderer;\n\n // in firefox, table element heights are not stretched unless explicitly set in some cases\n useLayoutEffect(() => {\n if (browser === 'firefox') {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n const tableBodyElement = rootElement.querySelector(\n `[data-oj-table-body='${tableId}']`\n ) as HTMLElement;\n const noDataElement = rootElement.querySelector(\n `[data-oj-table-nodata-cell='${tableId}']`\n ) as HTMLElement;\n if (tableBodyElement != null && noDataElement != null) {\n noDataElement.style.height = '';\n noDataElement.style.height = `${tableBodyElement.getBoundingClientRect().height}px`;\n }\n }\n }\n });\n\n return (\n <tr aria-rowindex={ariaRowIndex} class={rowClasses} role={'row'}>\n <td\n aria-colindex={1}\n class={cellClasses}\n style={browser !== 'firefox' ? 'height: 100%;' : undefined}\n tabIndex={hasTabIndex ? 0 : -1}\n role={'gridcell'}\n colSpan={columnsCount}\n data-oj-cell-type={'noData'}\n data-oj-table-focusable={tableId}\n data-oj-table-nodata-cell={tableId}>\n {contentRenderer({ isTabbable: isTabbableMode })}\n </td>\n </tr>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { Fragment, type RefObject } from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport { LoadMoreCollection } from '../PRIVATE_LoadMoreCollection';\nimport { ActiveCell, TableColumn, TableData, ViewportInfo } from './Table';\nimport { TableSkeletonRow } from './TableSkeletonRow';\nimport { MemoizeTableRow } from './TableRow';\nimport { ItemContext } from '../UNSAFE_Collection';\nimport {\n CurrentRowVariant,\n TableNoDataRendererContext,\n TableRowContext,\n TableSelectionDetail\n} from '../UNSAFE_TableView';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { backgroundStyles } from './themes/Table.css';\nimport { Keys, containsKey } from '../utils/UNSAFE_keys';\nimport { TableNoData } from './TableNoData';\nimport { ComponentChildren } from 'preact';\n\n/**\n * Props for the TableBody Component\n */\nexport type TableBodyProps<K, D, C> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n tableId: string;\n isValidRender: boolean;\n getAccessibleRowHeaders: (context: TableRowContext<K, D>) => Set<C>;\n tableData: TableData<K, D>[];\n columnsArray: TableColumn<K, D, C>[];\n hasVerticalGridlines: boolean;\n hasHorizontalGridlines: boolean;\n hasFooters: boolean;\n hasVerticalUnderflow: boolean;\n isShowFocusRing: boolean;\n isTabbableMode: boolean;\n hasMore: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n onLoadMore: () => void;\n activeCell?: ActiveCell<K, C>;\n currentRowKey?: K;\n currentRowVariant?: CurrentRowVariant;\n selected: { row?: Keys<K>; column?: Keys<C> };\n isRowSelectionEnabled: boolean;\n isSingleRowSelectionEnabled: boolean;\n onSelectionChange?: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void;\n noDataRenderer?: (context: TableNoDataRendererContext) => ComponentChildren;\n startStickyEdge?: number;\n endStickyEdge?: number;\n disabledInteractionKeys?: ('enter' | 'space')[];\n};\n\n/**\n * The internal component used to render a single cell in a TableRow.\n */\nexport function TableBody<K, D, C>({\n rootRef,\n viewportInfo,\n tableId,\n isValidRender,\n getAccessibleRowHeaders,\n tableData,\n columnsArray,\n hasVerticalGridlines,\n hasHorizontalGridlines,\n hasFooters,\n hasVerticalUnderflow,\n isShowFocusRing,\n isTabbableMode,\n hasMore,\n onLoadMore,\n activeCell,\n currentRowKey,\n currentRowVariant,\n selected,\n isRowSelectionEnabled,\n isSingleRowSelectionEnabled,\n disabledInteractionKeys,\n onSelectionChange,\n noDataRenderer,\n startStickyEdge,\n endStickyEdge,\n isRtl,\n isHighContrast\n}: TableBodyProps<K, D, C>) {\n const browser = getClientHints().browser;\n\n // returns a TableRowContext based on ItemContext (added key)\n const getRowContext = useCallback((context: ItemContext<TableData<K, D>>) => {\n return {\n index: context.index,\n data: context.data.data,\n key: context.data.metadata\n };\n }, []);\n\n let isPreviousSelected = false;\n const collectionChildrenFunc = (context: ItemContext<TableData<K, D>>) => {\n const tableRowContext = getRowContext(context);\n const rowKey = tableRowContext.key;\n const containsActiveCell = activeCell?.rowKey === rowKey;\n const activeColumnKey = containsActiveCell ? activeCell.columnKey : undefined;\n const isSelected = containsKey(selected.row, rowKey);\n const rowProps = {\n tableId: tableId,\n columnsArray: columnsArray,\n rowHeaderColumnKeys: getAccessibleRowHeaders(tableRowContext),\n hasVerticalGridlines: hasVerticalGridlines,\n hasHorizontalGridlines: hasHorizontalGridlines,\n hasFooters: hasFooters,\n hasVerticalUnderflow: hasVerticalUnderflow,\n hasMore: hasMore,\n isSelected: isSelected,\n isPreviousSelected: isPreviousSelected,\n disabledInteractionKeys: disabledInteractionKeys,\n onSelectionChange: onSelectionChange,\n isRowSelectionEnabled: isRowSelectionEnabled,\n isSingleRowSelectionEnabled: isSingleRowSelectionEnabled,\n variant: currentRowKey === rowKey ? currentRowVariant : 'none',\n isShowFocusRing: isShowFocusRing && containsActiveCell,\n activeColumnKey: activeColumnKey,\n isTabbableMode: isTabbableMode,\n selectedRowKeys: selected.row,\n selectedColumnKeys: selected.column,\n rowIndex: tableRowContext.index,\n rowKey: rowKey,\n rowData: tableRowContext.data,\n isFinalRow: tableRowContext.index === tableData.length - 1,\n startStickyEdge: startStickyEdge,\n endStickyEdge: endStickyEdge,\n isRtl: isRtl,\n isHighContrast: isHighContrast\n };\n isPreviousSelected = isSelected;\n return <MemoizeTableRow {...rowProps} />;\n };\n\n const getNoDataProps = () => {\n const isActive = activeCell?.type === 'noData';\n const hasTabIndex = isActive && !isTabbableMode;\n return {\n rootRef: rootRef,\n tableId: tableId,\n columnsCount: columnsArray.length,\n isShowFocusRing: isShowFocusRing && isActive,\n hasTabIndex: hasTabIndex,\n isTabbableMode: isTabbableMode,\n ariaRowIndex: isValidRender ? 2 : 1,\n renderer: isValidRender ? noDataRenderer : undefined\n };\n };\n\n const isShowEmptyLoading = tableData.length === 0 && hasMore;\n const isShowNoData = tableData.length === 0 && !hasMore;\n const loadMoreViewportConfig = {\n scroller: () => viewportInfo.viewportConfig.scroller().current\n };\n\n return (\n <tbody class={backgroundStyles.inherit} role={'presentation'} data-oj-table-body={tableId}>\n {isShowNoData || !isValidRender ? (\n <TableNoData {...getNoDataProps()} />\n ) : (\n <Fragment>\n <LoadMoreCollection<TableData<K, D>>\n data={tableData}\n loadMoreIndicator={\n <TableSkeletonRow\n tableId={tableId}\n hasTabIndex={\n isShowEmptyLoading\n ? activeCell?.type === 'loading'\n : activeCell?.type === 'loadMore'\n }\n colspan={columnsArray.length}\n isLoadMore={!isShowEmptyLoading}\n isShowFocusRing={\n isShowFocusRing &&\n (isShowEmptyLoading\n ? activeCell?.type === 'loading'\n : activeCell?.type === 'loadMore')\n }\n isHighContrast={isHighContrast}\n />\n }\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n viewportConfig={loadMoreViewportConfig}>\n {collectionChildrenFunc}\n </LoadMoreCollection>\n <tr\n style={browser !== 'firefox' ? 'height: 100%;' : undefined}\n role={'presentation'}\n data-oj-table-spacer-row={tableId}\n />\n </Fragment>\n )}\n </tbody>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport { SelectionDetail } from '../UNSAFE_Collection';\nimport { SelectorAll } from '../UNSAFE_SelectorAll';\nimport {\n CellPadding,\n TableHeaderRendererContext,\n TableSelectionDetail,\n SortCriterionDetail\n} from '../UNSAFE_TableView';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Keys, isSameKey } from '../utils/UNSAFE_keys';\nimport {\n justifyContentStyles,\n tableHeaderCellTextStyles,\n tableHeaderSortContainerStyles,\n tableHeaderSortIconStyles\n} from './themes/Table.css';\nimport { tableHeaderCellStyles } from './themes/TableHeaderCellStyles.css';\nimport { getHeaderFooterCellClassArray } from './utils/TableThemeUtils';\nimport { preventBrowserTooltipProps } from './utils/TableTooltipUtils';\nimport { BundleType } from '../resources/nls/bundle';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { EmbeddedIconButton } from '../PRIVATE_EmbeddedIconButton';\nimport { SortAscendingIcon } from '../PRIVATE_ThemedIcons/SortAscendingIcon';\nimport { SortDescendingIcon } from '../PRIVATE_ThemedIcons/SortDescendingIcon';\n\n/**\n * Props for the TableHeaderCell Component\n */\nexport type TableHeaderCellProps<K, C> = {\n tableId: string;\n columnKey: C;\n columnIndex: number;\n isFinalColumnIndex: boolean;\n hasVerticalGridlines: boolean;\n isColumnSelectionEnabled: boolean;\n isSelected: boolean;\n isPreviousColumnSelected: boolean;\n isColumnSelectable: boolean;\n isRowSelectionEnabled: boolean;\n isShowFocusRing: boolean;\n hasTabIndex: boolean;\n isTabbableMode: boolean;\n isStickyStartEdge: boolean;\n isStickyEndEdge: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n headerText?: string;\n selectedRowKeys?: Keys<K>;\n stickyTopOffset?: number;\n stickyColumn?: 'enabled' | 'disabled';\n renderer?: (context: TableHeaderRendererContext<C>) => ComponentChildren;\n onSelectionChange?: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void;\n isShowSortIcon: boolean;\n sortable?: 'enabled' | 'disabled';\n sortDirection?: 'ascending' | 'descending';\n onSortCriterionChange?: (detail: SortCriterionDetail<C>) => void;\n padding?: CellPadding;\n tooltip?: 'enabled' | 'disabled';\n disabledInteractionKeys?: ('enter' | 'space')[];\n horizontalAlignment?: 'start' | 'end' | 'left' | 'right' | 'center';\n verticalAlignment?: 'top' | 'center' | 'bottom';\n};\n\n/**\n * The internal component used to render a single cell in a TableHeaderRow.\n */\nexport function TableHeaderCell<K, C>({\n tableId,\n columnKey,\n columnIndex,\n isFinalColumnIndex,\n hasVerticalGridlines,\n isColumnSelectionEnabled,\n isSelected,\n isPreviousColumnSelected,\n isColumnSelectable,\n isRowSelectionEnabled,\n selectedRowKeys = { all: false, keys: new Set<K>() },\n isShowFocusRing,\n hasTabIndex,\n isTabbableMode,\n headerText,\n stickyTopOffset = 0,\n stickyColumn = 'disabled',\n renderer,\n disabledInteractionKeys,\n onSelectionChange,\n isShowSortIcon,\n sortable = 'disabled',\n sortDirection,\n onSortCriterionChange,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n isHighContrast,\n padding,\n tooltip,\n horizontalAlignment = 'start',\n verticalAlignment = 'center'\n}: TableHeaderCellProps<K, C>) {\n const browser = getClientHints().browser;\n const supportsDefaultTooltip = tooltip !== 'disabled';\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { interactionProps, applyActiveStyle, applyHoverStyle, applyPseudoHoverStyle } =\n useInteractionStyle({ disabledKeys: disabledInteractionKeys });\n\n const cellClasses = classNames(\n getHeaderFooterCellClassArray({\n isHeader: true,\n isActive: applyActiveStyle,\n isHover: applyHoverStyle,\n isPseudoHover: applyPseudoHoverStyle,\n isFirstColumnIndex: columnIndex === 0,\n isFinalColumnIndex,\n hasVerticalGridlines,\n isColumnSelectionEnabled,\n isSelected,\n isPreviousColumnSelected,\n isColumnSelectable,\n isShowFocusRing,\n isSticky: stickyColumn === 'enabled',\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n horizontalAlignment,\n verticalAlignment,\n isHighContrast,\n padding\n })\n );\n\n let selectorAllState: 'all' | 'none' | 'partial' | 'partial-all';\n if (isSameKey(selectedRowKeys, { all: true, deletedKeys: new Set<K>() })) {\n selectorAllState = 'all';\n } else if (isSameKey(selectedRowKeys, { all: false, keys: new Set<K>() })) {\n selectorAllState = 'none';\n } else {\n selectorAllState = 'partial';\n }\n\n const handleSelectorChange = (detail: SelectionDetail<K>) => {\n if (onSelectionChange != null) {\n onSelectionChange(\n {\n value: {\n row: detail.value,\n column: { all: false, keys: new Set<C>() }\n },\n target: detail.target\n },\n false\n );\n }\n };\n\n const selectorRenderer = isRowSelectionEnabled\n ? () => (\n <SelectorAll\n aria-label={translations.collection_selectAllRows()}\n onChange={handleSelectorChange}\n selected={selectorAllState}\n />\n )\n : undefined;\n\n const handleSortGesture = useCallback(() => {\n if (onSortCriterionChange != null) {\n const newDirection = sortDirection === 'ascending' ? 'descending' : 'ascending';\n onSortCriterionChange([{ key: columnKey, sortDirection: newDirection }]);\n }\n }, [columnKey, sortDirection, onSortCriterionChange]);\n\n const iconClassArray = [tableHeaderSortIconStyles.base];\n if (isShowSortIcon) {\n iconClassArray.push(tableHeaderSortIconStyles.visible);\n } else {\n iconClassArray.push(tableHeaderSortIconStyles.hidden);\n }\n const iconClasses = classNames(iconClassArray);\n\n const sortIconRenderer =\n sortable === 'enabled' || sortDirection != null\n ? () => (\n <div class={iconClasses}>\n <EmbeddedIconButton\n aria-label={\n sortable === 'enabled'\n ? translations.collection_sortEnabled()\n : translations.collection_sortDisabled()\n }\n isDisabled={sortable !== 'enabled'}\n onAction={handleSortGesture}>\n {sortDirection === 'descending' ? <SortDescendingIcon /> : <SortAscendingIcon />}\n </EmbeddedIconButton>\n </div>\n )\n : undefined;\n\n const headerCellRendererProps = {\n key: columnKey,\n headerText: headerText,\n sortable: sortable,\n sortDirection: sortDirection,\n selector: selectorRenderer,\n sortControl: sortIconRenderer,\n isTabbable: isTabbableMode\n };\n\n const getHeaderCellRenderer = useCallback(() => {\n if (renderer != null) {\n return renderer;\n }\n return ({ headerText, sortControl }: TableHeaderRendererContext<C>) => {\n const text =\n headerText != null ? (\n <div class={tableHeaderCellTextStyles.base}>\n <span class={tableHeaderCellStyles.defaultRendererSpan}>{headerText}</span>\n </div>\n ) : undefined;\n if (sortControl != null) {\n const isIconFirst =\n horizontalAlignment === 'end' ||\n (!isRtl && horizontalAlignment === 'right') ||\n (isRtl && horizontalAlignment === 'left');\n\n const containerClasses = classNames([\n tableHeaderSortContainerStyles.base,\n justifyContentStyles[horizontalAlignment]\n ]);\n return (\n <div class={containerClasses}>\n {isIconFirst && sortControl()}\n {text}\n {!isIconFirst && sortControl()}\n </div>\n );\n }\n return text;\n };\n }, [renderer, horizontalAlignment, isRtl]);\n\n const getAriaSelected = () => {\n if (isSelected) {\n return { 'aria-selected': true };\n }\n return isColumnSelectable ? { 'aria-selected': false } : undefined;\n };\n\n const getAriaSort = () => {\n if (sortDirection === 'ascending' || sortDirection === 'descending') {\n return { 'aria-sort': sortDirection };\n }\n return undefined;\n };\n\n return (\n <th\n aria-colindex={columnIndex + 1}\n {...getAriaSelected()}\n {...getAriaSort()}\n class={cellClasses}\n style={`top:${stickyTopOffset}px;`}\n tabIndex={hasTabIndex ? 0 : -1}\n role={'columnheader'}\n data-oj-cell-type={'header'}\n data-oj-column-key={columnKey}\n data-oj-table-focusable={tableId}\n data-oj-table-header-cell={tableId}\n data-oj-table-tooltip={supportsDefaultTooltip ? 'enabled' : undefined}\n {...(supportsDefaultTooltip && browser === 'safari' ? preventBrowserTooltipProps : {})}\n {...(isColumnSelectable && interactionProps)}>\n {getHeaderCellRenderer()(headerCellRendererProps)}\n </th>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Keys, containsKey } from '../utils/UNSAFE_keys';\nimport { TableSelectionDetail, SortCriterionDetail } from '../UNSAFE_TableView';\nimport { TableColumn } from './Table';\nimport { TableHeaderCell } from './TableHeaderCell';\nimport { backgroundStyles, tableHeaderRowStyles } from './themes/Table.css';\n\n/**\n * Props for the TableHeader Component\n */\nexport type TableHeaderProps<K, D, C> = {\n tableId: string;\n isRendered: boolean;\n columnsArray: TableColumn<K, D, C>[];\n hasVerticalGridlines: boolean;\n activeKey?: C;\n isTabbableMode: boolean;\n isShowFocusRing: boolean;\n selectedColumnKeys?: Keys<C>;\n selectedRowKeys?: Keys<K>;\n isColumnSelectionEnabled: boolean;\n isRowSelectionEnabled: boolean;\n isResizeHover: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n onSelectionChange?: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void;\n isForceSortIcons: boolean;\n hoverColumnKey?: C;\n sortCriterion?: { key: C; sortDirection: 'ascending' | 'descending' }[];\n onSortCriterionChange?: (detail: SortCriterionDetail<C>) => void;\n stickyTopOffset?: number;\n startStickyEdge?: number;\n endStickyEdge?: number;\n disabledInteractionKeys?: ('enter' | 'space')[];\n};\n\n/**\n * The internal component used to render a header region in Table.\n */\nexport function TableHeader<K, D, C>({\n tableId,\n isRendered,\n columnsArray,\n hasVerticalGridlines,\n activeKey,\n isTabbableMode,\n isShowFocusRing,\n selectedColumnKeys,\n selectedRowKeys,\n isColumnSelectionEnabled,\n isRowSelectionEnabled,\n disabledInteractionKeys,\n onSelectionChange,\n isForceSortIcons,\n hoverColumnKey,\n sortCriterion,\n onSortCriterionChange,\n stickyTopOffset,\n startStickyEdge,\n endStickyEdge,\n isResizeHover,\n isRtl,\n isHighContrast\n}: TableHeaderProps<K, D, C>) {\n const rowClasses = classNames([tableHeaderRowStyles.base]);\n\n const getStyle = () => {\n return isResizeHover ? 'cursor: col-resize;' : '';\n };\n\n let isPreviousColumnSelected = false;\n return isRendered ? (\n <thead class={backgroundStyles.inherit} role={'presentation'}>\n <tr\n aria-rowindex={1}\n class={rowClasses}\n role={'row'}\n style={getStyle()}\n data-oj-table-header-row={tableId}>\n {columnsArray.map((column: TableColumn<K, D, C>, columnIndex: number) => {\n const columnKey = column.key;\n let sortDirection;\n if (sortCriterion != null) {\n for (const criterion of sortCriterion) {\n if (criterion.key === columnKey) {\n sortDirection = criterion.sortDirection;\n break;\n }\n }\n }\n const sortable = column.value.sortable;\n const hasSortIcon = sortable === 'enabled' || sortDirection != null;\n const isShowSortIcon =\n hasSortIcon &&\n (isForceSortIcons || sortDirection != null || hoverColumnKey === columnKey);\n const isSelected = containsKey(selectedColumnKeys, columnKey);\n const isActive = columnKey === activeKey;\n const hasTabIndex = isActive && !isTabbableMode;\n const headerCellProps = {\n tableId: tableId,\n hasVerticalGridlines: hasVerticalGridlines,\n columnKey: columnKey,\n columnIndex: columnIndex,\n isFinalColumnIndex: columnIndex === columnsArray.length - 1,\n stickyTopOffset: stickyTopOffset,\n stickyColumn: column.value.sticky,\n isColumnSelectionEnabled: isColumnSelectionEnabled,\n isSelected: isSelected,\n isPreviousColumnSelected: isPreviousColumnSelected,\n selectedRowKeys: selectedRowKeys,\n isColumnSelectable: isColumnSelectionEnabled && column.value.selectable !== 'disabled',\n isRowSelectionEnabled: isRowSelectionEnabled,\n isShowFocusRing: isShowFocusRing && isActive,\n hasTabIndex: hasTabIndex,\n isTabbableMode: isTabbableMode,\n headerText: column.value.headerText,\n renderer: column.value.headerRenderer,\n disabledInteractionKeys: disabledInteractionKeys,\n onSelectionChange: onSelectionChange,\n isShowSortIcon: isShowSortIcon,\n sortable: sortable,\n sortDirection: sortDirection,\n onSortCriterionChange: onSortCriterionChange,\n isStickyStartEdge: columnIndex === startStickyEdge,\n isStickyEndEdge: columnIndex === endStickyEdge,\n isRtl: isRtl,\n isHighContrast: isHighContrast,\n padding: column.value.headerPadding,\n tooltip: column.value.headerTooltip,\n horizontalAlignment:\n column.value.headerAlignment?.horizontal != null\n ? column.value.headerAlignment.horizontal\n : column.value.horizontalAlignment,\n verticalAlignment: column.value.headerAlignment?.vertical\n };\n isPreviousColumnSelected = isSelected;\n return <TableHeaderCell {...headerCellProps} />;\n })}\n </tr>\n </thead>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { CellPadding, TableFooterRendererContext } from '../UNSAFE_TableView';\nimport { getClientHints } from '../utils/PRIVATE_clientHints';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { getHeaderFooterCellClassArray } from './utils/TableThemeUtils';\nimport { preventBrowserTooltipProps } from './utils/TableTooltipUtils';\n\n/**\n * Props for the TableFooterCell Component\n */\nexport type TableFooterCellProps<C> = {\n tableId: string;\n columnKey: C;\n columnIndex: number;\n isFinalColumnIndex: boolean;\n hasVerticalGridlines: boolean;\n isColumnSelectionEnabled: boolean;\n isSelected: boolean;\n isPreviousColumnSelected: boolean;\n isColumnSelectable: boolean;\n isShowFocusRing: boolean;\n hasTabIndex: boolean;\n isTabbableMode: boolean;\n isStickyStartEdge: boolean;\n isStickyEndEdge: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n footerText?: string;\n stickyBottomOffset?: number;\n stickyColumn?: 'enabled' | 'disabled';\n renderer?: (context: TableFooterRendererContext<C>) => ComponentChildren;\n padding?: CellPadding;\n tooltip?: 'enabled' | 'disabled';\n disabledInteractionKeys?: ('enter' | 'space')[];\n horizontalAlignment?: 'start' | 'end' | 'left' | 'right' | 'center';\n verticalAlignment?: 'top' | 'center' | 'bottom';\n};\n\nfunction _defaultFooterCellRenderer<C>({ footerText }: TableFooterRendererContext<C>) {\n return footerText != null ? footerText : undefined;\n}\n\n/**\n * The internal component used to render a single cell in a TableFooterRow.\n */\nexport function TableFooterCell<C>({\n tableId,\n columnKey,\n columnIndex,\n isFinalColumnIndex,\n hasVerticalGridlines,\n isColumnSelectionEnabled,\n isSelected,\n isPreviousColumnSelected,\n isColumnSelectable,\n isShowFocusRing,\n hasTabIndex,\n isTabbableMode,\n stickyBottomOffset = 0,\n stickyColumn = 'disabled',\n footerText,\n renderer = _defaultFooterCellRenderer,\n disabledInteractionKeys,\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n isHighContrast,\n padding,\n tooltip,\n horizontalAlignment = 'start',\n verticalAlignment = 'center'\n}: TableFooterCellProps<C>) {\n const browser = getClientHints().browser;\n const supportsDefaultTooltip = tooltip !== 'disabled';\n const { interactionProps, applyActiveStyle, applyHoverStyle, applyPseudoHoverStyle } =\n useInteractionStyle({ disabledKeys: disabledInteractionKeys });\n\n const cellClasses = classNames(\n getHeaderFooterCellClassArray({\n isHeader: false,\n isActive: applyActiveStyle,\n isHover: applyHoverStyle,\n isPseudoHover: applyPseudoHoverStyle,\n isFirstColumnIndex: columnIndex === 0,\n isFinalColumnIndex,\n hasVerticalGridlines,\n isColumnSelectionEnabled,\n isSelected,\n isPreviousColumnSelected,\n isColumnSelectable,\n isShowFocusRing,\n isSticky: stickyColumn === 'enabled',\n isStickyStartEdge,\n isStickyEndEdge,\n isRtl,\n horizontalAlignment,\n verticalAlignment,\n isHighContrast,\n padding\n })\n );\n\n const footerCellRendererProps = {\n key: columnKey,\n footerText: footerText,\n isTabbable: isTabbableMode\n };\n\n return (\n <td\n aria-colindex={columnIndex + 1}\n {...(isSelected\n ? { 'aria-selected': true }\n : isColumnSelectable\n ? { 'aria-selected': false }\n : {})}\n class={cellClasses}\n style={`bottom:${stickyBottomOffset}px;`}\n tabIndex={hasTabIndex ? 0 : -1}\n role={'gridcell'}\n data-oj-cell-type={'footer'}\n data-oj-column-key={columnKey}\n data-oj-table-focusable={tableId}\n data-oj-table-footer-cell={tableId}\n data-oj-table-tooltip={supportsDefaultTooltip ? 'enabled' : undefined}\n {...(supportsDefaultTooltip && browser === 'safari' ? preventBrowserTooltipProps : {})}\n {...(isColumnSelectable && interactionProps)}>\n {renderer(footerCellRendererProps)}\n </td>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Keys, containsKey } from '../utils/UNSAFE_keys';\nimport { TableColumn } from './Table';\nimport { TableFooterCell } from './TableFooterCell';\nimport { backgroundStyles, tableFooterRowStyles } from './themes/Table.css';\n\n/**\n * Props for the TableFooter Component\n */\nexport type TableFooterProps<K, D, C> = {\n tableId: string;\n isRendered: boolean;\n columnsArray: TableColumn<K, D, C>[];\n hasVerticalGridlines: boolean;\n activeKey?: C;\n isTabbableMode: boolean;\n isShowFocusRing: boolean;\n isRtl: boolean;\n isHighContrast: boolean;\n selectedKeys?: Keys<C>;\n isColumnSelectionEnabled: boolean;\n stickyBottomOffset?: number;\n startStickyEdge?: number;\n endStickyEdge?: number;\n dataRowCount: number;\n disabledInteractionKeys?: ('enter' | 'space')[];\n};\n\n/**\n * The internal component used to render a footer region in Table.\n */\nexport function TableFooter<K, D, C>({\n tableId,\n isRendered,\n columnsArray,\n hasVerticalGridlines,\n activeKey,\n isTabbableMode,\n isShowFocusRing,\n selectedKeys,\n isColumnSelectionEnabled,\n disabledInteractionKeys,\n stickyBottomOffset,\n startStickyEdge,\n endStickyEdge,\n dataRowCount,\n isRtl,\n isHighContrast\n}: TableFooterProps<K, D, C>) {\n const rowClasses = classNames([tableFooterRowStyles.base]);\n\n let isPreviousColumnSelected = false;\n return isRendered ? (\n <tfoot class={backgroundStyles.inherit} role={'presentation'}>\n <tr\n aria-rowindex={Math.max(dataRowCount, 1) + 2}\n class={rowClasses}\n role={'row'}\n data-oj-table-footer-row={tableId}>\n {columnsArray.map((column: TableColumn<K, D, C>, columnIndex: number) => {\n const columnKey = column.key;\n const isSelected = containsKey(selectedKeys, columnKey);\n const isActive = columnKey === activeKey;\n const hasTabIndex = isActive && !isTabbableMode;\n const footerCellProps = {\n tableId: tableId,\n columnKey: columnKey,\n columnIndex: columnIndex,\n isFinalColumnIndex: columnIndex === columnsArray.length - 1,\n hasVerticalGridlines: hasVerticalGridlines,\n stickyBottomOffset: stickyBottomOffset,\n stickyColumn: column.value.sticky,\n isColumnSelectionEnabled: isColumnSelectionEnabled,\n isSelected: isSelected,\n isPreviousColumnSelected: isPreviousColumnSelected,\n isColumnSelectable: isColumnSelectionEnabled && column.value.selectable !== 'disabled',\n isShowFocusRing: isShowFocusRing && isActive,\n hasTabIndex: hasTabIndex,\n isTabbableMode: isTabbableMode,\n footerText: column.value.footerText,\n renderer: column.value.footerRenderer,\n disabledInteractionKeys: disabledInteractionKeys,\n isStickyStartEdge: columnIndex === startStickyEdge,\n isStickyEndEdge: columnIndex === endStickyEdge,\n isRtl: isRtl,\n isHighContrast: isHighContrast,\n padding: column.value.footerPadding,\n tooltip: column.value.headerTooltip,\n horizontalAlignment:\n column.value.footerAlignment?.horizontal != null\n ? column.value.footerAlignment.horizontal\n : column.value.horizontalAlignment,\n verticalAlignment: column.value.footerAlignment?.vertical\n };\n isPreviousColumnSelected = isSelected;\n return <TableFooterCell {...footerCellProps} />;\n })}\n </tr>\n </tfoot>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { tableDragIndicatorStyles } from './themes/Table.css';\n\n/**\n * Props for the TableDragIndicator Component\n */\nexport type TableDragIndicatorProps = {\n isRtl: boolean;\n position?: number;\n height?: number;\n};\n\n/**\n * The internal component used to render a drag indicator line in the Table.\n */\nexport function TableDragIndicator({ position, isRtl, height }: TableDragIndicatorProps) {\n const tableDragIndicatorClasses = classNames([tableDragIndicatorStyles.base]);\n\n const getDragIndicatorStyle = () => {\n const heightString = height != null ? `height:${height}px;` : '';\n if (position != null) {\n return isRtl\n ? `right:${position}px;cursor:col-resize;${heightString}`\n : `left:${position}px;cursor:col-resize;${heightString}`;\n }\n return `display:none;`;\n };\n\n return <div class={tableDragIndicatorClasses} style={getDragIndicatorStyle()} />;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentProps } from 'preact';\nimport { Menu } from '../UNSAFE_Menu';\nimport { CellContext, TableContextMenuConfig } from '../UNSAFE_TableView';\n\nexport type Props<K extends string | number, D, C extends string> = {\n contextMenuConfig: TableContextMenuConfig<K, D, C>;\n contextMenuContext: CellContext<K, D, C>;\n} & Omit<ComponentProps<typeof Menu>, 'children'>;\n\n/**\n * The internal component used to render a custom context menu on the Table\n */\nexport function TableContextMenu<K extends string | number, D, C extends string>({\n contextMenuConfig,\n contextMenuContext,\n ...menuProps\n}: Props<K, D, C>) {\n const accessibleLabel = contextMenuConfig.accessibleLabel;\n return (\n <Menu\n {...menuProps}\n {...(accessibleLabel != null && {\n 'aria-label': accessibleLabel\n })}>\n {menuProps.isOpen && contextMenuConfig.itemsRenderer(contextMenuContext)}\n </Menu>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useMemo, useRef } from 'preact/hooks';\nimport { TableData } from '../Table';\n\ntype UseDataManagerProps<K, D> = {\n data?: D[];\n getRowKey: (data: D) => K;\n hasMore: boolean;\n onLoadMore: () => void;\n};\n\n/**\n * Hook that manages data on the Preact Table\n */\nexport function useDataManager<K extends string | number, D>({\n data,\n getRowKey,\n hasMore,\n onLoadMore\n}: UseDataManagerProps<K, D>) {\n const tableData = useMemo(() => {\n const newDataArray =\n data != null\n ? data.map((d: D) => {\n const key = getRowKey(d);\n return { data: d, metadata: key };\n })\n : [];\n return newDataArray as Array<TableData<K, D>>;\n }, [data, getRowKey]);\n\n // debounce loadMore calls to prevent state changes from triggering multiple calls\n const loadMoreDataRef = useRef<TableData<K, D>[]>();\n if (!hasMore) {\n // clear loadMoreData cache once more data is not available\n loadMoreDataRef.current = undefined;\n }\n const onTableLoadMore = useCallback(() => {\n if (tableData === loadMoreDataRef.current) {\n return;\n }\n loadMoreDataRef.current = tableData;\n return onLoadMore();\n }, [tableData, onLoadMore]);\n\n return { tableData, onTableLoadMore };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { Dispatch, MutableRef } from 'preact/hooks';\nimport { scrollerStyles } from '../themes/Table.css';\nimport { ScrollDetail, SizingInfo, TableColumn, ViewportInfo } from '../Table';\nimport {\n ColumnWidths,\n TableHorizontalScrollPosition,\n TableVerticalScrollPosition,\n TableViewportConfig\n} from '../../UNSAFE_TableView';\nimport { findElementByKey } from '../../utils/PRIVATE_collectionUtils';\nimport {\n getColumnKey,\n getElementFromCell,\n getRowKey,\n getRowKeyForRowIndex,\n getScrollerBottomOffset,\n getScrollerTopOffset\n} from './TableDomUtils';\n\n/**\n * A helper function to make sure specified elem is visible in the specified container\n */\nfunction _scrollColumnIntoView<K, D, C>(\n columnElement: HTMLElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n columnsArray: TableColumn<K, D, C>[],\n scrollbarWidth: number,\n isRtl: boolean,\n fullColumnWidths?: number[],\n location?: 'inView' | 'start' | 'end'\n) {\n const columnKey = getColumnKey(columnElement);\n\n let columnIndex;\n for (let i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].key === columnKey) {\n columnIndex = i;\n break;\n }\n }\n if (columnIndex != null && fullColumnWidths != null) {\n let startOffset = 0;\n let endOffset = 0;\n\n if (viewportInfo.isExternalScroller) {\n const scrollerOffsetStart = viewportInfo.viewportConfig.scrollerOffsetStart;\n if (scrollerOffsetStart != null) {\n startOffset = scrollerOffsetStart;\n }\n const scrollerOffsetEnd = viewportInfo.viewportConfig.scrollerOffsetEnd;\n if (scrollerOffsetEnd != null) {\n endOffset = scrollerOffsetEnd;\n }\n }\n\n const stickyColumns = getStickyColumnIndicies(columnsArray);\n for (let i = 0; i < stickyColumns.length; i++) {\n const stickyIndex = stickyColumns[i];\n if (stickyIndex < columnIndex) {\n startOffset += fullColumnWidths[stickyIndex];\n } else {\n break;\n }\n }\n for (let i = stickyColumns.length - 1; i > -1; i--) {\n const stickyIndex = stickyColumns[i];\n if (stickyIndex > columnIndex) {\n endOffset += fullColumnWidths[stickyIndex];\n } else {\n break;\n }\n }\n\n const horizontalOverflowDiff = _getHorizontalOverflowDiff(\n columnElement,\n scrollerElement,\n startOffset,\n endOffset,\n scrollbarWidth,\n isRtl\n );\n const leftOverflowDiff = horizontalOverflowDiff.left;\n const hasLeftOverflow = leftOverflowDiff >= 0;\n const rightOverflowDiff = horizontalOverflowDiff.right;\n const hasRightOverflow = rightOverflowDiff >= 0;\n\n // don't adjust scroll position if row has overflow in both directions\n if (hasLeftOverflow && hasRightOverflow) {\n return;\n }\n\n if (location == null || location === 'inView') {\n // if column fits fully in viewport, scroll overflow side into view\n // otherwise, scroll the shortest amount to fill viewport with column\n if (hasLeftOverflow) {\n if (Math.abs(rightOverflowDiff) > Math.abs(leftOverflowDiff)) {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft - leftOverflowDiff,\n false\n );\n } else {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft + rightOverflowDiff,\n true\n );\n }\n } else if (hasRightOverflow) {\n if (Math.abs(leftOverflowDiff) > Math.abs(rightOverflowDiff)) {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft + rightOverflowDiff,\n true\n );\n } else {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft - leftOverflowDiff,\n false\n );\n }\n }\n } else if (location === 'start') {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft - leftOverflowDiff,\n false\n );\n } else {\n scrollerElement.scrollLeft = _roundScrollValue(\n scrollerElement.scrollLeft + rightOverflowDiff,\n true\n );\n }\n }\n}\n\n/**\n * A helper function to make sure specified elem is visible in the specified container\n */\nconst _scrollRowIntoView = (\n rootElement: HTMLDivElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n rowElement: HTMLElement,\n scrollerElement: HTMLElement,\n scrollbarHeight: number,\n location?: 'inView' | 'top' | 'bottom'\n) => {\n let topOffset = 0;\n let bottomOffset = 0;\n\n if (viewportInfo.isExternalScroller) {\n const scrollerOffsetTop = viewportInfo.viewportConfig.scrollerOffsetTop;\n if (scrollerOffsetTop != null) {\n topOffset = scrollerOffsetTop;\n }\n const scrollerOffsetBottom = viewportInfo.viewportConfig.scrollerOffsetBottom;\n if (scrollerOffsetBottom != null) {\n bottomOffset = scrollerOffsetBottom;\n }\n }\n topOffset += getScrollerTopOffset(rootElement, tableId);\n bottomOffset += getScrollerBottomOffset(rootElement, tableId);\n\n const verticalOverflowDiff = _getVerticalOverflowDiff(\n rowElement,\n scrollerElement,\n topOffset,\n bottomOffset,\n scrollbarHeight\n );\n const topOverflowDiff = verticalOverflowDiff.top;\n const hasTopOverflow = topOverflowDiff >= 0;\n const bottomOverflowDiff = verticalOverflowDiff.bottom;\n const hasBottomOverflow = bottomOverflowDiff >= 0;\n\n // don't adjust scroll position if row has overflow in both directions\n if (hasTopOverflow && hasBottomOverflow) {\n return;\n }\n if (location == null || location === 'inView') {\n // if row fits fully in viewport, scroll overflow side into view\n // otherwise, scroll the shortest amount to fill viewport with row\n if (hasBottomOverflow) {\n if (Math.abs(topOverflowDiff) > Math.abs(bottomOverflowDiff)) {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop + bottomOverflowDiff,\n true\n );\n } else {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop - topOverflowDiff,\n false\n );\n }\n } else if (hasTopOverflow) {\n if (Math.abs(bottomOverflowDiff) > Math.abs(topOverflowDiff)) {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop - topOverflowDiff,\n false\n );\n } else {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop + bottomOverflowDiff,\n true\n );\n }\n }\n } else if (location === 'top') {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop - topOverflowDiff,\n false\n );\n } else {\n scrollerElement.scrollTop = _roundScrollValue(\n scrollerElement.scrollTop + bottomOverflowDiff,\n true\n );\n }\n};\n\n/**\n * Helper method to round a desired scrollTop or scrollLeft value to the nearest valid value\n * depending on the client browser.\n */\nconst _roundScrollValue = (value: number, isOver: boolean) => {\n // use Math.floor() and Math.ceil() to ensure we round to nearest containing valid\n // pixel value in either direction as valid scrollTop values are only integers\n return isOver ? Math.ceil(value) : Math.floor(value);\n};\n\n/**\n * A helper to get the horizontal overflow diff of the given element\n */\nconst _getHorizontalOverflowDiff = (\n element: HTMLElement,\n scrollerElement: HTMLElement,\n startOffset: number,\n endOffset: number,\n scrollbarWidth: number,\n isRtl: boolean\n) => {\n const elementRect = element.getBoundingClientRect();\n const scrollerRect = scrollerElement.getBoundingClientRect();\n\n if (isRtl) {\n return {\n left: scrollerRect.left - elementRect.left + endOffset + scrollbarWidth,\n right: elementRect.right - scrollerRect.right + startOffset\n };\n } else {\n return {\n left: scrollerRect.left - elementRect.left + startOffset,\n right: elementRect.right - scrollerRect.right + endOffset + scrollbarWidth\n };\n }\n};\n\n/**\n * A helper to get the vertical overflow diff of the given element\n */\nexport const _getVerticalOverflowDiff = (\n element: HTMLElement,\n scrollerElement: HTMLElement,\n topOffset: number,\n bottomOffset: number,\n scrollbarHeight: number\n) => {\n const elementRect = element.getBoundingClientRect();\n const scrollerRect = scrollerElement.getBoundingClientRect();\n\n return {\n top: scrollerRect.top - elementRect.top + topOffset,\n bottom: elementRect.bottom - scrollerRect.bottom + bottomOffset + scrollbarHeight\n };\n};\n\n/**\n * Helper to set the horizontal scroll position on the Table.\n */\nexport function setHorizontalScrollPosition<K, D, C>(\n scrollerElement: HTMLElement,\n columnsArray: TableColumn<K, D, C>[],\n fullColumnWidths: number[],\n isRtl: boolean,\n horizontalScrollPosition?: TableHorizontalScrollPosition<C>\n) {\n const x = _getScrollLeftFromScrollPosition(\n scrollerElement,\n columnsArray,\n fullColumnWidths,\n horizontalScrollPosition\n );\n scrollerElement.scrollLeft = x != null ? (isRtl ? -x : x) : 0;\n}\n\n/**\n * Helper to set the vertical scroll position on the Table.\n */\nexport function setVerticalScrollPosition<K>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n verticalScrollPosition?: TableVerticalScrollPosition<K>\n) {\n const y = _getScrollTopFromScrollPosition(\n rootElement,\n scrollerElement,\n tableId,\n verticalScrollPosition\n );\n scrollerElement.scrollTop = y != null ? y : 0;\n}\n\n/**\n * Helper to determine the 'x' value of a given scroll position.\n */\nfunction _getScrollLeftFromScrollPosition<K, D, C>(\n scrollerElement: HTMLElement,\n columnsArray: TableColumn<K, D, C>[],\n fullColumnWidths: number[],\n scrollPosition?: TableHorizontalScrollPosition<C>\n) {\n if (scrollPosition != null) {\n let columnKey;\n let useColumn = false;\n if (scrollPosition.columnKey != null) {\n // columnKey takes precedence over everything else\n useColumn = true;\n columnKey = scrollPosition.columnKey;\n } else if (scrollPosition.offsetX != null && scrollPosition.x == null) {\n // offsetX can be used on its own if it is the only horizontal aspect provided\n useColumn = true;\n const currentHorizontalScrollPosition = getHorizontalScrollPosition(\n scrollerElement,\n columnsArray,\n fullColumnWidths\n );\n columnKey = currentHorizontalScrollPosition.columnKey;\n }\n if (useColumn) {\n if (columnKey != null) {\n let x = 0;\n for (let i = 0; i < fullColumnWidths.length; i++) {\n if (columnsArray[i].key === columnKey) {\n return x + (scrollPosition.offsetX != null ? scrollPosition.offsetX : 0);\n }\n if (columnsArray[i].value.sticky !== 'enabled') {\n x += fullColumnWidths[i];\n }\n }\n }\n } else if (scrollPosition.x != null) {\n return scrollPosition.x;\n }\n }\n // either nothing was provided, or what was provided was invalid\n return undefined;\n}\n\n/**\n * Helper to determine the 'y' value of a given scroll position.\n */\nfunction _getScrollTopFromScrollPosition<K>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n scrollPosition?: TableVerticalScrollPosition<K>\n) {\n if (scrollPosition != null) {\n let rowKey;\n let useRow = false;\n if (scrollPosition.rowKey != null) {\n // rowKey takes precedence over everything else\n useRow = true;\n rowKey = scrollPosition.rowKey;\n } else if (scrollPosition.offsetY != null && scrollPosition.y == null) {\n // offsetY can be used on its own if it is the only vertical aspect provided\n useRow = true;\n rowKey = getVerticalScrollPosition(rootElement, scrollerElement, tableId).rowKey;\n }\n if (useRow) {\n if (rowKey != null) {\n let y = 0;\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n for (let i = 0; i < rowElements.length; i++) {\n if (rowKey === getRowKey(rowElements[i] as HTMLElement)) {\n return y + (scrollPosition.offsetY != null ? scrollPosition.offsetY : 0);\n }\n y += rowElements[i].getBoundingClientRect().height;\n }\n }\n } else if (scrollPosition.y != null) {\n return scrollPosition.y;\n }\n }\n // either nothing was provided, or what was provided was invalid\n return undefined;\n}\n\n/**\n * Helper to get the logical scroll position for the given scrollLeft value. If no scrollLeft value is given,\n * it will use the current scrollLeft value of the Table.\n */\nexport function getHorizontalScrollPosition<K, D, C>(\n scrollerElement: HTMLElement,\n columnsArray: TableColumn<K, D, C>[],\n fullColumnWidths: number[],\n newScrollLeft?: number\n) {\n // ensure scroll position x value is initialized\n const scrollLeft = Math.abs(newScrollLeft == null ? scrollerElement.scrollLeft : newScrollLeft);\n\n const scrollPosition: TableHorizontalScrollPosition<C> = {\n x: scrollLeft,\n columnKey: undefined,\n offsetX: undefined\n };\n\n let columnEnd = 0;\n if (columnsArray.length > 0) {\n if (scrollLeft === 0) {\n scrollPosition.columnKey = columnsArray[0].key;\n scrollPosition.offsetX = 0;\n return scrollPosition;\n }\n }\n for (let i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].value.sticky !== 'enabled') {\n columnEnd += fullColumnWidths[i];\n }\n if (scrollLeft < columnEnd) {\n scrollPosition.columnKey = columnsArray[i].key;\n scrollPosition.offsetX = fullColumnWidths[i] + scrollLeft - columnEnd;\n break;\n }\n }\n return scrollPosition;\n}\n\n/**\n * Helper to get the logical scroll position for the given scrollTop value. If no scrollTop value is given,\n * it will use the current scrollTop value of the Table.\n */\nexport function getVerticalScrollPosition<K>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n newScrollTop?: number\n) {\n // ensure scroll position y value is initialized\n const scrollTop = Math.abs(newScrollTop == null ? scrollerElement.scrollTop : newScrollTop);\n\n const scrollPosition: TableVerticalScrollPosition<K> = {\n y: scrollTop,\n rowKey: undefined,\n offsetY: undefined\n };\n\n let rowBottom = 0;\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n if (rowElements.length > 0) {\n if (scrollTop === 0) {\n scrollPosition.rowKey = getRowKeyForRowIndex<K>(rootElement, tableId, 0)!;\n scrollPosition.offsetY = 0;\n return scrollPosition;\n }\n }\n for (let i = 0; i < rowElements.length; i++) {\n const rowHeight = rowElements[i].getBoundingClientRect().height;\n rowBottom += rowHeight;\n if (scrollTop < rowBottom) {\n scrollPosition.rowKey = getRowKeyForRowIndex<K>(rootElement, tableId, i)!;\n scrollPosition.offsetY = rowHeight + scrollTop - rowBottom;\n break;\n }\n }\n return scrollPosition;\n}\n\nexport function applyScrollDetail<K extends string | number, D, C>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfo: SizingInfo,\n scrollDetail: ScrollDetail<K, C>,\n isRtl: boolean,\n fullColumnWidths?: number[]\n) {\n if (scrollDetail.cell.type === 'data') {\n const rowElement = findElementByKey(\n rootElement,\n scrollDetail.cell.rowKey,\n `[data-oj-table-data-row='${tableId}']`\n ) as HTMLElement;\n if (rowElement != null && scrollDetail.locationY != null && !sizingInfo.isInitialRender) {\n const scrollbarHeight = sizingInfo.boxHeight - sizingInfo.contentHeight;\n _scrollRowIntoView(\n rootElement,\n viewportInfo,\n tableId,\n rowElement,\n scrollerElement,\n scrollbarHeight,\n scrollDetail.locationY\n );\n }\n }\n if (\n scrollDetail.cell.type === 'data' ||\n scrollDetail.cell.type === 'header' ||\n scrollDetail.cell.type === 'footer'\n ) {\n const cellElement = getElementFromCell(rootElement, tableId, scrollDetail.cell);\n if (cellElement != null && scrollDetail.locationX != null && !sizingInfo.isInitialRender) {\n const scrollbarWidth = sizingInfo.boxWidth - sizingInfo.contentWidth;\n _scrollColumnIntoView(\n cellElement,\n scrollerElement,\n viewportInfo,\n columnsArray,\n scrollbarWidth,\n isRtl,\n fullColumnWidths,\n scrollDetail.locationX\n );\n }\n }\n if (scrollDetail.cell.type === 'loadMore' || scrollDetail.cell.type === 'loading') {\n const cellElement = getElementFromCell(rootElement, tableId, scrollDetail.cell);\n if (cellElement != null && scrollDetail.locationY != null && !sizingInfo.isInitialRender) {\n const scrollbarHeight = sizingInfo.boxHeight - sizingInfo.contentHeight;\n _scrollRowIntoView(\n rootElement,\n viewportInfo,\n tableId,\n cellElement,\n scrollerElement,\n scrollbarHeight,\n scrollDetail.cell.type === 'loading' && scrollDetail.locationY === 'inView'\n ? 'top'\n : scrollDetail.locationY\n );\n }\n }\n}\n\n/**\n * Helper function to update the 'left' and 'right' values of all sticky columns to correspond\n * to the given sizing information.\n */\nexport function updateStickyColumns<K, D, C extends string>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n isRtl: boolean,\n columnsArray: TableColumn<K, D, C>[],\n appliedColumnWidths: ColumnWidths<C>,\n stickyEdgesState: { start?: number; end?: number },\n setStickyEdgesState: (stickyEdgesState: { start?: number; end?: number }) => void,\n isHorizontalScroll: boolean\n) {\n let stickyIndex;\n let stickyStartOffset = 0;\n let stickyEndOffset = 0;\n if (viewportInfo.isExternalScroller) {\n const scrollerOffsetStart = viewportInfo.viewportConfig.scrollerOffsetStart;\n if (scrollerOffsetStart != null) {\n stickyStartOffset = scrollerOffsetStart;\n }\n const scrollerOffsetEnd = viewportInfo.viewportConfig.scrollerOffsetEnd;\n if (scrollerOffsetEnd != null) {\n stickyEndOffset = scrollerOffsetEnd;\n }\n }\n\n const fullColumnWidths = [];\n for (let i = 0; i < columnsArray.length; i++) {\n const width = appliedColumnWidths[columnsArray[i].key];\n fullColumnWidths.push(width);\n }\n\n const stickyIndicies = getStickyColumnIndicies(columnsArray);\n for (let i = 0; i < stickyIndicies.length; i++) {\n stickyIndex = stickyIndicies[i];\n _applyStickyColumnOffset(rootElement, tableId, isRtl, stickyIndex, stickyStartOffset, true);\n stickyStartOffset += fullColumnWidths[stickyIndex];\n }\n for (let i = stickyIndicies.length - 1; i > -1; i--) {\n stickyIndex = stickyIndicies[i];\n _applyStickyColumnOffset(rootElement, tableId, isRtl, stickyIndex, stickyEndOffset, false);\n stickyEndOffset += fullColumnWidths[stickyIndex];\n }\n\n // only apply sticky edge styling if horizontal overflow is present\n if (isHorizontalScroll) {\n updateStickyEdges(\n scrollerElement,\n columnsArray,\n fullColumnWidths,\n stickyEdgesState,\n setStickyEdgesState\n );\n } else if (stickyEdgesState.start != null || stickyEdgesState.end != null) {\n setStickyEdgesState({});\n }\n}\n\n/**\n * Helper function to get the sticky column indicies.\n */\nexport const getStickyColumnIndicies = <K, D, C>(columnsArray: TableColumn<K, D, C>[]) => {\n const stickyColumns = [];\n for (let i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].value.sticky === 'enabled') {\n stickyColumns.push(i);\n }\n }\n return stickyColumns;\n};\n\n/**\n * Helper function to update the 'left' and 'right' values of a specific column.\n */\nconst _applyStickyColumnOffset = (\n rootElement: HTMLDivElement,\n tableId: string,\n isRtl: boolean,\n columnIndex: number,\n stickyOffset: number,\n isStart: boolean\n) => {\n const styleProperty = (isStart && !isRtl) || (!isStart && isRtl) ? 'left' : 'right';\n const styleValue = `${stickyOffset}px`;\n\n const headerElements = rootElement.querySelectorAll(`[data-oj-table-header-cell='${tableId}']`);\n const headerElement = headerElements[columnIndex] as HTMLElement;\n headerElement.style[styleProperty] = styleValue;\n\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n for (let j = 0; j < rowElements.length; j++) {\n const rowElement = rowElements[j] as HTMLElement;\n const cellElements = rowElement.querySelectorAll(`[data-oj-table-data-cell='${tableId}']`);\n const cellElement = cellElements[columnIndex] as HTMLElement;\n cellElement.style[styleProperty] = styleValue;\n }\n\n const footerElements = rootElement.querySelectorAll(`[data-oj-table-footer-cell='${tableId}']`);\n if (footerElements.length > 0) {\n const footerElement = footerElements[columnIndex] as HTMLElement;\n footerElement.style[styleProperty] = styleValue;\n }\n};\n\n/**\n * Helper function to update the sticky edges based on the given scrollLeft value.\n */\nexport function updateStickyEdges<K, D, C>(\n scrollerElement: HTMLElement,\n columnsArray: TableColumn<K, D, C>[],\n fullColumnWidths: number[],\n stickyEdgesState: { start?: number; end?: number },\n setStickyEdgesState: (stickyEdgesState: { start?: number; end?: number }) => void,\n scrollLeft?: number\n) {\n if (columnsArray.length > 0) {\n let i;\n let currentScrollIndex;\n const newScrollPosition = getHorizontalScrollPosition(\n scrollerElement,\n columnsArray,\n fullColumnWidths,\n scrollLeft\n );\n for (i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].key === newScrollPosition.columnKey) {\n currentScrollIndex = i;\n break;\n }\n }\n\n let startIndex;\n const stickyIndicies = getStickyColumnIndicies(columnsArray);\n // browser zoom levels cause rounding issues where the start scroll\n // position may never be reached, but it should always be within 1\n if (newScrollPosition.x! >= 1) {\n for (i = 0; i < stickyIndicies.length; i++) {\n const currentIndex = stickyIndicies[i];\n if (currentIndex < currentScrollIndex!) {\n startIndex = currentIndex;\n } else {\n break;\n }\n }\n }\n\n let endIndex;\n let currentWidth = 0;\n const maxScrollPos = scrollerElement.scrollWidth - scrollerElement.clientWidth;\n const endOverflow = maxScrollPos - newScrollPosition.x!;\n // browser zoom levels cause rounding issues where the max scroll\n // position may never be reached, but it should always be within 1\n if (endOverflow >= 1) {\n for (let i = columnsArray.length - 1; i > -1; i--) {\n if (stickyIndicies.indexOf(i) !== -1) {\n endIndex = i;\n } else {\n currentWidth += fullColumnWidths[i];\n if (currentWidth > endOverflow) {\n break;\n }\n }\n }\n }\n if (stickyEdgesState.start != startIndex || stickyEdgesState.end != endIndex) {\n setStickyEdgesState({ start: startIndex, end: endIndex });\n }\n }\n}\n\n/**\n * Helper function to hide a currently shown tooltip once the anchor cell scrolls out of view.\n */\nexport function hideOutOfViewTooltip<K, C, D>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n sizingInfo: SizingInfo,\n columnsArray: TableColumn<K, D, C>[],\n fullColumnWidths: number[],\n tooltipAnchorRef: MutableRef<HTMLElement | undefined>,\n hideTooltip: (isImmediate?: boolean) => void,\n isRtl: boolean\n) {\n if (tooltipAnchorRef.current != null) {\n const verticalOverflowDiff = _getVerticalOverflowDiff(\n tooltipAnchorRef.current,\n scrollerElement,\n getScrollerTopOffset(rootElement, tableId),\n getScrollerBottomOffset(rootElement, tableId),\n sizingInfo.boxHeight! - sizingInfo.contentHeight!\n );\n const topOverflowDiff = verticalOverflowDiff.top;\n const hasTopOverflow = topOverflowDiff >= 0;\n const bottomOverflowDiff = verticalOverflowDiff.bottom;\n const hasBottomOverflow = bottomOverflowDiff >= 0;\n\n if (\n (hasTopOverflow && Math.abs(topOverflowDiff) > tooltipAnchorRef.current.offsetHeight) ||\n (hasBottomOverflow && Math.abs(bottomOverflowDiff) > tooltipAnchorRef.current.offsetHeight)\n ) {\n hideTooltip(true);\n return;\n }\n\n let startOffset = 0;\n let endOffset = 0;\n\n const stickyColumns = getStickyColumnIndicies(columnsArray);\n for (let i = 0; i < stickyColumns.length; i++) {\n const stickyIndex = stickyColumns[i];\n startOffset += fullColumnWidths[stickyIndex];\n }\n for (let i = stickyColumns.length - 1; i > -1; i--) {\n const stickyIndex = stickyColumns[i];\n endOffset += fullColumnWidths[stickyIndex];\n }\n const horizontalOverflowDiff = _getHorizontalOverflowDiff(\n tooltipAnchorRef.current,\n scrollerElement,\n startOffset,\n endOffset,\n sizingInfo.boxWidth! - sizingInfo.contentWidth!,\n isRtl\n );\n const leftOverflowDiff = horizontalOverflowDiff.left;\n const hasLeftOverflow = leftOverflowDiff >= 0;\n const rightOverflowDiff = horizontalOverflowDiff.right;\n const hasRightOverflow = rightOverflowDiff >= 0;\n\n if (\n (hasLeftOverflow && Math.abs(leftOverflowDiff) > tooltipAnchorRef.current.offsetWidth) ||\n (hasRightOverflow && Math.abs(rightOverflowDiff) > tooltipAnchorRef.current.offsetWidth)\n ) {\n hideTooltip(true);\n }\n }\n}\n\n/**\n * Helper function to reset the scroll position of the scroller element\n */\nexport const resetVerticalScrollPosition = (scrollerElement: HTMLElement) => {\n scrollerElement.scrollTop = 0;\n};\n\n/**\n * Helper function to get the viewport config. TODO: this needs help for table still\n */\nexport const getViewportConfig = (\n scrollerRef: RefObject<HTMLElement>,\n config?: TableViewportConfig\n) => {\n return (\n config ?? {\n scroller: () => {\n return scrollerRef;\n }\n }\n );\n};\n\n/**\n * Helper function to update the scroller element's styling based on overflow status.\n */\nexport const applyOverflowStatus = (\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n contentWidth: number,\n availableWidth: number,\n contentHeight: number,\n availableHeight: number,\n scrollbarWidth: number,\n overflowRef: MutableRef<{ isHorizontal: boolean; isVertical: boolean }>,\n setHasVerticalUnderflow: Dispatch<boolean>\n) => {\n // check for at least 0.5px difference to account for browser rounding issues\n const hasHorizontalOverflow = contentWidth - availableWidth > 0.5;\n const hasVerticalOverflow = contentHeight - availableHeight > 0.5;\n if (hasHorizontalOverflow) {\n scrollerElement.classList.remove(scrollerStyles.noHorizontalScroll);\n scrollerElement.classList.add(scrollerStyles.horizontalScroll);\n } else {\n scrollerElement.classList.remove(scrollerStyles.horizontalScroll);\n scrollerElement.classList.add(scrollerStyles.noHorizontalScroll);\n }\n if (hasVerticalOverflow) {\n scrollerElement.classList.remove(scrollerStyles.noVerticalScroll);\n scrollerElement.classList.add(scrollerStyles.verticalScroll);\n scrollerElement.style.paddingInlineEnd = '';\n } else {\n scrollerElement.classList.remove(scrollerStyles.verticalScroll);\n scrollerElement.classList.add(scrollerStyles.noVerticalScroll);\n scrollerElement.style.paddingInlineEnd = `${scrollbarWidth}px`;\n }\n overflowRef.current.isHorizontal = hasHorizontalOverflow;\n overflowRef.current.isVertical = hasVerticalOverflow;\n applyUnderflowStatus(rootElement, tableId, setHasVerticalUnderflow);\n};\n\n/**\n * Helper function to update the undeflow status of the Table based on the spacer element sizing.\n */\nexport const applyUnderflowStatus = (\n rootElement: HTMLDivElement,\n tableId: string,\n setHasVerticalUnderflow: Dispatch<boolean>\n) => {\n const spacerRowElement = rootElement.querySelector(\n `[data-oj-table-spacer-row='${tableId}']`\n ) as HTMLElement;\n if (spacerRowElement != null) {\n setHasVerticalUnderflow(spacerRowElement.offsetHeight > 0);\n }\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { MutableRef } from 'preact/hooks';\nimport {\n ActiveCell,\n ActiveCellDetail,\n CurrencyStatus,\n SizingInfo,\n TableColumn,\n TableData,\n ViewportInfo\n} from '../Table';\nimport { getBoundaryColumnKey, getElementFromCell } from './TableDomUtils';\nimport { applyScrollDetail, resetVerticalScrollPosition } from '../utils/TableScrollUtils';\nimport { Cell, CellContext, CellOverride } from '../../UNSAFE_TableView';\n\n/**\n * Helper function to determine if a given active cell represents a 'transient' state.\n */\nexport function isTransientCell<K, C>(activeCell?: ActiveCell<K, C>) {\n return (\n activeCell != null &&\n (activeCell.type === 'loadMore' ||\n activeCell.type === 'loading' ||\n activeCell.type === 'pending')\n );\n}\n\n/**\n * Helper function to compare two given cell descriptors.\n */\nexport function cellComparator<K, C>(\n cell1?: ActiveCell<K, C> | Cell<K, C>,\n cell2?: ActiveCell<K, C> | Cell<K, C>\n) {\n if (cell1 == null) {\n return cell2 == null;\n }\n if (cell2 == null) {\n return false;\n }\n if (cell1.type === cell2.type && cell1.rowKey === cell2.rowKey) {\n // special case the transient 'loading' cell types as column keys are hints used for when a user\n // navigates back to another region using the keyboard - otherwise we'd go to the first column\n if (cell1.type === 'loading' || cell1.type === 'loadMore' || cell1.type === 'pending') {\n return true;\n }\n return cell1.columnKey === cell2.columnKey;\n }\n return false;\n}\n\nexport function getCellContextFromCell<K extends string | number, D, C extends string>(\n tableData: TableData<K, D>[],\n cell?: ActiveCell<K, C>\n) {\n if (cell?.type === 'data') {\n for (const rowData of tableData) {\n if (rowData.metadata === cell.rowKey) {\n return {\n rowData: rowData.data,\n rowKey: cell.rowKey,\n columnKey: cell.columnKey,\n type: 'data'\n } as CellContext<K, D, C>;\n }\n }\n } else if (cell?.type === 'header' || cell?.type === 'footer') {\n return {\n columnKey: cell.columnKey,\n type: cell.type\n } as CellContext<K, D, C>;\n }\n return undefined;\n}\n\n/**\n * Helper function to determine the resulting cell from a cell override.\n */\nfunction _getCellFromCellOverride<K, D, C>(\n tableData: TableData<K, D>[],\n columnsArray: TableColumn<K, D, C>[],\n cellOverride: CellOverride<K, C>,\n currentCell?: Cell<K, C>\n): Cell<K, C> | undefined {\n let cellType;\n let cellRowKey;\n let cellColumnKey;\n if (cellOverride.rowKey != null) {\n cellType = 'data';\n cellRowKey = cellOverride.rowKey;\n if (cellOverride.columnKey != null) {\n cellColumnKey = cellOverride.columnKey;\n } else if (currentCell?.columnKey != null) {\n cellColumnKey = currentCell.columnKey;\n } else {\n cellColumnKey = getBoundaryColumnKey<K, D, C>(columnsArray, true);\n }\n if (cellColumnKey == null) {\n return undefined;\n }\n } else if (cellOverride.columnKey != null) {\n cellColumnKey = cellOverride.columnKey;\n if (cellOverride.type != null) {\n cellType = cellOverride.type;\n } else if (currentCell?.type != null && currentCell.type !== 'noData') {\n cellType = currentCell.type;\n } else {\n cellType = 'header';\n }\n if (cellType === 'data') {\n if (currentCell?.rowKey != null) {\n cellRowKey = currentCell.rowKey;\n } else if (tableData.length > 0) {\n cellRowKey = tableData[0].metadata;\n }\n if (cellRowKey == null) {\n return undefined;\n }\n }\n } else if (cellOverride.type != null) {\n cellType = cellOverride.type;\n if (cellType !== 'noData') {\n if (currentCell?.columnKey != null) {\n cellColumnKey = currentCell.columnKey;\n } else {\n cellColumnKey = getBoundaryColumnKey<K, D, C>(columnsArray, true);\n }\n if (cellColumnKey == null) {\n return undefined;\n }\n if (cellType === 'data') {\n if (currentCell?.rowKey != null) {\n cellRowKey = currentCell.rowKey;\n } else if (tableData.length > 0) {\n cellRowKey = tableData[0].metadata;\n }\n if (cellRowKey == null) {\n return undefined;\n }\n }\n }\n } else {\n return undefined;\n }\n return { type: cellType, rowKey: cellRowKey, columnKey: cellColumnKey } as Cell<K, C>;\n}\n\n/**\n * Helper function to determine the resulting cell type from a cell override.\n */\nfunction _getCellTypeFromCellOverride<K, C>(\n cellOverride: CellOverride<K, C>,\n currentCell?: Cell<K, C>\n) {\n if (cellOverride.type != null) {\n return cellOverride.type;\n }\n if (cellOverride.rowKey != null) {\n return 'data';\n }\n // if no type or rowKey was given, a columnKey must have been given\n if (currentCell?.type != null && currentCell.type !== 'noData') {\n return currentCell.type;\n }\n return 'header';\n}\n\n/**\n * Helper function to apply a current cell override if necessary.\n */\nexport function applyCurrentCellOverride<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n tableData: TableData<K, D>[],\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n currencyStatusRef: MutableRef<CurrencyStatus<K, D, C>>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isExtendSelectionGesture?: boolean) => void,\n isEmbeddedSelect: boolean,\n isPendingLayout: boolean,\n isDataLoaded: boolean,\n isRtl: boolean,\n currentCellOverride?: CellOverride<K, C>,\n fullColumnWidths?: number[]\n) {\n // when embedded select, use most recent non-null current cell value as override base\n const currentCell = isEmbeddedSelect\n ? currencyStatusRef.current.previousEmbeddedSelectCurrentCell\n : currencyStatusRef.current.currentCell;\n // ensure any new currentCellOverride settings are applied if necessary\n if (\n currencyStatusRef.current.hasPendingCurrentCellOverride ||\n currencyStatusRef.current.currentCellOverride !== currentCellOverride\n ) {\n if (currentCellOverride != null) {\n // attempt to find the cell the override specifies\n const realizedCell = _getCellFromCellOverride<K, D, C>(\n tableData,\n columnsArray,\n currentCellOverride,\n currentCell\n );\n if (realizedCell != null) {\n // override cell was determined - apply the override immediately\n onActiveCellChanged({ value: realizedCell });\n currencyStatusRef.current.currentCellOverride = currentCellOverride;\n currencyStatusRef.current.hasPendingCurrentCellOverride = false;\n if (isEmbeddedSelect) {\n // scroll 'current-cell-override' vertically into view immediately for embedded select\n // otherwise, cell will be scrolled into view once the component or cell receives focus\n if (!isPendingLayout && getElementFromCell(rootElement, tableId, realizedCell) != null) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: realizedCell, locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n } else if (isPendingLayout || !isDataLoaded) {\n // corresponding element was not found - data is not ready for scrolling\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = true;\n } else {\n // corresponding element was not found - value was garbage\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n } else {\n // not in an embedded select, so no scrolling should be performed\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n } else if (!isDataLoaded) {\n // override cell could not be determined - data is still fetching\n currencyStatusRef.current.hasPendingCurrentCellOverride = true;\n } else {\n // override cell could not be determined - value was garbage\n currencyStatusRef.current.currentCellOverride = currentCellOverride;\n currencyStatusRef.current.hasPendingCurrentCellOverride = false;\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n } else {\n // override is set to clear the current cell\n onActiveCellChanged({ value: currentCellOverride });\n currencyStatusRef.current.currentCellOverride = currentCellOverride;\n currencyStatusRef.current.hasPendingCurrentCellOverride = false;\n if (isEmbeddedSelect) {\n // scroll back to the top for embedded select\n resetVerticalScrollPosition(scrollerElement);\n }\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n } else if (currencyStatusRef.current.hasPendingCurrentCellOverrideScroll) {\n // try and apply any pending scroll from a previous cell override at this time\n if (currencyStatusRef.current.currentCell != null) {\n if (\n !isPendingLayout &&\n getElementFromCell(rootElement, tableId, currencyStatusRef.current.currentCell) != null\n ) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: currencyStatusRef.current.currentCell, locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n } else if (!isPendingLayout && isDataLoaded) {\n // corresponding element was not found - value was garbage\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n } else {\n // there is no longer a current cell to try and scroll to\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n }\n }\n}\n\n/**\n * Helper to determine if the given render state includes the cell specified.\n */\nfunction _renderIncludesCell<K, D, C>(\n cell: ActiveCell<K, C>,\n columnsArray: TableColumn<K, D, C>[],\n tableData: TableData<K, D>[],\n hasMore: boolean,\n isPendingLayout: boolean,\n hasFooters: boolean\n) {\n // pending layout is special as other regions exist, but are not yet navigable\n if (isPendingLayout) {\n return cell.type === 'pending';\n }\n if (cell.type === 'header' || (hasFooters && cell.type === 'footer')) {\n for (let i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].key === cell.columnKey) {\n return true;\n }\n }\n } else if (tableData.length > 0) {\n if (cell.type === 'loadMore') {\n return hasMore;\n }\n if (cell.type === 'data') {\n let isColumnValid = false;\n for (let i = 0; i < columnsArray.length; i++) {\n if (columnsArray[i].key === cell.columnKey) {\n isColumnValid = true;\n break;\n }\n }\n if (isColumnValid) {\n for (let i = 0; i < tableData.length; i++) {\n if (tableData[i].metadata === cell.rowKey) {\n return true;\n }\n }\n }\n }\n } else {\n return (cell.type === 'loading' && hasMore) || (cell.type === 'noData' && !hasMore);\n }\n return false;\n}\n\n/**\n * Helper to get the cell that should currently be a tab stop for the given render state.\n */\nexport function determineActiveCell<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n currencyStatusRef: MutableRef<CurrencyStatus<K, D, C>>,\n tableData: TableData<K, D>[],\n hasMore: boolean,\n isPendingLayout: boolean,\n isEmbeddedSelect: boolean,\n hasFooters: boolean,\n currentCellOverride?: CellOverride<K, C>\n): ActiveCell<K, C> | undefined {\n if (isPendingLayout) {\n return { type: 'pending' };\n }\n // if no columns are specified, it is a special case 'noData' display\n const firstColumnKey = getBoundaryColumnKey<K, D, C>(columnsArray, true);\n if (firstColumnKey == null) {\n return { type: 'noData' };\n }\n // if nothing specifies where focus should go, use the first header cell\n const defaultFirstCell: ActiveCell<K, C> = {\n type: 'header',\n columnKey: firstColumnKey\n };\n\n // when embedded select, use most recent non-null current cell value as override base\n const currentCell = isEmbeddedSelect\n ? currencyStatusRef.current.previousEmbeddedSelectCurrentCell\n : currencyStatusRef.current.currentCell;\n if (\n currencyStatusRef.current.hasPendingCurrentCellOverride ||\n currencyStatusRef.current.currentCellOverride !== currentCellOverride\n ) {\n if (currentCellOverride != null) {\n // attempt to find the cell the override specifies\n const realizedCell = _getCellFromCellOverride<K, D, C>(\n tableData,\n columnsArray,\n currentCellOverride,\n currentCell\n );\n if (\n realizedCell != null &&\n _renderIncludesCell(\n realizedCell,\n columnsArray,\n tableData,\n hasMore,\n isPendingLayout,\n hasFooters\n )\n ) {\n return realizedCell;\n }\n // if here, the resulting cell from the override could not be determined or was not valid\n const overrideCellType = _getCellTypeFromCellOverride(currentCellOverride, currentCell);\n if (overrideCellType === 'data') {\n if (tableData.length === 0 && hasMore) {\n // pending 'data' override when 'loading' skeletons are shown\n return { type: 'loading', columnKey: currentCell?.columnKey as C };\n }\n } else if (overrideCellType === 'noData' && tableData.length === 0 && hasMore) {\n // pending 'noData' override when 'loading' skeletons are shown\n return { type: 'loading', columnKey: currentCell?.columnKey as C };\n }\n } else if (\n _renderIncludesCell(\n defaultFirstCell,\n columnsArray,\n tableData,\n hasMore,\n isPendingLayout,\n hasFooters\n )\n ) {\n return defaultFirstCell;\n } else {\n return undefined;\n }\n }\n\n // if here, there is no current cell override that can be applied during this render\n const activeCell = currencyStatusRef.current.activeCell;\n if (activeCell != null) {\n if (activeCell.type === 'loadMore') {\n const initialData = currencyStatusRef.current.loadMoreInitialData;\n // if loadMore skeletons are no longer shown, or the data has changed, shift to\n // the next row in the data set if possible - otherwise just the closest row\n if (tableData.length > 0 && tableData !== initialData) {\n const rowKey =\n initialData != null && tableData.length > initialData.length\n ? tableData[initialData.length].metadata\n : tableData[tableData.length - 1].metadata;\n const columnKey = currentCell?.columnKey != null ? currentCell.columnKey : firstColumnKey;\n const cell: ActiveCell<K, C> = { type: 'data', rowKey: rowKey, columnKey: columnKey };\n if (\n _renderIncludesCell(cell, columnsArray, tableData, hasMore, isPendingLayout, hasFooters)\n ) {\n return cell;\n }\n } else if (tableData.length === 0) {\n if (hasMore) {\n return { type: 'loading', columnKey: currentCell?.columnKey as C };\n } else {\n return { type: 'noData' };\n }\n }\n }\n if (\n _renderIncludesCell(activeCell, columnsArray, tableData, hasMore, isPendingLayout, hasFooters)\n ) {\n return activeCell;\n } else if (activeCell.type === 'loading') {\n if (currentCell != null && (currentCell.type === 'data' || currentCell.type === 'noData')) {\n // if the current cell is already set to 'data' or 'noData', and is now available, return it\n if (\n _renderIncludesCell(\n currentCell,\n columnsArray,\n tableData,\n hasMore,\n isPendingLayout,\n hasFooters\n )\n ) {\n return currentCell;\n }\n }\n // otherwise, find the first row if available, and try and maintain the columnKey\n if (tableData.length > 0) {\n const rowKey = tableData[0].metadata;\n const columnKey = currentCell?.columnKey != null ? currentCell.columnKey : firstColumnKey;\n const cell: ActiveCell<K, C> = { type: 'data', rowKey: rowKey, columnKey: columnKey };\n if (\n _renderIncludesCell(cell, columnsArray, tableData, hasMore, isPendingLayout, hasFooters)\n ) {\n return cell;\n }\n } else {\n return { type: 'noData' };\n }\n }\n }\n\n // if here, there is no active cell, or the active cell is no longer valid\n if (currentCell != null) {\n if (\n _renderIncludesCell(\n currentCell,\n columnsArray,\n tableData,\n hasMore,\n isPendingLayout,\n hasFooters\n )\n ) {\n return currentCell;\n }\n if (currentCell.type === 'data') {\n if (tableData.length === 0 && hasMore) {\n // pending 'data' override when 'loading' skeletons are shown\n return { type: 'loading', columnKey: currentCell.columnKey };\n }\n } else if (currentCell.type === 'noData' && tableData.length === 0 && hasMore) {\n // pending 'noData' override when 'loading' skeletons are shown\n return { type: 'loading', columnKey: firstColumnKey };\n }\n }\n if (\n _renderIncludesCell(\n defaultFirstCell,\n columnsArray,\n tableData,\n hasMore,\n isPendingLayout,\n hasFooters\n )\n ) {\n return defaultFirstCell;\n }\n return undefined;\n}\n","import { ComponentProps } from 'preact';\nimport { useCallback, useState, useRef } from 'preact/hooks';\nimport { Menu } from '../../UNSAFE_Menu';\nimport { CellContext, TableContextMenuConfig } from '../../UNSAFE_TableView';\nimport { useContextMenuGesture } from '../../hooks/UNSAFE_useContextMenuGesture';\nimport { ActiveCell, TableData } from '../Table';\nimport { getCellContextFromCell } from '../utils/TableFocusUtils';\n\ntype MenuProps = Pick<\n ComponentProps<typeof Menu>,\n 'anchorRef' | 'initialFocus' | 'placement' | 'offsetValue' | 'isOpen'\n>;\n\nconst TOUCH_OFFSET_VALUE = 40;\n\nconst menuPropGestureStates: Record<\n 'mouse' | 'keyboard' | 'touch',\n Omit<Required<MenuProps>, 'anchorRef' | 'isOpen'>\n> = {\n mouse: {\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 2\n },\n keyboard: {\n initialFocus: 'firstItem',\n placement: 'bottom-start',\n offsetValue: 0\n },\n touch: {\n initialFocus: 'menu',\n placement: 'end',\n offsetValue: TOUCH_OFFSET_VALUE\n }\n};\n\nconst _initialMenuProps: MenuProps = {\n isOpen: false,\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0,\n anchorRef: { current: null }\n};\n\nexport const useContextMenu = <K extends string | number, D, C extends string>(\n tableId: string,\n tableData: TableData<K, D>[],\n activeCell?: ActiveCell<K, C>,\n contextMenuConfig?: TableContextMenuConfig<K, D, C>\n) => {\n const [contextMenuContext, setContextMenuContext] = useState<CellContext<K, D, C>>();\n const [menuProps, setMenuProps] = useState<MenuProps>(_initialMenuProps);\n const currentCellElementRef = useRef<HTMLElement>();\n\n const { triggerProps } = useContextMenuGesture(\n ({ gesture, anchor, target }) => {\n if (activeCell != null) {\n const cellContext = getCellContextFromCell<K, D, C>(tableData, activeCell);\n if (cellContext != null) {\n // find the cell element the menu is being launched from\n const cellElement = (target as HTMLElement).closest(\n `[data-oj-table-focusable='${tableId}']`\n ) as HTMLElement;\n if (cellElement != null) {\n currentCellElementRef.current = cellElement;\n const anchorBasedOnGesture = gesture === 'keyboard' ? cellElement : anchor;\n setContextMenuContext(cellContext);\n setMenuProps({\n ...menuPropGestureStates[gesture],\n anchorRef: { current: anchorBasedOnGesture },\n isOpen: true\n });\n }\n }\n }\n },\n {\n isDisabled: !contextMenuConfig\n }\n );\n\n const handleCloseContextMenu = useCallback<Required<ComponentProps<typeof Menu>>['onClose']>(\n (detail) => {\n // set focus back on the cell that was determined as the initial target\n if (detail.reason === 'dismissed' || detail.reason === 'itemAction') {\n currentCellElementRef.current?.focus({ preventScroll: true });\n }\n // close the menu\n setMenuProps({ ..._initialMenuProps });\n },\n []\n );\n\n return {\n menuProps: { ...menuProps, onClose: handleCloseContextMenu },\n onClose: handleCloseContextMenu,\n contextMenuContext: contextMenuContext,\n contextMenuTriggerProps: triggerProps\n };\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { useId } from '../../hooks/UNSAFE_useId';\nimport { useColorScheme } from '../../hooks/UNSAFE_useColorScheme';\nimport { useScale } from '../../hooks/UNSAFE_useScale';\nimport { TooltipContent } from '../../hooks/UNSAFE_useTooltip/TooltipContent';\nimport {\n getGlobalTooltipManager,\n getWrappedTooltipContent,\n SHOW_TOOLTIP_DELAY,\n HIDE_TOOLTIP_DELAY\n} from '../../utils/PRIVATE_tooltipUtils';\nimport { getElementFromCell } from '../utils/TableDomUtils';\nimport { cellComparator } from '../utils/TableFocusUtils';\nimport { hasTruncatedText } from '../utils/TableTooltipUtils';\nimport { Cell } from '../../UNSAFE_TableView';\n\ntype UseTruncationTooltipOptions = {\n rootRef: RefObject<HTMLDivElement>;\n tableId: string;\n};\n\n// delay small interaction times concerning a tooltip\nconst SMALL_INTERACTION_DELAY = 50;\nconst TABLE_HIDE_TOOLTIP_DELAY = Math.max(\n Math.min(SHOW_TOOLTIP_DELAY - SMALL_INTERACTION_DELAY, HIDE_TOOLTIP_DELAY),\n 0\n);\n\n/**\n * Hook that manages cell template tooltip interactions on the Table when truncation is present.\n */\nexport function useTruncationTooltip<K, C>({ rootRef, tableId }: UseTruncationTooltipOptions) {\n const globalTooltipManager = getGlobalTooltipManager();\n\n const tooltipId = useId();\n\n const tooltipCellRef = useRef<Cell<K, C>>();\n const pendingShowTooltipCellRef = useRef<Cell<K, C>>();\n const tooltipAnchorRef = useRef<HTMLElement>();\n const tooltipTextRef = useRef<string>();\n const [tooltipText, setTooltipText] = useState<string>();\n\n const pointerDownRef = useRef<boolean>(false);\n const pointerDownTimeoutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const showTooltipTimeoutRef = useRef<ReturnType<typeof setTimeout>>();\n const hideTooltipTimeoutRef = useRef<ReturnType<typeof setTimeout>>();\n\n // helper method for clearing the hide tooltip timeout\n const _clearHideTooltipTimeout = useCallback(() => {\n clearTimeout(hideTooltipTimeoutRef.current);\n hideTooltipTimeoutRef.current = undefined;\n }, []);\n\n // helper method for clearing the show tooltip timeout\n const _clearShowTooltipTimeout = useCallback(() => {\n clearTimeout(showTooltipTimeoutRef.current);\n showTooltipTimeoutRef.current = undefined;\n pendingShowTooltipCellRef.current = undefined;\n }, []);\n\n // helper method for setting up the show tooltip timeout\n const _setupShowTooltipTimeout = useCallback(() => {\n showTooltipTimeoutRef.current = setTimeout(function () {\n // when showing a tooltip, clear any pending 'clear tooltip timeouts'\n if (hideTooltipTimeoutRef.current != null) {\n _clearHideTooltipTimeout();\n }\n showTooltipTimeoutRef.current = undefined;\n const cell = pendingShowTooltipCellRef.current;\n const rootElement = rootRef.current;\n if (rootElement != null && cell != null) {\n const cellElement = getElementFromCell(rootElement, tableId, cell);\n if (cellElement != null && hasTruncatedText(cellElement)) {\n setTooltipText(String(cellElement.innerText).trim());\n tooltipAnchorRef.current = cellElement;\n tooltipCellRef.current = cell;\n }\n }\n pendingShowTooltipCellRef.current = undefined;\n }, SHOW_TOOLTIP_DELAY);\n }, [rootRef, tableId, _clearHideTooltipTimeout]);\n\n // helper method for setting up the hide tooltip timeout\n const _setupHideTooltipTimeout = useCallback(() => {\n hideTooltipTimeoutRef.current = setTimeout(function () {\n // unlike in the showtooltip timeout logic, we do not want to clear\n // pending show tooltip timeouts when clearing a tooltip as it could\n // still be waiting to be shown in another location at this time\n hideTooltipTimeoutRef.current = undefined;\n setTooltipText(undefined);\n tooltipAnchorRef.current = undefined;\n tooltipCellRef.current = undefined;\n }, TABLE_HIDE_TOOLTIP_DELAY);\n }, []);\n\n // callback method to signal a tooltip is desired on the given cell\n const showTooltip = useCallback(\n (anchorCell: Cell<K, C>) => {\n if (cellComparator(tooltipCellRef.current, anchorCell)) {\n // if the tooltip is already showing in the right cell, clear all timeouts\n if (showTooltipTimeoutRef.current != null) {\n _clearShowTooltipTimeout();\n }\n if (hideTooltipTimeoutRef.current != null) {\n _clearHideTooltipTimeout();\n }\n return;\n }\n if (showTooltipTimeoutRef.current == null) {\n // if no tooltip is already pending, start a new tooltip timeout\n pendingShowTooltipCellRef.current = anchorCell;\n _setupShowTooltipTimeout();\n } else if (!cellComparator(pendingShowTooltipCellRef.current, anchorCell)) {\n // if a different tooltip is already pending, start a new tooltip timeout\n _clearShowTooltipTimeout();\n pendingShowTooltipCellRef.current = anchorCell;\n _setupShowTooltipTimeout();\n }\n if (tooltipCellRef.current != null && hideTooltipTimeoutRef.current == null) {\n // if the tooltip is showing on a different cell, ensure a hide timeout is setup\n _setupHideTooltipTimeout();\n }\n },\n [\n _setupShowTooltipTimeout,\n _setupHideTooltipTimeout,\n _clearShowTooltipTimeout,\n _clearHideTooltipTimeout\n ]\n );\n\n // callback method to signal the current tooltip is no longer desired\n const hideTooltip = useCallback(\n (isImmediate?: boolean) => {\n // ignore hide tooltip calls if due to focus loss from a pointer down on the tooltip itself\n if (pointerDownRef.current) {\n return;\n }\n if (showTooltipTimeoutRef.current != null) {\n _clearShowTooltipTimeout();\n }\n if (isImmediate) {\n if (hideTooltipTimeoutRef.current != null) {\n _clearHideTooltipTimeout();\n }\n setTooltipText(undefined);\n tooltipAnchorRef.current = undefined;\n tooltipCellRef.current = undefined;\n } else if (hideTooltipTimeoutRef.current == null) {\n _setupHideTooltipTimeout();\n }\n },\n [_setupHideTooltipTimeout, _clearShowTooltipTimeout, _clearHideTooltipTimeout]\n );\n\n // Pointer move handler for the tooltip.\n const _pointerMoveHandler = useCallback((_event: PointerEvent) => {\n if (showTooltipTimeoutRef.current != null) {\n clearTimeout(showTooltipTimeoutRef.current);\n showTooltipTimeoutRef.current = undefined;\n pendingShowTooltipCellRef.current = undefined;\n }\n if (hideTooltipTimeoutRef.current != null) {\n clearTimeout(hideTooltipTimeoutRef.current);\n hideTooltipTimeoutRef.current = undefined;\n }\n }, []);\n\n // Pointer leave handler for the tooltip.\n const _pointerLeaveHandler = useCallback(\n (event: PointerEvent) => {\n const targetElement = event.relatedTarget as HTMLElement;\n if (targetElement != null && targetElement.closest(`#${tableId}`) != null) {\n return;\n }\n hideTooltip();\n },\n [tableId, hideTooltip]\n );\n\n // Pointer down handler for the tooltip.\n const _pointerDownHandler = useCallback((_event: PointerEvent) => {\n pointerDownRef.current = true;\n if (pointerDownTimeoutRef.current != null) {\n clearTimeout(pointerDownTimeoutRef.current);\n }\n pointerDownTimeoutRef.current = setTimeout(function () {\n pointerDownRef.current = false;\n pointerDownTimeoutRef.current = undefined;\n }, SMALL_INTERACTION_DELAY);\n }, []);\n\n // handles logic involving competing tooltips managed outside of the TableView.\n // make sure this check runs BEFORE the rendered content is created below\n const isOpenOverrideRef = useRef<boolean>(true);\n if (tooltipText != null && tooltipText !== tooltipTextRef.current) {\n isOpenOverrideRef.current = true;\n }\n\n const tooltipPointerProps = {\n onPointerLeave: _pointerLeaveHandler,\n onPointerMove: _pointerMoveHandler,\n onPointerDown: _pointerDownHandler\n };\n\n // avoid applying undefined text after initial render completes as it can appear\n // while the tooltip is going through its closing animation and looks broken\n const renderRawContent = (\n <TooltipContent\n {...tooltipPointerProps}\n id={tooltipId}\n isOpen={isOpenOverrideRef.current}\n isDatatip={false}>\n {tooltipText != null ? tooltipText : tooltipTextRef.current}\n </TooltipContent>\n );\n\n // make sure these are in sync AFTER the rendered content is created above - this helps ensure\n // that empty text does not show up while the tooltip is going through a closing animation.\n tooltipTextRef.current = tooltipText;\n\n // offsets attempt to show the tooltip without overlapping content of nearby cells\n const scale = useScale();\n let mainAxisOffset = -8;\n let crossAxisOffset = -14;\n if (scale === 'md') {\n mainAxisOffset = -7;\n crossAxisOffset = -12;\n } else if (scale === 'sm') {\n mainAxisOffset = -6;\n crossAxisOffset = -11;\n }\n const currentColorScheme = useColorScheme();\n const tooltipContent =\n tooltipAnchorRef.current != null\n ? getWrappedTooltipContent(\n renderRawContent,\n 'tooltip',\n currentColorScheme,\n tooltipAnchorRef as RefObject<HTMLElement>,\n 'end-top',\n { mainAxis: mainAxisOffset, crossAxis: crossAxisOffset }\n )\n : undefined;\n\n const destroyCallback = useCallback(() => {\n hideTooltip(true);\n }, [hideTooltip]);\n\n useEffect(() => {\n if (isOpenOverrideRef.current && tooltipAnchorRef.current != null) {\n globalTooltipManager.register(destroyCallback);\n } else {\n globalTooltipManager.unregister(destroyCallback);\n }\n }, [tooltipAnchorRef, destroyCallback, tooltipText, globalTooltipManager]);\n\n return { tooltipContent, tooltipId, showTooltip, hideTooltip, tooltipAnchorRef };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState, MutableRef } from 'preact/hooks';\nimport {\n getElementContainsFunc,\n handleEnterActionableMode,\n handleWrapActionableFocus\n} from '../../utils/PRIVATE_collectionUtils';\nimport {\n FocusableElement,\n allTabbableElements,\n getActiveElement,\n getBodyElement,\n isTabbableElement\n} from '../../utils/PRIVATE_tabbableUtils';\nimport {\n ActiveCell,\n ActiveCellDetail,\n CurrencyStatus,\n SizingInfo,\n TableColumn,\n TableData,\n ViewportInfo\n} from '../Table';\nimport { getCellType, getElementFromCell, logicalCellExtractor } from '../utils/TableDomUtils';\nimport {\n applyCurrentCellOverride,\n cellComparator,\n determineActiveCell,\n isTransientCell\n} from '../utils/TableFocusUtils';\nimport { applyScrollDetail } from '../utils/TableScrollUtils';\nimport { handleNavigationTooltipGesture } from '../utils/TableTooltipUtils';\nimport { Cell, CellOverride, CurrentCellDetail } from '../../UNSAFE_TableView';\n\ntype UseFocusHandlingProps<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n tableId: string;\n tableData: TableData<K, D>[];\n hasMore: boolean;\n hasFooters: boolean;\n isRtl: boolean;\n columnsArray: TableColumn<K, D, C>[];\n sizingInfoRef: MutableRef<SizingInfo>;\n selectionExtensionElementRef: MutableRef<HTMLElement | undefined>;\n cellSupportsTabbable: (cell: ActiveCell<K, C>) => boolean;\n fullColumnWidths?: number[];\n currentCellOverride?: CellOverride<K, C>;\n onPersistCurrentCell?: (detail: CurrentCellDetail<K, C>) => void;\n showTooltip: (cell: Cell<K, C>) => void;\n hideTooltip: (isImmediate?: boolean) => void;\n isPendingLayout: boolean;\n isEmbeddedSelect: boolean;\n isDataLoaded: boolean;\n};\n\n// constant timeout values for delays following a input gesture until enabling focus rings\nconst MOUSE_FOCUS_SHIFT_TIMEOUT = 100;\nconst TOUCH_FOCUS_SHIFT_TIMEOUT = 200;\n\n// constant event.key values that trigger focus ring logic\nconst NAVIGATION_KEYS = [\n ' ',\n 'F2',\n 'Enter',\n 'Esc', // Firefox 36 and earlier uses 'Esc' instead of 'Escape'\n 'Escape',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowRight',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown'\n];\n\n// constant event.key values that trigger 'scroll to current' logic\nconst SCROLL_KEYS = [\n ' ',\n 'F2',\n 'Enter',\n 'Esc', // Firefox 36 and earlier uses 'Esc' instead of 'Escape'\n 'Escape'\n];\n\n/**\n * Hook that manages focus interactions on the Preact Table\n */\nexport function useFocusHandling<K extends string | number, D, C extends string>({\n rootRef,\n viewportInfo,\n tableId,\n isRtl,\n tableData,\n hasMore,\n hasFooters,\n columnsArray,\n sizingInfoRef,\n selectionExtensionElementRef,\n cellSupportsTabbable,\n fullColumnWidths,\n currentCellOverride,\n onPersistCurrentCell,\n showTooltip,\n hideTooltip,\n isPendingLayout,\n isEmbeddedSelect,\n isDataLoaded\n}: UseFocusHandlingProps<K, D, C>) {\n // tracks whether the most recent 'blur' was caused by focus being lost by the browser window (or iframe)\n const blurFromWindowRef = useRef<boolean>(false);\n\n // tracks focus loss during render cycle for potential focus recapture cases\n const isRenderCycle = useRef<boolean>(true);\n isRenderCycle.current = true;\n const blurredRenderCycleElementRef = useRef<FocusableElement | null>(null);\n const isPendingLayoutFocusRef = useRef<boolean>(false);\n\n // track current 'focus info' state\n const hasFocusRef = useRef<boolean>(false);\n const [isTabbableMode, setIsTabbableMode] = useState<boolean>(false);\n const [isShowFocusRing, setIsShowFocusRing] = useState<boolean>(false);\n\n // track pointer down information\n const recentPointerRef = useRef<boolean>(false);\n const pointerTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isShowFocusRingOverrideRef = useRef<boolean | null>(null);\n\n // track the active and current cell information\n const [activeCell, setActiveCell] = useState<ActiveCell<K, C> | undefined>(undefined);\n const currencyStatusRef = useRef<CurrencyStatus<K, D, C>>({\n hasPendingCurrentCellOverride: false,\n hasPendingCurrentCellOverrideScroll: false\n });\n\n const currentActiveCell = determineActiveCell<K, D, C>(\n columnsArray,\n currencyStatusRef,\n tableData,\n hasMore,\n isPendingLayout,\n isEmbeddedSelect,\n hasFooters,\n currentCellOverride\n );\n\n // intercept onPersistCurrentCell calls to ensure internal state is updated appropriately\n const onActiveCellChanged = useMemo(() => {\n return (detail: ActiveCellDetail<K, C>, isSelectionExtension?: boolean) => {\n const newActiveCell = detail.value;\n if (!cellComparator(currencyStatusRef.current.activeCell, newActiveCell)) {\n setActiveCell(newActiveCell);\n currencyStatusRef.current.activeCell = newActiveCell;\n if (!isTransientCell(newActiveCell)) {\n const newCurrentCell = newActiveCell as Cell<K, C>;\n // only update current cell when 'active' is not one of the transient 'skeleton' regions\n if (onPersistCurrentCell != null) {\n onPersistCurrentCell({ value: newCurrentCell });\n }\n currencyStatusRef.current.currentCell = newCurrentCell;\n\n // make sure pending current cell override states are updated on current changed\n if (newCurrentCell != null) {\n currencyStatusRef.current.previousEmbeddedSelectCurrentCell = newCurrentCell;\n }\n currencyStatusRef.current.currentCellOverride = currentCellOverride;\n currencyStatusRef.current.hasPendingCurrentCellOverride = false;\n currencyStatusRef.current.hasPendingCurrentCellOverrideScroll = false;\n } else if (newActiveCell?.type === 'loadMore') {\n currencyStatusRef.current.loadMoreInitialData = tableData;\n }\n if (!isSelectionExtension) {\n selectionExtensionElementRef.current = undefined;\n }\n }\n };\n }, [currentCellOverride, tableData, onPersistCurrentCell, selectionExtensionElementRef]);\n\n // Helper function to set the Table's focus tracking state to reflect that it is inactive.\n const _setAsInactive = useCallback(() => {\n hasFocusRef.current = false;\n isPendingLayoutFocusRef.current = false;\n\n setIsTabbableMode(false);\n setIsShowFocusRing(false);\n hideTooltip();\n }, [hideTooltip]);\n\n // Helper function to set the Table's focus tracking state to reflect that one of its cells has focus.\n const _enableNavigationMode = useCallback(\n (cell: ActiveCell<K, C>, skipScrollCellIntoView?: boolean) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null) {\n setIsTabbableMode(false);\n const focusRingState =\n isShowFocusRingOverrideRef.current !== null\n ? isShowFocusRingOverrideRef.current\n : !recentPointerRef.current;\n setIsShowFocusRing(focusRingState);\n if (focusRingState) {\n handleNavigationTooltipGesture(rootElement, tableId, cell, showTooltip, hideTooltip);\n }\n if (!recentPointerRef.current && !skipScrollCellIntoView) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: cell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n }\n onActiveCellChanged({ value: cell });\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n isRtl,\n onActiveCellChanged,\n fullColumnWidths,\n showTooltip,\n hideTooltip\n ]\n );\n\n // Helper function to set the Table's focus tracking state to reflect that it is tabbable.\n const _enableTabbableMode = useCallback(\n (cell: ActiveCell<K, C>, isKeyboard?: boolean, skipScrollCellIntoView?: boolean) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null) {\n setIsTabbableMode(true);\n if (!isKeyboard) {\n setIsShowFocusRing(false);\n onActiveCellChanged({ value: cell });\n if (!recentPointerRef.current && !skipScrollCellIntoView) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: cell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n }\n }\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n isRtl,\n onActiveCellChanged,\n fullColumnWidths\n ]\n );\n\n // Helper function to set the Table's focus tracking state to reflect that a user has\n // exited tabbable mode via the keyboard (esc or 'F2')\n const _disableTabbableMode = useCallback(\n (cell: ActiveCell<K, C>) => {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n setIsTabbableMode(false);\n const cellElement = getElementFromCell(rootElement, tableId, cell);\n if (cellElement != null) {\n cellElement.focus({ preventScroll: true });\n } else {\n rootElement.focus({ preventScroll: true });\n }\n }\n },\n [rootRef, tableId]\n );\n\n const notifyFocusFromPointer = useCallback((isTouch: boolean) => {\n if (pointerTimerRef.current != null) {\n clearTimeout(pointerTimerRef.current);\n }\n recentPointerRef.current = true;\n pointerTimerRef.current = setTimeout(\n () => {\n recentPointerRef.current = false;\n },\n isTouch ? TOUCH_FOCUS_SHIFT_TIMEOUT : MOUSE_FOCUS_SHIFT_TIMEOUT\n );\n }, []);\n\n // PointerDown handler for the outer Table. Focus transfers that occur following a pointerdown\n // on desktop devices should not result in a focus ring being shown on the focused element\n const _pointerDownHandler = useCallback(\n (event: PointerEvent) => {\n if (isShowFocusRing) {\n setIsShowFocusRing(false);\n }\n if (event.pointerType !== 'touch') {\n notifyFocusFromPointer(false);\n }\n },\n [isShowFocusRing, notifyFocusFromPointer]\n );\n\n // PointerUp handler for the outer Table. Focus transfers that occur following a pointerup\n // on any type of device should not result in a focus ring being shown on the focused element\n const _pointerUpHandler = useCallback(\n (event: PointerEvent) => {\n notifyFocusFromPointer(event.pointerType === 'touch');\n },\n [notifyFocusFromPointer]\n );\n\n // Focus handler for the outer Table. On focus, a focusable area needs to be 'active'.\n // If an 'active' area already exists, nothing further is needed. Otherwise, the first\n // focusable element should be made 'active'.\n const _onFocusHandler = (event: FocusEvent) => {\n hasFocusRef.current = true;\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null) {\n // don't scroll active into view if previous blur was due to window focus loss\n const skipScrollCellIntoView = blurFromWindowRef.current || isPendingLayout;\n blurFromWindowRef.current = false;\n\n const targetElement = event.target as HTMLElement;\n if (targetElement === rootElement || targetElement === scrollerElement) {\n if (currentActiveCell != null) {\n _enableNavigationMode(currentActiveCell, skipScrollCellIntoView);\n }\n } else {\n const cell = logicalCellExtractor<K, D, C>(targetElement, tableId, columnsArray);\n if (cell != null) {\n if (getCellType(targetElement) != null) {\n // handle individual focusable regions receiving focus\n _enableNavigationMode(cell, skipScrollCellIntoView);\n } else {\n _enableTabbableMode(cell, false, skipScrollCellIntoView);\n }\n }\n }\n }\n isShowFocusRingOverrideRef.current = null;\n };\n\n // Blur handler for the outer Table. When a blur is caused by the browser window itself\n // losing focus (changing tabs or leaving an iframe for example), an eventual re-focus due\n // to the window re-gaining focus needs to be handled differently (no auto-scroll mostly).\n const _onBlurHandler = useCallback(\n (event: FocusEvent) => {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n if (event.target === document.activeElement) {\n // save focus ring state so it's set once focus comes back\n isShowFocusRingOverrideRef.current = isShowFocusRing;\n }\n const relatedTarget = event.relatedTarget as Element;\n const isUnknownRelatedTarget = relatedTarget == null;\n blurFromWindowRef.current = isUnknownRelatedTarget;\n if (isUnknownRelatedTarget || !getElementContainsFunc(rootElement, true)(relatedTarget)) {\n _setAsInactive();\n if (isRenderCycle.current) {\n // store element that loses focus during a render cycle for recapturing focus logic\n blurredRenderCycleElementRef.current = event.target as FocusableElement;\n }\n }\n }\n },\n [rootRef, isShowFocusRing, _setAsInactive]\n );\n\n // KeyDown handler for the outer Table. This specific handler tracks 'focus' transfer keys\n // Esc, F2, Enter, and Tab. It also ensures the active cell is scrolled into view on any key\n const _onKeyDownHandler = useCallback(\n (event: KeyboardEvent) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null) {\n const isNavigationKey = NAVIGATION_KEYS.indexOf(event.key) > -1;\n if (isNavigationKey) {\n if (pointerTimerRef.current != null) {\n clearTimeout(pointerTimerRef.current);\n }\n pointerTimerRef.current = null;\n recentPointerRef.current = false;\n }\n if (isPendingLayout) {\n if (isNavigationKey) {\n setIsShowFocusRing(true);\n }\n } else if (activeCell != null) {\n if (cellSupportsTabbable(activeCell)) {\n if (event.key === 'F2') {\n if (isTabbableMode) {\n _disableTabbableMode(activeCell);\n } else {\n _enableTabbableMode(activeCell, true);\n }\n } else if (event.key === 'Esc' || event.key === 'Escape') {\n // Firefox 36 and earlier uses 'Esc' instead of 'Escape'\n _disableTabbableMode(activeCell);\n } else if (event.key === 'Enter' && !isTabbableMode) {\n _enableTabbableMode(activeCell, true);\n }\n }\n if (!isTabbableMode) {\n if (isNavigationKey) {\n setIsShowFocusRing(true);\n }\n if (SCROLL_KEYS.indexOf(event.key) > -1) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: activeCell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n }\n }\n }\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n isRtl,\n isTabbableMode,\n activeCell,\n cellSupportsTabbable,\n fullColumnWidths,\n isPendingLayout,\n _enableTabbableMode,\n _disableTabbableMode\n ]\n );\n\n // Callback for the outer Table's FocusTracker usage.\n const onStartFocusTracking = useCallback(\n (detail: {\n activeElement: FocusableElement;\n hasFocusWithin: boolean;\n tabbableElements: FocusableElement[];\n }) => {\n const rootElement = rootRef.current;\n if (rootElement != null && activeCell != null) {\n handleEnterActionableMode(\n detail.hasFocusWithin && getCellType(detail.activeElement) == null,\n allTabbableElements(\n getElementFromCell(rootElement, tableId, activeCell) as FocusableElement\n ),\n (value?: ActiveCell<K, D>) => {\n setIsTabbableMode(value != undefined);\n }\n );\n }\n },\n [rootRef, activeCell, tableId]\n );\n\n // Callback for the outer Table's FocusTracker usage.\n const onFocusStartEdge = useCallback((detail: { tabbableElements: FocusableElement[] }) => {\n handleWrapActionableFocus(true, detail.tabbableElements, (value?: ActiveCell<K, D>) => {\n setIsTabbableMode(value != undefined);\n });\n }, []);\n\n // Callback for the outer Table's FocusTracker usage.\n const onFocusEndEdge = useCallback((detail: { tabbableElements: FocusableElement[] }) => {\n handleWrapActionableFocus(false, detail.tabbableElements, (value?: ActiveCell<K, D>) => {\n setIsTabbableMode(value != undefined);\n });\n }, []);\n\n // Ensure focus is properly set at the completion of every render cycle\n // NO DEPENDENCY ARRAY HERE TO ENSURE THIS RUNS ON EVERY RENDER CYCLE\n useEffect(() => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null) {\n // ensure current-cell-override is up to date on each render\n applyCurrentCellOverride(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n tableData,\n columnsArray,\n sizingInfoRef,\n currencyStatusRef,\n onActiveCellChanged,\n isEmbeddedSelect,\n isPendingLayout,\n isDataLoaded,\n isRtl,\n currentCellOverride,\n fullColumnWidths\n );\n\n const blurredRenderCycleElement = blurredRenderCycleElementRef.current;\n blurredRenderCycleElementRef.current = null;\n isRenderCycle.current = false;\n\n const activeElement = getActiveElement(rootElement);\n // if we were tracking focus during the render cycle, ensure we recapture focus if needed\n if (\n blurredRenderCycleElement != null &&\n activeElement === getBodyElement(rootElement) &&\n (!getElementContainsFunc(rootElement, true)(blurredRenderCycleElement) ||\n !isTabbableElement(blurredRenderCycleElement, true))\n ) {\n rootElement.focus({ preventScroll: true });\n return;\n }\n if (hasFocusRef.current) {\n if (\n currentActiveCell != null &&\n cellComparator(activeCell, currencyStatusRef.current.activeCell)\n ) {\n // ensure real browser focus is on the correct cell element\n const cellElement = getElementFromCell(rootElement, tableId, currentActiveCell);\n if (cellElement != null) {\n // cell is valid, so set focus on it if needed\n if (\n (!isTabbableMode && activeElement !== cellElement) ||\n (isTabbableMode && !getElementContainsFunc(cellElement, true)(activeElement))\n ) {\n cellElement.focus({ preventScroll: true });\n }\n }\n }\n }\n }\n });\n\n return {\n focusHandlingProps: {\n onPointerDown: _pointerDownHandler,\n onPointerUp: _pointerUpHandler,\n onFocus: _onFocusHandler,\n onBlur: _onBlurHandler,\n onKeyDown: _onKeyDownHandler\n },\n activeCell,\n onActiveCellChanged,\n currentCell: currencyStatusRef.current.currentCell,\n currentActiveCell,\n isShowFocusRing,\n isTabbableMode,\n onStartFocusTracking,\n onFocusStartEdge,\n onFocusEndEdge\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { keyExtractor } from '../../utils/PRIVATE_collectionUtils';\nimport { getRowIndexForRowElement, getElementFromCell } from './TableDomUtils';\nimport { ActiveCell, TableColumn, TableData } from '../Table';\nimport { RowActionDetail, SortCriterionDetail } from '../../UNSAFE_TableView';\n\n/**\n * Helper function to get the row action context from a pointer or keyboard event\n */\nfunction _getRowActionGestureContext<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n tableData: TableData<K, D>[],\n targetElement: HTMLElement,\n targetCell?: ActiveCell<K, C>\n) {\n let rowKey: K | null;\n let rowElement;\n if (targetCell?.type === 'data') {\n rowKey = targetCell.rowKey;\n const targetCellElement = getElementFromCell(rootElement, tableId, targetCell);\n if (targetCellElement != null) {\n rowElement = targetCellElement.parentElement;\n }\n } else {\n rowKey = keyExtractor<K>(targetElement, `[data-oj-table-data-row='${tableId}']`);\n if (rowKey != null) {\n rowElement = targetElement.closest(`[data-oj-table-data-row='${tableId}']`);\n }\n }\n if (rowKey != null && rowElement != null) {\n const rowIndex = getRowIndexForRowElement(rootElement, tableId, rowElement as HTMLElement);\n if (rowIndex != null) {\n return {\n key: rowKey,\n data: tableData[rowIndex].data\n };\n }\n }\n return undefined;\n}\n\n/**\n * Helper function to handle a row action gesture from a pointer or keyboard event\n */\nexport function handleRowActionGesture<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n tableData: TableData<K, D>[],\n onRowAction: (detail: RowActionDetail<K, D>) => void,\n targetElement: HTMLElement,\n targetCell?: ActiveCell<K, C>\n) {\n const rowActionContext = _getRowActionGestureContext(\n rootElement,\n tableId,\n tableData,\n targetElement,\n targetCell\n );\n if (rowActionContext != null) {\n onRowAction({ context: rowActionContext, target: targetElement });\n return true;\n }\n return false;\n}\n\n/**\n * Helper function to determine if a pointer or keyboard event should trigger a sort action gesture\n */\nfunction _isSortActionGesture<K, D, C>(columnsArray: TableColumn<K, D, C>[], columnKey: C) {\n for (const column of columnsArray) {\n if (column.key === columnKey) {\n return column.value.sortable === 'enabled';\n }\n }\n return false;\n}\n\n/**\n * Helper function to handle a sort action gesture\n */\nexport function handleSortActionGesture<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n columnKey: C,\n onSortCriterionChange: (detail: SortCriterionDetail<C>) => void,\n sortCriterion?: { key: C; sortDirection: 'ascending' | 'descending' }[]\n) {\n if (_isSortActionGesture(columnsArray, columnKey)) {\n let sortDirection;\n if (sortCriterion != null) {\n for (const criterion of sortCriterion) {\n if (criterion.key === columnKey) {\n sortDirection = criterion.sortDirection;\n break;\n }\n }\n }\n const newDirection = sortDirection === 'ascending' ? 'descending' : 'ascending';\n onSortCriterionChange([{ key: columnKey, sortDirection: newDirection }]);\n return true;\n }\n return false;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { MutableRef } from 'preact/hooks';\nimport { ActiveCell, ActiveCellDetail, SizingInfo, TableColumn, ViewportInfo } from '../Table';\nimport {\n getBoundaryColumnKey,\n getElementFromCell,\n getFirstFocusableRowKey,\n getLastFocusableRowKey,\n getRowKey,\n hasFooterCells,\n hasNoDataCell,\n getScrollerBottomOffset,\n getRowKeyForRowIndex,\n getRowIndexForRowKey\n} from './TableDomUtils';\nimport { cellComparator } from './TableFocusUtils';\nimport { applyScrollDetail, getVerticalScrollPosition } from './TableScrollUtils';\nimport { findElementByKey } from '../../utils/PRIVATE_collectionUtils';\n\n/**\n * Helper function to handle an 'Up' or 'Down' arrow key press.\n * Up - Moves to the same cell in the previous row (including headers and footers). No op if already on the first row.\n * Down - Moves to the same cell in the next row (including headers and footers). No op if already on the last row.\n */\nexport function handleAdjacentRowGesture<K extends string | number, D, C>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n initialCell: ActiveCell<K, C>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isSelectionExtension?: boolean) => void,\n isPrevious: boolean,\n isExtendSelectionGesture: boolean,\n isRtl: boolean,\n hideTooltip: (isImmediate?: boolean) => void,\n fullColumnWidths?: number[]\n) {\n const firstColumnKey = getBoundaryColumnKey<K, D, C>(columnsArray, true);\n if (firstColumnKey == null) {\n return;\n }\n let newCell = initialCell;\n const cellType = initialCell.type;\n if (cellType === 'noData') {\n const newColumnKey = firstColumnKey;\n if (isPrevious) {\n newCell = { columnKey: newColumnKey, type: 'header' };\n onActiveCellChanged({ value: newCell });\n } else if (hasFooterCells(rootElement, tableId)) {\n newCell = { columnKey: newColumnKey, type: 'footer' };\n onActiveCellChanged({ value: newCell });\n }\n } else if (cellType === 'loading') {\n if (isPrevious) {\n newCell = { columnKey: initialCell.columnKey, type: 'header' };\n onActiveCellChanged({ value: newCell });\n } else if (hasFooterCells(rootElement, tableId)) {\n newCell = { columnKey: initialCell.columnKey, type: 'footer' };\n onActiveCellChanged({ value: newCell });\n }\n } else if (cellType === 'loadMore') {\n if (isPrevious) {\n const rowKey = getLastFocusableRowKey<K>(rootElement, tableId);\n if (rowKey != null) {\n newCell = { rowKey: rowKey, columnKey: initialCell.columnKey, type: 'data' };\n onActiveCellChanged({ value: newCell });\n }\n } else if (hasFooterCells(rootElement, tableId)) {\n newCell = { columnKey: initialCell.columnKey, type: 'footer' };\n onActiveCellChanged({ value: newCell });\n }\n } else if (cellType !== 'pending') {\n if (cellType === 'data') {\n const currentRowKey = initialCell.rowKey;\n const currentRowElement = findElementByKey(\n rootElement,\n currentRowKey,\n `[data-oj-table-data-row='${tableId}']`\n );\n if (currentRowElement != null) {\n const adjacentRowElement = isPrevious\n ? (currentRowElement.previousElementSibling as HTMLElement)\n : (currentRowElement.nextElementSibling as HTMLElement);\n // if adjacent row has no children, it is the 'buffer' row used for height sizing\n if (adjacentRowElement != null && adjacentRowElement.children.length > 0) {\n const rowKey = getRowKey<K>(adjacentRowElement);\n if (rowKey != null) {\n newCell = { rowKey: rowKey, columnKey: initialCell.columnKey, type: 'data' };\n onActiveCellChanged({ value: newCell }, isExtendSelectionGesture);\n } else if (!isExtendSelectionGesture) {\n newCell = { columnKey: initialCell.columnKey, type: 'loadMore' };\n if (getElementFromCell(rootElement, tableId, newCell) != null) {\n onActiveCellChanged({ value: newCell });\n }\n }\n } else if (!isExtendSelectionGesture && isPrevious) {\n newCell = { columnKey: initialCell.columnKey, type: 'header' };\n onActiveCellChanged({ value: newCell });\n } else if (!isExtendSelectionGesture && hasFooterCells(rootElement, tableId)) {\n newCell = { columnKey: initialCell.columnKey, type: 'footer' };\n onActiveCellChanged({ value: newCell });\n }\n }\n } else if (cellType === 'header' && !isPrevious) {\n const rowKey = getFirstFocusableRowKey<K>(rootElement, tableId);\n if (rowKey != null) {\n newCell = { rowKey: rowKey, columnKey: initialCell.columnKey, type: 'data' };\n onActiveCellChanged({ value: newCell });\n } else if (hasNoDataCell(rootElement, tableId)) {\n newCell = { type: 'noData' };\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: initialCell.columnKey, type: 'loading' };\n if (getElementFromCell(rootElement, tableId, newCell) != null) {\n onActiveCellChanged({ value: newCell });\n } else if (hasFooterCells(rootElement, tableId)) {\n newCell = { columnKey: initialCell.columnKey, type: 'footer' };\n onActiveCellChanged({ value: newCell });\n }\n }\n } else if (cellType === 'footer' && isPrevious) {\n if (hasNoDataCell(rootElement, tableId)) {\n newCell = { type: 'noData' };\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: initialCell.columnKey, type: 'loading' };\n if (getElementFromCell(rootElement, tableId, newCell) != null) {\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: initialCell.columnKey, type: 'loadMore' };\n if (getElementFromCell(rootElement, tableId, newCell) != null) {\n onActiveCellChanged({ value: newCell });\n } else {\n const rowKey = getLastFocusableRowKey<K>(rootElement, tableId);\n if (rowKey != null) {\n newCell = { rowKey: rowKey, columnKey: initialCell.columnKey, type: 'data' };\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: initialCell.columnKey, type: 'header' };\n onActiveCellChanged({ value: newCell });\n }\n }\n }\n }\n }\n }\n if (!cellComparator(initialCell, newCell)) {\n hideTooltip(true);\n }\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: newCell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n}\n\n/**\n * Helper function to handle a 'PageUp' or 'PageDown' arrow key press.\n * PageUp - Moves to the same cell in the first visible row in the current viewport,\n * and scrolls the Table so it becomes the last visible row in the viewport when able.\n * PageDown - Moves to the same cell in the last visible row in the current viewport,\n * and scrolls the Table so it becomes the first visible row in the viewport when able.\n */\nexport function handlePageRowGesture<K extends string | number, D, C>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n initialCell: ActiveCell<K, C>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isExtendSelectionGesture?: boolean) => void,\n isPrevious: boolean,\n isRtl: boolean,\n hideTooltip: (isImmediate?: boolean) => void,\n fullColumnWidths?: number[]\n) {\n if (initialCell.type !== 'noData' && initialCell.type !== 'pending') {\n const rowElements = rootElement.querySelectorAll(`[data-oj-table-data-row='${tableId}']`);\n if (rowElements.length > 0) {\n const verticalScrollPosition = getVerticalScrollPosition(\n rootElement,\n scrollerElement,\n tableId\n );\n const verticalRowIndex = getRowIndexForRowKey(\n rootElement,\n tableId,\n verticalScrollPosition.rowKey!\n );\n let targetRowIndex;\n if (isPrevious) {\n if (verticalScrollPosition.offsetY === 0) {\n targetRowIndex = Math.max(verticalRowIndex! - 1, 0);\n } else {\n targetRowIndex = verticalRowIndex!;\n }\n } else {\n const scrollerRect = scrollerElement.getBoundingClientRect();\n const scrollbarHeight =\n sizingInfoRef.current.boxHeight! - sizingInfoRef.current.contentHeight!;\n const scrollerBottom =\n scrollerRect.bottom + getScrollerBottomOffset(rootElement, tableId) + scrollbarHeight;\n targetRowIndex = verticalRowIndex!;\n while (rowElements.length > targetRowIndex + 1) {\n targetRowIndex += 1;\n const elementBottom = rowElements[targetRowIndex].getBoundingClientRect().bottom;\n if (elementBottom > scrollerBottom) {\n break;\n }\n }\n }\n const newRowKey = getRowKeyForRowIndex<K>(rootElement, tableId, targetRowIndex);\n if (newRowKey != null) {\n const newCell: ActiveCell<K, C> = {\n rowKey: newRowKey,\n columnKey: initialCell.columnKey,\n type: 'data'\n };\n if (newRowKey !== initialCell.rowKey) {\n onActiveCellChanged({ value: newCell });\n }\n if (!cellComparator(initialCell, newCell)) {\n hideTooltip(true);\n }\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: newCell, locationX: 'inView', locationY: isPrevious ? 'bottom' : 'top' },\n isRtl,\n fullColumnWidths\n );\n }\n }\n }\n}\n\n/**\n * Helper function to get the column key next to the given column key in the specified direction. Returns\n * null if there is no adjacent column in the direction specified.\n */\nfunction _getAdjacentColumnKey<K, D, C>(\n initialKey: C,\n columnsArray: TableColumn<K, D, C>[],\n isPrevious: boolean\n) {\n let currentIndex = -1;\n const columnsCount = columnsArray.length;\n for (let i = 0; i < columnsCount; i++) {\n if (columnsArray[i].key === initialKey) {\n currentIndex = i;\n break;\n }\n }\n if (isPrevious && currentIndex !== 0) {\n return columnsArray[currentIndex - 1].key;\n } else if (!isPrevious && currentIndex !== columnsCount - 1) {\n return columnsArray[currentIndex + 1].key;\n }\n return undefined;\n}\n\n/**\n * Helper function to handle a 'Previous' or 'Next' arrow key press.\n * Previous - Moves to the previous cell in the current row. No op if already on the first cell in that row.\n * Next - Moves to the next cell in the current row. No op if already on the last cell in that row.\n */\nexport function handleAdjacentColumnGesture<K extends string | number, D, C>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n initialCell: ActiveCell<K, C>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isExtendSelectionGesture?: boolean) => void,\n isPrevious: boolean,\n isRtl: boolean,\n hideTooltip: (isImmediate?: boolean) => void,\n fullColumnWidths?: number[]\n) {\n let newCell = initialCell;\n const cellType = initialCell.type;\n if (cellType === 'data' || cellType === 'header' || cellType === 'footer') {\n const initialKey = initialCell.columnKey;\n const newKey = _getAdjacentColumnKey(initialKey, columnsArray, isPrevious);\n if (newKey != null) {\n if (cellType === 'data') {\n newCell = { rowKey: initialCell.rowKey, columnKey: newKey, type: cellType };\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: newKey, type: cellType };\n onActiveCellChanged({ value: newCell });\n }\n }\n }\n if (!cellComparator(initialCell, newCell)) {\n hideTooltip(true);\n }\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: newCell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n}\n\n/**\n * Helper function to handle a 'Home' or 'End' key press.\n * Home - Jumps to the first cell in the current row. No op if already on the first cell in that row.\n * Ctrl/Cmd + Home - Jumps to the first cell in the first data row. If no data rows are present,\n * jumps to the first cell in the current region (header or footer). No op if already on that cell.\n * End - Jumps to the last cell in the current row. No op if already on the last cell in that row.\n * Ctrl/Cmd + End - Jumps to the last cell in the last data row. If no data rows are present,\n * jumps to the last cell in the current region (header or footer). No op if already on that cell.\n */\nexport function handleJumpColumnGesture<K extends string | number, D, C>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n initialCell: ActiveCell<K, C>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isExtendSelectionGesture?: boolean) => void,\n isPrevious: boolean,\n includeRows: boolean,\n isRtl: boolean,\n hideTooltip: (isImmediate?: boolean) => void,\n fullColumnWidths?: number[]\n) {\n const newKey = getBoundaryColumnKey<K, D, C>(columnsArray, isPrevious);\n if (newKey == null) {\n return;\n }\n let newCell = initialCell;\n const cellType = initialCell.type;\n if (cellType === 'data' || cellType === 'header' || cellType === 'footer') {\n const initialKey = initialCell.columnKey;\n if (includeRows) {\n if (hasNoDataCell(rootElement, tableId)) {\n newCell = { type: 'noData' };\n onActiveCellChanged({ value: newCell });\n } else {\n const newRowKey = isPrevious\n ? getFirstFocusableRowKey<K>(rootElement, tableId)\n : getLastFocusableRowKey<K>(rootElement, tableId);\n if (newRowKey != null) {\n newCell = { rowKey: newRowKey, columnKey: newKey, type: 'data' };\n onActiveCellChanged({ value: newCell });\n }\n }\n } else if (newKey !== initialKey) {\n if (cellType === 'data') {\n newCell = { rowKey: initialCell.rowKey, columnKey: newKey, type: cellType };\n onActiveCellChanged({ value: newCell });\n } else {\n newCell = { columnKey: newKey, type: cellType };\n onActiveCellChanged({ value: newCell });\n }\n }\n }\n if (!cellComparator(initialCell, newCell)) {\n hideTooltip(true);\n }\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: newCell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { MutableRef } from 'preact/hooks';\nimport { keyExtractor } from '../../utils/PRIVATE_collectionUtils';\nimport { Keys, containsKey, isSameKey, addKey, removeKey } from '../../utils/UNSAFE_keys';\nimport { ActiveCell, ActiveCellDetail, SizingInfo, TableColumn, ViewportInfo } from '../Table';\nimport {\n logicalCellExtractor,\n getCellType,\n getRowKey,\n getRowKeyForRowIndex,\n getRowIndexForRowElement,\n getElementFromCell,\n getColumnIndexForHeaderFooterElement\n} from './TableDomUtils';\nimport { applyScrollDetail } from './TableScrollUtils';\nimport { SelectionMode } from '../../UNSAFE_Collection';\nimport { TableSelectionDetail } from '../../UNSAFE_TableView';\n\n/**\n * Helper function to handle a selection gesture (click, spacebar, etc...)\n */\nexport function handleSelectionGesture<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n targetElement: HTMLElement,\n isMultiSelectGesture: boolean,\n onSelectionChange: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void,\n isDropDownSelection: boolean,\n selectionMode?: { row?: SelectionMode; column?: SelectionMode },\n selected?: { row?: Keys<K>; column?: Keys<C> }\n) {\n const emptyKeys = { all: false, keys: new Set() };\n let selectedRows = selected?.row != null ? selected.row : (emptyKeys as Keys<K>);\n let selectedColumns = selected?.column != null ? selected.column : (emptyKeys as Keys<C>);\n\n const newRowKey = keyExtractor<K>(targetElement, `[data-oj-table-data-row='${tableId}']`);\n if (newRowKey != null) {\n if (selectionMode?.row === 'single' || selectionMode?.row === 'multiple') {\n const isMultiSelectRowGesture = isMultiSelectGesture || isDropDownSelection;\n if (selectedRows == null) {\n selectedRows = { all: false, keys: new Set([newRowKey]) };\n } else if (!containsKey(selectedRows, newRowKey)) {\n if (isMultiSelectRowGesture && selectionMode.row === 'multiple') {\n selectedRows = addKey(selectedRows, newRowKey);\n } else {\n selectedRows = { all: false, keys: new Set([newRowKey]) };\n }\n } else if (isMultiSelectRowGesture) {\n selectedRows = removeKey(selectedRows, newRowKey, false);\n } else {\n selectedRows = { all: false, keys: new Set([newRowKey]) };\n }\n selectedColumns = emptyKeys as Keys<C>;\n }\n } else if (selectionMode?.column === 'single' || selectionMode?.column === 'multiple') {\n const cellElement = targetElement.closest(\n `[data-oj-table-focusable='${tableId}']`\n ) as HTMLElement;\n if (cellElement != null) {\n const cellType = getCellType(cellElement);\n if (cellType === 'header' || cellType === 'footer') {\n const index = getColumnIndexForHeaderFooterElement(\n rootElement,\n tableId,\n cellElement,\n cellType === 'header'\n );\n if (index != null) {\n const column = columnsArray[index];\n if (column.value.selectable !== 'disabled') {\n if (selectedColumns == null) {\n selectedColumns = { all: false, keys: new Set([column.key]) };\n } else if (!containsKey(selectedColumns, column.key)) {\n if (isMultiSelectGesture && selectionMode.column === 'multiple') {\n selectedColumns = addKey(selectedColumns, column.key);\n } else {\n selectedColumns = { all: false, keys: new Set([column.key]) };\n }\n } else if (isMultiSelectGesture) {\n selectedColumns = removeKey(selectedColumns, column.key, false);\n } else {\n selectedColumns = { all: false, keys: new Set([column.key]) };\n }\n selectedRows = emptyKeys as Keys<K>;\n }\n }\n }\n }\n }\n\n if (!isSameKey(selectedRows, selected?.row) || !isSameKey(selectedColumns, selected?.column)) {\n onSelectionChange(\n { value: { row: selectedRows, column: selectedColumns }, target: targetElement },\n false\n );\n }\n}\n\n/**\n * Helper function to calculate and apply a new selection state corresponding to the range provided\n */\nfunction _applyRangeSelection<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n targetElement: HTMLElement,\n startIndex: number,\n endIndex: number,\n isRowGesture: boolean,\n onSelectionChange: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void,\n isDropDownSelection: boolean,\n selectionMode?: { row?: SelectionMode; column?: SelectionMode },\n selected?: { row?: Keys<K>; column?: Keys<C> },\n previousEndIndex?: number\n) {\n const emptyKeys = { all: false, keys: new Set() };\n let selectedRows = selected?.row != null ? selected.row : (emptyKeys as Keys<K>);\n let selectedColumns = selected?.column != null ? selected.column : (emptyKeys as Keys<C>);\n\n if (isRowGesture) {\n selectedColumns = emptyKeys as Keys<C>;\n if (selectionMode?.row === 'multiple') {\n selectedRows = isDropDownSelection ? selectedRows : (emptyKeys as Keys<K>);\n // selected rows should be added in the order that they are selected\n if (startIndex <= endIndex) {\n for (let i = startIndex; i <= endIndex; i++) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = addKey(selectedRows, key) as Keys<K>;\n }\n // for dropdown selection gesture is additive except for rows added from previous gesture\n if (isDropDownSelection && previousEndIndex != null) {\n if (previousEndIndex > endIndex) {\n for (let i = previousEndIndex; i > endIndex; i--) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = removeKey(selectedRows, key, false) as Keys<K>;\n }\n } else if (previousEndIndex < startIndex) {\n for (let i = previousEndIndex; i < startIndex; i++) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = removeKey(selectedRows, key, false) as Keys<K>;\n }\n }\n }\n } else {\n for (let i = startIndex; i >= endIndex; i--) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = addKey(selectedRows, key) as Keys<K>;\n }\n // for dropdown selection gesture is additive except for rows added from previous gesture\n if (isDropDownSelection && previousEndIndex != null) {\n if (previousEndIndex < endIndex) {\n for (let i = previousEndIndex; i < endIndex; i++) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = removeKey(selectedRows, key, false) as Keys<K>;\n }\n } else if (previousEndIndex > startIndex) {\n for (let i = previousEndIndex; i > startIndex; i--) {\n const key = getRowKeyForRowIndex<K>(rootElement, tableId, i);\n selectedRows = removeKey(selectedRows, key, false) as Keys<K>;\n }\n }\n }\n }\n }\n } else {\n selectedRows = emptyKeys as Keys<K>;\n if (selectionMode?.column === 'multiple') {\n selectedColumns = emptyKeys as Keys<C>;\n // selected columns should be added in the order that they are selected\n if (startIndex <= endIndex) {\n for (let i = startIndex; i <= endIndex; i++) {\n const column = columnsArray[i];\n if (column.value.selectable !== 'disabled') {\n selectedColumns = addKey(selectedColumns, column.key);\n }\n }\n } else {\n for (let i = startIndex; i >= endIndex; i--) {\n const column = columnsArray[i];\n if (column.value.selectable !== 'disabled') {\n selectedColumns = addKey(selectedColumns, column.key);\n }\n }\n }\n }\n }\n\n if (!isSameKey(selectedRows, selected?.row) || !isSameKey(selectedColumns, selected?.column)) {\n onSelectionChange(\n { value: { row: selectedRows, column: selectedColumns }, target: targetElement },\n true\n );\n }\n}\n\n/**\n * Determines whether a potential range selection gesture is valid based on the given target\n */\nexport function isRangeSelectionGesture<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n targetElement: HTMLElement,\n activeCell: ActiveCell<K, C>,\n selectionMode?: { row?: SelectionMode; column?: SelectionMode }\n) {\n const targetCell = logicalCellExtractor<K, D, C>(targetElement, tableId, columnsArray);\n if (\n ((selectionMode?.row === 'multiple' && activeCell.type === 'data') ||\n (selectionMode?.column === 'multiple' &&\n (activeCell.type === 'header' || activeCell.type === 'footer'))) &&\n targetCell?.type === activeCell.type\n ) {\n const activeCellElement = getElementFromCell(rootElement, tableId, activeCell);\n const targetCellElement = getElementFromCell(rootElement, tableId, targetCell);\n if (activeCellElement != null && targetCellElement != null) {\n const isRow = targetCell.type === 'data';\n if (isRow) {\n return (\n getRowIndexForRowElement(\n rootElement,\n tableId,\n activeCellElement.parentElement as HTMLElement\n ) != null &&\n getRowIndexForRowElement(\n rootElement,\n tableId,\n targetCellElement.parentElement as HTMLElement\n ) != null\n );\n } else if (targetCell.type === 'header' || targetCell.type === 'footer') {\n const isHeader = targetCell.type === 'header';\n return (\n getColumnIndexForHeaderFooterElement(rootElement, tableId, activeCellElement, isHeader) !=\n null &&\n getColumnIndexForHeaderFooterElement(rootElement, tableId, targetCellElement, isHeader) !=\n null\n );\n }\n }\n }\n return false;\n}\n\n/**\n * Helper function to handle a range selection gesture (shift+click)\n */\nexport function handleRangeSelectionGesture<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n targetElement: HTMLElement,\n activeCell: ActiveCell<K, C>,\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isSelectionExtension?: boolean) => void,\n selectionExtensionElementRef: MutableRef<HTMLElement | undefined>,\n onSelectionChange: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void,\n isDropDownSelection: boolean,\n selectionMode?: { row?: SelectionMode; column?: SelectionMode },\n selected?: { row?: Keys<K>; column?: Keys<C> }\n) {\n const targetCell = logicalCellExtractor<K, D, C>(targetElement, tableId, columnsArray);\n if (targetCell != null) {\n const activeCellElement = getElementFromCell(rootElement, tableId, activeCell);\n const targetCellElement = getElementFromCell(rootElement, tableId, targetCell);\n if (activeCellElement != null && targetCellElement != null) {\n if (\n ((selectionMode?.row === 'multiple' && targetCell.type === 'data') ||\n (selectionMode?.column === 'multiple' &&\n (targetCell.type === 'header' || targetCell.type === 'footer'))) &&\n targetCell.type === activeCell.type\n ) {\n let startIndex;\n let endIndex;\n let previousEndIndex;\n let endElement;\n const isRow = targetCell.type === 'data';\n if (isRow) {\n endElement = targetCellElement.parentElement as HTMLElement;\n const startElement =\n isDropDownSelection && selectionExtensionElementRef.current != null\n ? selectionExtensionElementRef.current\n : (activeCellElement.parentElement as HTMLElement);\n startIndex = getRowIndexForRowElement(rootElement, tableId, startElement);\n endIndex = getRowIndexForRowElement(rootElement, tableId, endElement);\n const previousElement = isDropDownSelection\n ? (activeCellElement.parentElement as HTMLElement)\n : selectionExtensionElementRef.current;\n if (previousElement != null) {\n previousEndIndex = getRowIndexForRowElement(rootElement, tableId, previousElement);\n }\n } else if (targetCell.type === 'header' || targetCell.type === 'footer') {\n const isHeader = targetCell.type === 'header';\n endElement = targetCellElement;\n startIndex = getColumnIndexForHeaderFooterElement(\n rootElement,\n tableId,\n activeCellElement,\n isHeader\n );\n endIndex = getColumnIndexForHeaderFooterElement(\n rootElement,\n tableId,\n targetCellElement,\n isHeader\n );\n }\n if (startIndex != null && endIndex != null) {\n if (!isRow || !isDropDownSelection) {\n selectionExtensionElementRef.current = endElement;\n } else {\n if (selectionExtensionElementRef.current == null) {\n selectionExtensionElementRef.current = activeCellElement.parentElement as HTMLElement;\n }\n onActiveCellChanged({ value: targetCell }, true);\n targetCellElement.focus({ preventScroll: true });\n }\n _applyRangeSelection(\n rootElement,\n tableId,\n columnsArray,\n targetElement,\n startIndex,\n endIndex,\n isRow,\n onSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected,\n previousEndIndex\n );\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Helper function to handle a selection extension gesture (shift+arrow key)\n */\nexport function handleExtendSelectionGesture<K extends string | number, D, C extends string>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n tableId: string,\n columnsArray: TableColumn<K, D, C>[],\n sizingInfoRef: MutableRef<SizingInfo>,\n targetElement: HTMLElement,\n isPrevious: boolean,\n activeCell: ActiveCell<K, C>,\n selectionExtensionElementRef: MutableRef<HTMLElement | undefined>,\n onSelectionChange: (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => void,\n isDropDownSelection: boolean,\n isRtl: boolean,\n fullColumnWidths?: number[],\n selectionMode?: { row?: SelectionMode; column?: SelectionMode },\n selected?: { row?: Keys<K>; column?: Keys<C> }\n) {\n const activeCellElement = getElementFromCell(rootElement, tableId, activeCell);\n if (activeCellElement != null) {\n let startIndex;\n let startElement;\n const isRow = activeCell.type === 'data';\n const isHeader = activeCell.type === 'header';\n if (isRow) {\n startElement =\n isDropDownSelection && selectionExtensionElementRef.current != null\n ? selectionExtensionElementRef.current\n : (activeCellElement.parentElement as HTMLElement);\n startIndex = getRowIndexForRowElement(rootElement, tableId, startElement);\n } else {\n startElement = activeCellElement;\n startIndex = getColumnIndexForHeaderFooterElement(\n rootElement,\n tableId,\n startElement,\n isHeader\n );\n }\n if (startIndex != null) {\n let endIndex;\n let previousEndIndex;\n let extendedElement;\n const cursorElement =\n isDropDownSelection && isRow\n ? (activeCellElement.parentElement as HTMLElement)\n : selectionExtensionElementRef.current;\n if (cursorElement != null) {\n previousEndIndex = isRow\n ? getRowIndexForRowElement(rootElement, tableId, cursorElement)\n : getColumnIndexForHeaderFooterElement(rootElement, tableId, cursorElement, isHeader);\n extendedElement = isPrevious\n ? (cursorElement.previousElementSibling as HTMLElement)\n : (cursorElement.nextElementSibling as HTMLElement);\n if (extendedElement != null && (!isRow || (isRow && getRowKey(extendedElement) != null))) {\n if (!isDropDownSelection || !isRow) {\n selectionExtensionElementRef.current = extendedElement;\n } else if (selectionExtensionElementRef.current == null) {\n selectionExtensionElementRef.current = activeCellElement.parentElement as HTMLElement;\n }\n endIndex = isRow\n ? getRowIndexForRowElement(rootElement, tableId, extendedElement)\n : getColumnIndexForHeaderFooterElement(rootElement, tableId, extendedElement, isHeader);\n } else {\n endIndex = isRow\n ? getRowIndexForRowElement(rootElement, tableId, cursorElement)\n : getColumnIndexForHeaderFooterElement(rootElement, tableId, cursorElement, isHeader);\n }\n } else {\n extendedElement = isPrevious\n ? (startElement.previousElementSibling as HTMLElement)\n : (startElement.nextElementSibling as HTMLElement);\n if (extendedElement != null && (!isRow || (isRow && getRowKey(extendedElement) != null))) {\n selectionExtensionElementRef.current = extendedElement;\n endIndex = isRow\n ? getRowIndexForRowElement(rootElement, tableId, extendedElement)\n : getColumnIndexForHeaderFooterElement(rootElement, tableId, extendedElement, isHeader);\n } else {\n endIndex = startIndex;\n }\n }\n if (endIndex != null) {\n _applyRangeSelection(\n rootElement,\n tableId,\n columnsArray,\n targetElement,\n startIndex,\n endIndex,\n isRow,\n onSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected,\n previousEndIndex\n );\n }\n\n // scroll 'extensionElement' into view if focus is not shifted\n if (!isRow || !isDropDownSelection) {\n const extensionElement =\n selectionExtensionElementRef.current != null\n ? selectionExtensionElementRef.current\n : activeCellElement;\n let extensionCell;\n if (isRow) {\n const rowKey = keyExtractor<K>(extensionElement, `[data-oj-table-data-row='${tableId}']`);\n if (rowKey != null) {\n extensionCell = {\n type: activeCell.type,\n rowKey: rowKey,\n columnKey: activeCell.columnKey\n };\n }\n } else {\n extensionCell = logicalCellExtractor<K, D, C>(extensionElement, tableId, columnsArray);\n }\n if (extensionCell != null) {\n applyScrollDetail(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef.current,\n { cell: extensionCell, locationX: 'inView', locationY: 'inView' },\n isRtl,\n fullColumnWidths\n );\n }\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, MutableRef } from 'preact/hooks';\nimport { getClientHints } from '../../utils/PRIVATE_clientHints';\nimport { Keys } from '../../utils/UNSAFE_keys';\nimport {\n ActiveCell,\n ActiveCellDetail,\n SizingInfo,\n TableColumn,\n TableData,\n ViewportInfo\n} from '../Table';\nimport { handleRowActionGesture, handleSortActionGesture } from '../utils/TableActionUtils';\nimport { getElementFromCell } from '../utils/TableDomUtils';\nimport {\n handleAdjacentRowGesture,\n handleAdjacentColumnGesture,\n handlePageRowGesture,\n handleJumpColumnGesture\n} from '../utils/TableNavigationUtils';\nimport { handleSelectionGesture, handleExtendSelectionGesture } from '../utils/TableSelectionUtils';\nimport { SelectionMode } from '../../UNSAFE_Collection';\nimport { RowActionDetail, SortCriterionDetail, TableSelectionDetail } from '../../UNSAFE_TableView';\n\ntype UseKeyboardHandlingProps<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n tableId: string;\n tableData: TableData<K, D>[];\n isRtl: boolean;\n isTabbableMode: boolean;\n columnsArray: TableColumn<K, D, C>[];\n sizingInfoRef: MutableRef<SizingInfo>;\n selectionExtensionElementRef: MutableRef<HTMLElement | undefined>;\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isSelectionExtension?: boolean) => void;\n fullColumnWidths?: number[];\n activeCell?: ActiveCell<K, C>;\n isDropDownSelection: boolean;\n selectionMode?: { row?: SelectionMode; column?: SelectionMode };\n selected?: { row?: Keys<K>; column?: Keys<C> };\n onTableSelectionChange?: (\n detail: TableSelectionDetail<K, C>,\n isExtendableSelection: boolean\n ) => void;\n onRowAction?: (detail: RowActionDetail<K, D>) => void;\n sortCriterion?: { key: C; sortDirection: 'ascending' | 'descending' }[];\n onSortCriterionChange?: (detail: SortCriterionDetail<C>) => void;\n hideTooltip: (isImmediate?: boolean) => void;\n};\n\n/**\n * Hook that manages keyboard interactions on the Preact Table\n */\nexport function useKeyboardHandling<K extends string | number, D, C extends string>({\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n isRtl,\n isTabbableMode,\n columnsArray,\n sizingInfoRef,\n selectionExtensionElementRef,\n fullColumnWidths,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n hideTooltip\n}: UseKeyboardHandlingProps<K, D, C>) {\n // Keydown handler for the outer Table. This handles all internal\n // keyboard navigation for the Table.\n const _keyDownHandler = useCallback(\n (event: KeyboardEvent) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null) {\n const platform = getClientHints().platform;\n const keyHandlers: Record<string, () => void> = {\n ' ': function () {\n if (activeCell != null) {\n if (!isTabbableMode) {\n if (onTableSelectionChange != null && !event.repeat) {\n handleSelectionGesture(\n rootElement,\n tableId,\n columnsArray,\n getElementFromCell(rootElement, tableId, activeCell) as HTMLElement,\n true,\n onTableSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected\n );\n }\n event.preventDefault();\n }\n if (\n onRowAction != null &&\n !event.repeat &&\n handleRowActionGesture(\n rootElement,\n tableId,\n tableData,\n onRowAction,\n event.target as HTMLElement,\n activeCell\n )\n ) {\n event.stopPropagation();\n }\n }\n },\n Enter: function () {\n if (activeCell != null) {\n if (activeCell.type === 'data') {\n if (isDropDownSelection && !isTabbableMode) {\n if (onTableSelectionChange != null && !event.repeat) {\n handleSelectionGesture(\n rootElement,\n tableId,\n columnsArray,\n getElementFromCell(rootElement, tableId, activeCell) as HTMLElement,\n true,\n onTableSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected\n );\n }\n event.preventDefault();\n }\n if (\n onRowAction != null &&\n !event.repeat &&\n handleRowActionGesture(\n rootElement,\n tableId,\n tableData,\n onRowAction,\n event.target as HTMLElement,\n activeCell\n )\n ) {\n event.stopPropagation();\n }\n } else if (\n activeCell.type === 'header' &&\n !isTabbableMode &&\n !event.repeat &&\n onSortCriterionChange != null &&\n handleSortActionGesture(\n columnsArray,\n activeCell.columnKey,\n onSortCriterionChange,\n sortCriterion\n )\n ) {\n event.stopPropagation();\n }\n }\n },\n ArrowUp: function () {\n if (!isTabbableMode && activeCell != null) {\n let isExtendSelectionGesture = false;\n if (\n activeCell.type === 'data' &&\n event.shiftKey &&\n onTableSelectionChange != null &&\n selectionMode?.row === 'multiple'\n ) {\n handleExtendSelectionGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n rootElement,\n true,\n activeCell,\n selectionExtensionElementRef,\n onTableSelectionChange,\n isDropDownSelection,\n isRtl,\n fullColumnWidths,\n selectionMode,\n selected\n );\n isExtendSelectionGesture = true;\n }\n if (!isExtendSelectionGesture || isDropDownSelection) {\n handleAdjacentRowGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n true,\n isExtendSelectionGesture,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n }\n event.preventDefault();\n }\n },\n ArrowDown: function () {\n if (!isTabbableMode && activeCell != null) {\n let isExtendSelectionGesture = false;\n if (\n activeCell.type === 'data' &&\n event.shiftKey &&\n onTableSelectionChange != null &&\n selectionMode?.row === 'multiple'\n ) {\n handleExtendSelectionGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n rootElement,\n false,\n activeCell,\n selectionExtensionElementRef,\n onTableSelectionChange,\n isDropDownSelection,\n isRtl,\n fullColumnWidths,\n selectionMode,\n selected\n );\n isExtendSelectionGesture = true;\n }\n if (!isExtendSelectionGesture || isDropDownSelection) {\n handleAdjacentRowGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n false,\n isExtendSelectionGesture,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n }\n event.preventDefault();\n }\n },\n ArrowLeft: function () {\n if (!isTabbableMode && activeCell != null) {\n if (\n (activeCell.type === 'header' || activeCell.type === 'footer') &&\n event.shiftKey &&\n onTableSelectionChange != null &&\n selectionMode?.column === 'multiple'\n ) {\n handleExtendSelectionGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n rootElement,\n true,\n activeCell,\n selectionExtensionElementRef,\n onTableSelectionChange,\n isDropDownSelection,\n isRtl,\n fullColumnWidths,\n selectionMode,\n selected\n );\n } else {\n handleAdjacentColumnGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n !isRtl,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n }\n event.preventDefault();\n }\n },\n ArrowRight: function () {\n if (!isTabbableMode && activeCell != null) {\n if (\n (activeCell.type === 'header' || activeCell.type === 'footer') &&\n event.shiftKey &&\n onTableSelectionChange != null &&\n selectionMode?.column === 'multiple'\n ) {\n handleExtendSelectionGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n rootElement,\n false,\n activeCell,\n selectionExtensionElementRef,\n onTableSelectionChange,\n isDropDownSelection,\n isRtl,\n fullColumnWidths,\n selectionMode,\n selected\n );\n } else {\n handleAdjacentColumnGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n isRtl,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n }\n event.preventDefault();\n }\n },\n PageUp: function () {\n if (!isTabbableMode && activeCell != null) {\n handlePageRowGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n true,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n event.preventDefault();\n }\n },\n PageDown: function () {\n if (!isTabbableMode && activeCell != null) {\n handlePageRowGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n false,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n event.preventDefault();\n }\n },\n Home: function () {\n if (!isTabbableMode && activeCell != null) {\n handleJumpColumnGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n true,\n platform === 'mac' ? event.metaKey : event.ctrlKey,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n event.preventDefault();\n }\n },\n End: function () {\n if (!isTabbableMode && activeCell != null) {\n handleJumpColumnGesture(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n columnsArray,\n sizingInfoRef,\n activeCell,\n onActiveCellChanged,\n false,\n platform === 'mac' ? event.metaKey : event.ctrlKey,\n isRtl,\n hideTooltip,\n fullColumnWidths\n );\n event.preventDefault();\n }\n }\n };\n if (Object.keys(keyHandlers).includes(event.key)) {\n keyHandlers[event.key]();\n }\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n isRtl,\n isTabbableMode,\n columnsArray,\n sizingInfoRef,\n selectionExtensionElementRef,\n fullColumnWidths,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n hideTooltip\n ]\n );\n\n return { onKeyDown: _keyDownHandler };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { MutableRef } from 'preact/hooks';\nimport { ColumnResizeInfo, TableColumn } from '../Table';\nimport { ColumnResizeDetail, ColumnWidths } from '../../UNSAFE_TableView';\nimport { getElementContainsFunc } from '../../utils/PRIVATE_collectionUtils';\n\n/**\n * Helper function to handle a hover over a resizable column region gesture.\n */\nexport function handleOverResizeRegionGesture<K, D, C>(\n rootElement: HTMLDivElement,\n tableId: string,\n event: PointerEvent,\n columnsArray: TableColumn<K, D, C>[],\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean\n) {\n // handle hover feedback around potentially resizable columns\n _updateResizingState(rootElement, tableId, event, columnsArray, resizeInfoRef, isRtl);\n}\n\n/**\n * Helper function to handle a column resize start gesture (pointer down).\n */\nexport function handleColumnResizeStartGesture<K, D, C extends string>(\n rootElement: HTMLDivElement,\n scrollerElement: HTMLElement,\n tableId: string,\n event: PointerEvent,\n columnsArray: TableColumn<K, D, C>[],\n appliedColumnWidths: ColumnWidths<C>,\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean,\n fullColumnWidths?: number[],\n onColumnResizing?: (detail: ColumnResizeDetail<C>) => void\n) {\n if (fullColumnWidths != null) {\n if (resizeInfoRef.current.key == null) {\n _updateResizingState(rootElement, tableId, event, columnsArray, resizeInfoRef, isRtl);\n }\n if (resizeInfoRef.current.key != null) {\n const rect = scrollerElement.getBoundingClientRect();\n const pointerX = isRtl ? rect.right - event.clientX : event.clientX - rect.left;\n\n const resizeColumnWidths = [];\n for (let i = 0; i < fullColumnWidths.length; i++) {\n const columnWidth = fullColumnWidths[i];\n resizeColumnWidths.push(columnWidth as number);\n }\n resizeInfoRef.current = {\n isResizing: true,\n isResizeHover: true,\n key: resizeInfoRef.current.key,\n startX: pointerX,\n delta: 0,\n fullColumnWidths: resizeColumnWidths,\n ignoreClick: resizeInfoRef.current.ignoreClick\n };\n if (onColumnResizing != null) {\n onColumnResizing({\n key: resizeInfoRef.current.key,\n delta: 0,\n allColumnWidths: appliedColumnWidths\n });\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * Helper function to ensure the resizing state is updated based on the latest pointer event.\n */\nfunction _updateResizingState<K, D, C>(\n rootElement: HTMLDivElement,\n tableId: string,\n event: PointerEvent,\n columnsArray: TableColumn<K, D, C>[],\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean\n) {\n const headerRowElement = rootElement.querySelector(\n `[data-oj-table-header-row='${tableId}']`\n ) as HTMLElement;\n if (headerRowElement != null) {\n const headerElements = headerRowElement.querySelectorAll(\n `[data-oj-table-header-cell='${tableId}']`\n ) as NodeListOf<HTMLElement>;\n if (getElementContainsFunc(headerRowElement)(event.target as HTMLElement)) {\n let isResizeHover = false;\n for (let i = 0; i < headerElements.length; i++) {\n const headerElement = headerElements[i];\n const cellRect = headerElement.getBoundingClientRect();\n const endEdge = isRtl ? cellRect.left : cellRect.right;\n if (Math.abs(endEdge - event.pageX) <= 8) {\n if (columnsArray[i].value.edgeResizable !== 'enabled') {\n break;\n }\n // resize operation on end side of header cell\n resizeInfoRef.current.key = columnsArray[i].key;\n headerRowElement.style.cursor = 'col-resize';\n isResizeHover = true;\n resizeInfoRef.current.isResizeHover = true;\n }\n }\n if (!isResizeHover) {\n headerRowElement.style.cursor = '';\n resizeInfoRef.current.key = undefined;\n resizeInfoRef.current.isResizeHover = false;\n }\n } else {\n if (headerRowElement != null) {\n headerRowElement.style.cursor = '';\n }\n resizeInfoRef.current.key = undefined;\n resizeInfoRef.current.isResizeHover = false;\n }\n }\n}\n\n/**\n * Helper function to handle a pointer move gesture during a column resize.\n */\nexport function handleColumnResizingGesture<C extends string>(\n scrollerElement: HTMLElement,\n event: PointerEvent,\n appliedColumnWidths: ColumnWidths<C>,\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean,\n fullColumnWidths?: number[],\n onColumnResizing?: (detail: ColumnResizeDetail<C>) => void\n) {\n if (resizeInfoRef.current.isResizing && fullColumnWidths != null) {\n const rect = scrollerElement.getBoundingClientRect();\n const currentX = isRtl ? rect.right - event.clientX : event.clientX - rect.left;\n\n resizeInfoRef.current.delta = currentX - resizeInfoRef.current.startX;\n // handle resize move operation\n if (onColumnResizing != null) {\n onColumnResizing({\n key: resizeInfoRef.current.key,\n delta: resizeInfoRef.current.delta,\n allColumnWidths: appliedColumnWidths\n });\n }\n }\n}\n\n/**\n * Helper function to handle a column resize end gesture (pointer up).\n */\nexport function handleColumnResizeEndGesture<C extends string>(\n scrollerElement: HTMLElement,\n event: PointerEvent,\n appliedColumnWidths: ColumnWidths<C>,\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean,\n onColumnResize?: (detail: ColumnResizeDetail<C>) => void\n) {\n if (resizeInfoRef.current.isResizing) {\n if (onColumnResize != null) {\n const resizeColumnWidths = [];\n for (const columnWidth of resizeInfoRef.current.fullColumnWidths) {\n resizeColumnWidths.push(columnWidth);\n }\n const rect = scrollerElement.getBoundingClientRect();\n const currentX = isRtl ? rect.right - event.clientX : event.clientX - rect.left;\n\n resizeInfoRef.current.delta = currentX - resizeInfoRef.current.startX;\n onColumnResize({\n key: resizeInfoRef.current.key,\n delta: resizeInfoRef.current.delta,\n allColumnWidths: appliedColumnWidths\n });\n }\n }\n resizeInfoRef.current = {\n isResizing: false,\n isResizeHover: resizeInfoRef.current.isResizeHover,\n ignoreClick: resizeInfoRef.current.ignoreClick\n };\n}\n\n/**\n * Helper function to handle the pointer leaving the entire Table when previously hovering\n * over a column resize region.\n */\nexport function handleLeaveResizingGesture<C>(\n rootElement: HTMLDivElement,\n tableId: string,\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>\n) {\n if (!resizeInfoRef.current.isResizing) {\n const headerRowElement = rootElement.querySelector(\n `[data-oj-table-header-row='${tableId}']`\n ) as HTMLElement;\n if (headerRowElement != null) {\n headerRowElement.style.cursor = '';\n }\n resizeInfoRef.current.isResizeHover = false;\n }\n}\n\n/**\n * Helper function to handle a pointer entering the Table when it was previously handling\n * a column resize gesture.\n */\nexport function handleEnterResizingGesture<C extends string>(\n scrollerElement: HTMLElement,\n event: PointerEvent,\n appliedColumnWidths: ColumnWidths<C>,\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>,\n isRtl: boolean,\n onColumnResize?: (detail: ColumnResizeDetail<C>) => void\n) {\n // handle case where user was resizing, moved pointer out of the Table,\n // released the button, and has now entered the table once again\n if (resizeInfoRef.current.isResizing && event.buttons === 0) {\n handleColumnResizeEndGesture(\n scrollerElement,\n event,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n onColumnResize\n );\n }\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { Dispatch, StateUpdater } from 'preact/hooks';\nimport { getCellType, getColumnKey } from './TableDomUtils';\n\n/**\n * Helper function to handle a hover over a column header region gesture.\n */\nexport function handleOverColumnHeaderGesture<C>(\n tableId: string,\n event: PointerEvent,\n setHoverColumnKey: Dispatch<StateUpdater<C | undefined>>,\n hoverColumnKey?: C\n) {\n // only enable sort icon visibility due to mouse events\n if (event.pointerType === 'mouse') {\n const cellElement = (event.target as HTMLElement).closest(\n `[data-oj-table-focusable='${tableId}']`\n ) as HTMLElement;\n if (cellElement != null && getCellType(cellElement) === 'header') {\n const columnKey = getColumnKey<C>(cellElement);\n if (columnKey !== hoverColumnKey) {\n setHoverColumnKey(columnKey);\n }\n } else if (hoverColumnKey != null) {\n setHoverColumnKey(undefined);\n }\n }\n}\n\n/**\n * Helper function to handle a mouse leave the table region.\n */\nexport function handleLeaveColumnHeaderGesture<C>(\n setHoverColumnKey: Dispatch<StateUpdater<C | undefined>>,\n hoverColumnKey?: C\n) {\n if (hoverColumnKey != null) {\n setHoverColumnKey(undefined);\n }\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useRef, useState, MutableRef } from 'preact/hooks';\nimport { getClientHints } from '../../utils/PRIVATE_clientHints';\nimport { getIsSelectionPending } from '../../utils/PRIVATE_textSelectionUtils';\nimport { Keys } from '../../utils/UNSAFE_keys';\nimport {\n ActiveCell,\n ActiveCellDetail,\n ColumnResizeInfo,\n TableColumn,\n TableData,\n ViewportInfo\n} from '../Table';\nimport { handleRowActionGesture } from '../utils/TableActionUtils';\nimport { logicalCellExtractor } from '../utils/TableDomUtils';\nimport {\n handleSelectionGesture,\n handleRangeSelectionGesture,\n isRangeSelectionGesture\n} from '../utils/TableSelectionUtils';\nimport {\n handleOverResizeRegionGesture,\n handleColumnResizeStartGesture,\n handleColumnResizingGesture,\n handleColumnResizeEndGesture,\n handleLeaveResizingGesture,\n handleEnterResizingGesture\n} from '../utils/TableSizingUtils';\nimport {\n handleOverColumnHeaderGesture,\n handleLeaveColumnHeaderGesture\n} from '../utils/TableSortUtils';\nimport {\n handleLeaveTableTooltipGesture,\n handleMoveTooltipGesture\n} from '../utils/TableTooltipUtils';\nimport { SelectionMode } from '../../UNSAFE_Collection';\nimport {\n Cell,\n ColumnWidths,\n RowActionDetail,\n ColumnResizeDetail,\n TableSelectionDetail\n} from '../../UNSAFE_TableView';\n\ntype PointerInfo = {\n target: EventTarget | null;\n x: number;\n y: number;\n}\n\ntype UsePointerHandlingOptions<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n tableId: string;\n tableData: TableData<K, D>[];\n isRtl: boolean;\n columnsArray: TableColumn<K, D, C>[];\n appliedColumnWidths?: ColumnWidths<C>;\n resizeInfoRef: MutableRef<ColumnResizeInfo<C>>;\n selectionExtensionElementRef: MutableRef<HTMLElement | undefined>;\n fullColumnWidths?: number[];\n onColumnResizing?: (detail: ColumnResizeDetail<C>) => void;\n onColumnResize?: (detail: ColumnResizeDetail<C>) => void;\n activeCell?: ActiveCell<K, C>;\n onActiveCellChanged: (detail: ActiveCellDetail<K, C>, isSelectionExtension?: boolean) => void;\n isDropDownSelection: boolean;\n selectionMode?: { row?: SelectionMode; column?: SelectionMode };\n selected?: { row?: Keys<K>; column?: Keys<C> };\n onTableSelectionChange?: (\n detail: TableSelectionDetail<K, C>,\n isSelectionExtension: boolean\n ) => void;\n onRowAction?: (detail: RowActionDetail<K, D>) => void;\n showTooltip: (cell: Cell<K, C>) => void;\n hideTooltip: (isImmediate?: boolean) => void;\n tooltipId: string;\n};\n\n/**\n * Hook that manages pointer interactions on the Preact Table\n */\nexport function usePointerHandling<K extends string | number, D, C extends string>({\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n isRtl,\n columnsArray,\n appliedColumnWidths,\n resizeInfoRef,\n selectionExtensionElementRef,\n fullColumnWidths,\n onColumnResizing,\n onColumnResize,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction,\n showTooltip,\n hideTooltip,\n tooltipId\n}: UsePointerHandlingOptions<K, D, C>) {\n // tracks whether the most recent 'pointerdown' event was due to a touch gesture\n const selectionTouchRef = useRef<boolean>(false);\n\n // tracks the column key for any header being hovered over\n const [hoverColumnKey, setHoverColumnKey] = useState<C>();\n\n // tracks the current 'pointer over' element for comparison during 'click' event handling to\n // prevent screen readers from triggering undesired selection gestures from simulated events\n const pointerInfoRef = useRef<PointerInfo>();\n\n // Pointer move handler for the outer Table.\n const _pointerMoveHandler = useCallback(\n (event: PointerEvent) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null) {\n pointerInfoRef.current = { target: event.target, x: event.clientX, y: event.clientY };\n handleMoveTooltipGesture(tableId, columnsArray, event, showTooltip, hideTooltip, tooltipId);\n if (onColumnResizing != null) {\n if (!resizeInfoRef.current.isResizing) {\n handleOverResizeRegionGesture(\n rootElement,\n tableId,\n event,\n columnsArray,\n resizeInfoRef,\n isRtl\n );\n } else if (scrollerElement != null && appliedColumnWidths != null) {\n handleColumnResizingGesture(\n scrollerElement,\n event,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n fullColumnWidths,\n onColumnResizing\n );\n }\n }\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n fullColumnWidths,\n onColumnResizing,\n showTooltip,\n hideTooltip,\n tooltipId\n ]\n );\n\n // Pointer over handler for the outer Table.\n const _pointerOverHandler = useCallback(\n (event: PointerEvent) => {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n pointerInfoRef.current = { target: event.target, x: event.clientX, y: event.clientY };\n handleOverColumnHeaderGesture(tableId, event, setHoverColumnKey, hoverColumnKey);\n }\n }, [\n rootRef,\n tableId,\n hoverColumnKey\n ]\n );\n\n // Pointer down handler for the outer Table. It ensures the area targeted is 'current'.\n // NOTE - This event handling is triggered prior to 'onFocus' handling and ensures the\n // 'pending current' area is set when an initial pointer interaction focuses the Table.\n const _pointerDownHandler = useCallback(\n (event: PointerEvent) => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null) {\n selectionTouchRef.current = event.pointerType === 'touch';\n const targetElement = event.target as HTMLElement;\n if (\n onTableSelectionChange != null &&\n activeCell != null &&\n event.shiftKey &&\n isRangeSelectionGesture(\n rootElement,\n tableId,\n columnsArray,\n targetElement,\n activeCell,\n selectionMode\n )\n ) {\n // prevent focus change on selection extension gesture\n if (!getIsSelectionPending()) {\n event.preventDefault();\n }\n } else if (\n scrollerElement != null &&\n appliedColumnWidths != null &&\n handleColumnResizeStartGesture(\n rootElement,\n scrollerElement,\n tableId,\n event,\n columnsArray,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n fullColumnWidths,\n onColumnResizing\n )\n ) {\n // prevent focus change on column resize gesture\n event.preventDefault();\n resizeInfoRef.current.ignoreClick = true;\n } else if (logicalCellExtractor<K, D, C>(targetElement, tableId, columnsArray) == null) {\n // prevent focus shift when interacting with 'non-focusable' regions (ie - scrollbar)\n event.preventDefault();\n }\n }\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n activeCell,\n selectionMode,\n onTableSelectionChange,\n fullColumnWidths,\n onColumnResizing\n ]\n );\n\n // Pointer up handler for the outer Table.\n const _pointerUpHandler = useCallback(\n (event: PointerEvent) => {\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (scrollerElement != null && appliedColumnWidths != null) {\n handleColumnResizeEndGesture(\n scrollerElement,\n event,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n onColumnResize\n );\n }\n },\n [viewportInfo, appliedColumnWidths, resizeInfoRef, isRtl, onColumnResize]\n );\n\n // Pointer leave handler for the outer Table.\n const _pointerLeaveHandler = useCallback(\n (event: PointerEvent) => {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n handleLeaveColumnHeaderGesture(setHoverColumnKey, hoverColumnKey);\n handleLeaveResizingGesture(rootElement, tableId, resizeInfoRef);\n handleLeaveTableTooltipGesture(rootElement, event, hideTooltip, tooltipId);\n }\n pointerInfoRef.current = undefined;\n },\n [rootRef, tableId, resizeInfoRef, hoverColumnKey, hideTooltip, tooltipId]\n );\n\n // Pointer enter handler for the outer Table.\n const _pointerEnterHandler = useCallback(\n (event: PointerEvent) => {\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (scrollerElement != null && appliedColumnWidths != null) {\n handleEnterResizingGesture(\n scrollerElement,\n event,\n appliedColumnWidths,\n resizeInfoRef,\n isRtl,\n onColumnResize\n );\n }\n },\n [viewportInfo, appliedColumnWidths, resizeInfoRef, isRtl, onColumnResize]\n );\n\n // Click handler for the outer Table. It ensures the Table's selection state is\n // updated to reflect the area targeted, and any action events are fired correctly.\n const _clickHandler = useCallback(\n (event: PointerEvent) => {\n const rootElement = rootRef.current;\n if (rootElement != null) {\n // only handle click events that match the latest mouse over/move info to prevent screen readers\n // from triggering undesired selections due to simulated click events when transferring focus\n if (\n event.pointerType !== 'mouse' || (\n pointerInfoRef.current != null &&\n pointerInfoRef.current.target === event.target &&\n Math.abs(pointerInfoRef.current.x - event.clientX) <= 1 &&\n Math.abs(pointerInfoRef.current.y - event.clientY) <= 1\n )\n ) {\n let isSelectionExtension = false;\n const platform = getClientHints().platform;\n const target = event.target as HTMLElement;\n if (\n onTableSelectionChange != null &&\n !resizeInfoRef.current.ignoreClick &&\n !getIsSelectionPending()\n ) {\n if (activeCell != null && event.shiftKey) {\n isSelectionExtension = handleRangeSelectionGesture(\n rootElement,\n tableId,\n columnsArray,\n target,\n activeCell,\n onActiveCellChanged,\n selectionExtensionElementRef,\n onTableSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected\n );\n }\n if (!isSelectionExtension) {\n handleSelectionGesture(\n rootElement,\n tableId,\n columnsArray,\n target,\n (platform === 'mac' ? event.metaKey : event.ctrlKey) || selectionTouchRef.current,\n onTableSelectionChange,\n isDropDownSelection,\n selectionMode,\n selected\n );\n }\n }\n if (\n onRowAction != null &&\n !getIsSelectionPending() &&\n handleRowActionGesture(rootElement, tableId, tableData, onRowAction, target)\n ) {\n event.stopPropagation();\n }\n }\n }\n resizeInfoRef.current.ignoreClick = false;\n },\n [\n rootRef,\n tableId,\n columnsArray,\n tableData,\n resizeInfoRef,\n selectionExtensionElementRef,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction\n ]\n );\n\n return {\n pointerHandlingProps: {\n onPointerOver: _pointerOverHandler,\n onPointerMove: _pointerMoveHandler,\n onPointerDown: _pointerDownHandler,\n onPointerUp: _pointerUpHandler,\n onPointerLeave: _pointerLeaveHandler,\n onPointerEnter: _pointerEnterHandler,\n onClick: _clickHandler\n },\n hoverColumnKey\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useLayoutEffect, useRef, MutableRef } from 'preact/hooks';\nimport { TableHorizontalScrollPosition, TableVerticalScrollPosition } from '../../UNSAFE_TableView';\nimport { LayoutInfo, SizingInfo, TableColumn, ViewportInfo } from '../Table';\nimport {\n hideOutOfViewTooltip,\n setHorizontalScrollPosition,\n setVerticalScrollPosition,\n updateStickyEdges\n} from '../utils/TableScrollUtils';\n\ntype UseScrollHandlingProps<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n tableId: string;\n layoutInfo: LayoutInfo;\n sizingInfoRef: MutableRef<SizingInfo>;\n columnsArray: TableColumn<K, D, C>[];\n stickyEdgesState: { start?: number; end?: number };\n setStickyEdgesState: (stickyEdgesState: { start?: number; end?: number }) => void;\n fullColumnWidths?: number[];\n horizontalScrollPositionOverride?: TableHorizontalScrollPosition<C>;\n verticalScrollPositionOverride?: TableVerticalScrollPosition<K>;\n tooltipAnchorRef: MutableRef<HTMLElement | undefined>;\n hideTooltip: (isImmediate?: boolean) => void;\n isPendingLayout: boolean;\n isRtl: boolean;\n};\n\n/**\n * Hook that manages handling scroll events on the Preact Table\n */\nexport function useScrollHandling<K extends string | number, D, C extends string>({\n rootRef,\n viewportInfo,\n tableId,\n layoutInfo,\n sizingInfoRef,\n columnsArray,\n stickyEdgesState,\n setStickyEdgesState,\n fullColumnWidths,\n horizontalScrollPositionOverride,\n verticalScrollPositionOverride,\n tooltipAnchorRef,\n hideTooltip,\n isPendingLayout,\n isRtl\n}: UseScrollHandlingProps<K, D, C>) {\n const horizontalScrollPositionOverrideRef = useRef<TableHorizontalScrollPosition<C>>();\n const verticalScrollPositionOverrideRef = useRef<TableVerticalScrollPosition<K>>();\n\n // update horizontal and/or vertical scroll position if a new value is provided\n // NO DEPENDENCY ARRAY AS THIS SHOULD RUN ON EVERY RENDER\n useLayoutEffect(() => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (\n rootElement != null &&\n scrollerElement != null &&\n !isPendingLayout &&\n !layoutInfo.isLayoutRequired\n ) {\n if (horizontalScrollPositionOverrideRef.current !== horizontalScrollPositionOverride) {\n setHorizontalScrollPosition(\n scrollerElement,\n columnsArray,\n layoutInfo.columnWidthsArray,\n isRtl,\n horizontalScrollPositionOverride\n );\n horizontalScrollPositionOverrideRef.current = horizontalScrollPositionOverride;\n }\n if (verticalScrollPositionOverrideRef.current !== verticalScrollPositionOverride) {\n setVerticalScrollPosition(\n rootElement,\n scrollerElement,\n tableId,\n verticalScrollPositionOverride\n );\n verticalScrollPositionOverrideRef.current = verticalScrollPositionOverride;\n }\n }\n });\n\n // Scroll hander for the outer Table. It ensures the Table's sticky edges are updated\n // and any out of view tooltips are hidden.\n const _scrollHandler = useCallback(() => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (rootElement != null && scrollerElement != null && fullColumnWidths != null) {\n updateStickyEdges(\n scrollerElement,\n columnsArray,\n fullColumnWidths,\n stickyEdgesState,\n setStickyEdgesState,\n scrollerElement.scrollLeft\n );\n hideOutOfViewTooltip(\n rootElement,\n scrollerElement,\n tableId,\n sizingInfoRef.current,\n columnsArray,\n fullColumnWidths,\n tooltipAnchorRef,\n hideTooltip,\n isRtl\n );\n }\n }, [\n rootRef,\n viewportInfo,\n tableId,\n sizingInfoRef,\n columnsArray,\n stickyEdgesState,\n setStickyEdgesState,\n fullColumnWidths,\n tooltipAnchorRef,\n hideTooltip,\n isRtl\n ]);\n\n useLayoutEffect(() => {\n const isExternalScroller = viewportInfo.isExternalScroller;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n let scrollerEventElement: Element | typeof globalThis;\n if (isExternalScroller && scrollerElement != null) {\n if (scrollerElement === document.body || scrollerElement === document.documentElement) {\n scrollerEventElement = window;\n } else {\n scrollerEventElement = scrollerElement;\n }\n scrollerEventElement.addEventListener('scroll', _scrollHandler);\n }\n return () => {\n if (isExternalScroller && scrollerEventElement != null) {\n scrollerEventElement.removeEventListener('scroll', _scrollHandler);\n }\n };\n }, [viewportInfo, _scrollHandler]);\n\n return viewportInfo.isExternalScroller ? {} : { onScroll: _scrollHandler };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useImperativeHandle, useMemo, useRef, MutableRef } from 'preact/hooks';\nimport { ForwardedRef } from 'preact/compat';\nimport { useCollectionInteractionContext } from '../../hooks/UNSAFE_useCollectionInteractionContext';\nimport { Keys } from '../../utils/UNSAFE_keys';\nimport { mergeProps } from '../../utils/UNSAFE_mergeProps';\nimport {\n ActiveCell,\n ColumnResizeInfo,\n LayoutInfo,\n SizingInfo,\n TableColumn,\n TableData,\n ViewportInfo\n} from '../Table';\nimport { getElementFromCell } from '../utils/TableDomUtils';\nimport { useContextMenu } from './useContextMenu';\nimport { useTruncationTooltip } from './useTruncationTooltip';\nimport { useFocusHandling } from './useFocusHandling';\nimport { useKeyboardHandling } from './useKeyboardHandling';\nimport { usePointerHandling } from './usePointerHandling';\nimport { useScrollHandling } from './useScrollHandling';\nimport { getHorizontalScrollPosition, getVerticalScrollPosition } from '../utils/TableScrollUtils';\nimport { SelectionMode } from '../../UNSAFE_Collection';\nimport {\n CellOverride,\n ColumnWidths,\n CurrentCellDetail,\n RowActionDetail,\n SortCriterionDetail,\n ColumnResizeDetail,\n TableContextMenuConfig,\n TableHorizontalScrollPosition,\n TableSelectionDetail,\n TableVerticalScrollPosition,\n TableViewHandle\n} from '../../UNSAFE_TableView';\n\ntype UseInteractionManagerOptions<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n viewportInfo: ViewportInfo;\n ref?: ForwardedRef<TableViewHandle<K, C>>;\n tableId: string;\n tableData: TableData<K, D>[];\n hasMore: boolean;\n hasFooters: boolean;\n isRtl: boolean;\n columnsArray: TableColumn<K, D, C>[];\n appliedColumnWidths?: ColumnWidths<C>;\n layoutInfo: LayoutInfo;\n sizingInfoRef: MutableRef<SizingInfo>;\n stickyEdgesState: { start?: number; end?: number };\n setStickyEdgesState: (stickyEdgesState: { start?: number; end?: number }) => void;\n cellHasRenderer: (cell: ActiveCell<K, C>) => boolean;\n horizontalScrollPositionOverride?: TableHorizontalScrollPosition<C>;\n verticalScrollPositionOverride?: TableVerticalScrollPosition<K>;\n onColumnResizing?: (detail: ColumnResizeDetail<C>) => void;\n onColumnResize?: (detail: ColumnResizeDetail<C>) => void;\n currentCellOverride?: CellOverride<K, C>;\n onPersistCurrentCell?: (detail: CurrentCellDetail<K, C>) => void;\n selectionMode?: { row?: SelectionMode; column?: SelectionMode };\n selected?: { row?: Keys<K>; column?: Keys<C> };\n onSelectionChange?: (detail: TableSelectionDetail<K, C>) => void;\n onRowAction?: (detail: RowActionDetail<K, D>) => void;\n sortCriterion?: { key: C; sortDirection: 'ascending' | 'descending' }[];\n onSortCriterionChange?: (detail: SortCriterionDetail<C>) => void;\n isPendingLayout: boolean;\n contextMenuConfig?: TableContextMenuConfig<K, D, C>;\n};\n\nconst _defaultDisabledRowInteractionKeys: ('enter' | 'space')[] = ['enter'];\n\n/**\n * Hook that manages interactions and events on the Preact Table\n */\nexport function useInteractionManager<K extends string | number, D, C extends string>({\n rootRef,\n viewportInfo,\n ref,\n tableId,\n tableData,\n hasMore,\n hasFooters,\n isRtl,\n columnsArray,\n appliedColumnWidths,\n layoutInfo,\n sizingInfoRef,\n stickyEdgesState,\n setStickyEdgesState,\n cellHasRenderer,\n horizontalScrollPositionOverride,\n verticalScrollPositionOverride,\n onColumnResizing,\n onColumnResize,\n currentCellOverride,\n onPersistCurrentCell,\n selectionMode,\n selected,\n onSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n isPendingLayout,\n contextMenuConfig\n}: UseInteractionManagerOptions<K, D, C>) {\n // tracks the current column resize state\n const resizeInfoRef = useRef<ColumnResizeInfo<C>>({\n isResizing: false,\n isResizeHover: false,\n ignoreClick: false\n });\n\n // handles default tooltip state management\n const { tooltipContent, tooltipId, tooltipAnchorRef, showTooltip, hideTooltip } =\n useTruncationTooltip<K, C>({ rootRef, tableId });\n\n // whether row selection is triggered on 'enter' keypresses in addition to 'spacebar'\n const isEmbeddedSelect = useCollectionInteractionContext() === 'embedded';\n const disabledRowInteractionKeys = isEmbeddedSelect\n ? undefined\n : _defaultDisabledRowInteractionKeys;\n\n // tracks the current selection extension element (if any)\n const selectionExtensionElementRef = useRef<HTMLElement>();\n\n // intercept onSelectionChange calls to ensure local selectionExtensionElementRef is cleared\n const onTableSelectionChange = useMemo(() => {\n return onSelectionChange != null\n ? (detail: TableSelectionDetail<K, C>, isExtendableSelection: boolean) => {\n if (!isExtendableSelection) {\n selectionExtensionElementRef.current = undefined;\n }\n onSelectionChange(detail);\n }\n : undefined;\n }, [onSelectionChange]);\n\n // setup focus tracking using the useFocusHandling hook\n const {\n focusHandlingProps,\n activeCell,\n onActiveCellChanged,\n currentActiveCell,\n currentCell,\n isShowFocusRing,\n isTabbableMode,\n onStartFocusTracking,\n onFocusStartEdge,\n onFocusEndEdge\n } = useFocusHandling({\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n hasMore,\n hasFooters,\n columnsArray,\n sizingInfoRef,\n selectionExtensionElementRef,\n isRtl,\n cellSupportsTabbable: cellHasRenderer,\n fullColumnWidths: layoutInfo.isLayoutRequired ? undefined : layoutInfo.columnWidthsArray,\n currentCellOverride,\n onPersistCurrentCell,\n showTooltip,\n hideTooltip,\n isPendingLayout,\n isEmbeddedSelect,\n isDataLoaded: !hasMore || tableData.length > 0\n });\n\n const keyboardHandlingProps = useKeyboardHandling({\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n isRtl,\n isTabbableMode,\n columnsArray,\n sizingInfoRef,\n selectionExtensionElementRef,\n fullColumnWidths: layoutInfo.isLayoutRequired ? undefined : layoutInfo.columnWidthsArray,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection: isEmbeddedSelect,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n hideTooltip\n });\n\n const { hoverColumnKey, pointerHandlingProps } = usePointerHandling({\n rootRef,\n viewportInfo,\n tableId,\n tableData,\n isRtl,\n columnsArray,\n appliedColumnWidths,\n resizeInfoRef,\n selectionExtensionElementRef,\n fullColumnWidths: layoutInfo.isLayoutRequired ? undefined : layoutInfo.columnWidthsArray,\n onColumnResizing,\n onColumnResize,\n activeCell,\n onActiveCellChanged,\n isDropDownSelection: isEmbeddedSelect,\n selectionMode,\n selected,\n onTableSelectionChange,\n onRowAction,\n showTooltip,\n hideTooltip,\n tooltipId\n });\n\n const scrollHandlingProps = useScrollHandling({\n rootRef,\n viewportInfo,\n tableId,\n layoutInfo,\n sizingInfoRef,\n columnsArray,\n stickyEdgesState,\n setStickyEdgesState,\n fullColumnWidths: layoutInfo.isLayoutRequired ? undefined : layoutInfo.columnWidthsArray,\n horizontalScrollPositionOverride,\n verticalScrollPositionOverride,\n tooltipAnchorRef,\n hideTooltip,\n isPendingLayout,\n isRtl\n });\n\n const { contextMenuTriggerProps, menuProps, contextMenuContext } = useContextMenu<K, D, C>(\n tableId,\n tableData,\n activeCell,\n contextMenuConfig\n );\n\n const interactionManagerProps = !isPendingLayout\n ? mergeProps(\n focusHandlingProps,\n keyboardHandlingProps,\n pointerHandlingProps,\n contextMenuTriggerProps\n )\n : focusHandlingProps;\n\n // setup imperative handle implementation\n useImperativeHandle(\n ref!,\n () => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n return {\n focus: () => {\n if (rootElement != null) {\n if (currentActiveCell != null) {\n const cellElement = getElementFromCell(rootElement, tableId, currentActiveCell);\n if (cellElement != null) {\n cellElement.focus();\n return;\n }\n }\n // if no current cell element was found, just focus the root element\n rootElement.focus();\n }\n },\n getHorizontalScrollPosition: () => {\n if (scrollerElement == null || layoutInfo.isLayoutRequired) {\n return {};\n }\n return getHorizontalScrollPosition<K, D, C>(\n scrollerElement,\n columnsArray,\n layoutInfo.columnWidthsArray\n );\n },\n getVerticalScrollPosition: () => {\n if (rootElement == null || scrollerElement == null || layoutInfo.isLayoutRequired) {\n return {};\n }\n return getVerticalScrollPosition<K>(rootElement, scrollerElement, tableId);\n }\n };\n },\n [\n rootRef,\n viewportInfo,\n tableId,\n columnsArray,\n currentActiveCell,\n layoutInfo.isLayoutRequired,\n layoutInfo.columnWidthsArray\n ]\n );\n\n return {\n interactionManagerProps,\n scrollHandlingProps,\n onTableSelectionChange,\n isShowFocusRing,\n isTabbableMode,\n currentCell,\n currentActiveCell,\n resizeInfoRef,\n onStartFocusTracking,\n onFocusStartEdge,\n onFocusEndEdge,\n hoverColumnKey,\n tooltipContent,\n contextMenuContext,\n menuProps,\n disabledRowInteractionKeys\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { MutableRef } from 'preact/hooks';\nimport { SampledWidths, TableColumn, ViewportInfo } from '../Table';\nimport { ColumnWidths } from '../../UNSAFE_TableView';\n\n/**\n * Helper method to extract the individual column widths of the Table\n * depending on its layout. With a 'fixed' layout, an initial 'availableWidth'\n * is required, while with a 'contents' layout, -1 can be provided as the\n * 'availableWidth' initially. This will trigger the layout logic to ensure\n * a non-contstrained Table width is supported, and is needed to match\n * current Redwood behaviors with a 'contents' layout.\n */\nexport function applyLayoutColumnWidths<K, D, C extends string>(\n scrollerElement: HTMLElement,\n viewportInfo: ViewportInfo,\n innerTableElement: HTMLTableElement,\n widthOffset: number,\n tableId: string,\n isFixed: boolean,\n sampledColumnWidthsRef: MutableRef<SampledWidths<C> | undefined>,\n availableWidth: number,\n columnsArray: TableColumn<K, D, C>[],\n staticColumnWidths?: ColumnWidths<C>\n) {\n let newColumnWidths;\n let totalWidth = 0;\n let widthsArray = [];\n const tableCols = innerTableElement.querySelectorAll(\n `[data-oj-table-col='${tableId}']`\n ) as NodeListOf<HTMLTableColElement>;\n\n if (isFixed) {\n newColumnWidths = _getFixedLayoutColumnWidths(availableWidth, columnsArray, staticColumnWidths);\n for (let i = 0; i < columnsArray.length; i++) {\n const width = newColumnWidths[columnsArray[i].key];\n widthsArray.push(width);\n totalWidth += width;\n }\n _updateTableSizing(innerTableElement, tableCols, widthsArray, totalWidth);\n return newColumnWidths;\n }\n\n const headerElements = innerTableElement.querySelectorAll(\n `[data-oj-table-header-cell='${tableId}']`\n ) as NodeListOf<HTMLElement>;\n\n newColumnWidths = _getContentsLayoutColumnWidths(\n innerTableElement,\n headerElements,\n sampledColumnWidthsRef,\n availableWidth,\n columnsArray,\n staticColumnWidths\n );\n for (let i = 0; i < columnsArray.length; i++) {\n const width = newColumnWidths[columnsArray[i].key];\n widthsArray.push(width);\n totalWidth += width;\n }\n _updateTableSizing(innerTableElement, tableCols, widthsArray, totalWidth);\n\n if (availableWidth === -1) {\n // for content sizing, check to see if all space is actually utilized\n // this supports no width constraint scenarios\n if (!viewportInfo.isExternalScroller) {\n availableWidth = scrollerElement.getBoundingClientRect().width - widthOffset;\n } else {\n availableWidth = scrollerElement.clientWidth - widthOffset;\n }\n if (Math.abs(totalWidth - availableWidth) > 0.005) {\n newColumnWidths = _getContentsLayoutColumnWidths(\n innerTableElement,\n headerElements,\n sampledColumnWidthsRef,\n availableWidth,\n columnsArray,\n staticColumnWidths\n );\n totalWidth = 0;\n widthsArray = [];\n for (let i = 0; i < columnsArray.length; i++) {\n const width = newColumnWidths[columnsArray[i].key];\n widthsArray.push(width);\n totalWidth += width;\n }\n _updateTableSizing(innerTableElement, tableCols, widthsArray, totalWidth);\n }\n }\n return newColumnWidths;\n}\n\n/**\n * Helper method to extract the individual column widths of the Table\n * for a 'fixed' layout table that already has its root width applied.\n */\nfunction _getFixedLayoutColumnWidths<K, D, C extends string>(\n availableWidth: number,\n columnsArray: TableColumn<K, D, C>[],\n staticColumnWidths?: ColumnWidths<C>\n) {\n const DEFAULT_COLUMN_WEIGHT = 1;\n const DEFAULT_COLUMN_MIN_WIDTH = 100;\n const DEFAULT_COLUMN_MAX_WIDTH = undefined;\n\n let requiresActiveSizing = false;\n let totalWorkingWeight = 0;\n let forcedTotalWidth = 0;\n let pendingTotalWidth = 0;\n const columnMaxWidthsArray = [];\n const columnWeightsArray = [];\n const forcedColumnWidthsArray = [];\n const newColumnWidthsArray = [];\n const appliedColumnWidthsArray = [];\n for (let i = 0; i < columnsArray.length; i++) {\n const column = columnsArray[i];\n let columnMinWidth = column.value.minWidth;\n if (columnMinWidth == null || columnMinWidth <= 0) {\n columnMinWidth = DEFAULT_COLUMN_MIN_WIDTH;\n }\n let columnMaxWidth = column.value.maxWidth;\n if (columnMaxWidth == null || columnMaxWidth < columnMinWidth) {\n columnMaxWidth = DEFAULT_COLUMN_MAX_WIDTH;\n }\n columnMaxWidthsArray.push(columnMaxWidth);\n let columnWeight = column.value.weight;\n if (columnWeight == null || columnWeight < 1) {\n columnWeight = DEFAULT_COLUMN_WEIGHT;\n }\n columnWeightsArray.push(columnWeight);\n const columnWidth = staticColumnWidths != null ? staticColumnWidths[column.key] : undefined;\n if (columnWidth != null) {\n forcedTotalWidth += columnWidth;\n pendingTotalWidth += columnWidth;\n forcedColumnWidthsArray.push(columnWidth);\n newColumnWidthsArray.push(columnWidth);\n appliedColumnWidthsArray.push(columnWidth);\n } else {\n requiresActiveSizing = true;\n pendingTotalWidth += columnMinWidth;\n totalWorkingWeight += columnWeight;\n forcedColumnWidthsArray.push(undefined);\n newColumnWidthsArray.push(columnMinWidth);\n appliedColumnWidthsArray.push(columnMinWidth);\n }\n }\n\n // enforce min and max rules if active sizing is required and available space remains\n if (requiresActiveSizing && pendingTotalWidth < availableWidth) {\n _enforceFixedMinMaxRules(\n columnsArray,\n availableWidth,\n totalWorkingWeight,\n forcedTotalWidth,\n forcedColumnWidthsArray,\n columnWeightsArray,\n columnMaxWidthsArray,\n newColumnWidthsArray,\n appliedColumnWidthsArray\n );\n }\n return _createColumnWidths(columnsArray, newColumnWidthsArray);\n}\n\n/**\n * Helper function to enforce all of the layout sizing rules on the Table's columns.\n */\nfunction _enforceFixedMinMaxRules<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n availableWidth: number,\n totalWorkingWeight: number,\n forcedTotalWidth: number,\n forcedColumnWidthsArray: (number | undefined)[],\n columnWeightsArray: number[],\n columnMaxWidthsArray: (number | undefined)[],\n newColumnWidthsArray: number[],\n appliedColumnWidthsArray: number[]\n) {\n // try and honor the weights of each column combined with the min widths, and then check that against\n // any max widths once completed. if the final result doesn't fill the space AND at least 1 max width\n // rule was enforced, repeat the process until no max rules are enforced OR the space is filled.\n let isMaxRuleApplied = true;\n while (isMaxRuleApplied) {\n isMaxRuleApplied = false;\n _enforceWeightedMinRules(\n columnsArray,\n availableWidth,\n totalWorkingWeight,\n forcedTotalWidth,\n forcedColumnWidthsArray,\n columnWeightsArray,\n newColumnWidthsArray,\n appliedColumnWidthsArray\n );\n let pendingTotalWidth = 0;\n for (let i = 0; i < columnsArray.length; i++) {\n if (forcedColumnWidthsArray[i] == null) {\n const maxWidth = columnMaxWidthsArray[i];\n if (maxWidth != null && newColumnWidthsArray[i] > maxWidth) {\n isMaxRuleApplied = true;\n forcedColumnWidthsArray[i] = maxWidth;\n forcedTotalWidth += maxWidth;\n totalWorkingWeight -= columnWeightsArray[i];\n newColumnWidthsArray[i] = maxWidth;\n appliedColumnWidthsArray[i] = maxWidth;\n }\n }\n pendingTotalWidth += newColumnWidthsArray[i];\n }\n isMaxRuleApplied = isMaxRuleApplied && pendingTotalWidth < availableWidth;\n }\n}\n\n/**\n * Helper method to extract the individual column widths of the Table\n * for a 'contents' layout table that already has its root width applied.\n */\nfunction _getContentsLayoutColumnWidths<K, D, C extends string>(\n innerTableElement: HTMLTableElement,\n headerElements: NodeListOf<HTMLElement>,\n sampledColumnWidthsRef: MutableRef<SampledWidths<C> | undefined>,\n availableWidth: number,\n columnsArray: TableColumn<K, D, C>[],\n staticColumnWidths?: ColumnWidths<C>\n) {\n const DEFAULT_COLUMN_MIN_WIDTH = undefined;\n const DEFAULT_COLUMN_MAX_WIDTH = undefined;\n\n let requiresActiveSizing = false;\n const columnMinWidthsArray = [] as (number | undefined)[];\n const columnMaxWidthsArray = [];\n const forcedColumnWidthsArray = [];\n const newColumnWidthsArray = [];\n for (let i = 0; i < columnsArray.length; i++) {\n const column = columnsArray[i];\n let columnMinWidth = column.value.minWidth;\n if (columnMinWidth == null || columnMinWidth <= 0) {\n columnMinWidth = DEFAULT_COLUMN_MIN_WIDTH;\n }\n columnMinWidthsArray.push(columnMinWidth);\n let columnMaxWidth = column.value.maxWidth;\n if (columnMaxWidth == null || columnMaxWidth < (columnMinWidth != null ? columnMinWidth : 0)) {\n columnMaxWidth = DEFAULT_COLUMN_MAX_WIDTH;\n }\n columnMaxWidthsArray.push(columnMaxWidth);\n const columnWidth = staticColumnWidths != null ? staticColumnWidths[column.key] : undefined;\n if (columnWidth != null) {\n forcedColumnWidthsArray.push(columnWidth);\n newColumnWidthsArray[i] = columnWidth;\n } else {\n requiresActiveSizing = true;\n forcedColumnWidthsArray.push(undefined);\n }\n }\n\n // short-circuit normal contents sizing if each column specifies a 'width' value\n if (requiresActiveSizing) {\n // if active sizing is required, update min width values to reflect actual widths\n // performance note - this should be the only logic that requires DOM measurements\n let forcedTotalWidth = 0;\n let pendingTotalWidth = 0;\n let totalPreferredWidth = 0;\n let totalWorkingWeight = 0;\n let totalRemainingWeight = 0;\n const sampledWidths = sampledColumnWidthsRef.current;\n const sampledMinWidthsArray = [];\n const sampledWeightWidthsArray = [] as number[];\n const appliedColumnWidthsArray = [];\n if (sampledWidths != null) {\n for (let i = 0; i < columnsArray.length; i++) {\n sampledMinWidthsArray.push(sampledWidths.minWidths[columnsArray[i].key]);\n sampledWeightWidthsArray.push(sampledWidths.weightWidths[columnsArray[i].key]);\n }\n } else {\n sampledColumnWidthsRef.current = {\n minWidths: {} as ColumnWidths<C>,\n weightWidths: {} as ColumnWidths<C>\n };\n // when sampledColumnWidths are not populated, table has 'max-content' width applied,\n // which allows for measurements to represent the column weights\n for (let i = 0; i < headerElements.length; i++) {\n const sampledWeightWidth = (headerElements[i] as HTMLElement).getBoundingClientRect().width;\n sampledWeightWidthsArray.push(sampledWeightWidth);\n sampledColumnWidthsRef.current.weightWidths[columnsArray[i].key] = sampledWeightWidth;\n }\n // specify 'min-content' width, allowing measurements to represent minimum auto-resizable column widths\n innerTableElement.style.width = 'min-content';\n for (let i = 0; i < headerElements.length; i++) {\n const sampledMinWidth = (headerElements[i] as HTMLElement).getBoundingClientRect().width;\n sampledMinWidthsArray.push(sampledMinWidth);\n sampledColumnWidthsRef.current.minWidths[columnsArray[i].key] = sampledMinWidth;\n }\n }\n\n for (let i = 0; i < sampledMinWidthsArray.length; i++) {\n const forcedWidth = forcedColumnWidthsArray[i];\n if (forcedWidth == null) {\n let columnWidth;\n const sampledMinWidth = sampledMinWidthsArray[i];\n const minWidth = columnMinWidthsArray[i];\n const maxWidth = columnMaxWidthsArray[i];\n if (minWidth != null && minWidth >= sampledMinWidth) {\n columnWidth = minWidth;\n } else if (maxWidth != null && sampledMinWidth >= maxWidth) {\n columnWidth = maxWidth;\n } else {\n columnWidth = sampledMinWidth;\n }\n pendingTotalWidth += columnWidth;\n // replace sampled weight with min width if needed\n const columnWeight =\n minWidth != null && minWidth >= sampledWeightWidthsArray[i]\n ? minWidth\n : sampledWeightWidthsArray[i];\n sampledWeightWidthsArray[i] = columnWeight;\n totalPreferredWidth +=\n maxWidth != null && maxWidth <= columnWeight ? maxWidth : columnWeight;\n totalWorkingWeight += columnWeight;\n totalRemainingWeight += columnWeight - columnWidth;\n // newColumnWidthsArray already has content, so update in place rather than 'push'\n newColumnWidthsArray[i] = columnWidth;\n appliedColumnWidthsArray.push(columnWidth);\n } else {\n forcedTotalWidth += forcedWidth;\n pendingTotalWidth += forcedWidth;\n totalPreferredWidth += forcedWidth;\n appliedColumnWidthsArray.push(forcedWidth);\n }\n }\n // special case for initial rendering where we don't know if overall width is constrained\n if (availableWidth === -1) {\n availableWidth = totalPreferredWidth;\n }\n if (pendingTotalWidth < availableWidth) {\n _enforceContentsMinMaxRules(\n columnsArray,\n availableWidth,\n totalPreferredWidth,\n totalRemainingWeight,\n totalWorkingWeight,\n pendingTotalWidth,\n forcedTotalWidth,\n forcedColumnWidthsArray,\n sampledWeightWidthsArray,\n columnMaxWidthsArray,\n newColumnWidthsArray,\n appliedColumnWidthsArray\n );\n }\n }\n return _createColumnWidths(columnsArray, newColumnWidthsArray);\n}\n\n/**\n * Helper function to enforce all of the layout sizing rules on the Table's columns.\n */\nfunction _enforceContentsMinMaxRules<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n availableWidth: number,\n totalPreferredWidth: number,\n totalRemainingWeight: number,\n totalWorkingWeight: number,\n appliedPendingTotalWidth: number,\n forcedTotalWidth: number,\n forcedColumnWidthsArray: (number | undefined)[],\n columnWeightsArray: number[],\n columnMaxWidthsArray: (number | undefined)[],\n newColumnWidthsArray: number[],\n appliedColumnWidthsArray: number[]\n) {\n // try and honor the weights of each column combined with the min widths, and then check that against\n // any max widths once completed. if the final result doesn't fill the space AND at least 1 max width\n // rule was enforced, repeat the process until no max rules are enforced OR the space is filled.\n let isMaxRuleApplied = true;\n while (isMaxRuleApplied) {\n isMaxRuleApplied = false;\n if (totalPreferredWidth > availableWidth) {\n _enforceConstrainedWeightRules(\n columnsArray,\n availableWidth - appliedPendingTotalWidth,\n totalRemainingWeight,\n columnWeightsArray,\n forcedColumnWidthsArray,\n newColumnWidthsArray,\n appliedColumnWidthsArray\n );\n } else {\n _enforceWeightedMinRules(\n columnsArray,\n availableWidth,\n totalWorkingWeight,\n forcedTotalWidth,\n forcedColumnWidthsArray,\n columnWeightsArray,\n newColumnWidthsArray,\n appliedColumnWidthsArray\n );\n }\n\n let pendingTotalWidth = 0;\n for (let i = 0; i < columnsArray.length; i++) {\n if (forcedColumnWidthsArray[i] == null) {\n const maxWidth = columnMaxWidthsArray[i];\n if (maxWidth != null && newColumnWidthsArray[i] > maxWidth) {\n isMaxRuleApplied = true;\n forcedColumnWidthsArray[i] = maxWidth;\n forcedTotalWidth += maxWidth;\n appliedPendingTotalWidth += maxWidth - appliedColumnWidthsArray[i];\n totalWorkingWeight -= columnWeightsArray[i];\n newColumnWidthsArray[i] = maxWidth;\n appliedColumnWidthsArray[i] = maxWidth;\n }\n }\n pendingTotalWidth += newColumnWidthsArray[i];\n }\n isMaxRuleApplied = isMaxRuleApplied && pendingTotalWidth < availableWidth;\n }\n}\n\n/**\n * Helper function to enforce constrained weights / min width rules on the Table's columns.\n */\nfunction _enforceConstrainedWeightRules<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n initialExtraWidth: number,\n totalRemainingWeight: number,\n columnWeightsArray: number[],\n forcedColumnWidthsArray: (number | undefined)[],\n newColumnWidthsArray: number[],\n appliedColumnWidthsArray: number[]\n) {\n if (initialExtraWidth > 0) {\n let availableWidth = initialExtraWidth;\n let currentWeightTotal = totalRemainingWeight;\n for (let i = 0; i < columnsArray.length; i++) {\n if (currentWeightTotal > 0 && forcedColumnWidthsArray[i] == null) {\n const currentWeight = columnWeightsArray[i] - appliedColumnWidthsArray[i];\n const weightWidth = (currentWeight / currentWeightTotal) * availableWidth;\n newColumnWidthsArray[i] = weightWidth + appliedColumnWidthsArray[i];\n availableWidth -= weightWidth;\n currentWeightTotal -= currentWeight;\n }\n }\n }\n}\n\n/**\n * Helper function to enforce the weights / min width rules on the Table's columns.\n */\nfunction _enforceWeightedMinRules<K, D, C>(\n columnsArray: TableColumn<K, D, C>[],\n availableWidth: number,\n totalWeight: number,\n forcedTotalWidth: number,\n forcedColumnWidthsArray: (number | undefined)[],\n columnWeightsArray: number[],\n newColumnWidthsArray: number[],\n appliedColumnWidthsArray: number[]\n) {\n const pendingForcedColumnWidths = [] as (number | undefined)[];\n let isMinRuleApplied = true;\n while (isMinRuleApplied) {\n isMinRuleApplied = false;\n let currentWeightTotal = totalWeight;\n let widthDiff = availableWidth - forcedTotalWidth;\n if (widthDiff > 0) {\n for (let i = 0; i < columnsArray.length; i++) {\n if (\n currentWeightTotal > 0 &&\n forcedColumnWidthsArray[i] == null &&\n pendingForcedColumnWidths[i] == null\n ) {\n const currentWeight = columnWeightsArray[i];\n const newWidth = (currentWeight / currentWeightTotal) * widthDiff;\n\n // if calculated width breaks min width requirement, force min width as needed\n const minWidth = appliedColumnWidthsArray[i];\n if (newWidth < minWidth) {\n // the preferred weighted size conflicts with the min size, so set pending to min size\n pendingForcedColumnWidths[i] = minWidth;\n forcedTotalWidth += minWidth;\n newColumnWidthsArray[i] = minWidth;\n isMinRuleApplied = true;\n totalWeight -= currentWeight;\n break;\n }\n newColumnWidthsArray[i] = newWidth;\n widthDiff -= newWidth;\n currentWeightTotal -= currentWeight;\n }\n }\n }\n }\n}\n\n/**\n * Helper function to create a ColumnWidths object from a TableColumn array and a widths array.\n */\nfunction _createColumnWidths<K, D, C extends string>(\n columnsArray: TableColumn<K, D, C>[],\n columnWidthsArray: number[]\n) {\n const columnWidths = {} as ColumnWidths<C>;\n for (let i = 0; i < columnsArray.length; i++) {\n columnWidths[columnsArray[i].key] = columnWidthsArray[i];\n }\n return columnWidths;\n}\n\n/**\n * Helper method to apply the given sizing object to the currently rendered Table\n * and column elements.\n */\nfunction _updateTableSizing(\n innerTableElement: HTMLTableElement,\n tableCols: NodeListOf<HTMLTableColElement>,\n widthsArray: number[],\n totalWidth: number\n) {\n for (let i = 0; i < tableCols.length; i++) {\n const tableCol = tableCols[i];\n tableCol.style.width = `${widthsArray[i]}px`;\n }\n innerTableElement.style.width = `${totalWidth}px`;\n innerTableElement.style.tableLayout = 'fixed';\n}\n\n/**\n * Helper function to compare two ColumnWidths instances for equality.\n */\nexport const columnWidthsComparator = <C extends string>(\n columnWidths1: ColumnWidths<C>,\n columnWidths2: ColumnWidths<C>\n) => {\n const keys1 = Object.keys(columnWidths1);\n const keys2 = Object.keys(columnWidths2);\n if (keys1.length === keys2.length) {\n for (const key of keys1) {\n const columnKey = key as C;\n if (columnWidths1[columnKey] !== columnWidths2[columnKey]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useResizeObserver } from '../../hooks/UNSAFE_useResizeObserver';\nimport { Column, Columns, ColumnWidths, TableViewportConfig } from '../../UNSAFE_TableView';\nimport { LayoutInfo, SampledWidths, SizingInfo, TableData } from '../Table';\nimport { applyLayoutColumnWidths, columnWidthsComparator } from '../utils/TableLayoutUtils';\nimport {\n applyOverflowStatus,\n applyUnderflowStatus,\n getViewportConfig,\n updateStickyColumns,\n updateStickyEdges\n} from '../utils/TableScrollUtils';\n\ntype UseSizingManagerProps<K, D, C extends string> = {\n rootRef: RefObject<HTMLDivElement>;\n scrollerRef: RefObject<HTMLDivElement>;\n innerTableRef: RefObject<HTMLTableElement>;\n tableId: string;\n tableData: TableData<K, D>[];\n viewportConfig?: TableViewportConfig;\n layout?: 'contents' | 'fixed' | 'pending';\n columns: Columns<K, D, C>;\n columnOrder?: C[];\n columnWidths?: ColumnWidths<C>;\n isRtl: boolean;\n};\n\n/**\n * Hook that manages column sizing on the Preact Table\n */\nexport function useSizingManager<K extends string | number, D, C extends string>({\n rootRef,\n scrollerRef,\n innerTableRef,\n tableId,\n tableData,\n viewportConfig,\n layout,\n columns,\n columnOrder,\n columnWidths,\n isRtl\n}: UseSizingManagerProps<K, D, C>) {\n // state to force a rerender following the initial render where scrollbars are forced\n const [_isScrollbarSizeKnown, setIsScrollbarSizeKnown] = useState<boolean>(false);\n\n // column width state information\n const sampledColumnWidthsRef = useRef<SampledWidths<C>>();\n const [appliedColumnWidths, setAppliedColumnWidths] = useState<ColumnWidths<C>>();\n\n const [innerTableHeight, setInnerTableHeight] = useState<number | undefined>();\n const [hasVerticalUnderflow, setHasVerticalUnderflow] = useState<boolean>(false);\n\n // general table sizing state information\n const sizingInfoRef = useRef<SizingInfo>({\n isInitialRender: true,\n isScrollbarSizeKnown: false\n });\n const pendingResizeEntriesRef = useRef<{\n scroller?: ResizeObserverEntry | undefined;\n innerTable?: ResizeObserverEntry | undefined;\n }>({});\n\n // scrollbar overflow state\n const overflowRef = useRef<{ isHorizontal: boolean; isVertical: boolean }>({\n isHorizontal: false,\n isVertical: false\n });\n\n // sticky edge state management\n const [stickyEdgesState, setStickyEdgesState] = useState<{ start?: number; end?: number }>({});\n\n // current viewport information\n const viewportInfo = useMemo(() => {\n const tableViewportConfig = getViewportConfig(scrollerRef, viewportConfig);\n return {\n isExternalScroller: viewportConfig?.scroller() != null,\n viewportConfig: tableViewportConfig\n };\n }, [scrollerRef, viewportConfig]);\n\n // memoize realized columns array on 'columns' and 'columnOrder'\n const columnsArray = useMemo(() => {\n const newColumnsArray = [];\n if (columnOrder != null) {\n for (const key of columnOrder) {\n if (columns[key] != null) {\n newColumnsArray.push({\n key: key,\n value: columns[key]\n });\n }\n }\n } else {\n for (const [key, value] of Object.entries(columns)) {\n newColumnsArray.push({\n key: key as C,\n value: value as Column<K, D, C>\n });\n }\n }\n return newColumnsArray;\n }, [columnOrder, columns]);\n\n // determine if a new layout is required\n let isLayoutRequired = false;\n const columnWidthsArray = [];\n if (appliedColumnWidths != null) {\n for (let i = 0; i < columnsArray.length; i++) {\n const key = columnsArray[i].key;\n const appliedWidth = appliedColumnWidths[key];\n const staticWidth = columnWidths != null ? columnWidths[key] : undefined;\n if (appliedWidth == null || (staticWidth != null && staticWidth !== appliedWidth)) {\n isLayoutRequired = true;\n break;\n }\n columnWidthsArray.push(appliedWidth);\n }\n } else {\n isLayoutRequired = true;\n }\n const layoutInfo = {\n isLayoutRequired: isLayoutRequired,\n columnWidthsArray: isLayoutRequired ? undefined : columnWidthsArray\n } as LayoutInfo;\n\n // ensure sampled column sizes are cleared if 'columns', 'columnOrder', or 'layout' is updated\n useLayoutEffect(() => {\n sampledColumnWidthsRef.current = undefined;\n setAppliedColumnWidths(undefined);\n }, [columns, columnOrder, layout]);\n\n // ensure applied column widths are cleared if 'columnWidths' is updated\n useLayoutEffect(() => {\n setAppliedColumnWidths(undefined);\n }, [columnWidths]);\n\n // setup sizing calculation updates for subsequent renders\n useLayoutEffect(() => {\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n const innerTableElement = innerTableRef.current;\n if (\n layout !== 'pending' &&\n scrollerElement != null &&\n innerTableElement != null &&\n !sizingInfoRef.current.isInitialRender &&\n (viewportInfo.isExternalScroller || sizingInfoRef.current.isScrollbarSizeKnown) &&\n layoutInfo.isLayoutRequired &&\n columnsArray.length > 0\n ) {\n let widthOffset = 0;\n if (viewportInfo.isExternalScroller) {\n const scrollerOffsetStart = viewportInfo.viewportConfig.scrollerOffsetStart;\n if (scrollerOffsetStart != null) {\n widthOffset += scrollerOffsetStart;\n }\n const scrollerOffsetEnd = viewportInfo.viewportConfig.scrollerOffsetEnd;\n if (scrollerOffsetEnd != null) {\n widthOffset += scrollerOffsetEnd;\n }\n } else if (sizingInfoRef.current.isScrollbarSizeKnown) {\n widthOffset = sizingInfoRef.current.defaultScrollbarWidth;\n }\n const totalWidth = layout === 'fixed' ? sizingInfoRef.current.contentWidth - widthOffset : -1;\n const newColumnWidths = applyLayoutColumnWidths(\n scrollerElement,\n viewportInfo,\n innerTableElement,\n widthOffset,\n tableId,\n layout === 'fixed',\n sampledColumnWidthsRef,\n totalWidth,\n columnsArray,\n columnWidths\n );\n setAppliedColumnWidths(newColumnWidths);\n }\n }, [\n viewportInfo,\n innerTableRef,\n tableId,\n columnsArray,\n columnWidths,\n layout,\n layoutInfo.isLayoutRequired\n ]);\n\n useLayoutEffect(() => {\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n if (\n layout !== 'pending' &&\n rootElement != null &&\n scrollerElement != null &&\n appliedColumnWidths != null\n ) {\n updateStickyColumns(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n isRtl,\n columnsArray,\n appliedColumnWidths,\n stickyEdgesState,\n setStickyEdgesState,\n viewportInfo.isExternalScroller || overflowRef.current.isHorizontal\n );\n }\n }, [\n tableData,\n rootRef,\n viewportInfo,\n tableId,\n appliedColumnWidths,\n columnsArray,\n layout,\n stickyEdgesState,\n isRtl\n ]);\n\n // helper method to update the sticky edge styling due to resize events\n const _updateStickyEdgesFromResize = useCallback(\n (scrollerElement: HTMLElement) => {\n if (appliedColumnWidths != null) {\n if (viewportInfo.isExternalScroller || overflowRef.current.isHorizontal) {\n // ensure sticky edges are applied correctly if horizontal overflow is present\n const fullColumnWidths = [];\n for (let i = 0; i < columnsArray.length; i++) {\n const width = appliedColumnWidths[columnsArray[i].key];\n fullColumnWidths.push(width);\n }\n updateStickyEdges(\n scrollerElement,\n columnsArray,\n fullColumnWidths,\n stickyEdgesState,\n setStickyEdgesState\n );\n } else if (stickyEdgesState.start != null || stickyEdgesState.end != null) {\n // otherwise clear sticky edges if necessary\n setStickyEdgesState({});\n }\n }\n },\n [appliedColumnWidths, columnsArray, stickyEdgesState, viewportInfo]\n );\n\n // callback function to handle resizes of the scroller and inner table elements\n const handleResizeCallback = useCallback(() => {\n let currentEntry = pendingResizeEntriesRef.current.scroller;\n const rootElement = rootRef.current;\n const scrollerElement = viewportInfo.viewportConfig.scroller().current;\n const innerTableElement = innerTableRef.current;\n let isOveralSizeHandled = false;\n\n // handle scroller element resize notification\n if (\n currentEntry != null &&\n rootElement != null &&\n scrollerElement != null &&\n innerTableElement != null\n ) {\n const newContentWidth = currentEntry.contentBoxSize[0].inlineSize;\n const newContentHeight = currentEntry.contentBoxSize[0].blockSize;\n const newBoxWidth = currentEntry.borderBoxSize[0].inlineSize;\n const newBoxHeight = currentEntry.borderBoxSize[0].blockSize;\n\n if (newBoxWidth !== 0 || newBoxHeight !== 0) {\n isOveralSizeHandled = true;\n let availableWidth;\n let availableWidthOffset = 0;\n let defaultScrollbarWidth = 0;\n if (viewportInfo.isExternalScroller) {\n const scrollerOffsetStart = viewportInfo.viewportConfig.scrollerOffsetStart;\n if (scrollerOffsetStart != null) {\n availableWidthOffset += scrollerOffsetStart;\n }\n const scrollerOffsetEnd = viewportInfo.viewportConfig.scrollerOffsetEnd;\n if (scrollerOffsetEnd != null) {\n availableWidthOffset += scrollerOffsetEnd;\n }\n if (sizingInfoRef.current.isScrollbarSizeKnown) {\n sizingInfoRef.current = {\n isInitialRender: false,\n contentWidth: newContentWidth,\n boxWidth: newBoxWidth,\n contentHeight: newContentHeight,\n boxHeight: newBoxHeight,\n isScrollbarSizeKnown: true,\n defaultScrollbarWidth: sizingInfoRef.current.defaultScrollbarWidth,\n defaultScrollbarHeight: sizingInfoRef.current.defaultScrollbarHeight\n };\n } else {\n sizingInfoRef.current = {\n isInitialRender: false,\n contentWidth: newContentWidth,\n boxWidth: newBoxWidth,\n contentHeight: newContentHeight,\n boxHeight: newBoxHeight,\n isScrollbarSizeKnown: false\n };\n }\n availableWidth = newContentWidth - availableWidthOffset;\n } else {\n const isInitialRender = sizingInfoRef.current.isInitialRender;\n if (sizingInfoRef.current.isScrollbarSizeKnown) {\n availableWidthOffset = sizingInfoRef.current.defaultScrollbarWidth;\n sizingInfoRef.current = {\n isInitialRender: false,\n contentWidth: newContentWidth,\n boxWidth: newBoxWidth,\n contentHeight: newContentHeight,\n boxHeight: newBoxHeight,\n isScrollbarSizeKnown: true,\n defaultScrollbarWidth: sizingInfoRef.current.defaultScrollbarWidth,\n defaultScrollbarHeight: sizingInfoRef.current.defaultScrollbarHeight\n };\n } else {\n // on the first render that does not specify an external scroller, horizontal and\n // vertical scrollbars are forced in order to determine default browser sizes\n availableWidthOffset = newBoxWidth - newContentWidth;\n sizingInfoRef.current = {\n isInitialRender: false,\n contentWidth: newContentWidth,\n boxWidth: newBoxWidth,\n contentHeight: newContentHeight,\n boxHeight: newBoxHeight,\n isScrollbarSizeKnown: true,\n defaultScrollbarWidth: availableWidthOffset,\n defaultScrollbarHeight: newBoxHeight - newContentHeight\n };\n setIsScrollbarSizeKnown(true);\n }\n defaultScrollbarWidth = sizingInfoRef.current.defaultScrollbarWidth;\n availableWidth = !isInitialRender || layout === 'fixed' ? newContentWidth : -1;\n }\n if (columnsArray.length > 0) {\n let newColumnWidths;\n if (layout !== 'pending') {\n newColumnWidths = applyLayoutColumnWidths(\n scrollerElement,\n viewportInfo,\n innerTableElement,\n availableWidthOffset,\n tableId,\n layout === 'fixed',\n sampledColumnWidthsRef,\n availableWidth,\n columnsArray,\n columnWidths\n );\n if (\n appliedColumnWidths == null ||\n !columnWidthsComparator(appliedColumnWidths, newColumnWidths)\n ) {\n setAppliedColumnWidths(newColumnWidths);\n } else {\n newColumnWidths = undefined;\n }\n }\n // ensure scrollbars are applied correctly - a scrollbar could be needed\n if (viewportInfo.isExternalScroller) {\n applyUnderflowStatus(rootElement, tableId, setHasVerticalUnderflow);\n } else {\n const innerTableRect = innerTableElement.getBoundingClientRect();\n applyOverflowStatus(\n rootElement,\n scrollerElement,\n tableId,\n innerTableRect.width,\n newContentWidth,\n innerTableRect.height,\n newContentHeight,\n defaultScrollbarWidth,\n overflowRef,\n setHasVerticalUnderflow\n );\n }\n if (layout !== 'pending') {\n if (newColumnWidths != null) {\n updateStickyColumns(\n rootElement,\n scrollerElement,\n viewportInfo,\n tableId,\n isRtl,\n columnsArray,\n newColumnWidths,\n stickyEdgesState,\n setStickyEdgesState,\n viewportInfo.isExternalScroller || overflowRef.current.isHorizontal\n );\n } else {\n _updateStickyEdgesFromResize(scrollerElement);\n }\n }\n }\n }\n }\n currentEntry = pendingResizeEntriesRef.current.innerTable;\n if (currentEntry != null) {\n const newBoxWidth = currentEntry.borderBoxSize[0].inlineSize;\n const newBoxHeight = currentEntry.borderBoxSize[0].blockSize;\n // if only an inner table resize occurred, ensure scrollbars are applied correctly\n if (\n !isOveralSizeHandled &&\n rootElement != null &&\n scrollerElement != null &&\n columnsArray.length > 0 &&\n (newBoxWidth !== 0 || newBoxHeight !== 0)\n ) {\n if (viewportInfo.isExternalScroller) {\n applyUnderflowStatus(rootElement, tableId, setHasVerticalUnderflow);\n } else if (sizingInfoRef.current.isScrollbarSizeKnown) {\n applyOverflowStatus(\n rootElement,\n scrollerElement,\n tableId,\n newBoxWidth,\n sizingInfoRef.current.contentWidth,\n newBoxHeight,\n sizingInfoRef.current.contentHeight,\n sizingInfoRef.current.defaultScrollbarWidth,\n overflowRef,\n setHasVerticalUnderflow\n );\n }\n if (layout !== 'pending') {\n _updateStickyEdgesFromResize(scrollerElement);\n }\n }\n setInnerTableHeight(newBoxHeight);\n }\n pendingResizeEntriesRef.current = {};\n }, [\n rootRef,\n viewportInfo,\n innerTableRef,\n tableId,\n layout,\n columnsArray,\n columnWidths,\n appliedColumnWidths,\n stickyEdgesState,\n isRtl,\n _updateStickyEdgesFromResize\n ]);\n\n // ensure resize observers have access to the latest state information\n const handleResizeCallbackRef = useRef<() => void>(handleResizeCallback);\n handleResizeCallbackRef.current = handleResizeCallback;\n\n // resize observer callback functions are static to avoid hook re-subscribing each render\n const staticHandleScrollerResize = useCallback((entry: ResizeObserverEntry) => {\n // only queue up an animation frame if there isn't one already pending\n if (\n pendingResizeEntriesRef.current.scroller == null ||\n pendingResizeEntriesRef.current.innerTable == null\n ) {\n window.requestAnimationFrame(() => {\n handleResizeCallbackRef.current();\n });\n }\n pendingResizeEntriesRef.current.scroller = entry;\n }, []);\n const staticHandleInnerTableResize = useCallback((entry: ResizeObserverEntry) => {\n // only queue up an animation frame if there isn't one already pending\n if (\n pendingResizeEntriesRef.current.scroller == null ||\n pendingResizeEntriesRef.current.innerTable == null\n ) {\n window.requestAnimationFrame(() => {\n handleResizeCallbackRef.current();\n });\n }\n pendingResizeEntriesRef.current.innerTable = entry;\n }, []);\n useResizeObserver(viewportInfo.viewportConfig.scroller(), staticHandleScrollerResize);\n useResizeObserver(innerTableRef, staticHandleInnerTableResize);\n\n return {\n layoutInfo,\n viewportInfo,\n columnsArray,\n appliedColumnWidths,\n sizingInfoRef,\n innerTableHeight,\n hasVerticalUnderflow,\n stickyEdgesState,\n setStickyEdgesState,\n overflowRef\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useRef } from 'preact/hooks';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { JSXInternal } from 'preact/src/jsx';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { Cell, CellOverride, Column, ColumnWidths, TableViewportConfig } from '../UNSAFE_TableView';\nimport { TableColGroup } from './TableColGroup';\nimport { TableBody } from './TableBody';\nimport { TableHeader } from './TableHeader';\nimport { TableFooter } from './TableFooter';\nimport { TableDragIndicator } from './TableDragIndicator';\nimport { TableSkeletonRow } from './TableSkeletonRow';\nimport { TableContextMenu } from './TableContextMenu';\nimport { FocusTracker } from '../PRIVATE_FocusTracker';\nimport { Props, TableViewHandle } from '../UNSAFE_TableView';\nimport { useDataManager } from './hooks/useDataManager';\nimport { useInteractionManager } from './hooks/useInteractionManager';\nimport { useSizingManager } from './hooks/useSizingManager';\nimport { innerTableStyles, scrollerStyles } from './themes/Table.css';\nimport { tableSkeletonStyles, tableSkeletonStylesHC } from './themes/TableSkeletonStyles.css';\nimport { TableVariantOptions } from './themes/TableStyles.css';\nimport { TableRedwoodTheme } from './themes/redwood/TableTheme';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useTestId } from '../hooks/UNSAFE_useTestId';\n\nexport type ActiveCell<K, C> =\n | Cell<K, C>\n | {\n rowKey?: never;\n columnKey: C;\n type: 'loading';\n }\n | {\n rowKey?: never;\n columnKey: C;\n type: 'loadMore';\n }\n | {\n rowKey?: never;\n columnKey?: never;\n type: 'pending';\n };\n\nexport type ActiveCellDetail<K, C> = {\n value?: ActiveCell<K, C>;\n};\n\nexport type TableColumn<K, D, C> = {\n key: C;\n value: Column<K, D, C>;\n};\n\nexport type TableData<K, D> = {\n data: D;\n metadata: K;\n};\n\nexport type CurrencyStatus<K, D, C> = {\n activeCell?: ActiveCell<K, C>;\n currentCell?: Cell<K, C>;\n currentCellOverride?: CellOverride<K, C>;\n hasPendingCurrentCellOverride: boolean;\n hasPendingCurrentCellOverrideScroll: boolean;\n previousEmbeddedSelectCurrentCell?: Cell<K, C>;\n loadMoreInitialData?: TableData<K, D>[];\n};\n\nexport type SampledWidths<C extends string> = {\n minWidths: ColumnWidths<C>;\n weightWidths: ColumnWidths<C>;\n};\n\nexport type ViewportInfo = {\n isExternalScroller: boolean;\n viewportConfig: TableViewportConfig;\n};\n\nexport type SizingInfo =\n | {\n isInitialRender: true;\n boxWidth?: number;\n contentWidth?: number;\n boxHeight?: number;\n contentHeight?: number;\n isScrollbarSizeKnown: false;\n defaultScrollbarWidth?: number;\n defaultScrollbarHeight?: number;\n }\n | {\n isInitialRender: false;\n boxWidth: number;\n contentWidth: number;\n boxHeight: number;\n contentHeight: number;\n isScrollbarSizeKnown: true;\n defaultScrollbarWidth: number;\n defaultScrollbarHeight: number;\n }\n | {\n isInitialRender: false;\n boxWidth: number;\n contentWidth: number;\n boxHeight: number;\n contentHeight: number;\n isScrollbarSizeKnown: false;\n defaultScrollbarWidth?: number;\n defaultScrollbarHeight?: number;\n };\n\nexport type LayoutInfo =\n | {\n isLayoutRequired: true;\n columnWidthsArray?: number[];\n }\n | {\n isLayoutRequired: false;\n columnWidthsArray: number[];\n };\n\nexport type ColumnResizeInfo<C> =\n | {\n isResizing: false;\n isResizeHover: boolean;\n key?: C;\n startX?: never;\n delta?: never;\n fullColumnWidths?: never;\n ignoreClick: boolean;\n }\n | {\n isResizing: true;\n isResizeHover: boolean;\n key: C;\n startX: number;\n delta: number;\n fullColumnWidths: number[];\n ignoreClick: boolean;\n };\n\nexport type ScrollDetail<K, C> = {\n cell: ActiveCell<K, C> | Cell<K, C>;\n locationX?: 'inView' | 'start' | 'end';\n locationY?: 'inView' | 'top' | 'bottom';\n};\n\nconst _defaultSelected = {\n row: { all: false, keys: new Set() },\n column: { all: false, keys: new Set() }\n};\n\nconst _disabledHeaderFooterInteractionKeys: ('enter' | 'space')[] = ['enter'];\n\n/**\n * Component that renders data in a flat table.\n */\nexport const Table = forwardRef(function Table<K extends string | number, D, C extends string>(\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n getAccessibleRowHeaders,\n columns,\n columnOrder,\n columnWidths,\n contextMenuConfig,\n viewportConfig,\n layout = 'contents',\n data,\n getRowKey,\n hasMore = false,\n onLoadMore = () => {},\n currentCellOverride,\n onPersistCurrentCell,\n currentRowVariant = 'none',\n gridlines,\n selectionMode,\n selected = _defaultSelected as NonNullable<Props<K, D, C>['selected']>,\n onSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n horizontalScrollPositionOverride,\n verticalScrollPositionOverride,\n columnResizingIndicator,\n onColumnResizing,\n onColumnResize,\n noDataRenderer,\n testId\n }: Props<K, D, C>,\n ref?: ForwardedRef<TableViewHandle<K, C>>\n) {\n const tableId = useId();\n const testIdProps = useTestId(testId);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n const innerTableRef = useRef<HTMLTableElement>(null);\n\n const { direction, forcedColors } = useUser();\n const isHighContrast = forcedColors === 'active';\n const isRtl = direction === 'rtl';\n\n const { tableData, onTableLoadMore } = useDataManager<K, D>({\n data,\n getRowKey,\n hasMore,\n onLoadMore\n });\n\n const {\n layoutInfo,\n viewportInfo,\n columnsArray,\n appliedColumnWidths,\n sizingInfoRef,\n innerTableHeight,\n hasVerticalUnderflow,\n stickyEdgesState,\n setStickyEdgesState,\n overflowRef\n } = useSizingManager<K, D, C>({\n rootRef,\n scrollerRef,\n innerTableRef,\n tableId,\n tableData,\n viewportConfig,\n layout,\n columns,\n columnOrder,\n columnWidths,\n isRtl\n });\n\n const cellHasRenderer = useCallback(\n (cell: ActiveCell<K, C>) => {\n let hasRenderer = false;\n if (cell.type === 'noData') {\n hasRenderer = noDataRenderer != null;\n } else if (cell.type !== 'loadMore' && cell.type !== 'loading' && cell.type !== 'pending') {\n for (const column of columnsArray) {\n if (column.key === cell.columnKey) {\n if (cell.type === 'data') {\n hasRenderer = column.value.renderer != null;\n } else if (cell.type === 'header') {\n hasRenderer = column.value.headerRenderer != null;\n } else if (cell.type === 'footer') {\n hasRenderer = column.value.footerRenderer != null;\n }\n break;\n }\n }\n }\n return hasRenderer;\n },\n [columnsArray, noDataRenderer]\n );\n\n const isPendingLayout = layout === 'pending';\n\n // aria-rowcount includes header and footer rows\n const hasFooters = columnsArray.some((column: TableColumn<K, D, C>) => {\n return column.value.footerRenderer != null || column.value.footerText != null;\n });\n const ariaRowCount = hasMore || isPendingLayout ? -1 : tableData.length + (hasFooters ? 2 : 1);\n const ariaColumnCount = Math.max(columnsArray.length, 1);\n\n const {\n interactionManagerProps,\n scrollHandlingProps,\n onTableSelectionChange,\n isShowFocusRing,\n isTabbableMode,\n currentCell,\n currentActiveCell,\n resizeInfoRef,\n onStartFocusTracking,\n onFocusStartEdge,\n onFocusEndEdge,\n hoverColumnKey,\n tooltipContent,\n contextMenuContext,\n menuProps,\n disabledRowInteractionKeys\n } = useInteractionManager<K, D, C>({\n rootRef,\n viewportInfo,\n ref,\n tableId,\n tableData,\n hasMore,\n hasFooters,\n isRtl,\n columnsArray,\n appliedColumnWidths,\n layoutInfo,\n sizingInfoRef,\n stickyEdgesState,\n setStickyEdgesState,\n cellHasRenderer,\n horizontalScrollPositionOverride,\n verticalScrollPositionOverride,\n onColumnResizing,\n onColumnResize,\n currentCellOverride,\n onPersistCurrentCell,\n selectionMode,\n selected,\n onSelectionChange,\n onRowAction,\n sortCriterion,\n onSortCriterionChange,\n isPendingLayout,\n contextMenuConfig\n });\n\n // initialize base Table style classes\n const { classes: themeClasses } = useComponentTheme<TableVariantOptions>(TableRedwoodTheme, {\n pendingLayout: isPendingLayout ? 'isPendingLayout' : 'notPendingLayout',\n showFocusRing: isShowFocusRing ? 'isShowFocusRing' : 'notShowFocusRing',\n externalScroller: viewportInfo.isExternalScroller ? 'isExternalScroller' : 'notExternalScroller'\n });\n\n let scrollerStyle;\n let scrollerPadding = '';\n const scrollerClassArray = [scrollerStyles.base];\n if (viewportInfo.isExternalScroller) {\n scrollerClassArray.push(scrollerStyles.externalScroller);\n } else if (!sizingInfoRef.current.isScrollbarSizeKnown) {\n scrollerClassArray.push(scrollerStyles.forceScroll);\n } else {\n if (overflowRef.current.isHorizontal) {\n scrollerClassArray.push(scrollerStyles.horizontalScroll);\n } else {\n scrollerClassArray.push(scrollerStyles.noHorizontalScroll);\n }\n if (overflowRef.current.isVertical) {\n scrollerClassArray.push(scrollerStyles.verticalScroll);\n } else {\n scrollerClassArray.push(scrollerStyles.noVerticalScroll);\n scrollerPadding = `padding-inline-end: ${sizingInfoRef.current.defaultScrollbarWidth}px;`;\n }\n }\n // hide the table contents when layout is required and otherwise valid\n if (layoutInfo.isLayoutRequired && columnsArray.length > 0) {\n scrollerStyle = `${scrollerPadding}opacity:0.001;`;\n } else {\n scrollerStyle = scrollerPadding;\n }\n\n const scrollerClasses = classNames(scrollerClassArray);\n\n const classes = classNames([themeClasses]);\n const tableClasses = classNames([innerTableStyles.base]);\n\n const startStickyEdge = stickyEdgesState.start;\n const endStickyEdge = stickyEdgesState.end;\n\n const hasVerticalGridlines = gridlines?.vertical === 'visible';\n const hasHorizontalGridlines = gridlines?.horizontal !== 'hidden';\n\n const isRowSelectionEnabled =\n selectionMode?.row === 'single' || selectionMode?.row === 'multiple';\n const isColumnSelectionEnabled =\n selectionMode?.column === 'single' || selectionMode?.column === 'multiple';\n\n const getTableBodyProps = () => {\n return {\n rootRef: rootRef,\n viewportInfo: viewportInfo,\n tableId: tableId,\n isValidRender: columnsArray.length > 0,\n tableData: tableData,\n columnsArray: columnsArray,\n getAccessibleRowHeaders: getAccessibleRowHeaders,\n hasVerticalGridlines: hasVerticalGridlines,\n hasHorizontalGridlines: hasHorizontalGridlines,\n hasFooters: hasFooters,\n hasVerticalUnderflow: hasVerticalUnderflow,\n selected: selected,\n isRowSelectionEnabled: isRowSelectionEnabled,\n isSingleRowSelectionEnabled: selectionMode?.row === 'single',\n activeCell: currentActiveCell,\n currentRowKey: currentCell?.type === 'data' ? currentCell.rowKey : undefined,\n currentRowVariant: currentRowVariant,\n isShowFocusRing: isShowFocusRing,\n isTabbableMode: isTabbableMode,\n hasMore: hasMore,\n onLoadMore: onTableLoadMore,\n noDataRenderer: noDataRenderer,\n disabledInteractionKeys: disabledRowInteractionKeys,\n onSelectionChange: onTableSelectionChange,\n startStickyEdge: startStickyEdge,\n endStickyEdge: endStickyEdge,\n isRtl: isRtl,\n isHighContrast: isHighContrast\n };\n };\n\n const getTableColGroupProps = () => {\n let columnWidthsArray;\n if (!layoutInfo.isLayoutRequired) {\n columnWidthsArray = layoutInfo.columnWidthsArray;\n } else if (layout === 'fixed') {\n // default to 100px for each column when layout is not yet available\n columnWidthsArray = [];\n for (let i = 0; i < columnsArray.length; i++) {\n columnWidthsArray[i] = 100;\n }\n } else {\n columnWidthsArray = [];\n for (let i = 0; i < columnsArray.length; i++) {\n columnWidthsArray[i] = undefined;\n }\n }\n return {\n tableId: tableId,\n isRendered: columnsArray.length > 0,\n columnWidthsArray: columnWidthsArray\n };\n };\n\n const getTableHeaderProps = () => {\n return {\n tableId: tableId,\n isRendered: columnsArray.length > 0,\n columnsArray: columnsArray,\n hasVerticalGridlines: hasVerticalGridlines,\n activeKey: currentActiveCell?.type === 'header' ? currentActiveCell.columnKey : undefined,\n isTabbableMode: isTabbableMode,\n selectedColumnKeys: selected.column,\n selectedRowKeys: selected.row,\n isColumnSelectionEnabled: isColumnSelectionEnabled,\n isRowSelectionEnabled: isRowSelectionEnabled,\n disabledInteractionKeys: _disabledHeaderFooterInteractionKeys,\n onSelectionChange: onTableSelectionChange,\n isForceSortIcons: layout === 'contents' && layoutInfo.isLayoutRequired,\n hoverColumnKey: hoverColumnKey,\n sortCriterion: sortCriterion,\n onSortCriterionChange: onSortCriterionChange,\n isShowFocusRing: isShowFocusRing,\n stickyTopOffset: viewportInfo.viewportConfig.scrollerOffsetTop,\n startStickyEdge: startStickyEdge,\n endStickyEdge: endStickyEdge,\n isResizeHover: resizeInfoRef.current.isResizeHover,\n isRtl: isRtl,\n isHighContrast: isHighContrast\n };\n };\n\n const getTableFooterProps = () => {\n return {\n tableId: tableId,\n isRendered: hasFooters,\n columnsArray: columnsArray,\n hasVerticalGridlines: hasVerticalGridlines,\n activeKey: currentActiveCell?.type === 'footer' ? currentActiveCell.columnKey : undefined,\n isTabbableMode: isTabbableMode,\n selectedKeys: selected.column,\n isColumnSelectionEnabled: isColumnSelectionEnabled,\n isShowFocusRing: isShowFocusRing,\n disabledInteractionKeys: _disabledHeaderFooterInteractionKeys,\n stickyBottomOffset: viewportInfo.viewportConfig.scrollerOffsetBottom,\n startStickyEdge: startStickyEdge,\n endStickyEdge: endStickyEdge,\n dataRowCount: tableData.length,\n isRtl: isRtl,\n isHighContrast: isHighContrast\n };\n };\n\n const getTableDragIndicator = () => {\n if (columnResizingIndicator != null && !layoutInfo.isLayoutRequired) {\n let position = 0;\n for (let i = 0; i < columnsArray.length; i++) {\n position += layoutInfo.columnWidthsArray[i];\n if (columnsArray[i].key === columnResizingIndicator.key) {\n if (columnResizingIndicator.delta != null) {\n position += columnResizingIndicator.delta;\n }\n break;\n }\n }\n return <TableDragIndicator position={position} isRtl={isRtl} height={innerTableHeight} />;\n }\n return undefined;\n };\n\n const getTableStyle = () => {\n if (!layoutInfo.isLayoutRequired) {\n let totalWidth = 0;\n for (let i = 0; i < layoutInfo.columnWidthsArray.length; i++) {\n totalWidth += layoutInfo.columnWidthsArray[i];\n }\n return `width:${totalWidth}px;table-layout:fixed;`;\n } else if (columnsArray.length > 0) {\n if (layout === 'fixed') {\n // default to 100px for each column when layout is not yet available\n return `width:${columnsArray.length * 100}px;table-layout:fixed;`;\n } else {\n // shrink table down as much as possible when a 'contents' layout is required, otherwise\n // the sampled column widths will not reflect the true weight sizes with line-clamping\n return 'width:max-content;will-change:width;';\n }\n }\n // no columns are present\n return 'width:100%;';\n };\n\n const skeletonStyles = isHighContrast ? tableSkeletonStylesHC : tableSkeletonStyles;\n const getPendingLayoutSkeletons = () => {\n return isPendingLayout ? (\n <div class={skeletonStyles.pendingLayout}>\n <table role={'presentation'} style={'width:100%;table-layout:fixed;'}>\n <tbody role={'presentation'}>\n <TableSkeletonRow\n tableId={tableId}\n hasTabIndex={currentActiveCell?.type === 'pending'}\n colspan={ariaColumnCount}\n isPendingLayout={true}\n isShowFocusRing={false}\n isHighContrast={isHighContrast}\n />\n </tbody>\n </table>\n </div>\n ) : undefined;\n };\n\n return (\n <>\n <div\n {...testIdProps}\n ref={rootRef}\n aria-colcount={ariaColumnCount}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-rowcount={ariaRowCount}\n {...(selectionMode?.column === 'multiple' || selectionMode?.row === 'multiple'\n ? { 'aria-multiselectable': true }\n : {})}\n class={classes}\n id={tableId}\n role={'grid'}\n tabIndex={currentActiveCell != null ? -1 : 0}\n {...interactionManagerProps}>\n <div\n ref={scrollerRef}\n class={scrollerClasses}\n role={'rowgroup'}\n style={scrollerStyle}\n tabIndex={-1}\n {...scrollHandlingProps}>\n <FocusTracker\n isDisabled={!isTabbableMode}\n onFocusStartEdge={onFocusStartEdge}\n onFocusEndEdge={onFocusEndEdge}\n onStartTracking={onStartFocusTracking}>\n <TabbableModeContext.Provider value={{ isTabbable: isTabbableMode }}>\n <table\n ref={innerTableRef}\n aria-hidden={isPendingLayout ? true : undefined}\n class={tableClasses}\n role={'presentation'}\n style={getTableStyle()}\n data-oj-table-inner-table={tableId}>\n <TableColGroup {...getTableColGroupProps()} />\n <TableHeader {...getTableHeaderProps()} />\n <TableBody {...getTableBodyProps()} />\n <TableFooter {...getTableFooterProps()} />\n </table>\n </TabbableModeContext.Provider>\n {getTableDragIndicator()}\n </FocusTracker>\n {tooltipContent}\n </div>\n {getPendingLayoutSkeletons()}\n </div>\n {contextMenuConfig != null && contextMenuContext != null && (\n <TableContextMenu\n {...menuProps}\n contextMenuConfig={contextMenuConfig}\n contextMenuContext={contextMenuContext}\n />\n )}\n </>\n );\n}) as <K extends string | number, D, C extends string>(\n p: Props<K, D, C> & { ref?: ForwardedRef<TableViewHandle<K, C>> }\n) => JSXInternal.Element;\n"],"names":["_jsx","_jsxs","SortDescendingIcon","SortAscendingIcon","_Fragment"],"mappings":"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"}