pixelize-design-library 2.4.1-beta.2 → 2.4.1-beta.3

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 (329) hide show
  1. package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
  2. package/dist/Components/Accordion/accordionColors.js +17 -3
  3. package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  4. package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
  5. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
  6. package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
  7. package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
  8. package/dist/Components/DatePicker/CalendarPanel.js +3 -1
  9. package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
  10. package/dist/Components/Editor/joditThemeVars.js +9 -0
  11. package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
  12. package/dist/Components/FilePreview/FilePreview.js +3 -1
  13. package/dist/Components/FileUploader/FileUploader.js +2 -2
  14. package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
  15. package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
  16. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  17. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  18. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  19. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  20. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  21. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +3 -3
  22. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  23. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  24. package/dist/Components/OrganizationDetails/OrganizationDetails.js +55 -7
  25. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +24 -14
  26. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  27. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  28. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  29. package/dist/Components/PlanPill/PlanPill.js +41 -0
  30. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  31. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  32. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  33. package/dist/Components/Search/Search.d.ts.map +1 -1
  34. package/dist/Components/Search/Search.js +4 -2
  35. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  36. package/dist/Components/Select/Select.styles.js +29 -20
  37. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  38. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  39. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  40. package/dist/Components/SideBar/SideBar.js +1 -1
  41. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  42. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  43. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  44. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  45. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  46. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  47. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  48. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  49. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  50. package/dist/Components/UserDetails/UserDetails.js +5 -2
  51. package/dist/Theme/chakra/componentStyles.d.ts +2 -0
  52. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  53. package/dist/Theme/chakra/componentStyles.js +74 -0
  54. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  55. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  56. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  57. package/dist/Theme/tokens/brands/index.js +20 -18
  58. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  59. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  60. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  61. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  62. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  63. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  64. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  65. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  66. package/dist/Utils/planExpiry.d.ts +19 -0
  67. package/dist/Utils/planExpiry.d.ts.map +1 -0
  68. package/dist/Utils/planExpiry.js +61 -0
  69. package/dist/index.d.ts +7 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +21 -3
  72. package/package.json +5 -1
  73. package/.claude/settings.local.json +0 -51
  74. package/.cursor/TASK-SETUP.md +0 -43
  75. package/.cursor/agents/be-impl.md +0 -37
  76. package/.cursor/agents/fe-impl.md +0 -39
  77. package/.cursor/agents/task-plan.md +0 -56
  78. package/.cursor/agents/test-create.md +0 -31
  79. package/.cursor/agents/test-exec.md +0 -26
  80. package/.cursor/hooks/task-hint.env +0 -1
  81. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  82. package/.cursor/hooks/task-slash-guard.sh +0 -31
  83. package/.cursor/hooks.json +0 -13
  84. package/.cursor/modules/account-management/MODULE.md +0 -41
  85. package/.cursor/modules/buttons/MODULE.md +0 -47
  86. package/.cursor/modules/cards/MODULE.md +0 -55
  87. package/.cursor/modules/charts/MODULE.md +0 -40
  88. package/.cursor/modules/common/MODULE.md +0 -36
  89. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  90. package/.cursor/modules/data-display/MODULE.md +0 -42
  91. package/.cursor/modules/feedback/MODULE.md +0 -38
  92. package/.cursor/modules/form/MODULE.md +0 -13
  93. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  94. package/.cursor/modules/inputs-date-file/MODULE.md +0 -67
  95. package/.cursor/modules/inputs-select/MODULE.md +0 -89
  96. package/.cursor/modules/inputs-toggle/MODULE.md +0 -24
  97. package/.cursor/modules/kanban/MODULE.md +0 -22
  98. package/.cursor/modules/layout-navigation/MODULE.md +0 -319
  99. package/.cursor/modules/overlays/MODULE.md +0 -82
  100. package/.cursor/modules/playground/MODULE.md +0 -28
  101. package/.cursor/modules/table/MODULE.md +0 -84
  102. package/.cursor/modules/theme/MODULE.md +0 -431
  103. package/.cursor/modules/types-exports/MODULE.md +0 -17
  104. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  105. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  106. package/.cursor/pixelize-task-statusline.sh +0 -64
  107. package/.cursor/plans/blocked/.gitkeep +0 -0
  108. package/.cursor/plans/current.md +0 -12
  109. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  110. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  111. package/.cursor/plans/done/.gitkeep +0 -0
  112. package/.cursor/rules +0 -31
  113. package/.cursor/skills/task/SKILL.md +0 -167
  114. package/CLAUDE.md +0 -148
  115. package/__mocks__/styleMock.js +0 -8
  116. package/coverage/clover.xml +0 -405
  117. package/coverage/coverage-final.json +0 -16
  118. package/coverage/coverage-summary.json +0 -50
  119. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  120. package/coverage/lcov-report/Button/index.html +0 -116
  121. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  122. package/coverage/lcov-report/Checkbox/index.html +0 -116
  123. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  124. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  125. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  126. package/coverage/lcov-report/Common/index.html +0 -146
  127. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  128. package/coverage/lcov-report/Components/Button/index.html +0 -116
  129. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  130. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  131. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  132. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  133. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  134. package/coverage/lcov-report/Components/Common/index.html +0 -146
  135. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  136. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  137. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  138. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  139. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  140. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  141. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  142. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  143. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  144. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  145. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  146. package/coverage/lcov-report/Components/Header/index.html +0 -116
  147. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  148. package/coverage/lcov-report/Components/Input/index.html +0 -116
  149. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  150. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  151. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  152. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  153. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  154. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  155. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  156. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  157. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  158. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  159. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  160. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  161. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  162. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  163. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  164. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  165. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  166. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  167. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  168. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  169. package/coverage/lcov-report/Components/Select/index.html +0 -116
  170. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  171. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  172. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  173. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  174. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  175. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  176. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  177. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  178. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  179. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  180. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  181. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  182. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  183. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  184. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  185. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  186. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  187. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  188. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  189. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  190. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  191. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  192. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  193. package/coverage/lcov-report/EmptyState/index.html +0 -116
  194. package/coverage/lcov-report/Hooks/index.html +0 -116
  195. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  196. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  197. package/coverage/lcov-report/Input/index.html +0 -131
  198. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  199. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  200. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  201. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  202. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  203. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  204. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  205. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  206. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  207. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  208. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  209. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  210. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  211. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  212. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  213. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  214. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  215. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  216. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  217. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  218. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  219. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  220. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  221. package/coverage/lcov-report/Table/Components/index.html +0 -266
  222. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  223. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  224. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  225. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  226. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  227. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  228. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  229. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  230. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  231. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  232. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  233. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  234. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  235. package/coverage/lcov-report/Table/index.html +0 -176
  236. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  237. package/coverage/lcov-report/Table/settings/index.html +0 -116
  238. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  239. package/coverage/lcov-report/Tag/index.html +0 -116
  240. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  241. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  242. package/coverage/lcov-report/Theme/index.html +0 -131
  243. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  244. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  245. package/coverage/lcov-report/ToolTip/index.html +0 -116
  246. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  247. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  248. package/coverage/lcov-report/UserDetails/index.html +0 -116
  249. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  250. package/coverage/lcov-report/Utils/index.html +0 -116
  251. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  252. package/coverage/lcov-report/base.css +0 -224
  253. package/coverage/lcov-report/block-navigation.js +0 -87
  254. package/coverage/lcov-report/favicon.png +0 -0
  255. package/coverage/lcov-report/index.html +0 -251
  256. package/coverage/lcov-report/prettify.css +0 -1
  257. package/coverage/lcov-report/prettify.js +0 -2
  258. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  259. package/coverage/lcov-report/sorter.js +0 -210
  260. package/coverage/lcov.info +0 -981
  261. package/dist/Theme/Dark/theme.d.ts +0 -3
  262. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  263. package/dist/Theme/Dark/theme.js +0 -277
  264. package/dist/Theme/Default/palette.d.ts +0 -375
  265. package/dist/Theme/Default/palette.d.ts.map +0 -1
  266. package/dist/Theme/Default/palette.js +0 -306
  267. package/dist/Theme/Default/theme.d.ts +0 -3
  268. package/dist/Theme/Default/theme.d.ts.map +0 -1
  269. package/dist/Theme/Default/theme.js +0 -19
  270. package/dist/Theme/Emerald/palette.d.ts +0 -375
  271. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  272. package/dist/Theme/Emerald/palette.js +0 -125
  273. package/dist/Theme/Emerald/theme.d.ts +0 -3
  274. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  275. package/dist/Theme/Emerald/theme.js +0 -19
  276. package/dist/Theme/Meadow/palette.d.ts +0 -375
  277. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  278. package/dist/Theme/Meadow/palette.js +0 -123
  279. package/dist/Theme/Meadow/theme.d.ts +0 -3
  280. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  281. package/dist/Theme/Meadow/theme.js +0 -19
  282. package/dist/Theme/Radiant/palette.d.ts +0 -375
  283. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  284. package/dist/Theme/Radiant/palette.js +0 -125
  285. package/dist/Theme/Radiant/theme.d.ts +0 -3
  286. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  287. package/dist/Theme/Radiant/theme.js +0 -19
  288. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  289. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  290. package/dist/Theme/Rosewood/palette.js +0 -125
  291. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  292. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  293. package/dist/Theme/Rosewood/theme.js +0 -19
  294. package/dist/Theme/Skyline/palette.d.ts +0 -375
  295. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  296. package/dist/Theme/Skyline/palette.js +0 -123
  297. package/dist/Theme/Skyline/theme.d.ts +0 -3
  298. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  299. package/dist/Theme/Skyline/theme.js +0 -19
  300. package/dist/Theme/Slate/palette.d.ts +0 -375
  301. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  302. package/dist/Theme/Slate/palette.js +0 -123
  303. package/dist/Theme/Slate/theme.d.ts +0 -3
  304. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  305. package/dist/Theme/Slate/theme.js +0 -19
  306. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  307. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  308. package/dist/Theme/buildBrandTokens.js +0 -33
  309. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  310. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  311. package/dist/Theme/chartColorsFromTheme.js +0 -34
  312. package/dist/Theme/common.d.ts +0 -167
  313. package/dist/Theme/common.d.ts.map +0 -1
  314. package/dist/Theme/common.js +0 -112
  315. package/dist/Theme/componentStyles.d.ts +0 -10
  316. package/dist/Theme/componentStyles.d.ts.map +0 -1
  317. package/dist/Theme/componentStyles.js +0 -19
  318. package/dist/Theme/fonts.d.ts +0 -37
  319. package/dist/Theme/fonts.d.ts.map +0 -1
  320. package/dist/Theme/fonts.js +0 -41
  321. package/dist/Theme/space.d.ts +0 -34
  322. package/dist/Theme/space.d.ts.map +0 -1
  323. package/dist/Theme/space.js +0 -35
  324. package/dist/Theme/theme.d.ts +0 -3
  325. package/dist/Theme/theme.d.ts.map +0 -1
  326. package/dist/Theme/theme.js +0 -12
  327. package/eslint.config.js +0 -48
  328. package/index.html +0 -13
  329. package/vite.config.ts +0 -13
