@pega/lists-react 9.0.0-build.9.9 → 9.0.1

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 (433) hide show
  1. package/README.md +0 -4
  2. package/lib/Core/Components/A11y/RepeatingStructureA11y.d.ts.map +1 -1
  3. package/lib/Core/Components/A11y/RepeatingStructureA11y.js +2 -1
  4. package/lib/Core/Components/A11y/RepeatingStructureA11y.js.map +1 -1
  5. package/lib/Core/Components/AggregateMenu.d.ts.map +1 -1
  6. package/lib/Core/Components/AggregateMenu.js +6 -2
  7. package/lib/Core/Components/AggregateMenu.js.map +1 -1
  8. package/lib/Core/Components/AggregatorCell.d.ts.map +1 -1
  9. package/lib/Core/Components/AggregatorCell.js +3 -1
  10. package/lib/Core/Components/AggregatorCell.js.map +1 -1
  11. package/lib/Core/Components/ContextMenu/ContextMenuContainer.d.ts +6 -15
  12. package/lib/Core/Components/ContextMenu/ContextMenuContainer.d.ts.map +1 -1
  13. package/lib/Core/Components/ContextMenu/ContextMenuContainer.js +111 -166
  14. package/lib/Core/Components/ContextMenu/ContextMenuContainer.js.map +1 -1
  15. package/lib/Core/Components/ContextMenu/QuickFilter.js +1 -1
  16. package/lib/Core/Components/ContextMenu/QuickFilter.js.map +1 -1
  17. package/lib/Core/Components/DefaultComponents/CellRenderers/ColumnMergeTemplates/CustomCellWrapper.d.ts +1 -1
  18. package/lib/Core/Components/DefaultComponents/CellRenderers/ColumnMergeTemplates/CustomCellWrapper.d.ts.map +1 -1
  19. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts.map +1 -1
  20. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js +33 -5
  21. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js.map +1 -1
  22. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.d.ts +10 -0
  23. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.d.ts.map +1 -0
  24. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js +27 -0
  25. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js.map +1 -0
  26. package/lib/Core/Components/DefaultComponents/CellRenderers/index.d.ts +2 -2
  27. package/lib/Core/Components/DefaultComponents/CellRenderers/index.d.ts.map +1 -1
  28. package/lib/Core/Components/DefaultComponents/CellRenderers/index.js +2 -2
  29. package/lib/Core/Components/DefaultComponents/CellRenderers/index.js.map +1 -1
  30. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts +3 -1
  31. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts.map +1 -1
  32. package/lib/Core/Components/DefaultComponents/EmptyContainer.js +11 -2
  33. package/lib/Core/Components/DefaultComponents/EmptyContainer.js.map +1 -1
  34. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.d.ts +3 -2
  35. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.d.ts.map +1 -1
  36. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.js +13 -26
  37. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.js.map +1 -1
  38. package/lib/Core/Components/DefaultComponents/PersonalizationDeleteConfirmation.js +2 -2
  39. package/lib/Core/Components/DefaultComponents/PersonalizationDeleteConfirmation.js.map +1 -1
  40. package/lib/Core/Components/DefaultComponents/PersonalizationSelector.d.ts +0 -2
  41. package/lib/Core/Components/DefaultComponents/PersonalizationSelector.d.ts.map +1 -1
  42. package/lib/Core/Components/DefaultComponents/PersonalizationSelector.js +11 -9
  43. package/lib/Core/Components/DefaultComponents/PersonalizationSelector.js.map +1 -1
  44. package/lib/Core/Components/DefaultComponents/SelectAllCheckbox.d.ts.map +1 -1
  45. package/lib/Core/Components/DefaultComponents/SelectAllCheckbox.js +20 -19
  46. package/lib/Core/Components/DefaultComponents/SelectAllCheckbox.js.map +1 -1
  47. package/lib/Core/Components/DefaultComponents/index.d.ts +4 -3
  48. package/lib/Core/Components/DefaultComponents/index.d.ts.map +1 -1
  49. package/lib/Core/Components/DefaultComponents/index.js +0 -2
  50. package/lib/Core/Components/DefaultComponents/index.js.map +1 -1
  51. package/lib/Core/Components/Filters/AdvanceFilter.d.ts.map +1 -1
  52. package/lib/Core/Components/Filters/AdvanceFilter.js +5 -2
  53. package/lib/Core/Components/Filters/AdvanceFilter.js.map +1 -1
  54. package/lib/Core/Components/Filters/SelectFilter.d.ts +1 -1
  55. package/lib/Core/Components/Filters/SelectFilter.d.ts.map +1 -1
  56. package/lib/Core/Components/Filters/SelectFilter.js +43 -44
  57. package/lib/Core/Components/Filters/SelectFilter.js.map +1 -1
  58. package/lib/Core/Components/Filters/SimpleFilter.js +1 -1
  59. package/lib/Core/Components/Filters/SimpleFilter.js.map +1 -1
  60. package/lib/Core/Components/Filters/styles.d.ts +1 -1
  61. package/lib/Core/Components/FooterAggregators.d.ts.map +1 -1
  62. package/lib/Core/Components/FooterAggregators.js +6 -3
  63. package/lib/Core/Components/FooterAggregators.js.map +1 -1
  64. package/lib/Core/Components/GroupRenderer/GroupAdditionalFieldDataModal.d.ts +12 -0
  65. package/lib/Core/Components/GroupRenderer/GroupAdditionalFieldDataModal.d.ts.map +1 -0
  66. package/lib/Core/Components/GroupRenderer/GroupAdditionalFieldDataModal.js +62 -0
  67. package/lib/Core/Components/GroupRenderer/GroupAdditionalFieldDataModal.js.map +1 -0
  68. package/lib/Core/Components/GroupRenderer/GroupAdditionalInfo.d.ts +33 -0
  69. package/lib/Core/Components/GroupRenderer/GroupAdditionalInfo.d.ts.map +1 -0
  70. package/lib/Core/Components/GroupRenderer/GroupAdditionalInfo.js +106 -0
  71. package/lib/Core/Components/GroupRenderer/GroupAdditionalInfo.js.map +1 -0
  72. package/lib/Core/Components/GroupRenderer/index.d.ts +22 -0
  73. package/lib/Core/Components/GroupRenderer/index.d.ts.map +1 -0
  74. package/lib/Core/Components/GroupRenderer/index.js +395 -0
  75. package/lib/Core/Components/GroupRenderer/index.js.map +1 -0
  76. package/lib/Core/Components/Grouping/GroupingMenu.d.ts.map +1 -1
  77. package/lib/Core/Components/Grouping/GroupingMenu.js +2 -1
  78. package/lib/Core/Components/Grouping/GroupingMenu.js.map +1 -1
  79. package/lib/Core/Components/HeaderCell.d.ts.map +1 -1
  80. package/lib/Core/Components/HeaderCell.js +3 -3
  81. package/lib/Core/Components/HeaderCell.js.map +1 -1
  82. package/lib/Core/Components/HeaderMenu/actions.d.ts +1 -1
  83. package/lib/Core/Components/HeaderMenu/actions.d.ts.map +1 -1
  84. package/lib/Core/Components/HeaderMenu/actions.js +3 -4
  85. package/lib/Core/Components/HeaderMenu/actions.js.map +1 -1
  86. package/lib/Core/Components/HeaderMenu/index.d.ts.map +1 -1
  87. package/lib/Core/Components/HeaderMenu/index.js +5 -5
  88. package/lib/Core/Components/HeaderMenu/index.js.map +1 -1
  89. package/lib/Core/Components/HierarchicalGroupRenderer.d.ts.map +1 -1
  90. package/lib/Core/Components/HierarchicalGroupRenderer.js +6 -2
  91. package/lib/Core/Components/HierarchicalGroupRenderer.js.map +1 -1
  92. package/lib/Core/Components/NotificationManager.js +1 -1
  93. package/lib/Core/Components/NotificationManager.js.map +1 -1
  94. package/lib/Core/Components/RFColumnConfigurator.d.ts.map +1 -1
  95. package/lib/Core/Components/RFColumnConfigurator.js +32 -9
  96. package/lib/Core/Components/RFColumnConfigurator.js.map +1 -1
  97. package/lib/Core/Components/RSWrapper/HeaderBarGadget.d.ts.map +1 -1
  98. package/lib/Core/Components/RSWrapper/HeaderBarGadget.js +2 -1
  99. package/lib/Core/Components/RSWrapper/HeaderBarGadget.js.map +1 -1
  100. package/lib/Core/Components/RSWrapper/index.d.ts.map +1 -1
  101. package/lib/Core/Components/RSWrapper/index.js +2 -9
  102. package/lib/Core/Components/RSWrapper/index.js.map +1 -1
  103. package/lib/Core/Components/RenderingEngine/Formatter.d.ts.map +1 -1
  104. package/lib/Core/Components/RenderingEngine/Formatter.js +4 -1
  105. package/lib/Core/Components/RenderingEngine/Formatter.js.map +1 -1
  106. package/lib/Core/Components/RenderingEngine/RenderCell.d.ts.map +1 -1
  107. package/lib/Core/Components/RenderingEngine/RenderCell.js +19 -8
  108. package/lib/Core/Components/RenderingEngine/RenderCell.js.map +1 -1
  109. package/lib/Core/Components/RenderingEngine/useHighlighter.d.ts.map +1 -1
  110. package/lib/Core/Components/RenderingEngine/useHighlighter.js +0 -1
  111. package/lib/Core/Components/RenderingEngine/useHighlighter.js.map +1 -1
  112. package/lib/Core/Components/TestIdConstants.d.ts +2 -0
  113. package/lib/Core/Components/TestIdConstants.js +3 -1
  114. package/lib/Core/Components/TestIdConstants.js.map +1 -1
  115. package/lib/Core/Components/Toolbar/AdvanceToolbar.d.ts.map +1 -1
  116. package/lib/Core/Components/Toolbar/AdvanceToolbar.js +7 -18
  117. package/lib/Core/Components/Toolbar/AdvanceToolbar.js.map +1 -1
  118. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts +6 -4
  119. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
  120. package/lib/Core/Components/Toolbar/ColumnSelector.js +18 -21
  121. package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
  122. package/lib/Core/Components/Toolbar/DebugInfo.d.ts +3 -5
  123. package/lib/Core/Components/Toolbar/DebugInfo.d.ts.map +1 -1
  124. package/lib/Core/Components/Toolbar/DebugInfo.js +3 -3
  125. package/lib/Core/Components/Toolbar/DebugInfo.js.map +1 -1
  126. package/lib/Core/Components/Toolbar/FieldSelector.d.ts +2 -1
  127. package/lib/Core/Components/Toolbar/FieldSelector.d.ts.map +1 -1
  128. package/lib/Core/Components/Toolbar/FieldSelector.js +14 -7
  129. package/lib/Core/Components/Toolbar/FieldSelector.js.map +1 -1
  130. package/lib/Core/Components/Toolbar/Grouping.types.d.ts +0 -6
  131. package/lib/Core/Components/Toolbar/Grouping.types.d.ts.map +1 -1
  132. package/lib/Core/Components/Toolbar/Grouping.types.js.map +1 -1
  133. package/lib/Core/Components/Toolbar/RefreshBanner.d.ts.map +1 -1
  134. package/lib/Core/Components/Toolbar/RefreshBanner.js +1 -0
  135. package/lib/Core/Components/Toolbar/RefreshBanner.js.map +1 -1
  136. package/lib/Core/Components/Toolbar/SimpleToolbar.d.ts.map +1 -1
  137. package/lib/Core/Components/Toolbar/SimpleToolbar.js +2 -4
  138. package/lib/Core/Components/Toolbar/SimpleToolbar.js.map +1 -1
  139. package/lib/Core/Components/Toolbar/hooks/useFilter.d.ts.map +1 -1
  140. package/lib/Core/Components/Toolbar/hooks/useFilter.js +4 -1
  141. package/lib/Core/Components/Toolbar/hooks/useFilter.js.map +1 -1
  142. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts +14 -18
  143. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts.map +1 -1
  144. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js +15 -16
  145. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js.map +1 -1
  146. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts +4 -2
  147. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts.map +1 -1
  148. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js +30 -22
  149. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js.map +1 -1
  150. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.d.ts.map +1 -1
  151. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js +17 -6
  152. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js.map +1 -1
  153. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts +7 -2
  154. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts.map +1 -1
  155. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js +12 -5
  156. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js.map +1 -1
  157. package/lib/Core/Components/Toolbar/hooks/useMore.d.ts +1 -1
  158. package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
  159. package/lib/Core/Components/Toolbar/hooks/useMore.js +134 -80
  160. package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
  161. package/lib/Core/Components/Toolbar/hooks/usePersonalization.d.ts +8 -6
  162. package/lib/Core/Components/Toolbar/hooks/usePersonalization.d.ts.map +1 -1
  163. package/lib/Core/Components/Toolbar/hooks/usePersonalization.js +18 -3
  164. package/lib/Core/Components/Toolbar/hooks/usePersonalization.js.map +1 -1
  165. package/lib/Core/Components/Toolbar/hooks/useSearch.d.ts.map +1 -1
  166. package/lib/Core/Components/Toolbar/hooks/useSearch.js +7 -10
  167. package/lib/Core/Components/Toolbar/hooks/useSearch.js.map +1 -1
  168. package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts +8 -6
  169. package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts.map +1 -1
  170. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js +16 -10
  171. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js.map +1 -1
  172. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts +4 -2
  173. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts.map +1 -1
  174. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js +9 -3
  175. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js.map +1 -1
  176. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.d.ts.map +1 -1
  177. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js +8 -2
  178. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js.map +1 -1
  179. package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts +1 -1
  180. package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts.map +1 -1
  181. package/lib/Core/Components/Toolbar/hooks/useSort/utils.js +2 -2
  182. package/lib/Core/Components/Toolbar/hooks/useSort/utils.js.map +1 -1
  183. package/lib/Core/Components/Toolbar/hooks/useWrapAction.d.ts +2 -1
  184. package/lib/Core/Components/Toolbar/hooks/useWrapAction.d.ts.map +1 -1
  185. package/lib/Core/Components/Toolbar/hooks/useWrapAction.js +36 -12
  186. package/lib/Core/Components/Toolbar/hooks/useWrapAction.js.map +1 -1
  187. package/lib/Core/Components/Toolbar/utils/utils.d.ts +28 -7
  188. package/lib/Core/Components/Toolbar/utils/utils.d.ts.map +1 -1
  189. package/lib/Core/Components/Toolbar/utils/utils.js +43 -11
  190. package/lib/Core/Components/Toolbar/utils/utils.js.map +1 -1
  191. package/lib/Core/Components/Virtualise/Pagination.d.ts.map +1 -1
  192. package/lib/Core/Components/Virtualise/Pagination.js +2 -1
  193. package/lib/Core/Components/Virtualise/Pagination.js.map +1 -1
  194. package/lib/Core/Components/Virtualise/UseScroll.d.ts +4 -1
  195. package/lib/Core/Components/Virtualise/UseScroll.d.ts.map +1 -1
  196. package/lib/Core/Components/Virtualise/UseScroll.js +16 -3
  197. package/lib/Core/Components/Virtualise/UseScroll.js.map +1 -1
  198. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js +1 -1
  199. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js.map +1 -1
  200. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.d.ts +1 -1
  201. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js +1 -1
  202. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js.map +1 -1
  203. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js +14 -4
  204. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js.map +1 -1
  205. package/lib/Core/Components/Virtualise/index.js +19 -4
  206. package/lib/Core/Components/Virtualise/index.js.map +1 -1
  207. package/lib/Core/Components/Virtualise/utility.js +1 -1
  208. package/lib/Core/Components/Virtualise/utility.js.map +1 -1
  209. package/lib/Core/Components/WarningBanner.d.ts +11 -0
  210. package/lib/Core/Components/WarningBanner.d.ts.map +1 -0
  211. package/lib/Core/Components/WarningBanner.js +23 -0
  212. package/lib/Core/Components/WarningBanner.js.map +1 -0
  213. package/lib/Core/Context/LocalizationContext.d.ts +1 -1
  214. package/lib/Core/Context/LocalizationContext.d.ts.map +1 -1
  215. package/lib/Core/Context/LocalizationContext.js.map +1 -1
  216. package/lib/Core/Hooks/a11y/useAnnounce.d.ts +3 -4
  217. package/lib/Core/Hooks/a11y/useAnnounce.d.ts.map +1 -1
  218. package/lib/Core/Hooks/a11y/useAnnounce.js +3 -4
  219. package/lib/Core/Hooks/a11y/useAnnounce.js.map +1 -1
  220. package/lib/Core/Hooks/useDebounce.js +1 -1
  221. package/lib/Core/Hooks/useDebounce.js.map +1 -1
  222. package/lib/Core/Hooks/useDragDrop.d.ts +2 -2
  223. package/lib/Core/Hooks/useDragDrop.d.ts.map +1 -1
  224. package/lib/Core/Hooks/useDragDrop.js +9 -9
  225. package/lib/Core/Hooks/useDragDrop.js.map +1 -1
  226. package/lib/Core/Hooks/useRepeat.d.ts +1 -1
  227. package/lib/Core/Hooks/useRepeat.d.ts.map +1 -1
  228. package/lib/Core/Hooks/useRepeat.js +58 -11
  229. package/lib/Core/Hooks/useRepeat.js.map +1 -1
  230. package/lib/Core/Hooks/useSelectAllCheckbox.d.ts +21 -0
  231. package/lib/Core/Hooks/useSelectAllCheckbox.d.ts.map +1 -0
  232. package/lib/Core/Hooks/useSelectAllCheckbox.js +23 -0
  233. package/lib/Core/Hooks/useSelectAllCheckbox.js.map +1 -0
  234. package/lib/Core/Localization/defaultTranslations.d.ts +15 -13
  235. package/lib/Core/Localization/defaultTranslations.d.ts.map +1 -1
  236. package/lib/Core/Localization/defaultTranslations.js +16 -14
  237. package/lib/Core/Localization/defaultTranslations.js.map +1 -1
  238. package/lib/Core/Test/JUnitMocks.d.ts +12 -0
  239. package/lib/Core/Test/JUnitMocks.d.ts.map +1 -1
  240. package/lib/Core/Test/JUnitMocks.js +27 -8
  241. package/lib/Core/Test/JUnitMocks.js.map +1 -1
  242. package/lib/Core/Test/TestUtils.d.ts +0 -1
  243. package/lib/Core/Test/TestUtils.d.ts.map +1 -1
  244. package/lib/Core/Test/TestUtils.js +3 -7
  245. package/lib/Core/Test/TestUtils.js.map +1 -1
  246. package/lib/Core/Utils/index.d.ts +15 -0
  247. package/lib/Core/Utils/index.d.ts.map +1 -1
  248. package/lib/Core/Utils/index.js +22 -0
  249. package/lib/Core/Utils/index.js.map +1 -1
  250. package/lib/Core/Utils/styles.d.ts +2 -2
  251. package/lib/Core/Utils/styles.d.ts.map +1 -1
  252. package/lib/Core/Views/Gallery/Components/GalleryCard.d.ts +4 -0
  253. package/lib/Core/Views/Gallery/Components/GalleryCard.d.ts.map +1 -0
  254. package/lib/Core/Views/Gallery/Components/GalleryCard.js +29 -0
  255. package/lib/Core/Views/Gallery/Components/GalleryCard.js.map +1 -0
  256. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.d.ts +8 -0
  257. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.d.ts.map +1 -0
  258. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.js +25 -0
  259. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.js.map +1 -0
  260. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.d.ts +8 -0
  261. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.d.ts.map +1 -0
  262. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.js +8 -0
  263. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.js.map +1 -0
  264. package/lib/Core/Views/Gallery/Components/GalleryHeader.d.ts +8 -0
  265. package/lib/Core/Views/Gallery/Components/GalleryHeader.d.ts.map +1 -0
  266. package/lib/Core/Views/Gallery/Components/GalleryHeader.js +15 -0
  267. package/lib/Core/Views/Gallery/Components/GalleryHeader.js.map +1 -0
  268. package/lib/Core/Views/Gallery/Gallery.types.d.ts +8 -0
  269. package/lib/Core/Views/Gallery/Gallery.types.d.ts.map +1 -0
  270. package/lib/Core/Views/Gallery/Gallery.types.js +2 -0
  271. package/lib/Core/Views/Gallery/Gallery.types.js.map +1 -0
  272. package/lib/Core/Views/Gallery/GalleryA11y.d.ts +7 -5
  273. package/lib/Core/Views/Gallery/GalleryA11y.d.ts.map +1 -1
  274. package/lib/Core/Views/Gallery/GalleryA11y.js +9 -52
  275. package/lib/Core/Views/Gallery/GalleryA11y.js.map +1 -1
  276. package/lib/Core/Views/Gallery/GalleryContainer.d.ts +23 -0
  277. package/lib/Core/Views/Gallery/GalleryContainer.d.ts.map +1 -0
  278. package/lib/Core/Views/Gallery/GalleryContainer.js +66 -0
  279. package/lib/Core/Views/Gallery/GalleryContainer.js.map +1 -0
  280. package/lib/Core/Views/Gallery/_tests_/Samples/GalleryA11ySample.js +1 -1
  281. package/lib/Core/Views/Gallery/_tests_/Samples/GalleryA11ySample.js.map +1 -1
  282. package/lib/Core/Views/Gallery/hooks/useRowActions.d.ts +9 -0
  283. package/lib/Core/Views/Gallery/hooks/useRowActions.d.ts.map +1 -0
  284. package/lib/Core/Views/Gallery/hooks/useRowActions.js +25 -0
  285. package/lib/Core/Views/Gallery/hooks/useRowActions.js.map +1 -0
  286. package/lib/Core/Views/Gallery/index.d.ts +4 -8
  287. package/lib/Core/Views/Gallery/index.d.ts.map +1 -1
  288. package/lib/Core/Views/Gallery/index.js +38 -59
  289. package/lib/Core/Views/Gallery/index.js.map +1 -1
  290. package/lib/Core/Views/Gallery/utils.d.ts +36 -0
  291. package/lib/Core/Views/Gallery/utils.d.ts.map +1 -0
  292. package/lib/Core/Views/Gallery/utils.js +115 -0
  293. package/lib/Core/Views/Gallery/utils.js.map +1 -0
  294. package/lib/Core/Views/Map/Map.styles.d.ts +190 -6
  295. package/lib/Core/Views/Map/Map.styles.d.ts.map +1 -1
  296. package/lib/Core/Views/Map/Map.styles.js.map +1 -1
  297. package/lib/Core/Views/Map/index.d.ts.map +1 -1
  298. package/lib/Core/Views/Map/index.js +2 -2
  299. package/lib/Core/Views/Map/index.js.map +1 -1
  300. package/lib/Core/Views/RsCardWrapper.js.map +1 -1
  301. package/lib/Core/Views/Table/Body.d.ts.map +1 -1
  302. package/lib/Core/Views/Table/Body.js +5 -2
  303. package/lib/Core/Views/Table/Body.js.map +1 -1
  304. package/lib/Core/Views/Table/CellWrapper.d.ts +1 -1
  305. package/lib/Core/Views/Table/CellWrapper.d.ts.map +1 -1
  306. package/lib/Core/Views/Table/CellWrapper.js +4 -2
  307. package/lib/Core/Views/Table/CellWrapper.js.map +1 -1
  308. package/lib/Core/Views/Table/GroupingHeaderCell.d.ts +6 -15
  309. package/lib/Core/Views/Table/GroupingHeaderCell.d.ts.map +1 -1
  310. package/lib/Core/Views/Table/GroupingHeaderCell.js +16 -14
  311. package/lib/Core/Views/Table/GroupingHeaderCell.js.map +1 -1
  312. package/lib/Core/Views/Table/HeaderWrapper.d.ts.map +1 -1
  313. package/lib/Core/Views/Table/HeaderWrapper.js +5 -5
  314. package/lib/Core/Views/Table/HeaderWrapper.js.map +1 -1
  315. package/lib/Core/Views/Table/SkeletonRows.d.ts +1 -1
  316. package/lib/Core/Views/Table/SkeletonRows.d.ts.map +1 -1
  317. package/lib/Core/Views/Table/StyledTableContainer.d.ts +3 -1
  318. package/lib/Core/Views/Table/StyledTableContainer.d.ts.map +1 -1
  319. package/lib/Core/Views/Table/StyledTableContainer.js +270 -155
  320. package/lib/Core/Views/Table/StyledTableContainer.js.map +1 -1
  321. package/lib/Core/Views/Table/TableA11y.d.ts +13 -1
  322. package/lib/Core/Views/Table/TableA11y.d.ts.map +1 -1
  323. package/lib/Core/Views/Table/TableA11y.js +233 -13
  324. package/lib/Core/Views/Table/TableA11y.js.map +1 -1
  325. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts +3 -1
  326. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts.map +1 -1
  327. package/lib/Core/Views/Table/VirtualizeWrapper.js +16 -16
  328. package/lib/Core/Views/Table/VirtualizeWrapper.js.map +1 -1
  329. package/lib/Core/Views/Table/index.d.ts.map +1 -1
  330. package/lib/Core/Views/Table/index.js +16 -7
  331. package/lib/Core/Views/Table/index.js.map +1 -1
  332. package/lib/Core/Views/Timeline/Timeline.d.ts.map +1 -1
  333. package/lib/Core/Views/Timeline/Timeline.js +15 -20
  334. package/lib/Core/Views/Timeline/Timeline.js.map +1 -1
  335. package/lib/Core/Views/Timeline/Timeline.styles.d.ts +392 -15
  336. package/lib/Core/Views/Timeline/Timeline.styles.d.ts.map +1 -1
  337. package/lib/Core/Views/Timeline/Timeline.styles.js +44 -44
  338. package/lib/Core/Views/Timeline/Timeline.styles.js.map +1 -1
  339. package/lib/Core/Views/Timeline/Timeline.types.d.ts +11 -7
  340. package/lib/Core/Views/Timeline/Timeline.types.d.ts.map +1 -1
  341. package/lib/Core/Views/Timeline/Timeline.types.js.map +1 -1
  342. package/lib/Core/Views/Timeline/TimelineGroup.d.ts +13 -0
  343. package/lib/Core/Views/Timeline/TimelineGroup.d.ts.map +1 -0
  344. package/lib/Core/Views/Timeline/TimelineGroup.js +21 -0
  345. package/lib/Core/Views/Timeline/TimelineGroup.js.map +1 -0
  346. package/lib/Core/Views/Timeline/TimelineItem.d.ts +1 -3
  347. package/lib/Core/Views/Timeline/TimelineItem.d.ts.map +1 -1
  348. package/lib/Core/Views/Timeline/TimelineItem.js +7 -6
  349. package/lib/Core/Views/Timeline/TimelineItem.js.map +1 -1
  350. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.d.ts +2 -2
  351. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.d.ts.map +1 -1
  352. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.js.map +1 -1
  353. package/lib/Core/Views/Timeline/index.d.ts.map +1 -1
  354. package/lib/Core/Views/Timeline/index.js +13 -6
  355. package/lib/Core/Views/Timeline/index.js.map +1 -1
  356. package/lib/Core/Views/Timeline/utils.d.ts +8 -10
  357. package/lib/Core/Views/Timeline/utils.d.ts.map +1 -1
  358. package/lib/Core/Views/Timeline/utils.js +136 -58
  359. package/lib/Core/Views/Timeline/utils.js.map +1 -1
  360. package/lib/Core/Views/rs-styles.d.ts +1 -1
  361. package/lib/Core/a11y/loadingAnnouncementBehavior.d.ts +12 -0
  362. package/lib/Core/a11y/loadingAnnouncementBehavior.d.ts.map +1 -0
  363. package/lib/Core/a11y/loadingAnnouncementBehavior.js +37 -0
  364. package/lib/Core/a11y/loadingAnnouncementBehavior.js.map +1 -0
  365. package/lib/Core/constants.d.ts.map +1 -1
  366. package/lib/Core/constants.js +1 -0
  367. package/lib/Core/constants.js.map +1 -1
  368. package/lib/Core/index.d.ts.map +1 -1
  369. package/lib/Core/index.js +1 -2
  370. package/lib/Core/index.js.map +1 -1
  371. package/lib/Core/templateFeatureSupport.d.ts +17 -0
  372. package/lib/Core/templateFeatureSupport.d.ts.map +1 -0
  373. package/lib/Core/templateFeatureSupport.js +31 -0
  374. package/lib/Core/templateFeatureSupport.js.map +1 -0
  375. package/lib/index.d.ts +1 -1
  376. package/lib/index.d.ts.map +1 -1
  377. package/lib/index.js +1 -1
  378. package/lib/index.js.map +1 -1
  379. package/lib/types/RepeatingStructuresBoot.types.d.ts +12 -8
  380. package/lib/types/RepeatingStructuresBoot.types.d.ts.map +1 -1
  381. package/lib/types/RepeatingStructuresBoot.types.js.map +1 -1
  382. package/lib/types.d.ts +2 -0
  383. package/lib/types.d.ts.map +1 -1
  384. package/lib/types.js.map +1 -1
  385. package/package.json +11 -13
  386. package/lib/Core/Components/DefaultComponents/CardItem.d.ts +0 -3
  387. package/lib/Core/Components/DefaultComponents/CardItem.d.ts.map +0 -1
  388. package/lib/Core/Components/DefaultComponents/CardItem.js +0 -78
  389. package/lib/Core/Components/DefaultComponents/CardItem.js.map +0 -1
  390. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts +0 -12
  391. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts.map +0 -1
  392. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js +0 -36
  393. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js.map +0 -1
  394. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.d.ts +0 -15
  395. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.d.ts.map +0 -1
  396. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js +0 -50
  397. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js.map +0 -1
  398. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.d.ts +0 -12
  399. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.d.ts.map +0 -1
  400. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.js +0 -44
  401. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/TextInput.js.map +0 -1
  402. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.d.ts +0 -16
  403. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.d.ts.map +0 -1
  404. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js +0 -64
  405. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js.map +0 -1
  406. package/lib/Core/Components/GroupRenderer.d.ts +0 -31
  407. package/lib/Core/Components/GroupRenderer.d.ts.map +0 -1
  408. package/lib/Core/Components/GroupRenderer.js +0 -348
  409. package/lib/Core/Components/GroupRenderer.js.map +0 -1
  410. package/lib/Core/Components/RSWrapper/__mocks__/uuid.d.ts +0 -2
  411. package/lib/Core/Components/RSWrapper/__mocks__/uuid.d.ts.map +0 -1
  412. package/lib/Core/Components/RSWrapper/__mocks__/uuid.js +0 -4
  413. package/lib/Core/Components/RSWrapper/__mocks__/uuid.js.map +0 -1
  414. package/lib/Core/Components/Toolbar/KeyboardInstructions.d.ts +0 -6
  415. package/lib/Core/Components/Toolbar/KeyboardInstructions.d.ts.map +0 -1
  416. package/lib/Core/Components/Toolbar/KeyboardInstructions.js +0 -32
  417. package/lib/Core/Components/Toolbar/KeyboardInstructions.js.map +0 -1
  418. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.d.ts +0 -7
  419. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.d.ts.map +0 -1
  420. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.js +0 -109
  421. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.js.map +0 -1
  422. package/lib/Core/Views/Gallery/ItemWrapper.d.ts +0 -19
  423. package/lib/Core/Views/Gallery/ItemWrapper.d.ts.map +0 -1
  424. package/lib/Core/Views/Gallery/ItemWrapper.js +0 -34
  425. package/lib/Core/Views/Gallery/ItemWrapper.js.map +0 -1
  426. package/lib/Core/Views/Gallery/StyledGalleryContainer.d.ts +0 -3
  427. package/lib/Core/Views/Gallery/StyledGalleryContainer.d.ts.map +0 -1
  428. package/lib/Core/Views/Gallery/StyledGalleryContainer.js +0 -51
  429. package/lib/Core/Views/Gallery/StyledGalleryContainer.js.map +0 -1
  430. package/lib/Core/Views/Timeline/utility.d.ts +0 -8
  431. package/lib/Core/Views/Timeline/utility.d.ts.map +0 -1
  432. package/lib/Core/Views/Timeline/utility.js +0 -120
  433. package/lib/Core/Views/Timeline/utility.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TableA11y.js","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":"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","sourcesContent":["import { BaseA11y, rowErrorColumnMeta } from 'pega-repeating-structures-core';\n\nconst sortOrder = {\n row: 'aria-rowindex',\n column: 'aria-colindex'\n};\n\nconst TAB_INDEX = 'tabindex';\nconst DATA_INDEX = 'data-index';\nconst HEADER_MENU = '.header-menu';\nconst HEADER = 'header';\nconst ARIA_DESCRIBEDBY = 'aria-describedby';\n\nfunction gainFocus(element) {\n element.setAttribute(TAB_INDEX, 0);\n element.focus();\n}\n\nfunction getHeaderColumnToFocusOnCtrlHome(columns) {\n return columns.find(column => {\n return !!column.querySelector(HEADER_MENU);\n });\n}\n\nfunction setFocusToFocusableElementOrCell(focusableElements, cell) {\n if (focusableElements.length === 1) focusableElements[0].focus();\n else gainFocus(cell);\n}\n\nclass TableA11y extends BaseA11y {\n constructor(\n selectors,\n focusableSelectors,\n // eslint-disable-next-line default-param-last\n customKeys = {},\n container,\n announcePolite,\n translate,\n actionableSelectors,\n ariaLabel\n ) {\n super(selectors, focusableSelectors, customKeys, container, actionableSelectors, ariaLabel);\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n this.targetIndex = -2;\n this.ctrlHomeKeyPressed = false;\n this.announcePolite = announcePolite;\n this.translate = translate;\n this.isTableLoaderFocussed = false;\n this.dataEntryMode = false;\n }\n\n reset() {\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n }\n\n getFocusableElementsInCell(column, isCalledFromEsc = false) {\n if (column) {\n const scalarListTag = '.scalarlist-component';\n const scalarListComponent = column.querySelector(scalarListTag);\n if (scalarListComponent) return [scalarListComponent];\n const elementsInColumn = column.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n if (!isCalledFromEsc && elementsInColumn.length > 1) {\n return [];\n }\n return column.querySelectorAll(this.focusableSelectors.join(','));\n }\n }\n\n getActionableElementsInCell(column) {\n return column.querySelectorAll(this.actionableSelectors.join(','));\n }\n\n getSortedColumns(row) {\n return [...row.querySelectorAll(this.selectors.focusElementSelector)].sort(\n (colA, colB) => colA.getAttribute(sortOrder.column) - colB.getAttribute(sortOrder.column)\n );\n }\n\n handleRightKeyPressForExpandCollapseAll(selectAllSelector) {\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n if (firstActionMenuSelector.length > 0) {\n return gainFocus(firstActionMenuSelector[0]);\n }\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (selectAllCheckboxSelector.length === 0 && firstActionMenuSelector.length === 0) {\n return gainFocus(firstSortedColumnSelector);\n }\n }\n }\n return null;\n }\n\n // Below method is added to handle key events for expand and collapse all button\n handleExpandCollapseAllEvents(event, selectAllSelector) {\n const { keyCode, shiftKey } = event;\n switch (keyCode) {\n case this.keys.RIGHT: {\n event.preventDefault();\n this.handleRightKeyPressForExpandCollapseAll(selectAllSelector);\n break;\n }\n case this.keys.DOWN: {\n event.preventDefault();\n const stickyCells = this.container.querySelector(this.selectors.stickyGroupHeaderSelector);\n const nextfirstCell = stickyCells;\n const nextfirstCellChild = nextfirstCell.nextSibling;\n gainFocus(nextfirstCellChild);\n break;\n }\n case this.keys.UP:\n case this.keys.LEFT:\n event.preventDefault();\n break;\n case this.keys.TAB: {\n const currentCol = this.container\n .getRootNode()\n .activeElement.closest(this.selectors.focusElementSelector);\n this.containerTabHandler(event, currentCol, shiftKey);\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is added to add/remove aria-label for rows with errors. Aria-label is added on first focus and removed if traversing in the same row\n handleAnnouncementForErrors(nextItem, currentCol, keyCode) {\n let elementWithErrorMessage = currentCol.querySelector('[data-error-message-set]');\n elementWithErrorMessage = currentCol.dataset.errorMessageSet\n ? currentCol\n : elementWithErrorMessage;\n const ARIA_LABEL = 'aria-label';\n if (elementWithErrorMessage) {\n const { ariaLabel: previousAriaLabel } = elementWithErrorMessage.dataset ?? {};\n if (previousAriaLabel) elementWithErrorMessage.setAttribute(ARIA_LABEL, previousAriaLabel);\n else elementWithErrorMessage.removeAttribute(ARIA_LABEL);\n }\n\n if (\n (keyCode !== this.keys.UP && keyCode !== this.keys.DOWN) ||\n nextItem\n .closest(this.selectors.focusElementSelector)\n ?.classList.contains(rowErrorColumnMeta.options.classList[0])\n )\n return;\n\n let errorMessage = nextItem.closest(this.selectors.parentElementSelector)?.dataset.errorMessage;\n if (errorMessage) {\n if (!nextItem.classList.contains(this.selectors.focusElementSelector.split('.')[1])) {\n if (nextItem.hasAttribute(ARIA_LABEL)) {\n errorMessage += `, ${nextItem.getAttribute(ARIA_LABEL)}`;\n nextItem.dataset.ariaLabel = nextItem.getAttribute(ARIA_LABEL);\n } else errorMessage += `, ${nextItem.textContent}`;\n }\n nextItem.setAttribute(ARIA_LABEL, errorMessage);\n nextItem.dataset.errorMessageSet = true;\n }\n }\n\n // Below method is added to set the focus on expand and collapse all button if left arrow key is pressed from actions button or select all checkbox\n handleKeyleftForButtonMoreSelectAll(event, selectAllSelector) {\n const { keyCode } = event;\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (\n ((firstActionMenuSelector.length > 0 && event.target === firstActionMenuSelector[0]) ||\n (selectAllCheckboxSelector.length === 0 &&\n firstActionMenuSelector.length === 0 &&\n event.target === firstSortedColumnSelector)) &&\n keyCode === this.keys.LEFT &&\n this.container.querySelector(this.selectors.expandCollpaseAll)\n ) {\n const expandCollapseSelector = this.container.querySelector(\n this.selectors.expandCollpaseAll\n );\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return true;\n }\n }\n }\n return false;\n }\n\n handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector) {\n const pContainer = this.container.querySelector(pContainerSelector);\n if (\n pContainer &&\n event.keyCode === this.keys.UP &&\n event.target.getBoundingClientRect().y -\n (pContainer.firstChild.getBoundingClientRect().y +\n pContainer.firstChild.getBoundingClientRect().height) <\n event.target.getBoundingClientRect().height * 2\n ) {\n pContainer.scrollTop -= event.target.getBoundingClientRect().height * 2;\n }\n }\n\n // Used to update this.targetIndex on keydown which is later used by handleGroupHeaderEvents\n updateTargetColumnIndexForGroupHeader(event) {\n const { target, keyCode } = event;\n if (\n this.targetIndex === null ||\n this.targetIndex === -1 ||\n keyCode === this.keys.UP ||\n keyCode === this.keys.DOWN\n ) {\n if (target.closest(this.selectors.expandCollpaseAll)) {\n this.targetIndex = -1;\n return;\n }\n const cell = target.closest(this.selectors.focusElementSelector);\n let row = target.closest(this.selectors.parentElementSelector);\n row = this.getSortedColumns(row);\n\n this.targetIndex = [...row].indexOf(cell);\n }\n }\n\n handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event) {\n // If the group header is at the last row and DOWN key is press then\n if (\n keyCode === this.keys.DOWN &&\n target.closest(this.selectors.parentElementSelector).nextElementSibling === null\n ) {\n // if footer exists\n const footer = this.container.querySelector(this.selectors.footer);\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n if (footer) {\n const cell = this.getSortedColumns(\n footer.querySelector(this.selectors.parentElementSelector)\n )[index];\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cell), cell);\n }\n return true;\n }\n // If the focus came to the group header from the expand all button\n if (keyCode === this.keys.UP && this.targetIndex === -1) {\n this.container.querySelector(this.selectors.expandCollpaseAll).children[0].focus();\n } else {\n event.preventDefault();\n // If initially the group header is clicked and the keyboard is used\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n // Flushing the -1 index\n if (keyCode === this.keys.DOWN && this.targetIndex === -1) {\n this.targetIndex = 0;\n }\n if (cellToFocus) {\n cellToFocus.focus();\n }\n }\n return true;\n }\n\n handleLeftRightKeyPressForGroupHeader(keyCode, target, cellToFocus) {\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n\n if (!this.targetIndex) this.targetIndex = 0;\n if (cellToFocus) {\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cellToFocus), cellToFocus);\n }\n }\n\n handleGroupHeaderEvents(event) {\n const { keyCode, target, ctrlKey } = event;\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n const cellToFocus = this.getSortedColumns(target.closest(this.selectors.parentElementSelector))[\n index\n ];\n\n switch (keyCode) {\n case this.keys.UP:\n case this.keys.DOWN: {\n return this.handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event);\n }\n case this.keys.RIGHT:\n {\n // To Prevent Scrolling\n event.preventDefault();\n const row = target.closest(this.selectors.parentElementSelector);\n if (row.querySelector('.aggregate-button')) {\n const firstFocusableElementInRow = this.getSortedColumns(row)[0];\n this.handleLeftRightKeyPressForGroupHeader(keyCode, target, firstFocusableElementInRow);\n return false;\n }\n }\n break;\n case this.keys.TAB:\n if (cellToFocus) {\n cellToFocus.focus();\n }\n break;\n case this.keys.HOME:\n if (ctrlKey) {\n this.handleCtrlHomeKeypress();\n }\n break;\n default:\n break;\n }\n return true;\n }\n\n checkEventsForGroupHeader(event) {\n if (\n event.target &&\n (event.target.closest(this.selectors.focusElementSelector) ||\n event.target.closest(this.selectors.expandCollpaseAll))\n ) {\n this.updateTargetColumnIndexForGroupHeader(event);\n } else if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n return this.handleGroupHeaderEvents(event);\n }\n return true;\n }\n\n stopEventHandler(event) {\n return (\n (!event.target.closest(this.selectors.stickyGroupHeaderSelector) &&\n event.target.getAttribute('aria-expanded')) === 'true' ||\n event.target.closest('.popper') ||\n !Object.values(this.keys).includes(event.keyCode)\n );\n }\n\n handleLeftKeyPressOnAggregateCells(target, aggregateCell) {\n const firstCell = this.getSortedColumns(\n target.closest(this.selectors.parentElementSelector)\n )[0];\n if (firstCell === target.closest(aggregateCell)) {\n const groupHeaderButton = target\n .closest(this.selectors.parentElementSelector)\n ?.querySelector('.stickyGroupHeader > button');\n groupHeaderButton.focus();\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isAccessibleElement(element) {\n return (\n !(element.hasAttribute('aria-hidden') && element.getAttribute('aria-hidden') === 'true') &&\n !(element.hasAttribute(TAB_INDEX) && element.getAttribute(TAB_INDEX) === '-1')\n );\n }\n\n getNextAccessibleElement(cellInputableElements, shiftKey = false, currentElementIndex = -1) {\n if (shiftKey) {\n cellInputableElements = [...cellInputableElements]\n .reverse()\n .slice(\n currentElementIndex !== -1 ? cellInputableElements.length - currentElementIndex : 0,\n cellInputableElements.length\n );\n } else {\n cellInputableElements = [...cellInputableElements].slice(\n currentElementIndex + 1,\n cellInputableElements.length\n );\n }\n return cellInputableElements.find(element => this.isAccessibleElement(element));\n }\n\n getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n ) {\n let nextColumnCell = null;\n if (shiftKey) {\n if (currentColumnIndex - 1 >= 0) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) - 1];\n } else if (currentEleParentIndex - 1 >= 0) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex - 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex -= 1;\n nextColumnCell = sortedColumns[sortedColumns.length - 1];\n }\n } else if (currentColumnIndex + 1 < sortedColumns.length) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) + 1];\n } else if (currentEleParentIndex + 1 < parentElements.length) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex + 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex += 1;\n\n nextColumnCell = sortedColumns[0];\n }\n return [nextColumnCell, sortedColumns, currentEleParentIndex];\n }\n\n // This method is to recursively find the next column cell with actionable or focusable elements and skip any empty cells\n getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n ) {\n if (!currentCol) {\n return null;\n }\n let nextColumnCell = null;\n const currentColumnIndex = sortedColumns.indexOf(currentCol);\n [nextColumnCell, sortedColumns, currentEleParentIndex] = this.getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n );\n const elements =\n nextColumnCell &&\n nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (elements?.length) {\n return nextColumnCell;\n }\n return this.getNextColumnCellInTaborder(\n sortedColumns,\n nextColumnCell,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n }\n\n isFocusableElement(element) {\n const colItem = element?.closest(this.selectors.focusElementSelector);\n if (!colItem) return false;\n return [...colItem.querySelectorAll(this.focusableSelectors.join(','))].includes(element);\n }\n\n handleTabKey(shiftKey) {\n const parentElements = this.container.querySelectorAll(this.selectors.parentElementSelector);\n const rootNode = this.container.getRootNode();\n const currentCol = rootNode.activeElement?.closest(this.selectors.focusElementSelector);\n const currentEleParentIndex = [...parentElements].indexOf(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n const currentColumnElements = Array.from(\n currentCol.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n )\n );\n const currentEleIndex = currentColumnElements.indexOf(rootNode.activeElement);\n\n const sortedColumns = this.getSortedColumns(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n\n const nextColumnCell = this.getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n\n if (\n (!shiftKey && currentEleIndex + 1 < currentColumnElements.length) ||\n (shiftKey && currentEleIndex - 1 >= 0)\n ) {\n return false;\n }\n if (nextColumnCell) {\n const nextColumnCellElements = nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (nextColumnCellElements.length !== 0) return false;\n }\n this.updateDataEntry();\n return true;\n }\n\n updateDataEntry(updateForHandler, focusElements, nextFocusElement) {\n switch (updateForHandler) {\n case 'click':\n if (focusElements.length === 1) {\n const hasFocusableElement = Array.from(focusElements).some(element =>\n this.focusableSelectors.some(selector => element.matches(selector))\n );\n this.dataEntryMode = !hasFocusableElement;\n } else if (nextFocusElement) {\n this.dataEntryMode = true;\n } else {\n this.dataEntryMode = false;\n }\n break;\n\n case 'enter':\n this.dataEntryMode = true;\n break;\n\n default:\n this.dataEntryMode = false;\n }\n }\n\n clickHandler(event) {\n const cell = event?.target?.closest(this.selectors.focusElementSelector);\n if (cell && cell !== event.target) {\n const focusElements = cell.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n this.updateDataEntry('click', focusElements, nextFocusElement);\n } else {\n this.updateDataEntry();\n }\n }\n\n handleEnterKey(target) {\n const focusElements = target.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n // register escape event for RTE to support event bubbling\n if (nextFocusElement?.nodeName === 'IFRAME') {\n this.registerEscapeEventForRTE(nextFocusElement);\n target.tabIndex = -1;\n } else if (nextFocusElement) {\n this.updateDataEntry('enter');\n gainFocus(nextFocusElement);\n target.tabIndex = -1;\n }\n }\n\n handleEscapeKey(target) {\n const cell = target.closest(this.selectors.focusElementSelector);\n if (\n cell &&\n (this.getFocusableElementsInCell(cell, true).length > 1 ||\n this.getActionableElementsInCell(cell).length >= 1)\n ) {\n this.updateDataEntry();\n gainFocus(cell);\n }\n if (this.getFocusableElementsInCell(cell, true).length === 1) {\n this.updateDataEntry();\n }\n\n return !cell;\n }\n\n registerEscapeEventForRTE(target) {\n const iframeContent = target.contentWindow || target.contentDocument;\n if (iframeContent?.document) {\n this.updateDataEntry('enter');\n iframeContent.document.querySelector(\"[contenteditable='true']\").focus();\n if (!iframeContent.document.escapeKeyHandlerInjected) {\n iframeContent.document.addEventListener('keydown', event => {\n if (event.keyCode === this.keys.ESCAPE) {\n const escapeEvent = new KeyboardEvent('keydown', {\n key: 'Escape',\n code: 'Escape',\n keyCode: this.keys.ESCAPE,\n bubbles: true\n });\n target.dispatchEvent(escapeEvent);\n }\n });\n }\n iframeContent.document.escapeKeyHandlerInjected = true;\n }\n }\n\n tableLoaderHandler(event) {\n const { keyCode } = event;\n switch (keyCode) {\n case this.keys.LEFT:\n case this.keys.RIGHT:\n case this.keys.UP:\n case this.keys.DOWN: {\n event.preventDefault();\n break;\n }\n case this.keys.TAB: {\n this.tabHandler(event);\n this.isTableLoaderFocussed = false;\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is overridden to handle key events for expand and collapse all button, group headers\n a11yHandler(event) {\n const buttonMoreSelector = '.button-more';\n const selectAllSelector = '.select-all-checkbox';\n const selectHeaderWithoutCheckbox = '.row-select-handle';\n const pContainerSelector = '.pContainer';\n const aggregateCell = '.aggregateCell';\n const rootNode = this.container.getRootNode();\n let shouldCallSuper = true;\n const tableLoader = this.container.querySelector(this.selectors.tableLoader);\n const currentCol = rootNode.activeElement.closest(this.selectors.focusElementSelector);\n\n // Handling the key handling events for Loading indicator\n if (tableLoader && tableLoader === event.target) {\n this.tableLoaderHandler(event);\n return;\n }\n\n // Handling events related to group header\n if (this.container.querySelector(this.selectors.stickyGroupHeaderSelector)) {\n shouldCallSuper = this.checkEventsForGroupHeader(event);\n }\n\n // To handle left click from first aggregate cell\n if (event.target && event.target.closest(aggregateCell) && event.keyCode === this.keys.LEFT) {\n shouldCallSuper = this.handleLeftKeyPressOnAggregateCells(event.target, aggregateCell);\n }\n\n // Arrow key handlers restriction for data entry mode\n if (\n event.target &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement &&\n (event.keyCode === this.keys.RIGHT ||\n event.keyCode === this.keys.LEFT ||\n event.keyCode === this.keys.UP ||\n event.keyCode === this.keys.DOWN)\n ) {\n return;\n }\n // Enter key handler\n if (event.target && event.keyCode === this.keys.ENTER) {\n this.handleEnterKey(event.target);\n }\n\n // Escape key handler\n if (event.target && event.keyCode === this.keys.ESCAPE) {\n this.handleEscapeKey(event.target);\n }\n\n // Tab key handler\n if (\n event.target &&\n event.keyCode === this.keys.TAB &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement\n ) {\n shouldCallSuper = this.handleTabKey(event.shiftKey);\n }\n\n if (!shouldCallSuper) return;\n\n // Handling events for expand and collapse all button & handling scrolling for group header\n if (event.target && event.target.closest(this.selectors.expandCollpaseAll)) {\n this.handleExpandCollapseAllEvents(event, selectAllSelector);\n return;\n }\n if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n this.handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector);\n }\n if (\n event.target &&\n (event.target.closest(buttonMoreSelector) ||\n event.target.closest(selectAllSelector) ||\n event.target.closest(selectHeaderWithoutCheckbox))\n ) {\n if (!this.handleKeyleftForButtonMoreSelectAll(event, selectAllSelector)) {\n // if focus is not handed in handleKeyLeftForButtonMoreSelectAll then invoke super.a11yHandler\n super.a11yHandler(event);\n }\n return;\n }\n super.a11yHandler(event);\n }\n\n // Below method is overridden to set the focus on expand and collapse all button if grouping is applied, to set the focus on table loader if navigated from toolbar by pressing tab key\n focusFirstElement() {\n if (this.container.querySelector(this.selectors.tableLoader)) {\n const tableLoadingIndicator = this.container.querySelector(this.selectors.tableLoader);\n tableLoadingIndicator.focus();\n this.isTableLoaderFocussed = true;\n return;\n }\n if (this.container.querySelector(this.selectors.expandCollpaseAll)) {\n const expandCollapseSelector = this.container.querySelector(this.selectors.expandCollpaseAll);\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return;\n }\n super.focusFirstElement();\n }\n\n setFocusOnLoader(loader, currentCol) {\n super.setFocusOnLoader(loader, currentCol);\n const nextRowIndexDirection = loader.classList.contains(this.selectors.aboveLoader.substr(1))\n ? -1\n : 1;\n this.nextColumnIndex = currentCol.getAttribute(sortOrder.column);\n this.nextRowIndex =\n parseInt(\n currentCol.closest(this.selectors.parentElementSelector).getAttribute(sortOrder.row),\n 10\n ) + nextRowIndexDirection;\n }\n\n dynamicLoadersKeyDownHandler(event) {\n if (super.dynamicLoadersKeyDownHandler(event)) {\n this.reset();\n }\n }\n\n itemsLoadedCallback() {\n if (this.ctrlHomeKeyPressed) {\n // ctrl+Home keypress happens on any cell but when initial rows are not present in container fetch happens for those rows\n // on rerender of the container focus the row1 data col1 of the table\n this.ctrlHomeKeyPressed = false;\n this.handleCtrlHomeKeypress();\n }\n // Below if condition is written to announce Loading completed once the table loader is hidden and we are also shifting the\n // focus on firstfocusableelement once the table Loader is hidden\n if (this.isTableLoaderFocussed && !this.container.querySelector(this.selectors.tableLoader)) {\n this.announcePolite({\n message: this.translate('Loading completed'),\n type: 'info'\n });\n this.focusFirstElement();\n this.isTableLoaderFocussed = false;\n }\n if (this.nextRowIndex && this.nextColumnIndex) {\n const row = this.container.querySelector(`[${sortOrder.row}='${this.nextRowIndex}']`);\n if (row) {\n const column = row.querySelector(`[${sortOrder.column}='${this.nextColumnIndex}']`);\n const restoreFocusRef = {\n columnIndex: [\n ...this.container.querySelectorAll(this.selectors.focusElementSelector)\n ].indexOf(column)\n };\n this.reset();\n this.setFocusToCell(restoreFocusRef);\n }\n }\n }\n\n isFirstDataRowInDOM() {\n return !!this.container.querySelector(`[${DATA_INDEX}='0']`);\n }\n\n getFocusableElementOnCtrlHome() {\n if (this.isFirstDataRowInDOM() && this.selectors.parentElementSelector) {\n const firstRow = this.container.querySelector(this.selectors.parentElementSelector);\n const sortedColumns = this.getSortedColumns(firstRow);\n if (firstRow.classList.contains(HEADER)) {\n // when header row is present focus first data column in the header\n return getHeaderColumnToFocusOnCtrlHome(sortedColumns);\n }\n // when there's no header focus row2 col1 element\n return sortedColumns[0];\n }\n // fetch 1st set of rows by setting scrollTop to 0 & then focus (handled in itemsLoadedCallback)\n this.ctrlHomeKeyPressed = true;\n return null;\n }\n\n toggleStyleFormatAriaDescription(nextCol, currentCol) {\n const nextColFocusableElements = this.getFocusableElementsInCell(nextCol);\n const currentColFocusableElements = this.getFocusableElementsInCell(currentCol);\n\n if (nextColFocusableElements.length === 1) {\n const nextFocusableElement = nextColFocusableElements[0];\n const nextElementAriaDescribedby = nextFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n\n const styleFormatId = nextCol.getAttribute('data-style-format');\n if (styleFormatId) {\n const combinedAriaDescribedby = [styleFormatId, nextElementAriaDescribedby]\n .filter(Boolean)\n .join(' ');\n nextFocusableElement.setAttribute(ARIA_DESCRIBEDBY, combinedAriaDescribedby);\n }\n }\n\n if (currentColFocusableElements.length === 1) {\n const currentFocusableElement = currentColFocusableElements[0];\n\n let originalAriaDescribedby = [];\n const currentAriaDescribedby = currentFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n if (currentAriaDescribedby) {\n originalAriaDescribedby = currentAriaDescribedby\n .split(' ')\n .filter(\n ariaDescribedby => ariaDescribedby !== currentCol.getAttribute('data-style-format')\n )\n .filter(Boolean);\n }\n\n if (originalAriaDescribedby.length) {\n currentFocusableElement.setAttribute(ARIA_DESCRIBEDBY, originalAriaDescribedby.join(' '));\n } else {\n currentFocusableElement.removeAttribute(ARIA_DESCRIBEDBY);\n }\n }\n }\n}\n\nexport default TableA11y;\n"]}
1
+ {"version":3,"file":"TableA11y.js","sourceRoot":"","sources":["../../../../Core/Views/Table/TableA11y.js"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,SAAS,GAAG;IAChB,GAAG,EAAE,eAAe;IACpB,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,SAAS,SAAS,CAAC,OAAO;IACxB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAO;IAC/C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,iBAAiB,EAAE,IAAI;IAC/D,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;;QAC5D,SAAS,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,SAAU,SAAQ,QAAQ;IAC9B,YACE,SAAS,EACT,kBAAkB;IAClB,8CAA8C;IAC9C,UAAU,GAAG,EAAE,EACf,SAAS,EACT,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,SAAS;QAET,KAAK,CAAC,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,KAAK;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,uBAAuB,CAAC;YAC9C,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,mBAAmB;gBAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAEtD,MAAM,gBAAgB,GAAG;gBACvB,GAAG,MAAM,CAAC,gBAAgB,CACxB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACnE;aACF,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACjF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2BAA2B,CAAC,MAAM;QAChC,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB,CAAC,GAAG;QAClB,OAAO,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CACxE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAC1F,CAAC;IACJ,CAAC;IAED,uCAAuC,CAAC,iBAAiB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/E,IAAI,uBAAuB,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,yBAAyB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnD,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC;gBACrF,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,OAAO,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBACrF,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnF,OAAO,SAAS,CAAC,yBAAyB,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,6BAA6B,CAAC,KAAK,EAAE,iBAAiB;QACpD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QACpC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,uCAAuC,CAAC,iBAAiB,CAAC,CAAC;gBAChE,MAAM;YACR,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;gBAC3F,MAAM,aAAa,GAAG,WAAW,CAAC;gBAClC,MAAM,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAC;gBACrD,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;qBAC9B,WAAW,EAAE;qBACb,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAC9D,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACtD,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,oJAAoJ;IACpJ,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO;QACvD,IAAI,uBAAuB,GAAG,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACnF,uBAAuB,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe;YAC1D,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,uBAAuB,CAAC;QAC5B,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/E,IAAI,iBAAiB;gBAAE,uBAAuB,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;;gBACtF,uBAAuB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,IACE,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,QAAQ;iBACL,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBAC7C,EAAE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAE/D,OAAO;QAET,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAChG,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,YAAY,IAAI,KAAK,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACjE,CAAC;;oBAAM,YAAY,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;YACrD,CAAC;YACD,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAChD,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,mJAAmJ;IACnJ,mCAAmC,CAAC,KAAK,EAAE,iBAAiB;QAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/E,IAAI,uBAAuB,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,yBAAyB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnD,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC;gBACrF,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBACrF,IACE,CAAC,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC;oBAClF,CAAC,yBAAyB,CAAC,MAAM,KAAK,CAAC;wBACrC,uBAAuB,CAAC,MAAM,KAAK,CAAC;wBACpC,KAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,CAAC;oBAChD,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAC9D,CAAC;oBACD,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CACzD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;oBACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;oBACrF,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC,CAAC,KAAK,EAAE,kBAAkB;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpE,IACE,UAAU;YACV,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBACpC,CAAC,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;oBAC9C,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;gBACvD,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,EACjD,CAAC;YACD,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,4FAA4F;IAC5F,qCAAqC,CAAC,KAAK;QACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAClC,IACE,IAAI,CAAC,WAAW,KAAK,IAAI;YACzB,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;YACvB,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAC1B,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAC/D,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK;QACpE,oEAAoE;QACpE,IACE,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,kBAAkB,KAAK,IAAI,EAChF,CAAC;YACD,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAChC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAC3D,CAAC,KAAK,CAAC,CAAC;gBACT,gCAAgC,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mEAAmE;QACnE,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,oEAAoE;YACpE,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzD,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,wBAAwB;YACxB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAqC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW;QAChE,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,gCAAgC,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,8BAA8B,CAAC,GAAG;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,CACL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAC5F,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,KAAK;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAC7F,KAAK,CACN,CAAC;QAEF,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;gBAClB,CAAC;oBACC,uBAAuB;oBACvB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;oBACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;oBACpE,IAAI,kBAAkB,EAAE,CAAC;wBACvB,IAAI,CAAC,qCAAqC,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;wBAChF,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG;gBAChB,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,KAAK,EAAE,CAAC;gBACtB,CAAC;gBACD,MAAM;YACR,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,CAAC;gBACD,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB,CAAC,KAAK;QAC7B,IACE,KAAK,CAAC,MAAM;YACZ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBACxD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,EACzD,CAAC;YACD,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,KAAK;QACpB,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,KAAK,MAAM;YAChE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;gBAC9D,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,KAAK,MAAM;YACxD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,kCAAkC,CAAC,MAAM,EAAE,aAAa;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,8BAA8B,CACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CACrD,CAAC;QACF,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,iBAAiB,GAAG,MAAM;iBAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;gBAC9C,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;YACjD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,mBAAmB,CAAC,OAAO;QACzB,OAAO,CACL,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;YACxF,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAC/E,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,qBAAqB,EAAE,QAAQ,GAAG,KAAK,EAAE,mBAAmB,GAAG,CAAC,CAAC;QACxF,IAAI,QAAQ,EAAE,CAAC;YACb,qBAAqB,GAAG,CAAC,GAAG,qBAAqB,CAAC;iBAC/C,OAAO,EAAE;iBACT,KAAK,CACJ,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,EACnF,qBAAqB,CAAC,MAAM,CAC7B,CAAC;QACN,CAAC;aAAM,CAAC;YACN,qBAAqB,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,KAAK,CACtD,mBAAmB,GAAG,CAAC,EACvB,qBAAqB,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,qBAAqB,CACnB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,UAAU;QAEV,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,qBAAqB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,aAAa,GAAG;oBACd,GAAG,cAAc,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAC3D,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACpC;iBACF,CAAC;gBACF,qBAAqB,IAAI,CAAC,CAAC;gBAC3B,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,IAAI,kBAAkB,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACzD,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,qBAAqB,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;YAC7D,aAAa,GAAG;gBACd,GAAG,cAAc,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAC3D,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACpC;aACF,CAAC;YACF,qBAAqB,IAAI,CAAC,CAAC;YAE3B,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;IAChE,CAAC;IAED,yHAAyH;IACzH,2BAA2B,CACzB,aAAa,EACb,UAAU,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB;QAErB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC,cAAc,EAAE,aAAa,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAAC,qBAAqB,CACjF,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,UAAU,CACX,CAAC;QACF,MAAM,QAAQ,GACZ,cAAc;YACd,cAAc,CAAC,gBAAgB,CAC7B,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACpE,CAAC;QACJ,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YACrB,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CACrC,aAAa,EACb,cAAc,EACd,QAAQ,EACR,cAAc,EACd,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,OAAO;QACxB,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,YAAY,CAAC,QAAQ;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,qBAAqB,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,OAAO,CACvD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CACzD,CAAC;QACF,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CACtC,UAAU,CAAC,gBAAgB,CACzB,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACpE,CACF,CAAC;QACF,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACzC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CACzD,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CACrD,aAAa,EACb,UAAU,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB,CACtB,CAAC;QAEF,IACE,CAAC,CAAC,QAAQ,IAAI,eAAe,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC;YACjE,CAAC,QAAQ,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,EACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,CAC5D,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACpE,CAAC;YACF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,gBAAgB;QAC/D,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,OAAO;gBACV,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACnE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CACpE,CAAC;oBACF,IAAI,CAAC,aAAa,GAAG,CAAC,mBAAmB,CAAC;gBAC5C,CAAC;qBAAM,IAAI,gBAAgB,EAAE,CAAC;oBAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC7B,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,MAAM;YAER;gBACE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,MAAM,IAAI,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACzE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACnE,CAAC;YACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAM;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACjE,wGAAwG;QACxG,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAErC,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAC3C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACnE,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACtE,0DAA0D;QAC1D,IAAI,gBAAgB,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC5B,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAM;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACjE,IACE,IAAI;YACJ,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBACrD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EACrD,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;IACf,CAAC;IAED,yBAAyB,CAAC,MAAM;QAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC;QACrE,IAAI,aAAa,EAAE,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC;gBACrD,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;oBACzD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACvC,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;4BAC/C,GAAG,EAAE,QAAQ;4BACb,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;4BACzB,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;wBACH,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,aAAa,CAAC,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACzD,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,KAAK;QACtB,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1B,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,WAAW,CAAC,KAAK;QACf,MAAM,kBAAkB,GAAG,cAAc,CAAC;QAC1C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QACjD,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;QACzD,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAEvF,yDAAyD;QACzD,IAAI,WAAW,IAAI,WAAW,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC3E,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,iDAAiD;QACjD,IACE,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAClD,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAChC,CAAC;YACD,eAAe,GAAG,IAAI,CAAC,kCAAkC,CACvD,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,SAAS,CAAC,aAAa,CAC7B,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,IACE,KAAK,CAAC,MAAM;YACZ,IAAI,CAAC,aAAa;YAClB,UAAU,KAAK,QAAQ,CAAC,aAAa;YACrC,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;gBAChC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9B,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,CAAC;YACD,OAAO;QACT,CAAC;QACD,oBAAoB;QACpB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,kBAAkB;QAClB,IACE,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/B,IAAI,CAAC,aAAa;YAClB,UAAU,KAAK,QAAQ,CAAC,aAAa,EACrC,CAAC;YACD,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,2FAA2F;QAC3F,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,oCAAoC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACvE,CAAC;QACD,IACE,KAAK,CAAC,MAAM;YACZ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACvC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACvC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,EACpD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC;gBACxE,8FAA8F;gBAC9F,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,uLAAuL;IACvL,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvF,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC9F,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YACrF,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,MAAM,EAAE,UAAU;QACjC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY;YACf,QAAQ,CACN,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EACpF,EAAE,CACH,GAAG,qBAAqB,CAAC;IAC9B,CAAC;IAED,4BAA4B,CAAC,KAAK;QAChC,IAAI,KAAK,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,4BAA4B,CAAC,QAAQ,EAAE,MAAM;QAC3C,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,mIAAmI;QACnI,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC;QACxE,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,6FAA6F;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACtF,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,sBAAsB,CAAC,OAAO;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,SAAS,EAAE,QAAQ,GAAG,CAAC;QACrC,0BAA0B;QAC1B,IAAI,EAAS,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,+CAA+C;YAC/C,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,MAAM,aAAa,GACjB,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;YACjE,SAAS,CAAC,aAAa,CAAC,mBAAmB,QAAQ,IAAI,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO;QACxB,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,mHAAmH;QACnH,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB;YACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;;;;;;;;OASG;IACH,wBAAwB;QACtB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACrE,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC;QAE5C,2EAA2E;QAC3E,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,MAAM,oBAAoB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,6HAA6H;QAC7H,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,EAAS,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,kDAAkD;QAClD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,yHAAyH;YACzH,qEAAqE;YACrE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,2HAA2H;QAC3H,iEAAiE;QACjE,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,cAAc,CAAC;gBAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;gBAC5C,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACtF,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;gBACpF,MAAM,eAAe,GAAG;oBACtB,WAAW,EAAE;wBACX,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;qBACxE,CAAC,OAAO,CAAC,MAAM,CAAC;iBAClB,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACzC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,CAAC;QAED,2FAA2F;QAC3F,kFAAkF;QAClF,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC/E,MAAM,WAAW,GAAG,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,6BAA6B;QAC3B,IAAI,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACpF,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,mEAAmE;gBACnE,OAAO,gCAAgC,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC;YACD,iDAAiD;YACjD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,gGAAgG;QAChG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC,CAAC,OAAO,EAAE,UAAU;QAClD,MAAM,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,2BAA2B,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAEhF,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAEvF,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,uBAAuB,GAAG,CAAC,aAAa,EAAE,0BAA0B,CAAC;qBACxE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,oBAAoB,CAAC,YAAY,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;YAE/D,IAAI,uBAAuB,GAAG,EAAE,CAAC;YACjC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACtF,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,uBAAuB,GAAG,sBAAsB;qBAC7C,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CACL,eAAe,CAAC,EAAE,CAAC,eAAe,KAAK,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC,CACpF;qBACA,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,uBAAuB,CAAC,MAAM,EAAE,CAAC;gBACnC,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,uBAAuB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc;QACZ,iDAAiD;QACjD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC7C,MAAM,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAChF,sEAAsE;YACtE,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC5E,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;oBACrD,CAAC,CAAC,SAAS,CAAC;gBACd,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;YAC1F,CAAC;YACD,kFAAkF;YAClF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAC/C,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,EACxC,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,0FAA0F;QAC1F,0EAA0E;QAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,wFAAwF;QACxF,qFAAqF;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE7E,IACE,aAAa,KAAK,WAAW;YAC7B,aAAa,KAAK,WAAW;YAC7B,aAAa,KAAK,WAAW,EAC7B,CAAC;YACD,OAAO;QACT,CAAC;QAED,yFAAyF;QACzF,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF;;AAED,eAAe,SAAS,CAAC","sourcesContent":["import { isInstance } from '@pega/cosmos-react-core';\nimport { BaseA11y, rowErrorColumnMeta } from 'pega-repeating-structures-core';\n\nconst sortOrder = {\n row: 'aria-rowindex',\n column: 'aria-colindex'\n};\n\nconst TAB_INDEX = 'tabindex';\nconst DATA_INDEX = 'data-index';\nconst DATA_KEY = 'data-key';\nconst HEADER_MENU = '.header-menu';\nconst HEADER = 'header';\nconst ARIA_DESCRIBEDBY = 'aria-describedby';\n\nfunction gainFocus(element) {\n element.setAttribute(TAB_INDEX, 0);\n element.focus();\n element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n}\n\nfunction getHeaderColumnToFocusOnCtrlHome(columns) {\n return columns.find(column => {\n return !!column.querySelector(HEADER_MENU);\n });\n}\n\nfunction setFocusToFocusableElementOrCell(focusableElements, cell) {\n if (focusableElements.length === 1) focusableElements[0].focus();\n else gainFocus(cell);\n}\n\nclass TableA11y extends BaseA11y {\n constructor(\n selectors,\n focusableSelectors,\n // eslint-disable-next-line default-param-last\n customKeys = {},\n container,\n announcePolite,\n translate,\n actionableSelectors,\n ariaLabel\n ) {\n super(selectors, focusableSelectors, customKeys, container, actionableSelectors, ariaLabel);\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n this.targetIndex = -2;\n this.ctrlHomeKeyPressed = false;\n this.announcePolite = announcePolite;\n this.translate = translate;\n this.isTableLoaderFocussed = false;\n this.dataEntryMode = false;\n this.focusRestoreRafId = undefined;\n }\n\n reset() {\n this.nextRowIndex = null;\n this.nextColumnIndex = null;\n }\n\n getFocusableElementsInCell(column, isCalledFromEsc = false) {\n if (column) {\n const scalarListTag = '.scalarlist-component';\n const scalarListComponent = column.querySelector(scalarListTag);\n if (scalarListComponent) return [scalarListComponent];\n\n const elementsInColumn = [\n ...column.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n )\n ].filter(el => BaseA11y.isElementFocusable(el));\n if (!isCalledFromEsc && elementsInColumn.length > 1) {\n return [];\n }\n return [...column.querySelectorAll(this.focusableSelectors.join(','))].filter(el =>\n BaseA11y.isElementFocusable(el)\n );\n }\n }\n\n getActionableElementsInCell(column) {\n return column.querySelectorAll(this.actionableSelectors.join(','));\n }\n\n getSortedColumns(row) {\n return [...row.querySelectorAll(this.selectors.focusElementSelector)].sort(\n (colA, colB) => colA.getAttribute(sortOrder.column) - colB.getAttribute(sortOrder.column)\n );\n }\n\n handleRightKeyPressForExpandCollapseAll(selectAllSelector) {\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n if (firstActionMenuSelector.length > 0) {\n return gainFocus(firstActionMenuSelector[0]);\n }\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (selectAllCheckboxSelector.length === 0 && firstActionMenuSelector.length === 0) {\n return gainFocus(firstSortedColumnSelector);\n }\n }\n }\n return null;\n }\n\n // Below method is added to handle key events for expand and collapse all button\n handleExpandCollapseAllEvents(event, selectAllSelector) {\n const { keyCode, shiftKey } = event;\n switch (keyCode) {\n case this.keys.RIGHT: {\n event.preventDefault();\n this.handleRightKeyPressForExpandCollapseAll(selectAllSelector);\n break;\n }\n case this.keys.DOWN: {\n event.preventDefault();\n const stickyCells = this.container.querySelector(this.selectors.stickyGroupHeaderSelector);\n const nextfirstCell = stickyCells;\n const nextfirstCellChild = nextfirstCell.nextSibling;\n gainFocus(nextfirstCellChild);\n break;\n }\n case this.keys.UP:\n case this.keys.LEFT:\n event.preventDefault();\n break;\n case this.keys.TAB: {\n const currentCol = this.container\n .getRootNode()\n .activeElement.closest(this.selectors.focusElementSelector);\n this.containerTabHandler(event, currentCol, shiftKey);\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is added to add/remove aria-label for rows with errors. Aria-label is added on first focus and removed if traversing in the same row\n handleAnnouncementForErrors(nextItem, currentCol, keyCode) {\n let elementWithErrorMessage = currentCol.querySelector('[data-error-message-set]');\n elementWithErrorMessage = currentCol.dataset.errorMessageSet\n ? currentCol\n : elementWithErrorMessage;\n const ARIA_LABEL = 'aria-label';\n if (elementWithErrorMessage) {\n const { ariaLabel: previousAriaLabel } = elementWithErrorMessage.dataset ?? {};\n if (previousAriaLabel) elementWithErrorMessage.setAttribute(ARIA_LABEL, previousAriaLabel);\n else elementWithErrorMessage.removeAttribute(ARIA_LABEL);\n }\n\n if (\n (keyCode !== this.keys.UP && keyCode !== this.keys.DOWN) ||\n nextItem\n .closest(this.selectors.focusElementSelector)\n ?.classList.contains(rowErrorColumnMeta.options.classList[0])\n )\n return;\n\n let errorMessage = nextItem.closest(this.selectors.parentElementSelector)?.dataset.errorMessage;\n if (errorMessage) {\n if (!nextItem.classList.contains(this.selectors.focusElementSelector.split('.')[1])) {\n if (nextItem.hasAttribute(ARIA_LABEL)) {\n errorMessage += `, ${nextItem.getAttribute(ARIA_LABEL)}`;\n nextItem.dataset.ariaLabel = nextItem.getAttribute(ARIA_LABEL);\n } else errorMessage += `, ${nextItem.textContent}`;\n }\n nextItem.setAttribute(ARIA_LABEL, errorMessage);\n nextItem.dataset.errorMessageSet = true;\n }\n }\n\n // Below method is added to set the focus on expand and collapse all button if left arrow key is pressed from actions button or select all checkbox\n handleKeyleftForButtonMoreSelectAll(event, selectAllSelector) {\n const { keyCode } = event;\n const row = this.container.querySelector(this.selectors.parentElementSelector);\n let firstActionMenuSelector;\n if (row) {\n const sortedColumns = this.getSortedColumns(row);\n if (sortedColumns.length > 0) {\n const firstSortedColumnSelector = sortedColumns[0];\n firstActionMenuSelector = this.getFocusableElementsInCell(firstSortedColumnSelector);\n const selectAllCheckboxSelector = this.container.querySelectorAll(selectAllSelector);\n if (\n ((firstActionMenuSelector.length > 0 && event.target === firstActionMenuSelector[0]) ||\n (selectAllCheckboxSelector.length === 0 &&\n firstActionMenuSelector.length === 0 &&\n event.target === firstSortedColumnSelector)) &&\n keyCode === this.keys.LEFT &&\n this.container.querySelector(this.selectors.expandCollpaseAll)\n ) {\n const expandCollapseSelector = this.container.querySelector(\n this.selectors.expandCollpaseAll\n );\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return true;\n }\n }\n }\n return false;\n }\n\n handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector) {\n const pContainer = this.container.querySelector(pContainerSelector);\n if (\n pContainer &&\n event.keyCode === this.keys.UP &&\n event.target.getBoundingClientRect().y -\n (pContainer.firstChild.getBoundingClientRect().y +\n pContainer.firstChild.getBoundingClientRect().height) <\n event.target.getBoundingClientRect().height * 2\n ) {\n pContainer.scrollTop -= event.target.getBoundingClientRect().height * 2;\n }\n }\n\n // Used to update this.targetIndex on keydown which is later used by handleGroupHeaderEvents\n updateTargetColumnIndexForGroupHeader(event) {\n const { target, keyCode } = event;\n if (\n this.targetIndex === null ||\n this.targetIndex === -1 ||\n keyCode === this.keys.UP ||\n keyCode === this.keys.DOWN\n ) {\n if (target.closest(this.selectors.expandCollpaseAll)) {\n this.targetIndex = -1;\n return;\n }\n const cell = target.closest(this.selectors.focusElementSelector);\n let row = target.closest(this.selectors.parentElementSelector);\n row = this.getSortedColumns(row);\n\n this.targetIndex = [...row].indexOf(cell);\n }\n }\n\n handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event) {\n // If the group header is at the last row and DOWN key is press then\n if (\n keyCode === this.keys.DOWN &&\n target.closest(this.selectors.parentElementSelector).nextElementSibling === null\n ) {\n // if footer exists\n const footer = this.container.querySelector(this.selectors.footer);\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n if (footer) {\n const cell = this.getSortedColumns(\n footer.querySelector(this.selectors.parentElementSelector)\n )[index];\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cell), cell);\n }\n return true;\n }\n // If the focus came to the group header from the expand all button\n if (keyCode === this.keys.UP && this.targetIndex === -1) {\n this.container.querySelector(this.selectors.expandCollpaseAll).children[0].focus();\n } else {\n event.preventDefault();\n // If initially the group header is clicked and the keyboard is used\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n // Flushing the -1 index\n if (keyCode === this.keys.DOWN && this.targetIndex === -1) {\n this.targetIndex = 0;\n }\n if (cellToFocus) {\n cellToFocus.focus();\n }\n }\n return true;\n }\n\n handleLeftRightKeyPressForGroupHeader(keyCode, target, cellToFocus) {\n if (cellToFocus && !cellToFocus.hasAttribute('tabindex')) {\n cellToFocus.setAttribute('tabindex', -1);\n }\n\n if (!this.targetIndex) this.targetIndex = 0;\n if (cellToFocus) {\n setFocusToFocusableElementOrCell(this.getFocusableElementsInCell(cellToFocus), cellToFocus);\n }\n }\n\n getFirstNavigableAggregateCell(row) {\n if (!row) return null;\n return (\n this.getSortedColumns(row).find(cell => cell.matches(this.selectors.aggregateCell)) ?? null\n );\n }\n\n handleGroupHeaderEvents(event) {\n const { keyCode, target, ctrlKey } = event;\n const index = this.targetIndex < 0 ? 0 : this.targetIndex;\n const cellToFocus = this.getSortedColumns(target.closest(this.selectors.parentElementSelector))[\n index\n ];\n\n switch (keyCode) {\n case this.keys.UP:\n case this.keys.DOWN: {\n return this.handleUpDownKeyPressForGroupHeader(keyCode, target, cellToFocus, event);\n }\n case this.keys.RIGHT:\n {\n // To Prevent Scrolling\n event.preventDefault();\n const row = target.closest(this.selectors.parentElementSelector);\n const firstAggregateCell = this.getFirstNavigableAggregateCell(row);\n if (firstAggregateCell) {\n this.handleLeftRightKeyPressForGroupHeader(keyCode, target, firstAggregateCell);\n return false;\n }\n }\n break;\n case this.keys.TAB:\n if (cellToFocus) {\n cellToFocus.focus();\n }\n break;\n case this.keys.HOME:\n if (ctrlKey) {\n this.handleCtrlHomeKeypress();\n }\n break;\n default:\n break;\n }\n return true;\n }\n\n checkEventsForGroupHeader(event) {\n if (\n event.target &&\n (event.target.closest(this.selectors.focusElementSelector) ||\n event.target.closest(this.selectors.expandCollpaseAll))\n ) {\n this.updateTargetColumnIndexForGroupHeader(event);\n } else if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n return this.handleGroupHeaderEvents(event);\n }\n return true;\n }\n\n stopEventHandler(event) {\n return (\n event.target.getAttribute('data-context-menu-active') === 'true' ||\n (!event.target.closest(this.selectors.stickyGroupHeaderSelector) &&\n event.target.getAttribute('aria-expanded')) === 'true' ||\n event.target.closest('.popper') ||\n !Object.values(this.keys).includes(event.keyCode)\n );\n }\n\n handleLeftKeyPressOnAggregateCells(target, aggregateCell) {\n const firstCell = this.getFirstNavigableAggregateCell(\n target.closest(this.selectors.parentElementSelector)\n );\n if (firstCell === target.closest(aggregateCell)) {\n const groupHeaderButton = target\n .closest(this.selectors.parentElementSelector)\n ?.querySelector('.stickyGroupHeader > button');\n if (groupHeaderButton) {\n groupHeaderButton.focus();\n return false;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n isAccessibleElement(element) {\n return (\n !(element.hasAttribute('aria-hidden') && element.getAttribute('aria-hidden') === 'true') &&\n !(element.hasAttribute(TAB_INDEX) && element.getAttribute(TAB_INDEX) === '-1')\n );\n }\n\n getNextAccessibleElement(cellInputableElements, shiftKey = false, currentElementIndex = -1) {\n if (shiftKey) {\n cellInputableElements = [...cellInputableElements]\n .reverse()\n .slice(\n currentElementIndex !== -1 ? cellInputableElements.length - currentElementIndex : 0,\n cellInputableElements.length\n );\n } else {\n cellInputableElements = [...cellInputableElements].slice(\n currentElementIndex + 1,\n cellInputableElements.length\n );\n }\n return cellInputableElements.find(element => this.isAccessibleElement(element));\n }\n\n getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n ) {\n let nextColumnCell = null;\n if (shiftKey) {\n if (currentColumnIndex - 1 >= 0) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) - 1];\n } else if (currentEleParentIndex - 1 >= 0) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex - 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex -= 1;\n nextColumnCell = sortedColumns[sortedColumns.length - 1];\n }\n } else if (currentColumnIndex + 1 < sortedColumns.length) {\n nextColumnCell = sortedColumns[sortedColumns.indexOf(currentCol) + 1];\n } else if (currentEleParentIndex + 1 < parentElements.length) {\n sortedColumns = [\n ...parentElements[currentEleParentIndex + 1].querySelectorAll(\n this.selectors.focusElementSelector\n )\n ];\n currentEleParentIndex += 1;\n\n nextColumnCell = sortedColumns[0];\n }\n return [nextColumnCell, sortedColumns, currentEleParentIndex];\n }\n\n // This method is to recursively find the next column cell with actionable or focusable elements and skip any empty cells\n getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n ) {\n if (!currentCol) {\n return null;\n }\n let nextColumnCell = null;\n const currentColumnIndex = sortedColumns.indexOf(currentCol);\n [nextColumnCell, sortedColumns, currentEleParentIndex] = this.getAdjacentColumnCell(\n shiftKey,\n currentColumnIndex,\n currentEleParentIndex,\n sortedColumns,\n parentElements,\n currentCol\n );\n const elements =\n nextColumnCell &&\n nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (elements?.length) {\n return nextColumnCell;\n }\n return this.getNextColumnCellInTaborder(\n sortedColumns,\n nextColumnCell,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n }\n\n isFocusableElement(element) {\n const colItem = element?.closest(this.selectors.focusElementSelector);\n if (!colItem) return false;\n return [...colItem.querySelectorAll(this.focusableSelectors.join(','))].includes(element);\n }\n\n handleTabKey(shiftKey) {\n const parentElements = this.container.querySelectorAll(this.selectors.parentElementSelector);\n const rootNode = this.container.getRootNode();\n const currentCol = rootNode.activeElement?.closest(this.selectors.focusElementSelector);\n const currentEleParentIndex = [...parentElements].indexOf(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n const currentColumnElements = Array.from(\n currentCol.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n )\n );\n const currentEleIndex = currentColumnElements.indexOf(rootNode.activeElement);\n\n const sortedColumns = this.getSortedColumns(\n currentCol.closest(this.selectors.parentElementSelector)\n );\n\n const nextColumnCell = this.getNextColumnCellInTaborder(\n sortedColumns,\n currentCol,\n shiftKey,\n parentElements,\n currentEleParentIndex\n );\n\n if (\n (!shiftKey && currentEleIndex + 1 < currentColumnElements.length) ||\n (shiftKey && currentEleIndex - 1 >= 0)\n ) {\n return false;\n }\n if (nextColumnCell) {\n const nextColumnCellElements = nextColumnCell.querySelectorAll(\n [...this.actionableSelectors, ...this.focusableSelectors].join(',')\n );\n if (nextColumnCellElements.length !== 0) return false;\n }\n this.updateDataEntry();\n return true;\n }\n\n updateDataEntry(updateForHandler, focusElements, nextFocusElement) {\n switch (updateForHandler) {\n case 'click':\n if (focusElements.length === 1) {\n const hasFocusableElement = Array.from(focusElements).some(element =>\n this.focusableSelectors.some(selector => element.matches(selector))\n );\n this.dataEntryMode = !hasFocusableElement;\n } else if (nextFocusElement) {\n this.dataEntryMode = true;\n } else {\n this.dataEntryMode = false;\n }\n break;\n\n case 'enter':\n this.dataEntryMode = true;\n break;\n\n default:\n this.dataEntryMode = false;\n }\n }\n\n clickHandler(event) {\n const cell = event?.target?.closest(this.selectors.focusElementSelector);\n if (cell && cell !== event.target) {\n const focusElements = cell.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n this.updateDataEntry('click', focusElements, nextFocusElement);\n } else {\n this.updateDataEntry();\n }\n }\n\n handleEnterKey(target) {\n const cell = target.closest(this.selectors.focusElementSelector);\n // If the focus is already inside cell content, we need not handle the enter event on the cell boundary.\n if (!cell || target !== cell) return;\n\n const focusElements = target.querySelectorAll(\n this.focusableSelectors.concat(this.actionableSelectors).join(',')\n );\n const nextFocusElement = this.getNextAccessibleElement(focusElements);\n // register escape event for RTE to support event bubbling\n if (nextFocusElement?.nodeName === 'IFRAME') {\n this.registerEscapeEventForRTE(nextFocusElement);\n target.tabIndex = -1;\n } else if (nextFocusElement) {\n this.updateDataEntry('enter');\n gainFocus(nextFocusElement);\n target.tabIndex = -1;\n }\n }\n\n handleEscapeKey(target) {\n const cell = target.closest(this.selectors.focusElementSelector);\n if (\n cell &&\n (this.getFocusableElementsInCell(cell, true).length > 1 ||\n this.getActionableElementsInCell(cell).length >= 1)\n ) {\n this.updateDataEntry();\n gainFocus(cell);\n }\n if (this.getFocusableElementsInCell(cell, true).length === 1) {\n this.updateDataEntry();\n }\n\n return !cell;\n }\n\n registerEscapeEventForRTE(target) {\n const iframeContent = target.contentWindow || target.contentDocument;\n if (iframeContent?.document) {\n this.updateDataEntry('enter');\n iframeContent.document.querySelector(\"[contenteditable='true']\").focus();\n if (!iframeContent.document.escapeKeyHandlerInjected) {\n iframeContent.document.addEventListener('keydown', event => {\n if (event.keyCode === this.keys.ESCAPE) {\n const escapeEvent = new KeyboardEvent('keydown', {\n key: 'Escape',\n code: 'Escape',\n keyCode: this.keys.ESCAPE,\n bubbles: true\n });\n target.dispatchEvent(escapeEvent);\n }\n });\n }\n iframeContent.document.escapeKeyHandlerInjected = true;\n }\n }\n\n tableLoaderHandler(event) {\n const { keyCode } = event;\n switch (keyCode) {\n case this.keys.LEFT:\n case this.keys.RIGHT:\n case this.keys.UP:\n case this.keys.DOWN: {\n event.preventDefault();\n break;\n }\n case this.keys.TAB: {\n this.tabHandler(event);\n this.isTableLoaderFocussed = false;\n break;\n }\n default:\n break;\n }\n }\n\n // Below method is overridden to handle key events for expand and collapse all button, group headers\n a11yHandler(event) {\n const buttonMoreSelector = '.button-more';\n const selectAllSelector = '.select-all-checkbox';\n const selectHeaderWithoutCheckbox = '.row-select-handle';\n const pContainerSelector = '.pContainer';\n const rootNode = this.container.getRootNode();\n let shouldCallSuper = true;\n const tableLoader = this.container.querySelector(this.selectors.tableLoader);\n const currentCol = rootNode.activeElement.closest(this.selectors.focusElementSelector);\n\n // Handling the key handling events for Loading indicator\n if (tableLoader && tableLoader === event.target) {\n this.tableLoaderHandler(event);\n return;\n }\n\n // Handling events related to group header\n if (this.container.querySelector(this.selectors.stickyGroupHeaderSelector)) {\n shouldCallSuper = this.checkEventsForGroupHeader(event);\n }\n\n // To handle left click from first aggregate cell\n if (\n event.target &&\n event.target.closest(this.selectors.aggregateCell) &&\n event.keyCode === this.keys.LEFT\n ) {\n shouldCallSuper = this.handleLeftKeyPressOnAggregateCells(\n event.target,\n this.selectors.aggregateCell\n );\n }\n\n // Arrow key handlers restriction for data entry mode\n if (\n event.target &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement &&\n (event.keyCode === this.keys.RIGHT ||\n event.keyCode === this.keys.LEFT ||\n event.keyCode === this.keys.UP ||\n event.keyCode === this.keys.DOWN)\n ) {\n return;\n }\n // Enter key handler\n if (event.target && event.keyCode === this.keys.ENTER) {\n this.handleEnterKey(event.target);\n }\n\n // Escape key handler\n if (event.target && event.keyCode === this.keys.ESCAPE) {\n this.handleEscapeKey(event.target);\n }\n\n // Tab key handler\n if (\n event.target &&\n event.keyCode === this.keys.TAB &&\n this.dataEntryMode &&\n currentCol !== rootNode.activeElement\n ) {\n shouldCallSuper = this.handleTabKey(event.shiftKey);\n }\n\n if (!shouldCallSuper) return;\n\n // Handling events for expand and collapse all button & handling scrolling for group header\n if (event.target && event.target.closest(this.selectors.expandCollpaseAll)) {\n this.handleExpandCollapseAllEvents(event, selectAllSelector);\n return;\n }\n if (event.target && event.target.closest(this.selectors.stickyGroupHeaderSelector)) {\n this.handleScrollOnUpArrowForGroupHeaders(event, pContainerSelector);\n }\n if (\n event.target &&\n (event.target.closest(buttonMoreSelector) ||\n event.target.closest(selectAllSelector) ||\n event.target.closest(selectHeaderWithoutCheckbox))\n ) {\n if (!this.handleKeyleftForButtonMoreSelectAll(event, selectAllSelector)) {\n // if focus is not handed in handleKeyLeftForButtonMoreSelectAll then invoke super.a11yHandler\n super.a11yHandler(event);\n }\n return;\n }\n super.a11yHandler(event);\n }\n\n // Below method is overridden to set the focus on expand and collapse all button if grouping is applied, to set the focus on table loader if navigated from toolbar by pressing tab key\n focusFirstElement() {\n if (this.container.querySelector(this.selectors.tableLoader)) {\n const tableLoadingIndicator = this.container.querySelector(this.selectors.tableLoader);\n tableLoadingIndicator.focus();\n this.isTableLoaderFocussed = true;\n return;\n }\n if (this.container.querySelector(this.selectors.expandCollpaseAll)) {\n const expandCollapseSelector = this.container.querySelector(this.selectors.expandCollpaseAll);\n const expandCollapseButton = this.getFocusableElementsInCell(expandCollapseSelector);\n gainFocus(expandCollapseButton[0]);\n return;\n }\n super.focusFirstElement();\n }\n\n setFocusOnLoader(loader, currentCol) {\n super.setFocusOnLoader(loader, currentCol);\n const nextRowIndexDirection = loader.classList.contains(this.selectors.aboveLoader.substr(1))\n ? -1\n : 1;\n this.nextColumnIndex = currentCol.getAttribute(sortOrder.column);\n this.nextRowIndex =\n parseInt(\n currentCol.closest(this.selectors.parentElementSelector).getAttribute(sortOrder.row),\n 10\n ) + nextRowIndexDirection;\n }\n\n dynamicLoadersKeyDownHandler(event) {\n if (super.dynamicLoadersKeyDownHandler(event)) {\n this.reset();\n }\n }\n\n /**\n * Finds the target row for focus restoration using a three-level fallback strategy.\n *\n * Note: This method is only called when focus was on a data row (rowIndex is defined).\n * Header row focus is handled separately in #performFocusRestoration.\n *\n * This method attempts to locate a row in the following order:\n * 1. By row key (data-key) - handles cases where row moved but wasn't deleted (e.g., moved between groups)\n * 2. By row index (data-index) - handles same position restoration when row at that position exists\n * 3. Last available row - handles last row deletion by falling back to the new last row (data or header)\n *\n * @param {number} rowIndex - The 0-based index of the row from focus snapshot (always defined when called).\n * @param {string | undefined} rowKey - The unique key of the row from focus snapshot (may be undefined for grouped rows).\n * @returns {HTMLElement | null} The target row element, or null if no rows exist in the table.\n * @private\n */\n #findTargetRowForRestoration(rowIndex, rowKey) {\n let targetRow = null;\n // If row key exists, it wasn't removed but position might be changed.(e.g. row moved from 1 group to another after edit operation)\n if (rowKey) {\n targetRow = this.container.querySelector(`[${DATA_KEY}=\"${rowKey}\"]`);\n }\n\n // Try to find the row at the same position.\n if (!targetRow) {\n targetRow = this.container.querySelector(`[${DATA_INDEX}=\"${rowIndex}\"]`);\n }\n\n // Fall back to the new last available row(it can be header row also if there is no data row)\n if (!targetRow) {\n const allRows = this.container.querySelectorAll(this.selectors.parentElementSelector);\n targetRow = allRows[allRows.length - 1];\n }\n\n return targetRow;\n }\n\n /**\n * Extracts a focusable element from the given element or returns the element itself.\n *\n * If the element contains exactly one focusable element, returns that element.\n * Otherwise, returns the element itself for keyboard navigation.\n *\n * @param {HTMLElement | null} element - The element to extract focusable element from.\n * @returns {HTMLElement | null} The focusable element if exactly one exists, otherwise the element itself, or null if element is null.\n * @private\n */\n #getFocusableOrElement(element) {\n if (!element) return null;\n\n const focusables = this.getFocusableElementsInCell(element);\n return focusables.length === 1 ? focusables[0] : element;\n }\n\n /**\n * Finds the target cell within a given row.\n *\n * This method handles three types of rows:\n * 1. Header rows - always focuses the first cell (colIndex 1)\n * 2. Grouped rows - focuses the sticky group header element\n * 3. Data rows - focuses the cell at the specified column index\n *\n * @param {HTMLElement} targetRow - The row element to find the cell within.\n * @param {number} [colIndex=1] - The 1-based column index. Defaults to 1 for first column.\n * @returns {HTMLElement | null} The focusable element within the target cell, or null if not found.\n * @private\n */\n #findTargetCell(targetRow, colIndex = 1) {\n // 1. If it's a header row\n if (TableA11y.isHeaderRow(targetRow)) {\n // If its header row, always move to first cell\n colIndex = 1;\n }\n\n // 2. Try group header first, then fallback to column cell with colIndex.\n const targetElement =\n targetRow.querySelector(this.selectors.stickyGroupHeaderSelector) ||\n targetRow.querySelector(`[aria-colindex=\"${colIndex}\"]`);\n\n return this.#getFocusableOrElement(targetElement);\n }\n\n /**\n * Checks if the given element is a header row.\n *\n * @param {HTMLElement} element - The element to check.\n * @returns {boolean} True if the element is a header row, false otherwise.\n * @static\n */\n static isHeaderRow(element) {\n return element.classList.contains(HEADER);\n }\n\n /**\n * Gets the add button element from the table container.\n *\n * @returns {HTMLElement | null} The add button element, or null if not found.\n * @private\n */\n #getAddButton() {\n // TODO: Embedded Data add button should be handled via this logic only. Currently being rendered outside of table.\n return this.selectors.addActionSelector\n ? this.container.parentElement.querySelector(this.selectors.addActionSelector)\n : null;\n }\n\n /**\n * Restores focus using the captured focus snapshot.\n *\n * Attempts to restore focus to the most appropriate location:\n * - For header rows: Restores focus to the same column in the header\n * - For empty tables (header only): Focuses the add button if available, otherwise the header\n * - For tables with data: Focuses the same or nearest row and column from the snapshot\n *\n * @private\n */\n #performFocusRestoration() {\n const { rowIndex, colIndex, rowKey } = this.focusState.focusSnapshot;\n const wasHeaderRow = rowIndex === undefined;\n\n // Early exit: if focus was on header row, restore to same column in header\n if (wasHeaderRow) {\n const cell = this.container.querySelector(`.${HEADER} [aria-colindex=\"${colIndex ?? 1}\"]`);\n const focusTarget = this.#getFocusableOrElement(cell);\n if (focusTarget) {\n gainFocus(focusTarget);\n return;\n }\n }\n\n // Handle data rows restoration with multiple fallbacks.\n const targetRow = this.#findTargetRowForRestoration(rowIndex, rowKey);\n if (!targetRow) return;\n\n // If targetRow is headerRow that means no data records available, check for Add action first to set the focus to add action.\n let focusTarget = null;\n if (TableA11y.isHeaderRow(targetRow)) {\n focusTarget = this.#getAddButton();\n }\n\n // Fallback to cell restoration if no add button was found.\n if (!focusTarget) {\n focusTarget = this.#findTargetCell(targetRow, colIndex);\n }\n\n if (focusTarget) {\n gainFocus(focusTarget);\n }\n }\n\n itemsLoadedCallback() {\n // Handle ctrl+Home restoration (highest priority)\n if (this.ctrlHomeKeyPressed) {\n // ctrl+Home keypress happens on any cell but when initial rows are not present in container fetch happens for those rows\n // on rerender of the container focus the row1 data col1 of the table\n this.ctrlHomeKeyPressed = false;\n this.handleCtrlHomeKeypress();\n return;\n }\n\n // Below if condition is written to announce Loading completed once the table loader is hidden and we are also shifting the\n // focus on firstfocusableelement once the table Loader is hidden\n if (this.isTableLoaderFocussed && !this.container.querySelector(this.selectors.tableLoader)) {\n this.announcePolite({\n message: this.translate('Loading completed'),\n type: 'info'\n });\n this.focusFirstElement();\n this.isTableLoaderFocussed = false;\n return;\n }\n\n // Handle dynamic loader restoration (second priority)\n if (this.nextRowIndex && this.nextColumnIndex) {\n const row = this.container.querySelector(`[${sortOrder.row}='${this.nextRowIndex}']`);\n if (row) {\n const column = row.querySelector(`[${sortOrder.column}='${this.nextColumnIndex}']`);\n const restoreFocusRef = {\n columnIndex: [\n ...this.container.querySelectorAll(this.selectors.focusElementSelector)\n ].indexOf(column)\n };\n this.reset();\n this.setFocusToCell(restoreFocusRef);\n return;\n }\n }\n\n if (!this.focusState || !this.focusState.hadFocus) {\n return;\n }\n\n // Cancel any previously scheduled restoration frame to avoid stacking callbacks.\n if (this.focusRestoreRafId !== undefined) {\n cancelAnimationFrame(this.focusRestoreRafId);\n }\n\n // Defer until after paint: during re-render focus moves to <body> (relatedTarget is null),\n // so we wait one frame for React to flush and the DOM to settle before restoring.\n this.focusRestoreRafId = requestAnimationFrame(() => {\n const rootNode = this.container.getRootNode();\n const focusOutsideContainer = !this.container.contains(rootNode.activeElement);\n const isFocusLost = focusOutsideContainer && this.focusState.hadFocus;\n if (isFocusLost) {\n this.#performFocusRestoration();\n }\n this.focusRestoreRafId = undefined;\n });\n }\n\n isFirstDataRowInDOM() {\n return !!this.container.querySelector(`[${DATA_INDEX}='0']`);\n }\n\n getFocusableElementOnCtrlHome() {\n if (this.isFirstDataRowInDOM() && this.selectors.parentElementSelector) {\n const firstRow = this.container.querySelector(this.selectors.parentElementSelector);\n const sortedColumns = this.getSortedColumns(firstRow);\n if (firstRow.classList.contains(HEADER)) {\n // when header row is present focus first data column in the header\n return getHeaderColumnToFocusOnCtrlHome(sortedColumns);\n }\n // when there's no header focus row2 col1 element\n return sortedColumns[0];\n }\n // fetch 1st set of rows by setting scrollTop to 0 & then focus (handled in itemsLoadedCallback)\n this.ctrlHomeKeyPressed = true;\n return null;\n }\n\n toggleStyleFormatAriaDescription(nextCol, currentCol) {\n const nextColFocusableElements = this.getFocusableElementsInCell(nextCol);\n const currentColFocusableElements = this.getFocusableElementsInCell(currentCol);\n\n if (nextColFocusableElements.length === 1) {\n const nextFocusableElement = nextColFocusableElements[0];\n const nextElementAriaDescribedby = nextFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n\n const styleFormatId = nextCol.getAttribute('data-style-format');\n if (styleFormatId) {\n const combinedAriaDescribedby = [styleFormatId, nextElementAriaDescribedby]\n .filter(Boolean)\n .join(' ');\n nextFocusableElement.setAttribute(ARIA_DESCRIBEDBY, combinedAriaDescribedby);\n }\n }\n\n if (currentColFocusableElements.length === 1) {\n const currentFocusableElement = currentColFocusableElements[0];\n\n let originalAriaDescribedby = [];\n const currentAriaDescribedby = currentFocusableElement.getAttribute(ARIA_DESCRIBEDBY);\n if (currentAriaDescribedby) {\n originalAriaDescribedby = currentAriaDescribedby\n .split(' ')\n .filter(\n ariaDescribedby => ariaDescribedby !== currentCol.getAttribute('data-style-format')\n )\n .filter(Boolean);\n }\n\n if (originalAriaDescribedby.length) {\n currentFocusableElement.setAttribute(ARIA_DESCRIBEDBY, originalAriaDescribedby.join(' '));\n } else {\n currentFocusableElement.removeAttribute(ARIA_DESCRIBEDBY);\n }\n }\n }\n\n onFocusHandler() {\n // Update focus snapshot on every on focus event.\n super.onFocusHandler();\n const rootNode = this.container.getRootNode();\n if (isInstance(rootNode, Document, ShadowRoot)) {\n const activeElement = rootNode.activeElement;\n const currentCol = activeElement?.closest(this.selectors.focusElementSelector);\n const currentRow = activeElement?.closest(this.selectors.parentElementSelector);\n // Ignoring header row. Capture snapshot for data rows only as of now.\n if (currentRow) {\n this.focusState.focusSnapshot.rowIndex = currentRow.getAttribute('data-index')\n ? parseInt(currentRow.getAttribute('data-index'), 10)\n : undefined;\n this.focusState.focusSnapshot.rowKey = currentRow.getAttribute('data-key') ?? undefined;\n }\n // Column may not be captured on every focus so preserve the last captured column.\n if (currentCol) {\n this.focusState.focusSnapshot.colIndex = parseInt(\n currentCol.getAttribute('aria-colindex'),\n 10\n );\n }\n }\n }\n\n onBlurHandler(event) {\n const relatedTarget = event.relatedTarget;\n\n // If focus left the document entirely (e.g., moved to <body> during re-render), no loader\n // can be the destination — skip the DOM queries and delegate immediately.\n if (!relatedTarget) {\n super.onBlurHandler(event);\n return;\n }\n\n // If focus moved to a loader, preserve hadFocus for restoration after loader completes.\n // relatedTarget is guaranteed non-null here, so no null guard needed on the loaders.\n const tableLoader = this.container.querySelector(this.selectors.tableLoader);\n const aboveLoader = this.container.querySelector(this.selectors.aboveLoader);\n const belowLoader = this.container.querySelector(this.selectors.belowLoader);\n\n if (\n relatedTarget === tableLoader ||\n relatedTarget === aboveLoader ||\n relatedTarget === belowLoader\n ) {\n return;\n }\n\n // Delegate to base class for standard blur handling (contains check and hadFocus update)\n super.onBlurHandler(event);\n }\n}\n\nexport default TableA11y;\n"]}
@@ -1,4 +1,4 @@
1
- declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContainerClass, renderFooter, isFullscreen, useVariableRowHeightVirtualization }: {
1
+ declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContainerClass, renderFooter, isFullscreen, useVariableRowHeightVirtualization, bufferMultiplier }: {
2
2
  view: any;
3
3
  children: any;
4
4
  id: any;
@@ -7,6 +7,7 @@ declare function VirtualizeWrapper({ view, children, id, renderHeader, rowContai
7
7
  renderFooter?: null | undefined;
8
8
  isFullscreen?: boolean | undefined;
9
9
  useVariableRowHeightVirtualization?: boolean | undefined;
10
+ bufferMultiplier: any;
10
11
  }): import("react/jsx-runtime").JSX.Element;
11
12
  declare namespace VirtualizeWrapper {
12
13
  namespace propTypes {
@@ -20,6 +21,7 @@ declare namespace VirtualizeWrapper {
20
21
  }>;
21
22
  let isFullscreen: PropTypes.Requireable<boolean>;
22
23
  let useVariableRowHeightVirtualization: PropTypes.Requireable<boolean>;
24
+ let bufferMultiplier: PropTypes.Requireable<number>;
23
25
  }
24
26
  }
25
27
  export default VirtualizeWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizeWrapper.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"AAgBA;;;;;;;;;4CAyJC;;;;;;;;;;;;;;;;sBAzKqB,YAAY"}
1
+ {"version":3,"file":"VirtualizeWrapper.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"AAiBA;;;;;;;;;;4CA4JC;;;;;;;;;;;;;;;;;sBA7KqB,YAAY"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import PropTypes from 'prop-types';
3
3
  import { useCallback, useEffect, useRef, useState } from 'react';
4
- import { isEmpty, REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
4
+ import { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
5
+ import { usePrevious } from '@pega/cosmos-react-core';
5
6
  import Virtualize from '../../Components/Virtualise';
6
7
  import VirtualizeInfinite from '../../Components/Virtualise/VirtualizeInfinite';
7
8
  import VariableHeightVirtualizer from '../../Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer';
@@ -13,28 +14,25 @@ import Row from './Row';
13
14
  import useCountChange from './useCountChange';
14
15
  export default function VirtualizeWrapper({ view, children, id, renderHeader = null, rowContainerClass = '', renderFooter = null, isFullscreen = false,
15
16
  // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views
16
- useVariableRowHeightVirtualization = false }) {
17
+ useVariableRowHeightVirtualization = false, bufferMultiplier }) {
17
18
  const { state, meta } = view;
18
19
  const { filterExpression, searchText, externalState } = state;
19
20
  const [translate] = useTranslate();
20
- const isProgressiveVirtualizerEverLoaded = useRef(false);
21
21
  const paginationPayload = useRef({});
22
22
  const [isFetching, setIsFetching] = useState(false);
23
23
  const [hasMoreResults, setHasMoreResults] = useState(false);
24
- const infiniteModeTable = isProgressiveVirtualizerEverLoaded.current
25
- ? false
26
- : !view.state?.groups?.length && isEmpty(view.resultsCount);
27
- if (!infiniteModeTable && !isProgressiveVirtualizerEverLoaded.current) {
28
- isProgressiveVirtualizerEverLoaded.current = true;
29
- }
24
+ const previousTotalItemCount = usePrevious(view.totalItemCount);
30
25
  const paginationCallback = useCallback((payload, payloadMeta) => {
31
- paginationPayload.current = payload;
26
+ const updatedPayload = view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY
27
+ ? { ...payload, startIndex: 0 }
28
+ : payload;
29
+ paginationPayload.current = updatedPayload;
32
30
  setIsFetching(true);
33
- view.type.onPaginate(payload, payloadMeta);
31
+ view.type.onPaginate(updatedPayload, payloadMeta);
34
32
  }, [view.type.onPaginate]);
35
33
  const renderEmptyRecords = useCallback(() => (_jsx(EmptyContainer, { message: isFilterApplied({ filterExpression, searchText, externalState }, meta.externalFilters)
36
34
  ? translate('No records found')
37
- : translate('No records') })), [filterExpression, searchText, externalState, meta.externalFilters]);
35
+ : translate('No records'), shouldAnnounce: previousTotalItemCount > 0 && view.totalItemCount === 0, domContainer: view.getDomContainer() })), [filterExpression, searchText, externalState, meta.externalFilters, view.totalItemCount]);
38
36
  useEffect(() => {
39
37
  if (view.isInstantRender)
40
38
  return;
@@ -55,16 +53,17 @@ useVariableRowHeightVirtualization = false }) {
55
53
  view.setScrollNode(r?.getBufferContainer());
56
54
  }, viewMaxHeight: isFullscreen ? null : view.bodyHeight, minHeightWhenNoItemsRendered: '100px', children: view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (_jsx(Row, { row: row, columns: view.columns, level: 0, dataIndex: paginationStartIndex + index }, row.reactKey))) }));
57
55
  }
58
- if (infiniteModeTable) {
56
+ if (view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {
59
57
  return (_jsx(VirtualizeInfinite, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, hasMoreResults: hasMoreResults, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
60
58
  view.putVirtualizeElement(id, r);
61
59
  view.setScrollNode(r && r.vi && r.vi.bContainer);
62
- }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], resetCount: view.isCountUpdateRequired, showLoadingIndicator: view.meta.template === REPEATING_STRUCTURE_TEMPLATES.TABLE, renderEmptyRecords: renderEmptyRecords, children: children }));
60
+ }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], resetCount: view.isCountUpdateRequired, showLoadingIndicator: true, renderEmptyRecords: renderEmptyRecords, bufferMultiplier: bufferMultiplier, children: children }));
63
61
  }
62
+ // Only used for grouped table
64
63
  return (_jsx(Virtualize, { id: id, viewMaxHeight: isFullscreen ? null : view.bodyHeight, totalRecordCount: view.totalItemCount, itemHeight: view.rowHeight, callback: paginationCallback, isFetching: isFetching, renderHeader: renderHeader, renderFooter: renderFooter, ref: r => {
65
64
  view.putVirtualizeElement(id, r);
66
65
  view.setScrollNode(r && r.vi && r.vi.bContainer);
67
- }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], showLoadingIndicator: view.meta.template === REPEATING_STRUCTURE_TEMPLATES.TABLE, renderEmptyRecords: renderEmptyRecords, children: children }));
66
+ }, rowContainerClass: `${rowContainerClass} ${view.rowHeightClass}`, state: view.state?.paginationOptions?.[id], showLoadingIndicator: true, renderEmptyRecords: renderEmptyRecords, bufferMultiplier: bufferMultiplier, children: children }));
68
67
  }