@@ -1,2212 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for Components/Table/components/TableBody.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">Components/Table/components</a> TableBody.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">92.52% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>198/214</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">86.31% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>227/263</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">92.5% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>37/40</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">95.6% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>174/182</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-yes">2x</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-yes">558x</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-yes">2x</span>
798
- <span class="cline-any cline-yes">350x</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-yes">2x</span>
807
- <span class="cline-any cline-yes">62x</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-yes">2x</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-yes">2x</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-yes">175x</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-yes">175x</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-yes">175x</span>
896
- <span class="cline-any cline-yes">175x</span>
897
- <span class="cline-any cline-yes">175x</span>
898
- <span class="cline-any cline-yes">175x</span>
899
- <span class="cline-any cline-yes">127x</span>
900
- <span class="cline-any cline-yes">39x</span>
901
- <span class="cline-any cline-yes">39x</span>
902
- <span class="cline-any cline-yes">39x</span>
903
- <span class="cline-any cline-yes">39x</span>
904
- <span class="cline-any cline-yes">39x</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-yes">39x</span>
907
- <span class="cline-any cline-yes">39x</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-yes">39x</span>
910
- <span class="cline-any cline-no">&nbsp;</span>
911
- <span class="cline-any cline-no">&nbsp;</span>
912
- <span class="cline-any cline-no">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-yes">39x</span>
915
- <span class="cline-any cline-yes">39x</span>
916
- <span class="cline-any cline-yes">39x</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-yes">175x</span>
921
- <span class="cline-any cline-yes">2x</span>
922
- <span class="cline-any cline-yes">1x</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-yes">175x</span>
927
- <span class="cline-any cline-yes">175x</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-yes">175x</span>
932
- <span class="cline-any cline-yes">175x</span>
933
- <span class="cline-any cline-yes">175x</span>
934
- <span class="cline-any cline-yes">175x</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-yes">175x</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-yes">3x</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-yes">1x</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-yes">241x</span>
1003
- <span class="cline-any cline-yes">239x</span>
1004
- <span class="cline-any cline-yes">239x</span>
1005
- <span class="cline-any cline-yes">239x</span>
1006
- <span class="cline-any cline-yes">239x</span>
1007
- <span class="cline-any cline-yes">239x</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-yes">239x</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-yes">2x</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&nbsp;</span>
1102
- <span class="cline-any cline-yes">2x</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-yes">38x</span>
1127
- <span class="cline-any cline-yes">38x</span>
1128
- <span class="cline-any cline-yes">38x</span>
1129
- <span class="cline-any cline-yes">38x</span>
1130
- <span class="cline-any cline-yes">2x</span>
1131
- <span class="cline-any cline-yes">2x</span>
1132
- <span class="cline-any cline-yes">2x</span>
1133
- <span class="cline-any cline-yes">1x</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-yes">1x</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-yes">2x</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-yes">38x</span>
1142
- <span class="cline-any cline-yes">38x</span>
1143
- <span class="cline-any cline-yes">38x</span>
1144
- <span class="cline-any cline-yes">38x</span>
1145
- <span class="cline-any cline-yes">38x</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-yes">38x</span>
1159
- <span class="cline-any cline-yes">38x</span>
1160
- <span class="cline-any cline-yes">38x</span>
1161
- <span class="cline-any cline-yes">38x</span>
1162
- <span class="cline-any cline-yes">38x</span>
1163
- <span class="cline-any cline-yes">38x</span>
1164
- <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-yes">50x</span>
1167
- <span class="cline-any cline-yes">38x</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-yes">38x</span>
1170
- <span class="cline-any cline-yes">38x</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-yes">38x</span>
1173
- <span class="cline-any cline-yes">38x</span>
1174
- <span class="cline-any cline-no">&nbsp;</span>
1175
- <span class="cline-any cline-no">&nbsp;</span>
1176
- <span class="cline-any cline-no">&nbsp;</span>
1177
- <span class="cline-any cline-no">&nbsp;</span>
1178
- <span class="cline-any cline-no">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-yes">38x</span>
1183
- <span class="cline-any cline-yes">31x</span>
1184
- <span class="cline-any cline-yes">31x</span>
1185
- <span class="cline-any cline-yes">3x</span>
1186
- <span class="cline-any cline-yes">3x</span>
1187
- <span class="cline-any cline-yes">3x</span>
1188
- <span class="cline-any cline-yes">3x</span>
1189
- <span class="cline-any cline-yes">3x</span>
1190
- <span class="cline-any cline-yes">3x</span>
1191
- <span class="cline-any cline-yes">3x</span>
1192
- <span class="cline-any cline-yes">3x</span>
1193
- <span class="cline-any cline-yes">3x</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-yes">38x</span>
1199
- <span class="cline-any cline-yes">31x</span>
1200
- <span class="cline-any cline-yes">2x</span>
1201
- <span class="cline-any cline-yes">2x</span>
1202
- <span class="cline-any cline-yes">2x</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-yes">38x</span>
1206
- <span class="cline-any cline-yes">38x</span>
1207
- <span class="cline-any cline-yes">38x</span>
1208
- <span class="cline-any cline-yes">38x</span>
1209
- <span class="cline-any cline-yes">38x</span>
1210
- <span class="cline-any cline-yes">38x</span>
1211
- <span class="cline-any cline-yes">4x</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-yes">4x</span>
1215
- <span class="cline-any cline-yes">4x</span>
1216
- <span class="cline-any cline-yes">4x</span>
1217
- <span class="cline-any cline-yes">205x</span>
1218
- <span class="cline-any cline-yes">205x</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-yes">205x</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-yes">205x</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-yes">4x</span>
1226
- <span class="cline-any cline-yes">4x</span>
1227
- <span class="cline-any cline-yes">4x</span>
1228
- <span class="cline-any cline-yes">4x</span>
1229
- <span class="cline-any cline-yes">4x</span>
1230
- <span class="cline-any cline-yes">4x</span>
1231
- <span class="cline-any cline-yes">73x</span>
1232
- <span class="cline-any cline-yes">4x</span>
1233
- <span class="cline-any cline-yes">4x</span>
1234
- <span class="cline-any cline-yes">4x</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-yes">38x</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</span>
1238
- <span class="cline-any cline-yes">38x</span>
1239
- <span class="cline-any cline-yes">3x</span>
1240
- <span class="cline-any cline-yes">3x</span>
1241
- <span class="cline-any cline-yes">3x</span>
1242
- <span class="cline-any cline-yes">1x</span>
1243
- <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-yes">2x</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-yes">3x</span>
1247
- <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-yes">38x</span>
1251
- <span class="cline-any cline-yes">56x</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-yes">38x</span>
1259
- <span class="cline-any cline-yes">31x</span>
1260
- <span class="cline-any cline-yes">31x</span>
1261
- <span class="cline-any cline-yes">56x</span>
1262
- <span class="cline-any cline-neutral">&nbsp;</span>
1263
- <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-yes">38x</span>
1266
- <span class="cline-any cline-yes">38x</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-neutral">&nbsp;</span>
1270
- <span class="cline-any cline-yes">38x</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-neutral">&nbsp;</span>
1274
- <span class="cline-any cline-yes">38x</span>
1275
- <span class="cline-any cline-yes">1x</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-neutral">&nbsp;</span>
1284
- <span class="cline-any cline-yes">37x</span>
1285
- <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-yes">3x</span>
1287
- <span class="cline-any cline-yes">3x</span>
1288
- <span class="cline-any cline-yes">3x</span>
1289
- <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-neutral">&nbsp;</span>
1291
- <span class="cline-any cline-neutral">&nbsp;</span>
1292
- <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-neutral">&nbsp;</span>
1294
- <span class="cline-any cline-neutral">&nbsp;</span>
1295
- <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-neutral">&nbsp;</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-neutral">&nbsp;</span>
1300
- <span class="cline-any cline-neutral">&nbsp;</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-neutral">&nbsp;</span>
1305
- <span class="cline-any cline-neutral">&nbsp;</span>
1306
- <span class="cline-any cline-neutral">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-neutral">&nbsp;</span>
1309
- <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-yes">34x</span>
1311
- <span class="cline-any cline-neutral">&nbsp;</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-neutral">&nbsp;</span>
1316
- <span class="cline-any cline-yes">7x</span>
1317
- <span class="cline-any cline-yes">7x</span>
1318
- <span class="cline-any cline-yes">50x</span>
1319
- <span class="cline-any cline-yes">50x</span>
1320
- <span class="cline-any cline-yes">89x</span>
1321
- <span class="cline-any cline-neutral">&nbsp;</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-neutral">&nbsp;</span>
1324
- <span class="cline-any cline-yes">7x</span>
1325
- <span class="cline-any cline-yes">7x</span>
1326
- <span class="cline-any cline-yes">7x</span>
1327
- <span class="cline-any cline-yes">7x</span>
1328
- <span class="cline-any cline-yes">7x</span>
1329
- <span class="cline-any cline-yes">120x</span>
1330
- <span class="cline-any cline-yes">2x</span>
1331
- <span class="cline-any cline-yes">2x</span>
1332
- <span class="cline-any cline-yes">120x</span>
1333
- <span class="cline-any cline-yes">2x</span>
1334
- <span class="cline-any cline-yes">2x</span>
1335
- <span class="cline-any cline-yes">2x</span>
1336
- <span class="cline-any cline-yes">2x</span>
1337
- <span class="cline-any cline-yes">2x</span>
1338
- <span class="cline-any cline-yes">2x</span>
1339
- <span class="cline-any cline-yes">2x</span>
1340
- <span class="cline-any cline-yes">2x</span>
1341
- <span class="cline-any cline-yes">40x</span>
1342
- <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-yes">2x</span>
1344
- <span class="cline-any cline-yes">2x</span>
1345
- <span class="cline-any cline-neutral">&nbsp;</span>
1346
- <span class="cline-any cline-neutral">&nbsp;</span>
1347
- <span class="cline-any cline-yes">7x</span>
1348
- <span class="cline-any cline-neutral">&nbsp;</span>
1349
- <span class="cline-any cline-yes">7x</span>
1350
- <span class="cline-any cline-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-neutral">&nbsp;</span>
1353
- <span class="cline-any cline-neutral">&nbsp;</span>
1354
- <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-yes">57x</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-neutral">&nbsp;</span>
1361
- <span class="cline-any cline-neutral">&nbsp;</span>
1362
- <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-neutral">&nbsp;</span>
1364
- <span class="cline-any cline-neutral">&nbsp;</span>
1365
- <span class="cline-any cline-neutral">&nbsp;</span>
1366
- <span class="cline-any cline-yes">2x</span>
1367
- <span class="cline-any cline-neutral">&nbsp;</span>
1368
- <span class="cline-any cline-neutral">&nbsp;</span>
1369
- <span class="cline-any cline-neutral">&nbsp;</span>
1370
- <span class="cline-any cline-neutral">&nbsp;</span>
1371
- <span class="cline-any cline-neutral">&nbsp;</span>
1372
- <span class="cline-any cline-neutral">&nbsp;</span>
1373
- <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-neutral">&nbsp;</span>
1375
- <span class="cline-any cline-neutral">&nbsp;</span>
1376
- <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-neutral">&nbsp;</span>
1381
- <span class="cline-any cline-neutral">&nbsp;</span>
1382
- <span class="cline-any cline-neutral">&nbsp;</span>
1383
- <span class="cline-any cline-neutral">&nbsp;</span>
1384
- <span class="cline-any cline-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-neutral">&nbsp;</span>
1387
- <span class="cline-any cline-neutral">&nbsp;</span>
1388
- <span class="cline-any cline-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-neutral">&nbsp;</span>
1390
- <span class="cline-any cline-neutral">&nbsp;</span>
1391
- <span class="cline-any cline-neutral">&nbsp;</span>
1392
- <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&nbsp;</span>
1394
- <span class="cline-any cline-neutral">&nbsp;</span>
1395
- <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-neutral">&nbsp;</span>
1397
- <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-neutral">&nbsp;</span>
1401
- <span class="cline-any cline-neutral">&nbsp;</span>
1402
- <span class="cline-any cline-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-neutral">&nbsp;</span>
1404
- <span class="cline-any cline-neutral">&nbsp;</span>
1405
- <span class="cline-any cline-neutral">&nbsp;</span>
1406
- <span class="cline-any cline-neutral">&nbsp;</span>
1407
- <span class="cline-any cline-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-neutral">&nbsp;</span>
1409
- <span class="cline-any cline-yes">27x</span>
1410
- <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&nbsp;</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-neutral">&nbsp;</span>
1418
- <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-neutral">&nbsp;</span>
1420
- <span class="cline-any cline-neutral">&nbsp;</span>
1421
- <span class="cline-any cline-neutral">&nbsp;</span>
1422
- <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-neutral">&nbsp;</span>
1425
- <span class="cline-any cline-neutral">&nbsp;</span>
1426
- <span class="cline-any cline-neutral">&nbsp;</span>
1427
- <span class="cline-any cline-neutral">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-neutral">&nbsp;</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&nbsp;</span>
1434
- <span class="cline-any cline-neutral">&nbsp;</span>
1435
- <span class="cline-any cline-neutral">&nbsp;</span>
1436
- <span class="cline-any cline-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-neutral">&nbsp;</span>
1438
- <span class="cline-any cline-yes">142x</span>
1439
- <span class="cline-any cline-yes">142x</span>
1440
- <span class="cline-any cline-yes">142x</span>
1441
- <span class="cline-any cline-yes">142x</span>
1442
- <span class="cline-any cline-yes">142x</span>
1443
- <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&nbsp;</span>
1445
- <span class="cline-any cline-neutral">&nbsp;</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-neutral">&nbsp;</span>
1448
- <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-neutral">&nbsp;</span>
1461
- <span class="cline-any cline-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&nbsp;</span>
1463
- <span class="cline-any cline-neutral">&nbsp;</span>
1464
- <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-neutral">&nbsp;</span>
1466
- <span class="cline-any cline-neutral">&nbsp;</span>
1467
- <span class="cline-any cline-neutral">&nbsp;</span>
1468
- <span class="cline-any cline-neutral">&nbsp;</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-neutral">&nbsp;</span>
1472
- <span class="cline-any cline-neutral">&nbsp;</span>
1473
- <span class="cline-any cline-neutral">&nbsp;</span>
1474
- <span class="cline-any cline-neutral">&nbsp;</span>
1475
- <span class="cline-any cline-neutral">&nbsp;</span>
1476
- <span class="cline-any cline-neutral">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-neutral">&nbsp;</span>
1479
- <span class="cline-any cline-neutral">&nbsp;</span>
1480
- <span class="cline-any cline-neutral">&nbsp;</span>
1481
- <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-neutral">&nbsp;</span>
1483
- <span class="cline-any cline-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Box, IconButton, Spinner, Td, Tr } from "@chakra-ui/react";
1485
- import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
1486
- import { normalizeTableCellValue, buildTablePalette, pickTableColor, TablePaletteColor } from "../../../Utils/table";
1487
- import { DataObject, TableBodyPageProps, TableHeaderProps, TableRenderGroup } from "../TableProps";
1488
- import { useCustomTheme } from "../../../Theme/useCustomTheme";
1489
- import type { CustomThemeProps } from "../../../Theme/themeProps";
1490
- import { TableBodyLoading } from "./TableLoading";
1491
- import TableActions from "./TableActions";
1492
- import { ChevronDown, ChevronRight } from "lucide-react";
1493
- import CheckBox from "../../Checkbox/Checkbox";
1494
- import TableGroupRow from "./TableGroupRow";
1495
- &nbsp;
1496
- // Density → row height (px) + cell vertical padding. The padding (not just the
1497
- // min-height) is what drives perceived row size, so compact tightens both.
1498
- const DENSITY_CONFIG: Record&lt;string, { height: number; py: string }&gt; = {
1499
- compact: { height: 32, py: "0.125rem" },
1500
- normal: { height: 40, py: "0.5rem" },
1501
- comfortable: { height: 52, py: "0.875rem" },
1502
- };
1503
- &nbsp;
1504
- const getRowId = (row: DataObject): string | number =&gt; row.id as string | number;
1505
- &nbsp;
1506
- const getRowContent = (row: DataObject): ((row: DataObject) =&gt; React.ReactNode) | undefined =&gt;
1507
- typeof row.content === "function"
1508
- ? (row.content as (row: DataObject) =&gt; React.ReactNode)
1509
- : undefined;
1510
- &nbsp;
1511
- type CellStyleMap = Record&lt;string | number, { bg?: string; color?: string }&gt;;
1512
- &nbsp;
1513
- // Monday-style status cell: the whole cell is filled with the status color and
1514
- // the label is centered in white.
1515
- const StatusCell = ({ value }: { value: React.ReactNode }) =&gt; (
1516
- &lt;Box
1517
- display="flex"
1518
- alignItems="center"
1519
- justifyContent="center"
1520
- w="100%"
1521
- h="100%"
1522
- px="0.5rem"
1523
- fontSize="0.75rem"
1524
- fontWeight={600}
1525
- color="white"
1526
- textAlign="center"
1527
- whiteSpace="nowrap"
1528
- overflow="hidden"
1529
- textOverflow="ellipsis"
1530
- &gt;
1531
- {value}
1532
- &lt;/Box&gt;
1533
- );
1534
- &nbsp;
1535
- type TableRowProps = {
1536
- row: DataObject;
1537
- rowIndex: number;
1538
- index: number;
1539
- isChecked: boolean;
1540
- isExpanded: boolean;
1541
- isContent: boolean;
1542
- isLink: boolean;
1543
- isCheckbox?: boolean;
1544
- isLoading?: boolean;
1545
- isActionFreeze?: boolean;
1546
- columns: TableHeaderProps[];
1547
- leftOffsets: number[];
1548
- noBorders?: boolean;
1549
- freezedBgColor?: string;
1550
- freezedTextColor?: string;
1551
- theme: CustomThemeProps;
1552
- borderStyle: string;
1553
- hoverStyle: Record&lt;string, string&gt;;
1554
- rowHeight: number;
1555
- cellPy: string;
1556
- palette: TablePaletteColor[];
1557
- accentColor?: string;
1558
- handleCheckbox: (id: string | number) =&gt; void;
1559
- onRowClick?: (row: DataObject, header: Record&lt;string | number, string | number&gt;) =&gt; void;
1560
- toggleRowExpansion: (rowIndex: number) =&gt; void;
1561
- /** Reports the row's rendered height (main + expanded panel) for measured virtualization. */
1562
- onMeasure?: (id: string | number, height: number) =&gt; void;
1563
- };
1564
- &nbsp;
1565
- const EMPTY_HOVER = {};
1566
- &nbsp;
1567
- const TableRow = React.memo(({
1568
- row,
1569
- rowIndex,
1570
- isChecked,
1571
- isExpanded,
1572
- isContent,
1573
- isLink,
1574
- isCheckbox,
1575
- isLoading,
1576
- isActionFreeze,
1577
- columns,
1578
- leftOffsets,
1579
- noBorders,
1580
- freezedBgColor,
1581
- freezedTextColor,
1582
- theme,
1583
- borderStyle,
1584
- hoverStyle,
1585
- rowHeight,
1586
- cellPy,
1587
- palette,
1588
- accentColor,
1589
- handleCheckbox,
1590
- onRowClick,
1591
- toggleRowExpansion,
1592
- onMeasure,
1593
- }: TableRowProps) =&gt; {
1594
- // Selected-row tint applied per-cell (NOT a blanket `&amp; td` override) so status
1595
- // cells keep their solid color + white text instead of white-on-tint.
1596
- const selectedBg =
1597
- theme.colors.primary?.opacity?.[16] ?? theme.colors.disabled?.[100];
1598
- // Sticky/frozen cells overlay scrolling content, so their selected background
1599
- // must be OPAQUE — paint the (translucent) tint over an opaque base.
1600
- const selectedFrozenBg = `linear-gradient(0deg, ${selectedBg}, ${selectedBg}), ${theme.colors?.background?.[50] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#fff"}</span>`;
1601
- &nbsp;
1602
- // Measured-height virtualization: report this row's real height (main + any
1603
- // expanded panel) so the windower can place variable/expandable rows exactly.
1604
- const mainRowRef = useRef&lt;HTMLTableRowElement&gt;(null);
1605
- const expandedRowRef = useRef&lt;HTMLTableRowElement&gt;(null);
1606
- const hasContent = !!getRowContent(row);
1607
- useLayoutEffect(() =&gt; {
1608
- if (!onMeasure) return;
1609
- const measure = () =&gt; {
1610
- const main = mainRowRef.current?.offsetHeight ?? <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
1611
- const exp = isExpanded &amp;&amp; hasContent ? expandedRowRef.current?.offsetHeight ?? <span class="branch-1 cbranch-no" title="branch not covered" >0 </span>: 0;
1612
- const h = main + exp;
1613
- <span class="missing-if-branch" title="if path not taken" >I</span>if (h &gt; 0) <span class="cstat-no" title="statement not covered" >onMeasure(getRowId(row), h);</span>
1614
- };
1615
- measure();
1616
- const raf = requestAnimationFrame(measure);
1617
- let ro: ResizeObserver | undefined;
1618
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof ResizeObserver !== "undefined") {
1619
- <span class="cstat-no" title="statement not covered" > ro = new ResizeObserver(measure);</span>
1620
- <span class="cstat-no" title="statement not covered" > if (mainRowRef.current) <span class="cstat-no" title="statement not covered" >ro.observe(mainRowRef.current);</span></span>
1621
- <span class="cstat-no" title="statement not covered" > if (expandedRowRef.current) <span class="cstat-no" title="statement not covered" >ro.observe(expandedRowRef.current);</span></span>
1622
- }
1623
- return () =&gt; {
1624
- cancelAnimationFrame(raf);
1625
- ro?.disconnect();
1626
- };
1627
- }, [onMeasure, isExpanded, hasContent, row]);
1628
- &nbsp;
1629
- const handleCellClick = useCallback((header: TableHeaderProps) =&gt; {
1630
- if (!header.node &amp;&amp; onRowClick) {
1631
- onRowClick(row, { label: header.label, id: header.id });
1632
- }
1633
- }, [row, onRowClick]);
1634
- &nbsp;
1635
- const firstDataColIndex = columns.findIndex((c) =&gt; !c.isHidden);
1636
- const accentSx = accentColor ? `inset 3px 0 0 ${accentColor}` : undefined;
1637
- // Pinned/frozen columns get a tinted, opaque background so the frozen pane reads
1638
- // as one piece with its header (and so sticky cells cover scrolling content).
1639
- const frozenCellBg =
1640
- freezedBgColor ?? theme.colors?.table?.hover?.[100] ?? theme.colors?.background?.[100];
1641
- const cellStyles = row.cellStyle as CellStyleMap | undefined;
1642
- const rowStyle = row.rowStyle as { bg?: string; color?: string } | undefined;
1643
- const rowContent = getRowContent(row);
1644
- &nbsp;
1645
- return (
1646
- &lt;React.Fragment&gt;
1647
- &lt;Tr
1648
- ref={mainRowRef}
1649
- opacity={isLoading ? 0.4 : 1}
1650
- pointerEvents={isLoading ? "none" : "auto"}
1651
- transition="opacity 0.2s"
1652
- &gt;
1653
- {isContent &amp;&amp; (
1654
- &lt;Td
1655
- w="6"
1656
- p={0}
1657
- fontSize={14}
1658
- background={isChecked ? <span class="branch-0 cbranch-no" title="branch not covered" >selectedFrozenBg </span>: frozenCellBg}
1659
- color={freezedTextColor}
1660
- position="sticky"
1661
- borderBottom={borderStyle}
1662
- boxShadow={accentSx}
1663
- boxSizing="border-box"
1664
- left={0}
1665
- zIndex={1}
1666
- className="columns sticky-columns"
1667
- &gt;
1668
- {!!row?.content &amp;&amp; (
1669
- &lt;IconButton
1670
- aria-label={isExpanded ? "Collapse row" : "Expand row"}
1671
- color={theme.colors?.gray[600]}
1672
- icon={
1673
- isExpanded ? (
1674
- &lt;ChevronDown fontSize={16} /&gt;
1675
- ) : (
1676
- &lt;ChevronRight fontSize={16} /&gt;
1677
- )
1678
- }
1679
- _hover={{ transform: "scale(1.1)" }}
1680
- size="sm"
1681
- onClick={() =&gt; toggleRowExpansion(rowIndex)}
1682
- variant="ghost"
1683
- /&gt;
1684
- )}
1685
- &lt;/Td&gt;
1686
- )}
1687
- {isCheckbox &amp;&amp; (
1688
- &lt;Td
1689
- w="6"
1690
- fontSize={14}
1691
- fontWeight={600}
1692
- color={theme.colors?.background?.[50]}
1693
- textTransform="capitalize"
1694
- background={isChecked ? selectedFrozenBg : frozenCellBg}
1695
- position="sticky"
1696
- borderBottom={borderStyle}
1697
- boxShadow={!isContent ? accentSx : <span class="branch-1 cbranch-no" title="branch not covered" >undefined}</span>
1698
- boxSizing="border-box"
1699
- left={0}
1700
- zIndex={1}
1701
- className="columns sticky-columns"
1702
- &gt;
1703
- &lt;CheckBox
1704
- aria-label="Select all rows"
1705
- onChange={() =&gt; handleCheckbox(getRowId(row))}
1706
- isChecked={isChecked}
1707
- /&gt;
1708
- &lt;/Td&gt;
1709
- )}
1710
- {columns.map((header, headerIndex) =&gt; {
1711
- if (header.isHidden) return null;
1712
- const isFrozen = header.isFreeze;
1713
- const isFirstDataCell = !isContent &amp;&amp; !isCheckbox &amp;&amp; headerIndex === firstDataColIndex;
1714
- const isStatus = header.type === "status" &amp;&amp; !header.node;
1715
- const rawStatus = String(row[header.id] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"")</span>;
1716
- const statusColor = isStatus
1717
- ? pickTableColor(rawStatus, palette, header.statusColors?.[rawStatus])
1718
- : null;
1719
- &nbsp;
1720
- return (
1721
- &lt;Td
1722
- maxWidth={500}
1723
- minWidth={120}
1724
- height={`${rowHeight}px`}
1725
- py={isStatus &amp;&amp; statusColor ? 0 : cellPy}
1726
- px={isStatus &amp;&amp; statusColor ? 0 : undefined}
1727
- key={headerIndex + 1}
1728
- onClick={() =&gt; handleCellClick(header)}
1729
- fontSize={14}
1730
- fontWeight={400}
1731
- position={isFrozen ? "sticky" : undefined}
1732
- left={isFrozen ? leftOffsets[headerIndex] : undefined}
1733
- zIndex={isFrozen ? 1 : 0}
1734
- background={isStatus &amp;&amp; statusColor ? statusColor.solid : isChecked ? (isFrozen ? selectedFrozenBg : selectedBg) : isFrozen ? frozenCellBg : theme.colors.background?.[50]}
1735
- textOverflow="ellipsis"
1736
- boxShadow={isFirstDataCell ? accentSx : undefined}
1737
- borderBottom={
1738
- noBorders
1739
- ? "none"
1740
- : `0.063rem solid ${theme.colors?.gray[isFrozen || isChecked ? 300 : 200]}`
1741
- }
1742
- className={`columns ${isFrozen ? "sticky-columns" : "scrollable-columns"}`}
1743
- boxSizing="border-box"
1744
- color={isStatus &amp;&amp; statusColor ? "white" : theme.colors?.text?.[500]}
1745
- _hover={
1746
- isStatus &amp;&amp; statusColor
1747
- ? EMPTY_HOVER
1748
- : cellStyles?.[header.id] || rowStyle
1749
- ? <span class="branch-0 cbranch-no" title="branch not covered" >EMPTY_HOVER</span>
1750
- : hoverStyle
1751
- }
1752
- &gt;
1753
- {isStatus &amp;&amp; statusColor ? (
1754
- &lt;StatusCell value={normalizeTableCellValue(row[header.id])} /&gt;
1755
- ) : (
1756
- &lt;Box
1757
- display="block"
1758
- overflow="hidden"
1759
- whiteSpace="normal"
1760
- overflowWrap="break-word"
1761
- &gt;
1762
- {normalizeTableCellValue(
1763
- header.node ? header.node(row) : row[header.id]
1764
- )}
1765
- &lt;/Box&gt;
1766
- )}
1767
- &lt;/Td&gt;
1768
- );
1769
- })}
1770
- {isLink &amp;&amp; (
1771
- &lt;Td
1772
- w={2}
1773
- p={0}
1774
- fontSize={14}
1775
- background={isChecked ? (<span class="branch-0 cbranch-no" title="branch not covered" >isActionFreeze ? selectedFrozenBg : selectedBg)</span> : isActionFreeze ? frozenCellBg : theme?.colors?.background?.[50]}
1776
- color={freezedTextColor}
1777
- position={isActionFreeze ? "sticky" : "relative"}
1778
- borderBottom={borderStyle}
1779
- boxSizing="border-box"
1780
- right={0}
1781
- zIndex={1}
1782
- className={`columns sticky-columns${isActionFreeze ? "-right" : ""}`}
1783
- &gt;
1784
- {(row.onLink || row.onEdit || <span class="branch-2 cbranch-no" title="branch not covered" >row.onDelete)</span> ? (
1785
- &lt;TableActions row={row} /&gt;
1786
- ) : <span class="branch-1 cbranch-no" title="branch not covered" >null}</span>
1787
- &lt;/Td&gt;
1788
- )}
1789
- &lt;/Tr&gt;
1790
- {rowContent &amp;&amp; isExpanded &amp;&amp; (
1791
- &lt;Tr ref={expandedRowRef}&gt;
1792
- &lt;Td
1793
- colSpan={
1794
- columns.length +
1795
- (isCheckbox ? <span class="branch-0 cbranch-no" title="branch not covered" >1 </span>: 0) +
1796
- (isContent ? 1 : <span class="branch-1 cbranch-no" title="branch not covered" >0)</span> +
1797
- (isLink ? <span class="branch-0 cbranch-no" title="branch not covered" >1 </span>: 0)
1798
- }
1799
- p={2}
1800
- &gt;
1801
- &lt;Box p={2} bg={theme.colors.white} borderRadius="md"&gt;
1802
- {rowContent(row)}
1803
- &lt;/Box&gt;
1804
- &lt;/Td&gt;
1805
- &lt;/Tr&gt;
1806
- )}
1807
- &lt;/React.Fragment&gt;
1808
- );
1809
- });
1810
- &nbsp;
1811
- const TableBody = ({
1812
- data,
1813
- isCheckbox,
1814
- columns,
1815
- startRow,
1816
- columnWidths,
1817
- freezedBgColor,
1818
- freezedTextColor,
1819
- noBorders,
1820
- handleCheckbox,
1821
- selections,
1822
- isLoading,
1823
- onRowClick,
1824
- isContent,
1825
- isLink,
1826
- isActionFreeze,
1827
- loadingSkeletonRows,
1828
- scrollContainerRef,
1829
- density,
1830
- accentColors,
1831
- groups,
1832
- onAddItem,
1833
- emptyState,
1834
- }: TableBodyPageProps) =&gt; {
1835
- const theme = useCustomTheme();
1836
- const [expandedRows, setExpandedRows] = useState&lt;Set&lt;number&gt;&gt;(new Set());
1837
- const [collapsedGroups, setCollapsedGroups] = useState&lt;Set&lt;string | number&gt;&gt;(new Set());
1838
- const toggleGroup = useCallback((value: string | number) =&gt; {
1839
- setCollapsedGroups((prev) =&gt; {
1840
- const next = new Set(prev);
1841
- if (next.has(value)) {
1842
- next.delete(value);
1843
- } else {
1844
- next.add(value);
1845
- }
1846
- return next;
1847
- });
1848
- }, []);
1849
- &nbsp;
1850
- const selectionsSet = useMemo(() =&gt; new Set(selections), [selections]);
1851
- const palette = useMemo(() =&gt; buildTablePalette(theme), [theme]);
1852
- const densityConfig = DENSITY_CONFIG[density ?? "normal"] ?? <span class="branch-1 cbranch-no" title="branch not covered" >DENSITY_CONFIG.normal;</span>
1853
- const rowHeight = densityConfig.height;
1854
- const cellPy = densityConfig.py;
1855
- &nbsp;
1856
- // --- Row virtualization ---------------------------------------------------
1857
- // Rows are a fixed 45px tall (see the `height={45}` on every &lt;Td/&gt; below),
1858
- // and the scroll viewport is capped at ~500px, so only ~11 rows are ever
1859
- // visible. Mounting all 50/100 page rows is what makes paging freeze. We
1860
- // render only the rows inside the viewport (+ overscan) and reserve the
1861
- // remaining height with empty spacer rows. Spacer rows (rather than CSS
1862
- // transforms) keep the table in normal flow so the sticky header and
1863
- // `position: sticky` frozen columns keep working.
1864
- // Expandable `content` rows are supported via measured heights (see
1865
- // `measuredHeights` / `onMeasure` below) — each rendered row reports its real
1866
- // height, so the window places variable/expanded rows exactly.
1867
- const ROW_HEIGHT = rowHeight;
1868
- const GROUP_HEADER_H = 42;
1869
- const OVERSCAN = 6;
1870
- const VIRTUALIZE_THRESHOLD = 30;
1871
- const ESTIMATED_EXPAND = 120; // assumed extra height for an expanded-but-not-yet-measured row
1872
- const shouldVirtualize = data.length &gt; VIRTUALIZE_THRESHOLD;
1873
- // Grouped mode has no pager, so it virtualizes too (when no expandable rows):
1874
- // group headers + rows form one flat sequence that we window over.
1875
- const groupRowCount = groups ? groups.reduce((n, g) =&gt; n + g.rows.length, 0) : 0;
1876
- const groupVirtualize = !!groups &amp;&amp; !isContent &amp;&amp; groupRowCount &gt; VIRTUALIZE_THRESHOLD;
1877
- &nbsp;
1878
- const [scrollTop, setScrollTop] = useState(0);
1879
- const [viewportH, setViewportH] = useState(0);
1880
- // Measured row heights keyed by row id (stable across scroll/paging).
1881
- const [measuredHeights, setMeasuredHeights] = useState&lt;Map&lt;string | number, number&gt;&gt;(new Map());
1882
- const reportHeight = useCallback(<span class="fstat-no" title="function not covered" >(i</span>d: string | number, h: number) =&gt; {
1883
- <span class="cstat-no" title="statement not covered" > setMeasuredHeights(<span class="fstat-no" title="function not covered" >(p</span>rev) =&gt; {</span>
1884
- <span class="cstat-no" title="statement not covered" > if (prev.get(id) === h) <span class="cstat-no" title="statement not covered" >return prev;</span></span>
1885
- const next = <span class="cstat-no" title="statement not covered" >new Map(prev);</span>
1886
- <span class="cstat-no" title="statement not covered" > next.set(id, h);</span>
1887
- <span class="cstat-no" title="statement not covered" > return next;</span>
1888
- });
1889
- }, []);
1890
- &nbsp;
1891
- useEffect(() =&gt; {
1892
- const el = scrollContainerRef?.current;
1893
- if (!el || !(shouldVirtualize || groupVirtualize)) return;
1894
- const onScroll = <span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setScrollTop(el.scrollTop);</span>
1895
- const measure = () =&gt; setViewportH(el.clientHeight);
1896
- measure();
1897
- setScrollTop(el.scrollTop);
1898
- el.addEventListener("scroll", onScroll, { passive: true });
1899
- window.addEventListener("resize", measure);
1900
- return () =&gt; {
1901
- el.removeEventListener("scroll", onScroll);
1902
- window.removeEventListener("resize", measure);
1903
- };
1904
- }, [scrollContainerRef, shouldVirtualize, groupVirtualize, data.length, groupRowCount]);
1905
- &nbsp;
1906
- // New page: jump back to the top so the window recomputes from row 0.
1907
- useEffect(() =&gt; {
1908
- if (!shouldVirtualize) return;
1909
- const el = scrollContainerRef?.current;
1910
- <span class="missing-if-branch" title="else path not taken" >E</span>if (el) el.scrollTop = 0;
1911
- setScrollTop(0);
1912
- }, [startRow, shouldVirtualize, scrollContainerRef]);
1913
- &nbsp;
1914
- const total = data.length;
1915
- let firstIndex = 0;
1916
- let lastIndex = total;
1917
- let topPad = 0;
1918
- let bottomPad = 0;
1919
- if (shouldVirtualize) {
1920
- const vh = viewportH || 500;
1921
- // Prefix-sum offsets using measured heights (exact for rendered rows) and
1922
- // estimates for not-yet-measured rows (ROW_HEIGHT, + ESTIMATED_EXPAND if expanded).
1923
- const offsets = new Array&lt;number&gt;(total + 1);
1924
- offsets[0] = 0;
1925
- for (let i = 0; i &lt; total; i++) {
1926
- const id = getRowId(data[i]);
1927
- const measured = measuredHeights.get(id);
1928
- const h =
1929
- measured != null
1930
- ? <span class="branch-0 cbranch-no" title="branch not covered" >measured</span>
1931
- : ROW_HEIGHT + (expandedRows.has(startRow + i) ? ESTIMATED_EXPAND : 0);
1932
- offsets[i + 1] = offsets[i] + h;
1933
- }
1934
- const totalH = offsets[total];
1935
- const top = scrollTop - OVERSCAN * ROW_HEIGHT;
1936
- const bottom = scrollTop + vh + OVERSCAN * ROW_HEIGHT;
1937
- firstIndex = 0;
1938
- while (firstIndex &lt; total &amp;&amp; offsets[firstIndex + 1] &lt;= top) <span class="cstat-no" title="statement not covered" >firstIndex++;</span>
1939
- lastIndex = firstIndex;
1940
- while (lastIndex &lt; total &amp;&amp; offsets[lastIndex] &lt; bottom) lastIndex++;
1941
- <span class="missing-if-branch" title="if path not taken" >I</span>if (lastIndex &lt; firstIndex) <span class="cstat-no" title="statement not covered" >lastIndex = firstIndex;</span>
1942
- topPad = offsets[firstIndex];
1943
- bottomPad = totalH - offsets[lastIndex];
1944
- }
1945
- const visibleRows = shouldVirtualize ? data.slice(firstIndex, lastIndex) : data;
1946
- &nbsp;
1947
- const toggleRowExpansion = useCallback((rowIndex: number) =&gt; {
1948
- setExpandedRows((prev) =&gt; {
1949
- const newSet = new Set(prev);
1950
- if (newSet.has(rowIndex)) {
1951
- newSet.delete(rowIndex);
1952
- } else {
1953
- newSet.add(rowIndex);
1954
- }
1955
- return newSet;
1956
- });
1957
- }, []);
1958
- &nbsp;
1959
- const totalVisibleColumns = useMemo(() =&gt;
1960
- columns.filter((o) =&gt; !o.isHidden).length +
1961
- (isCheckbox ? 1 : 0) +
1962
- (isContent ? 1 : 0) +
1963
- (isLink ? 1 : 0),
1964
- [columns, isCheckbox, isContent, isLink]
1965
- );
1966
- &nbsp;
1967
- const leftOffsets = useMemo(() =&gt; {
1968
- const checkboxOffset = isCheckbox ? 50 : 0;
1969
- return columnWidths.map((_, idx) =&gt;
1970
- columnWidths.slice(0, idx).reduce((sum, w) =&gt; sum + w, 0) + checkboxOffset
1971
- );
1972
- }, [columnWidths, isCheckbox]);
1973
- &nbsp;
1974
- const borderStyle = useMemo(() =&gt;
1975
- noBorders ? "none" : `0.063rem solid ${theme.colors?.border[500]}`,
1976
- [noBorders, theme.colors?.border]
1977
- );
1978
- &nbsp;
1979
- const hoverStyle = useMemo(() =&gt; ({
1980
- backgroundColor: theme.colors.table?.hover?.[300] ?? theme.colors.secondary?.opacity?.[4],
1981
- }), [theme.colors.table?.hover, theme.colors.secondary?.opacity]);
1982
- &nbsp;
1983
- if (isLoading &amp;&amp; data.length === 0) {
1984
- return (
1985
- &lt;TableBodyLoading
1986
- noOfColumns={totalVisibleColumns}
1987
- borderColor={theme.colors.gray[300]}
1988
- rowsCount={typeof loadingSkeletonRows === "number" ? loadingSkeletonRows : <span class="branch-1 cbranch-no" title="branch not covered" >4}</span>
1989
- /&gt;
1990
- );
1991
- }
1992
- &nbsp;
1993
- if (!isLoading &amp;&amp; data.length === 0) {
1994
- const isStructured =
1995
- emptyState &amp;&amp; typeof emptyState === "object" &amp;&amp; !React.isValidElement(emptyState);
1996
- const es = isStructured ? (emptyState as { icon?: React.ReactNode; title?: string; description?: string }) : null;
1997
- return (
1998
- &lt;Tr backgroundColor={theme.colors.background?.[50]}&gt;
1999
- &lt;Td colSpan={totalVisibleColumns} textAlign="center" py={10} border="none"&gt;
2000
- {emptyState &amp;&amp; !isStructured ? (
2001
- (emptyState as React.ReactNode)
2002
- ) : (
2003
- &lt;Box display="flex" flexDirection="column" alignItems="center" gap={2} color={theme.colors?.gray?.[500]}&gt;
2004
- {es?.icon &amp;&amp; &lt;Box fontSize="1.75rem" color={theme.colors?.gray?.[400]}&gt;{es.icon}&lt;/Box&gt;}
2005
- &lt;Box fontSize="0.95rem" fontWeight={600} color={theme.colors?.text?.[700]}&gt;
2006
- {es?.title ?? "No data found"}
2007
- &lt;/Box&gt;
2008
- {es?.description &amp;&amp; (
2009
- &lt;Box fontSize="0.8125rem" color={theme.colors?.gray?.[500]}&gt;{es.description}&lt;/Box&gt;
2010
- )}
2011
- &lt;/Box&gt;
2012
- )}
2013
- &lt;/Td&gt;
2014
- &lt;/Tr&gt;
2015
- );
2016
- }
2017
- &nbsp;
2018
- // --- Monday-style grouped board render (virtualized when large) -----------
2019
- if (groups) {
2020
- type GItem =
2021
- | { kind: "header"; g: TableRenderGroup }
2022
- | { kind: "row"; g: TableRenderGroup; row: DataObject };
2023
- &nbsp;
2024
- // Flatten groups → one sequence of header/row items so it can be windowed.
2025
- const items: GItem[] = [];
2026
- for (const g of groups) {
2027
- items.push({ kind: "header", g });
2028
- if (!collapsedGroups.has(g.value)) {
2029
- for (const row of g.rows) items.push({ kind: "row", g, row });
2030
- }
2031
- }
2032
- &nbsp;
2033
- let firstI = 0;
2034
- let lastI = items.length;
2035
- let gTopPad = 0;
2036
- let gBottomPad = 0;
2037
- if (groupVirtualize) {
2038
- const heights = items.map((it) =&gt; (it.kind === "header" ? GROUP_HEADER_H : rowHeight));
2039
- const offsets: number[] = [];
2040
- let acc = 0;
2041
- for (const h of heights) { offsets.push(acc); acc += h; }
2042
- const totalH = acc;
2043
- const vh = viewportH || 500;
2044
- const top = scrollTop - OVERSCAN * rowHeight;
2045
- const bottom = scrollTop + vh + OVERSCAN * rowHeight;
2046
- firstI = items.findIndex((_, i) =&gt; offsets[i] + heights[i] &gt; top);
2047
- <span class="missing-if-branch" title="if path not taken" >I</span>if (firstI &lt; 0) <span class="cstat-no" title="statement not covered" >firstI = items.length;</span>
2048
- lastI = items.length;
2049
- for (let i = firstI; i &lt; items.length; i++) {
2050
- if (offsets[i] &gt; bottom) { lastI = i; break; }
2051
- }
2052
- gTopPad = offsets[firstI] ?? <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
2053
- gBottomPad = totalH - (lastI &gt; firstI ? offsets[lastI - 1] + heights[lastI - 1] : <span class="branch-1 cbranch-no" title="branch not covered" >gTopPad)</span>;
2054
- }
2055
- &nbsp;
2056
- const windowItems = groupVirtualize ? items.slice(firstI, lastI) : items;
2057
- &nbsp;
2058
- return (
2059
- &lt;&gt;
2060
- {gTopPad &gt; 0 &amp;&amp; (
2061
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;tr aria-hidden="true" style={{ height: gTopPad }}&gt;</span>
2062
- &lt;td colSpan={totalVisibleColumns} style={{ padding: 0, border: "none", height: gTopPad }} /&gt;
2063
- &lt;/tr&gt;
2064
- )}
2065
- {windowItems.map((it, k) =&gt;
2066
- it.kind === "header" ? (
2067
- &lt;TableGroupRow
2068
- key={`h-${it.g.value}`}
2069
- label={it.g.label}
2070
- value={it.g.value}
2071
- count={it.g.rows.length}
2072
- color={it.g.color}
2073
- collapsed={collapsedGroups.has(it.g.value)}
2074
- colSpan={totalVisibleColumns}
2075
- onToggle={() =&gt; toggleGroup(it.g.value)}
2076
- onAddItem={onAddItem}
2077
- /&gt;
2078
- ) : (
2079
- &lt;TableRow
2080
- key={getRowId(it.row) ?? <span class="branch-1 cbranch-no" title="branch not covered" >`r-${firstI + k}`}</span>
2081
- row={it.row}
2082
- rowIndex={firstI + k}
2083
- index={firstI + k}
2084
- isChecked={selectionsSet.has(getRowId(it.row))}
2085
- isExpanded={expandedRows.has(firstI + k)}
2086
- isContent={isContent}
2087
- isLink={isLink}
2088
- isCheckbox={isCheckbox}
2089
- isLoading={isLoading}
2090
- isActionFreeze={isActionFreeze}
2091
- columns={columns}
2092
- leftOffsets={leftOffsets}
2093
- noBorders={noBorders}
2094
- freezedBgColor={freezedBgColor}
2095
- freezedTextColor={freezedTextColor}
2096
- theme={theme}
2097
- borderStyle={borderStyle}
2098
- hoverStyle={hoverStyle}
2099
- rowHeight={rowHeight}
2100
- cellPy={cellPy}
2101
- palette={palette}
2102
- accentColor={it.g.color.solid}
2103
- handleCheckbox={handleCheckbox}
2104
- onRowClick={onRowClick}
2105
- toggleRowExpansion={toggleRowExpansion}
2106
- /&gt;
2107
- )
2108
- )}
2109
- {gBottomPad &gt; 0 &amp;&amp; (
2110
- &lt;tr aria-hidden="true" style={{ height: gBottomPad }}&gt;
2111
- &lt;td colSpan={totalVisibleColumns} style={{ padding: 0, border: "none", height: gBottomPad }} /&gt;
2112
- &lt;/tr&gt;
2113
- )}
2114
- &lt;/&gt;
2115
- );
2116
- }
2117
- &nbsp;
2118
- return (
2119
- &lt;&gt;
2120
- {isLoading &amp;&amp; data.length &gt; 0 &amp;&amp; (
2121
- &lt;Tr&gt;
2122
- &lt;Td
2123
- colSpan={totalVisibleColumns}
2124
- p={0}
2125
- border="none"
2126
- position="relative"
2127
- height={0}
2128
- &gt;
2129
- &lt;Box
2130
- position="absolute"
2131
- top={4}
2132
- left="50%"
2133
- transform="translateX(-50%)"
2134
- zIndex={10}
2135
- &gt;
2136
- &lt;Spinner size="sm" color={theme.colors?.primary?.[500] || <span class="branch-1 cbranch-no" title="branch not covered" >"blue.500"}</span> /&gt;
2137
- &lt;/Box&gt;
2138
- &lt;/Td&gt;
2139
- &lt;/Tr&gt;
2140
- )}
2141
- {shouldVirtualize &amp;&amp; topPad &gt; 0 &amp;&amp; (
2142
- <span class="branch-2 cbranch-no" title="branch not covered" > &lt;tr aria-hidden="true" style={{ height: topPad }}&gt;</span>
2143
- &lt;td colSpan={totalVisibleColumns} style={{ padding: 0, border: "none", height: topPad }} /&gt;
2144
- &lt;/tr&gt;
2145
- )}
2146
- {visibleRows.map((row, i) =&gt; {
2147
- const index = firstIndex + i;
2148
- const rowIndex = startRow + index;
2149
- const isExpanded = expandedRows.has(rowIndex);
2150
- const isChecked = selectionsSet.has(getRowId(row));
2151
- return (
2152
- &lt;TableRow
2153
- key={getRowId(row) ?? <span class="branch-1 cbranch-no" title="branch not covered" >rowIndex}</span>
2154
- row={row}
2155
- rowIndex={rowIndex}
2156
- index={index}
2157
- isChecked={isChecked}
2158
- isExpanded={isExpanded}
2159
- isContent={isContent}
2160
- isLink={isLink}
2161
- isCheckbox={isCheckbox}
2162
- isLoading={isLoading}
2163
- isActionFreeze={isActionFreeze}
2164
- columns={columns}
2165
- leftOffsets={leftOffsets}
2166
- noBorders={noBorders}
2167
- freezedBgColor={freezedBgColor}
2168
- freezedTextColor={freezedTextColor}
2169
- theme={theme}
2170
- borderStyle={borderStyle}
2171
- hoverStyle={hoverStyle}
2172
- rowHeight={rowHeight}
2173
- cellPy={cellPy}
2174
- palette={palette}
2175
- accentColor={accentColors?.[getRowId(row)]}
2176
- handleCheckbox={handleCheckbox}
2177
- onRowClick={onRowClick}
2178
- toggleRowExpansion={toggleRowExpansion}
2179
- onMeasure={shouldVirtualize ? reportHeight : undefined}
2180
- /&gt;
2181
- );
2182
- })}
2183
- {shouldVirtualize &amp;&amp; bottomPad &gt; 0 &amp;&amp; (
2184
- &lt;tr aria-hidden="true" style={{ height: bottomPad }}&gt;
2185
- &lt;td colSpan={totalVisibleColumns} style={{ padding: 0, border: "none", height: bottomPad }} /&gt;
2186
- &lt;/tr&gt;
2187
- )}
2188
- &lt;/&gt;
2189
- );
2190
- };
2191
- &nbsp;
2192
- export default TableBody;
2193
- &nbsp;</pre></td></tr></table></pre>
2194
-
2195
- <div class='push'></div><!-- for sticky footer -->
2196
- </div><!-- /wrapper -->
2197
- <div class='footer quiet pad2 space-top1 center small'>
2198
- Code coverage generated by
2199
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2200
- at 2026-06-13T07:33:44.377Z
2201
- </div>
2202
- <script src="../../../prettify.js"></script>
2203
- <script>
2204
- window.onload = function () {
2205
- prettyPrint();
2206
- };
2207
- </script>
2208
- <script src="../../../sorter.js"></script>
2209
- <script src="../../../block-navigation.js"></script>
2210
- </body>
2211
- </html>
2212
-