69
68
  VirtualizeWrapper.propTypes = {
70
69
  children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,
@@ -74,6 +73,7 @@ VirtualizeWrapper.propTypes = {
74
73
  rowContainerClass: PropTypes.string,
75
74
  view: PropTypes.objectOf(PropTypes.any).isRequired,
76
75
  isFullscreen: PropTypes.bool,
77
- useVariableRowHeightVirtualization: PropTypes.bool
76
+ useVariableRowHeightVirtualization: PropTypes.bool,
77
+ bufferMultiplier: PropTypes.number
78
78
  };
79
79
  //# sourceMappingURL=VirtualizeWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizeWrapper.js","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAExF,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,yBAAyB,MAAM,iFAAiF,CAAC;AACxH,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,cAAc,MAAM,mDAAmD,CAAC;AAC/E,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,YAAY,GAAG,IAAI,EACnB,iBAAiB,GAAG,EAAE,EACtB,YAAY,GAAG,IAAI,EACnB,YAAY,GAAG,KAAK;AACpB,sJAAsJ;AACtJ,kCAAkC,GAAG,KAAK,EAC3C;IACC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,kCAAkC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAErC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,kCAAkC,CAAC,OAAO;QAClE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9D,IAAI,CAAC,iBAAiB,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,CAAC;QACtE,kCAAkC,CAAC,OAAO,GAAG,IAAI,CAAC;IACpD,CAAC;IAED,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE;QACvB,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CACvB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,GAAG,EAAE,CAAC,CACJ,KAAC,cAAc,IACb,OAAO,EACL,eAAe,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC;YACpF,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,GAE7B,CACH,EACD,CAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CACpE,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAEjC,MAAM,iBAAiB,GAAG,4BAA4B,CACpD,iBAAiB,CAAC,OAAO,EACzB,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CACpC,CAAC;QACF,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC,OAAO;YAAE,OAAO;QAE/D,MAAM,aAAa,GACjB,iBAAiB,CAAC,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAChF,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAErF,IAAI,kCAAkC,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,CAAC;QAC9F,OAAO,CACL,KAAC,yBAAyB,IACxB,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,cAAc,EAAE,UAAU,EAC1B,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAC3D,WAAW,EAAE,kBAAkB,EAC/B,iBAAiB,EAAE,EAAE,EACrB,eAAe,EAAE,IAAI,EACrB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,GAAG,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE,EACjE,GAAG,EAAE,CAAC,CAAC,EAAE;gBACP,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC9C,CAAC,EACD,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EACpD,4BAA4B,EAAC,OAAO,YAEnC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACvD,KAAC,GAAG,IAEF,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,oBAAoB,GAAG,KAAK,IAJlC,GAAG,CAAC,QAAQ,CAKjB,CACH,CAAC,GACwB,CAC7B,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CACL,KAAC,kBAAkB,IACjB,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EACpD,UAAU,EAAE,IAAI,CAAC,SAAS,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,CAAC,CAAC,EAAE;gBACP,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC,EACD,iBAAiB,EAAE,GAAG,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE,EAChE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAC1C,UAAU,EAAE,IAAI,CAAC,qBAAqB,EACtC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,6BAA6B,CAAC,KAAK,EAChF,kBAAkB,EAAE,kBAAkB,YAErC,QAAQ,GACU,CACtB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EACpD,gBAAgB,EAAE,IAAI,CAAC,cAAc,EACrC,UAAU,EAAE,IAAI,CAAC,SAAS,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,CAAC,CAAC,EAAE;YACP,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC,EACD,iBAAiB,EAAE,GAAG,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE,EAChE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAC1C,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,6BAA6B,CAAC,KAAK,EAChF,kBAAkB,EAAE,kBAAkB,YAErC,QAAQ,GACE,CACd,CAAC;AACJ,CAAC;AAED,iBAAiB,CAAC,SAAS,GAAG;IAC5B,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;IAC7E,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;IACxE,YAAY,EAAE,SAAS,CAAC,IAAI;IAC5B,YAAY,EAAE,SAAS,CAAC,IAAI;IAC5B,iBAAiB,EAAE,SAAS,CAAC,MAAM;IACnC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;IAClD,YAAY,EAAE,SAAS,CAAC,IAAI;IAC5B,kCAAkC,EAAE,SAAS,CAAC,IAAI;CACnD,CAAC","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { isEmpty, REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport Virtualize from '../../Components/Virtualise';\nimport VirtualizeInfinite from '../../Components/Virtualise/VirtualizeInfinite';\nimport VariableHeightVirtualizer from '../../Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer';\nimport { isPaginationRequestCompleted } from '../../Components/Virtualise/utility';\nimport { isFilterApplied } from '../../Utils';\nimport EmptyContainer from '../../Components/DefaultComponents/EmptyContainer';\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport Row from './Row';\nimport useCountChange from './useCountChange';\n\nexport default function VirtualizeWrapper({\n view,\n children,\n id,\n renderHeader = null,\n rowContainerClass = '',\n renderFooter = null,\n isFullscreen = false,\n // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views\n useVariableRowHeightVirtualization = false\n}) {\n const { state, meta } = view;\n const { filterExpression, searchText, externalState } = state;\n const [translate] = useTranslate();\n const isProgressiveVirtualizerEverLoaded = useRef(false);\n const paginationPayload = useRef({});\n\n const [isFetching, setIsFetching] = useState(false);\n const [hasMoreResults, setHasMoreResults] = useState(false);\n\n const infiniteModeTable = isProgressiveVirtualizerEverLoaded.current\n ? false\n : !view.state?.groups?.length && isEmpty(view.resultsCount);\n\n if (!infiniteModeTable && !isProgressiveVirtualizerEverLoaded.current) {\n isProgressiveVirtualizerEverLoaded.current = true;\n }\n\n const paginationCallback = useCallback(\n (payload, payloadMeta) => {\n paginationPayload.current = payload;\n setIsFetching(true);\n view.type.onPaginate(payload, payloadMeta);\n },\n [view.type.onPaginate]\n );\n\n const renderEmptyRecords = useCallback(\n () => (\n <EmptyContainer\n message={\n isFilterApplied({ filterExpression, searchText, externalState }, meta.externalFilters)\n ? translate('No records found')\n : translate('No records')\n }\n />\n ),\n [filterExpression, searchText, externalState, meta.externalFilters]\n );\n\n useEffect(() => {\n if (view.isInstantRender) return;\n\n const isRequestComplete = isPaginationRequestCompleted(\n paginationPayload.current,\n view.state?.paginationOptions?.[id]\n );\n setIsFetching(!isRequestComplete);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useEffect(() => {\n if (view.isInstantRender || !paginationPayload.current) return;\n\n const requestedRows =\n paginationPayload.current.endIndex - paginationPayload.current.startIndex + 1;\n setHasMoreResults(view.rows?.length === requestedRows);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useCountChange(view, isFetching, view.getVirtualizeElement?.(id)?.notifyCountChange);\n\n if (useVariableRowHeightVirtualization) {\n const paginationStartIndex = view?.state?.paginationOptions?.rootVirtualiser?.startIndex || 0;\n return (\n <VariableHeightVirtualizer\n id={id}\n totalItemCount={view.totalItemCount}\n isDataFetching={isFetching}\n loadedDataRange={view?.state?.paginationOptions?.[id] || {}}\n apiCallback={paginationCallback}\n defaultItemHeight={40}\n maxItemsToPaint={5000}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n renderEmptyRecords={renderEmptyRecords}\n itemContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r?.getBufferContainer());\n }}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeightWhenNoItemsRendered='100px'\n >\n {view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (\n <Row\n key={row.reactKey}\n row={row}\n columns={view.columns}\n level={0}\n dataIndex={paginationStartIndex + index}\n />\n ))}\n </VariableHeightVirtualizer>\n );\n }\n\n if (infiniteModeTable) {\n return (\n <VirtualizeInfinite\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n hasMoreResults={hasMoreResults}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n resetCount={view.isCountUpdateRequired}\n showLoadingIndicator={view.meta.template === REPEATING_STRUCTURE_TEMPLATES.TABLE}\n renderEmptyRecords={renderEmptyRecords}\n >\n {children}\n </VirtualizeInfinite>\n );\n }\n\n return (\n <Virtualize\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n totalRecordCount={view.totalItemCount}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n showLoadingIndicator={view.meta.template === REPEATING_STRUCTURE_TEMPLATES.TABLE}\n renderEmptyRecords={renderEmptyRecords}\n >\n {children}\n </Virtualize>\n );\n}\n\nVirtualizeWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n renderHeader: PropTypes.func,\n renderFooter: PropTypes.func,\n rowContainerClass: PropTypes.string,\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n isFullscreen: PropTypes.bool,\n useVariableRowHeightVirtualization: PropTypes.bool\n};\n"]}
1
+ {"version":3,"file":"VirtualizeWrapper.js","sourceRoot":"","sources":["../../../../Core/Views/Table/VirtualizeWrapper.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport { usePrevious } from '@pega/cosmos-react-core';\n\nimport Virtualize from '../../Components/Virtualise';\nimport VirtualizeInfinite from '../../Components/Virtualise/VirtualizeInfinite';\nimport VariableHeightVirtualizer from '../../Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer';\nimport { isPaginationRequestCompleted } from '../../Components/Virtualise/utility';\nimport { isFilterApplied } from '../../Utils';\nimport EmptyContainer from '../../Components/DefaultComponents/EmptyContainer';\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport Row from './Row';\nimport useCountChange from './useCountChange';\n\nexport default function VirtualizeWrapper({\n view,\n children,\n id,\n renderHeader = null,\n rowContainerClass = '',\n renderFooter = null,\n isFullscreen = false,\n // TODO: Remove this prop and deprecate older virtualizers once we fully migrate to variable row height virtualizer for gallery and grouped list views\n useVariableRowHeightVirtualization = false,\n bufferMultiplier\n}) {\n const { state, meta } = view;\n const { filterExpression, searchText, externalState } = state;\n const [translate] = useTranslate();\n const paginationPayload = useRef({});\n\n const [isFetching, setIsFetching] = useState(false);\n const [hasMoreResults, setHasMoreResults] = useState(false);\n const previousTotalItemCount = usePrevious(view.totalItemCount);\n\n const paginationCallback = useCallback(\n (payload, payloadMeta) => {\n const updatedPayload =\n view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ? { ...payload, startIndex: 0 }\n : payload;\n\n paginationPayload.current = updatedPayload;\n setIsFetching(true);\n view.type.onPaginate(updatedPayload, payloadMeta);\n },\n [view.type.onPaginate]\n );\n\n const renderEmptyRecords = useCallback(\n () => (\n <EmptyContainer\n message={\n isFilterApplied({ filterExpression, searchText, externalState }, meta.externalFilters)\n ? translate('No records found')\n : translate('No records')\n }\n shouldAnnounce={previousTotalItemCount > 0 && view.totalItemCount === 0}\n domContainer={view.getDomContainer()}\n />\n ),\n [filterExpression, searchText, externalState, meta.externalFilters, view.totalItemCount]\n );\n\n useEffect(() => {\n if (view.isInstantRender) return;\n\n const isRequestComplete = isPaginationRequestCompleted(\n paginationPayload.current,\n view.state?.paginationOptions?.[id]\n );\n setIsFetching(!isRequestComplete);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useEffect(() => {\n if (view.isInstantRender || !paginationPayload.current) return;\n\n const requestedRows =\n paginationPayload.current.endIndex - paginationPayload.current.startIndex + 1;\n setHasMoreResults(view.rows?.length === requestedRows);\n }, [view.isInstantRender, view.state?.paginationOptions?.[id]]);\n\n useCountChange(view, isFetching, view.getVirtualizeElement?.(id)?.notifyCountChange);\n\n if (useVariableRowHeightVirtualization) {\n const paginationStartIndex = view?.state?.paginationOptions?.rootVirtualiser?.startIndex || 0;\n return (\n <VariableHeightVirtualizer\n id={id}\n totalItemCount={view.totalItemCount}\n isDataFetching={isFetching}\n loadedDataRange={view?.state?.paginationOptions?.[id] || {}}\n apiCallback={paginationCallback}\n defaultItemHeight={40}\n maxItemsToPaint={5000}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n renderEmptyRecords={renderEmptyRecords}\n itemContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r?.getBufferContainer());\n }}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n minHeightWhenNoItemsRendered='100px'\n >\n {view?.groupHeaders?.[0]?.getRows()?.map((row, index) => (\n <Row\n key={row.reactKey}\n row={row}\n columns={view.columns}\n level={0}\n dataIndex={paginationStartIndex + index}\n />\n ))}\n </VariableHeightVirtualizer>\n );\n }\n\n if (view.template === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {\n return (\n <VirtualizeInfinite\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n hasMoreResults={hasMoreResults}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n resetCount={view.isCountUpdateRequired}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </VirtualizeInfinite>\n );\n }\n\n // Only used for grouped table\n return (\n <Virtualize\n id={id}\n viewMaxHeight={isFullscreen ? null : view.bodyHeight}\n totalRecordCount={view.totalItemCount}\n itemHeight={view.rowHeight}\n callback={paginationCallback}\n isFetching={isFetching}\n renderHeader={renderHeader}\n renderFooter={renderFooter}\n ref={r => {\n view.putVirtualizeElement(id, r);\n view.setScrollNode(r && r.vi && r.vi.bContainer);\n }}\n rowContainerClass={`${rowContainerClass} ${view.rowHeightClass}`}\n state={view.state?.paginationOptions?.[id]}\n showLoadingIndicator\n renderEmptyRecords={renderEmptyRecords}\n bufferMultiplier={bufferMultiplier}\n >\n {children}\n </Virtualize>\n );\n}\n\nVirtualizeWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n renderHeader: PropTypes.func,\n renderFooter: PropTypes.func,\n rowContainerClass: PropTypes.string,\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n isFullscreen: PropTypes.bool,\n useVariableRowHeightVirtualization: PropTypes.bool,\n bufferMultiplier: PropTypes.number\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":";AA4BA;;4CA2IC;;;;;;;;sBAvKqB,YAAY"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Views/Table/index.jsx"],"names":[],"mappings":";AA6BA;;4CAoJC;;;;;;;;sBAjLqB,YAAY"}
@@ -6,6 +6,7 @@ import { useFullscreenContext, useTheme } from '@pega/cosmos-react-core';
6
6
  import { expandCollapseAllMeta } from 'pega-repeating-structures-core';
7
7
  import { createClassName as cx } from '../../Utils';
8
8
  import NotificationManager from '../../Components/NotificationManager';
9
+ import WarningBanner from '../../Components/WarningBanner';
9
10
  import Toolbar from '../../Components/Toolbar';
10
11
  import ContextMenuContainer from '../../Components/ContextMenu/ContextMenuContainer';
11
12
  import LoadingIndicator from '../../Components/LoadingIndicator';
@@ -24,7 +25,7 @@ import Headers from './Headers';
24
25
  const contextMenuSelector = { query: '.cell:not([role="columnheader"])' };
25
26
  function StyledTable({ view }) {
26
27
  const isFullscreen = !!useFullscreenContext()?.[0];
27
- const { columns, rows, groupHeaders } = view;
28
+ const { columns, rows, groupHeaders, meta: { toolbarActions } = {} } = view;
28
29
  const rowHeight = 40;
29
30
  const footerHeight = 57;
30
31
  const isSmallOrAbove = view?.state?.responsive?.sm;
@@ -38,6 +39,7 @@ function StyledTable({ view }) {
38
39
  };
39
40
  const renderHeader = useCallback(() => _jsx(Headers, { ref: view.setItemElement, columns: columns, isVisible: !!rows }), [columns, rows, view]);
40
41
  const renderFooter = useCallback(() => _jsx(TableFooter, { view: view }), [view]);
42
+ const addAction = toolbarActions?.find(action => action.id === 'Add_Record');
41
43
  const theme = useTheme();
42
44
  const containerRef = useRef(null);
43
45
  const { announcePolite } = useLiveLog();
@@ -51,8 +53,10 @@ function StyledTable({ view }) {
51
53
  belowLoader: '.below-loader',
52
54
  expandCollpaseAll: '.expand-collapse-all',
53
55
  stickyGroupHeaderSelector: '.stickyGroupHeader',
56
+ aggregateCell: '.aggregateCell',
54
57
  tableLoader: '.table-loader',
55
- footer: '.footer'
58
+ footer: '.footer',
59
+ addActionSelector: addAction ? `[aria-label="${addAction.text}"]` : undefined
56
60
  }, FOCUSABLE_SELECTORS, {
57
61
  TAB: 9,
58
62
  LEFT: 37,
@@ -70,8 +74,13 @@ function StyledTable({ view }) {
70
74
  useEffect(() => {
71
75
  a11yRef.current.itemsLoadedCallback();
72
76
  });
73
- const keyDownHandler = useCallback(e => {
74
- a11yRef.current.a11yHandler(e);
77
+ useEffect(() => {
78
+ const container = containerRef.current;
79
+ if (!container)
80
+ return;
81
+ const handler = e => a11yRef.current.a11yHandler(e);
82
+ container.addEventListener('keydown', handler);
83
+ return () => container.removeEventListener('keydown', handler);
75
84
  }, []);
76
85
  const onClickHandler = useCallback(e => {
77
86
  const pointerType = e.nativeEvent.pointerType;
@@ -79,11 +88,11 @@ function StyledTable({ view }) {
79
88
  a11yRef.current.clickHandler(e);
80
89
  }
81
90
  }, []);
82
- return (_jsx(RsCardWrapper, { children: _jsxs(StyledTableContainer, { style: containerStyles, "data-test-id": 'table', className: cx('t-container', {
91
+ return (_jsx(RsCardWrapper, { children: _jsxs(StyledTableContainer, { style: containerStyles, "data-test-id": 'table', "data-testid": 'table', className: cx('t-container', {
83
92
  'show-expand-collapse-all': view.showGroupingExpandCollapseAll
84
- }), theme: theme, view: view, isFullscreen: isFullscreen, children: [_jsx(Toolbar, { view: view }), _jsx(RenderView, { type: EXTERNAL_FILTERS, view: view }), _jsx(NotificationManager, { view: view }), _jsx(RepeatingStructureA11y, { view: view, a11yRef: a11yRef, children: _jsxs("div", { className: cx('container', view.className, {
93
+ }), theme: theme, view: view, isFullscreen: isFullscreen, children: [_jsx(WarningBanner, { warningMessages: view.warningMessages }), _jsx(Toolbar, { view: view }), _jsx(RenderView, { type: EXTERNAL_FILTERS, view: view }), _jsx(NotificationManager, { view: view }), _jsx(RepeatingStructureA11y, { view: view, a11yRef: a11yRef, children: _jsxs("div", { className: cx('container', view.className, {
85
94
  'small-screen-table': !isSmallOrAbove
86
- }), ref: containerRef, ...view.getUIProps(), onClick: onClickHandler, onKeyDown: keyDownHandler, children: [view.state?.groups?.length ? (_jsxs(_Fragment, { children: [_jsx(GroupingHeaderCell, { ...view.groupingHeaderCellProps }), _jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, children: _jsx(Body, { groupHeaders: groupHeaders, columns: columns, hierarchicalGroupEnabled: view.hierarchicalGroupEnabled }) })] })) : (_jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, useVariableRowHeightVirtualization: true })), _jsx(LoadingIndicator, { view: view, show: !rows || !!view.isLoading }), _jsx(ContextMenuContainer, { view: view, selector: contextMenuSelector })] }) })] }) }));
95
+ }), ref: containerRef, ...view.getUIProps(), onClick: onClickHandler, onFocusCapture: e => a11yRef.current.onFocusHandler(e), onBlurCapture: e => a11yRef.current.onBlurHandler(e), children: [view.state?.groups?.length ? (_jsxs(_Fragment, { children: [_jsx(GroupingHeaderCell, { view: view }), _jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, children: _jsx(Body, { groupHeaders: groupHeaders, columns: columns, hierarchicalGroupEnabled: view.hierarchicalGroupEnabled }) })] })) : (_jsx(Virtualiser, { id: 'rootVirtualiser', view: view, renderHeader: renderHeader, renderFooter: renderFooter, isFullscreen: isFullscreen, useVariableRowHeightVirtualization: true })), _jsx(LoadingIndicator, { view: view, show: !rows || !!view.isLoading }), _jsx(ContextMenuContainer, { view: view, selector: contextMenuSelector })] }) })] }) }));
87
96
  }
88
97
  StyledTable.propTypes = {
89
98
  view: PropTypes.objectOf(PropTypes.any).isRequired