@ynput/ayon-frontend-shared 0.2.23 → 0.2.24

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 (784) hide show
  1. package/dist/DetailsPanel.cjs.js +22 -12
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +22 -12
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +17 -1
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +19 -3
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/SimpleTable.cjs.js +18 -0
  10. package/dist/SimpleTable.cjs.js.map +1 -0
  11. package/dist/SimpleTable.es.js +18 -0
  12. package/dist/SimpleTable.es.js.map +1 -0
  13. package/dist/_virtual/index.cjs10.js +4 -4
  14. package/dist/_virtual/index.cjs8.js +4 -4
  15. package/dist/_virtual/index.cjs9.js +4 -4
  16. package/dist/_virtual/index.es10.js +4 -4
  17. package/dist/_virtual/index.es8.js +4 -4
  18. package/dist/_virtual/index.es9.js +4 -4
  19. package/dist/api.cjs.js +15 -0
  20. package/dist/api.cjs.js.map +1 -1
  21. package/dist/api.es.js +87 -72
  22. package/dist/api.es.js.map +1 -1
  23. package/dist/components.cjs.js +6 -0
  24. package/dist/components.cjs.js.map +1 -1
  25. package/dist/components.es.js +6 -0
  26. package/dist/components.es.js.map +1 -1
  27. package/dist/hooks.cjs.js +2 -0
  28. package/dist/hooks.cjs.js.map +1 -1
  29. package/dist/hooks.es.js +2 -0
  30. package/dist/hooks.es.js.map +1 -1
  31. package/dist/index.cjs.js +22 -12
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.es.js +22 -12
  34. package/dist/index.es.js.map +1 -1
  35. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  36. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  37. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  38. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  39. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  40. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  41. package/dist/shared/src/api/base/client.cjs.js +2 -1
  42. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  43. package/dist/shared/src/api/base/client.es.js +2 -1
  44. package/dist/shared/src/api/base/client.es.js.map +1 -1
  45. package/dist/shared/src/api/generated/graphql.cjs.js +9 -10
  46. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphql.es.js +9 -10
  48. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphqlLinks.cjs.js +447 -0
  50. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -0
  51. package/dist/shared/src/api/generated/graphqlLinks.es.js +447 -0
  52. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -0
  53. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -0
  54. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/actions/getActions.es.js +1 -0
  56. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
  58. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
  60. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
  62. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
  64. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
  66. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
  68. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
  70. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
  72. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
  74. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
  76. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
  78. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
  80. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -0
  82. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/cloud/cloud.es.js +1 -0
  84. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +4 -1
  86. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/entities/getEntity.es.js +4 -1
  88. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +2 -0
  90. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +2 -0
  92. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  93. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +4 -0
  94. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  95. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -0
  96. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  97. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +4 -0
  98. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -0
  100. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +3 -0
  102. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/entityLists/getLists.es.js +3 -0
  104. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
  106. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
  108. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
  110. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
  112. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
  114. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
  116. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -0
  118. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +1 -0
  120. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  121. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +142 -0
  122. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -0
  123. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +142 -0
  124. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -0
  125. package/dist/shared/src/api/queries/links/getLinks.cjs.js +202 -0
  126. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -0
  127. package/dist/shared/src/api/queries/links/getLinks.es.js +202 -0
  128. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -0
  129. package/dist/shared/src/api/queries/links/updateLinks.cjs.js +304 -0
  130. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -0
  131. package/dist/shared/src/api/queries/links/updateLinks.es.js +304 -0
  132. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -0
  133. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js +8 -0
  134. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js.map +1 -0
  135. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js +8 -0
  136. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js.map +1 -0
  137. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +5 -4
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.es.js +5 -4
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +70 -15
  142. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/overview/updateOverview.es.js +70 -15
  144. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
  146. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
  148. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -0
  150. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/products/createProduct.es.js +1 -0
  152. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  153. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
  154. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
  156. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/review/getReview.cjs.js +2 -0
  158. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/review/getReview.es.js +2 -0
  160. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
  162. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  163. package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
  164. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  165. package/dist/shared/src/api/queries/share/share.cjs.js +1 -0
  166. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/share/share.es.js +1 -0
  168. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
  170. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
  172. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  173. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +2 -0
  174. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  175. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +2 -0
  176. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  177. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
  178. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  179. package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
  180. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  181. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
  182. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  183. package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
  184. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  185. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -0
  186. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  187. package/dist/shared/src/api/queries/versions/updateVersions.es.js +1 -0
  188. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  189. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -0
  190. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  191. package/dist/shared/src/api/queries/views/getViews.es.js +1 -0
  192. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  193. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
  194. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  195. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
  196. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  197. package/dist/shared/src/components/Chips/Chips.cjs.js +149 -0
  198. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -0
  199. package/dist/shared/src/components/Chips/Chips.es.js +149 -0
  200. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -0
  201. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
  202. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  203. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
  204. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  205. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +5 -0
  206. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  207. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +5 -0
  208. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  209. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -0
  210. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  211. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -0
  212. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  213. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +37 -27
  214. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  215. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +37 -27
  216. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  217. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
  218. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  219. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
  220. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  221. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -2
  222. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  223. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -2
  224. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  225. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +331 -0
  226. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -0
  227. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +332 -0
  228. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -0
  229. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +125 -0
  230. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -0
  231. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +125 -0
  232. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -0
  233. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +92 -0
  234. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -0
  235. package/dist/shared/src/components/LinksManager/LinksManager.es.js +92 -0
  236. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -0
  237. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +250 -0
  238. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -0
  239. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +250 -0
  240. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -0
  241. package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js +229 -0
  242. package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js.map +1 -0
  243. package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js +229 -0
  244. package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js.map +1 -0
  245. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js +12 -0
  246. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js.map +1 -0
  247. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js +13 -0
  248. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js.map +1 -0
  249. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js +103 -0
  250. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js.map +1 -0
  251. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js +104 -0
  252. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js.map +1 -0
  253. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +278 -0
  254. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -0
  255. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +279 -0
  256. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -0
  257. package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js +70 -0
  258. package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js.map +1 -0
  259. package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js +70 -0
  260. package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js.map +1 -0
  261. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +22 -12
  262. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  263. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +22 -12
  264. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  265. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +104 -14
  266. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  267. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +104 -14
  268. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  269. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +22 -12
  270. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +22 -12
  272. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  273. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
  274. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
  276. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  277. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +23 -13
  278. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +23 -13
  280. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  281. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +22 -12
  282. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  283. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +22 -12
  284. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  285. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +22 -12
  286. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  287. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +22 -12
  288. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  289. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +4 -0
  290. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  291. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -0
  292. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  293. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +5 -0
  294. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  295. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +5 -0
  296. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  297. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +22 -12
  298. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  299. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +22 -12
  300. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  301. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +22 -12
  302. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  303. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +22 -12
  304. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  305. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +7 -2
  306. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  307. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -2
  308. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  309. package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
  310. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  311. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
  312. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  313. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +22 -12
  314. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +22 -12
  316. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  317. package/dist/shared/src/containers/Actions/Actions.cjs.js +4 -0
  318. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/Actions/Actions.es.js +4 -0
  320. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  321. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +22 -12
  322. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +22 -12
  324. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +22 -12
  326. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +22 -12
  328. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +22 -12
  330. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +22 -12
  332. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +22 -12
  334. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +22 -12
  336. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +18 -8
  338. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +18 -8
  340. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +4 -0
  342. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -0
  344. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -0
  346. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +1 -0
  348. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  349. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +4 -0
  350. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -0
  352. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  353. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +357 -0
  354. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -0
  355. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +357 -0
  356. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -0
  357. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +262 -0
  358. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -0
  359. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +263 -0
  360. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -0
  361. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +273 -0
  362. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -0
  363. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +274 -0
  364. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -0
  365. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +250 -0
  366. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -0
  367. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +251 -0
  368. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -0
  369. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +35 -0
  370. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -0
  371. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +36 -0
  372. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -0
  373. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +235 -0
  374. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -0
  375. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +235 -0
  376. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -0
  377. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +49 -0
  378. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -0
  379. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +49 -0
  380. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -0
  381. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js +12 -0
  382. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js.map +1 -0
  383. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js +12 -0
  384. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js.map +1 -0
  385. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js +26 -0
  386. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -0
  387. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js +26 -0
  388. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -0
  389. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -0
  390. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -0
  392. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -0
  394. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +1 -0
  396. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  397. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
  398. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
  400. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +4 -0
  402. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +4 -0
  404. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  405. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +5 -4
  406. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +5 -4
  408. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  409. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +4 -0
  410. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -0
  412. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  413. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -0
  414. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +1 -0
  416. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  417. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -0
  418. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +1 -0
  420. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +36 -6
  422. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +36 -6
  424. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +25 -0
  426. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +25 -0
  428. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +263 -9
  430. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +264 -10
  432. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +21 -11
  434. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +21 -11
  436. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +4 -0
  438. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +4 -0
  440. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +1 -229
  442. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +2 -230
  444. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +432 -0
  446. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -0
  447. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +432 -0
  448. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -0
  449. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +120 -47
  450. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +121 -48
  452. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js +33 -0
  454. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js.map +1 -0
  455. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js +33 -0
  456. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js.map +1 -0
  457. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +4 -0
  458. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -0
  460. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +13 -0
  462. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +14 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +104 -5
  466. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +104 -5
  468. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +13 -0
  472. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +13 -0
  474. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +4 -0
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -0
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +127 -4
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +127 -4
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +134 -3
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +134 -3
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +199 -0
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +199 -0
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +111 -12
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +111 -12
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +2 -0
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +2 -0
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +65 -9
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +65 -9
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -0
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +1 -0
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +113 -14
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +113 -14
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +4 -0
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -0
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +4 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +4 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +199 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +199 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +201 -0
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -0
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +202 -0
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -0
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +4 -0
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -0
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +103 -4
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +103 -4
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +13 -7
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +13 -7
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +126 -15
  544. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +126 -15
  546. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -0
  548. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +1 -0
  550. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +49 -0
  552. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -0
  553. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +49 -0
  554. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -0
  555. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js +2 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js +2 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +142 -0
  560. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +143 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +14 -7
  564. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +14 -7
  566. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +0 -7
  568. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +0 -7
  570. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +299 -0
  572. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -0
  573. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +299 -0
  574. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -0
  575. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +22 -12
  576. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +22 -12
  578. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  579. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +528 -0
  580. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -0
  581. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +529 -0
  582. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -0
  583. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +160 -0
  584. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -0
  585. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +160 -0
  586. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -0
  587. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +74 -0
  588. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -0
  589. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +74 -0
  590. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -0
  591. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js +19 -0
  592. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js.map +1 -0
  593. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js +19 -0
  594. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js.map +1 -0
  595. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -0
  596. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +1 -0
  598. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  599. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +18 -2
  600. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +18 -2
  602. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  603. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js.map +1 -1
  604. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js.map +1 -1
  605. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +6 -0
  606. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -0
  608. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  609. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -0
  610. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  611. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +1 -0
  612. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  613. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -0
  614. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  615. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +1 -0
  616. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  617. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +10 -3
  618. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  619. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +10 -3
  620. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  621. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +4 -0
  622. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  623. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -0
  624. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  625. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +4 -0
  626. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  627. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -0
  628. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  629. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +2 -2
  630. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  631. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +1 -1
  632. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +4 -0
  633. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  634. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -0
  635. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  636. package/dist/shared/src/context/AddonProjectContext.cjs.js +4 -0
  637. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  638. package/dist/shared/src/context/AddonProjectContext.es.js +4 -0
  639. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  640. package/dist/shared/src/context/DetailsPanelContext.cjs.js +4 -0
  641. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  642. package/dist/shared/src/context/DetailsPanelContext.es.js +4 -0
  643. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  644. package/dist/shared/src/context/PowerpackContext.cjs.js +4 -0
  645. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  646. package/dist/shared/src/context/PowerpackContext.es.js +4 -0
  647. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  648. package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
  649. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  650. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
  651. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  652. package/dist/shared/src/hooks/useActionTriggers.cjs.js +4 -0
  653. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  654. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -0
  655. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  656. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +4 -0
  657. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  658. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -0
  659. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  660. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +147 -0
  661. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -0
  662. package/dist/shared/src/hooks/useHierarchyTable.es.js +147 -0
  663. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -0
  664. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +12 -5
  665. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  666. package/dist/shared/src/hooks/useScopedStatuses.es.js +12 -5
  667. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  668. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +4 -0
  669. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  670. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -0
  671. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  672. package/dist/shared/src/{utils/extractVersionFromFilename.es.js.map → util/extractVersionFromFilename.cjs.js.map} +1 -1
  673. package/dist/shared/src/util/extractVersionFromFilename.es.js.map +1 -0
  674. package/dist/shared/src/util/getEntityId.cjs.js +11 -0
  675. package/dist/shared/src/util/getEntityId.cjs.js.map +1 -0
  676. package/dist/shared/src/util/getEntityId.es.js +11 -0
  677. package/dist/shared/src/util/getEntityId.es.js.map +1 -0
  678. package/dist/shared/src/{utils → util}/versionUploadHelpers.cjs.js +3 -2
  679. package/dist/shared/src/{utils/versionUploadHelpers.es.js.map → util/versionUploadHelpers.cjs.js.map} +1 -1
  680. package/dist/shared/src/{utils → util}/versionUploadHelpers.es.js +3 -2
  681. package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -0
  682. package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js +16 -0
  683. package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js.map +1 -0
  684. package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js +17 -0
  685. package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js.map +1 -0
  686. package/dist/types/SimpleTable.d.ts +6 -0
  687. package/dist/types/api/generated/graphql.d.ts +116 -33
  688. package/dist/types/api/generated/graphqlLinks.d.ts +2269 -0
  689. package/dist/types/api/generated/index.d.ts +2 -0
  690. package/dist/types/api/queries/entities/getEntity.d.ts +80 -79
  691. package/dist/types/api/queries/entityLists/types.d.ts +5 -5
  692. package/dist/types/api/queries/index.d.ts +1 -0
  693. package/dist/types/api/queries/links/getEntityLinks.d.ts +182 -0
  694. package/dist/types/api/queries/links/getLinks.d.ts +862 -0
  695. package/dist/types/api/queries/links/index.d.ts +3 -0
  696. package/dist/types/api/queries/links/updateLinks.d.ts +321 -0
  697. package/dist/types/api/queries/links/utils/formatEntityLinks.d.ts +1 -0
  698. package/dist/types/api/queries/overview/index.d.ts +1 -0
  699. package/dist/types/api/queries/overview/updateOverview.d.ts +9 -0
  700. package/dist/types/components/Chips/Chips.d.ts +14 -0
  701. package/dist/types/components/Chips/index.d.ts +1 -0
  702. package/dist/types/components/LinksManager/AddNewLinks.d.ts +11 -0
  703. package/dist/types/components/LinksManager/LinkManagerItem.d.ts +9 -0
  704. package/dist/types/components/LinksManager/LinksManager.d.ts +24 -0
  705. package/dist/types/components/LinksManager/LinksManager.styled.d.ts +17 -0
  706. package/dist/types/components/LinksManager/LinksManagerDialog.d.ts +9 -0
  707. package/dist/types/components/LinksManager/SearchingLoadingItems.d.ts +5 -0
  708. package/dist/types/components/LinksManager/hooks/useKeyboardNavigation.d.ts +24 -0
  709. package/dist/types/components/LinksManager/hooks/useUpdateLinks.d.ts +24 -0
  710. package/dist/types/components/LinksManager/index.d.ts +2 -0
  711. package/dist/types/components/LinksManager/utils/formatEntityPath.d.ts +1 -0
  712. package/dist/types/components/LinksManager/utils/linkUpdates.d.ts +47 -0
  713. package/dist/types/components/index.d.ts +2 -0
  714. package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +15 -0
  715. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +17 -0
  716. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableHeader.d.ts +25 -0
  717. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableSearch.d.ts +8 -0
  718. package/dist/types/containers/EntityPickerDialog/components/index.d.ts +1 -0
  719. package/dist/types/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.d.ts +9 -0
  720. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +28 -0
  721. package/dist/types/containers/EntityPickerDialog/index.d.ts +1 -0
  722. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +8 -0
  723. package/dist/types/containers/EntityPickerDialog/util/entityHierarchies.d.ts +3 -0
  724. package/dist/types/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.d.ts +2 -0
  725. package/dist/types/containers/EntityPickerDialog/util/index.d.ts +3 -0
  726. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -2
  727. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +1 -0
  728. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +6 -1
  729. package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +1 -4
  730. package/dist/types/containers/ProjectTreeTable/context/CellEditingProvider.d.ts +4 -0
  731. package/dist/types/containers/ProjectTreeTable/context/DetailsPanelEntityContext.d.ts +16 -0
  732. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +4 -1
  733. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +2 -0
  734. package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +1 -1
  735. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +34 -0
  736. package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -0
  737. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -34
  738. package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +2 -0
  739. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  740. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +17 -0
  741. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +7 -1
  742. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +23 -0
  743. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  744. package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.d.ts +7 -0
  745. package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTableRowTemplate.d.ts +1 -0
  746. package/dist/types/{SimpleTable → containers/SimpleTable}/index.d.ts +1 -0
  747. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
  748. package/dist/types/hooks/index.d.ts +1 -0
  749. package/dist/types/hooks/useHierarchyTable.d.ts +13 -0
  750. package/dist/types/util/getEntityId.d.ts +2 -0
  751. package/dist/types/util/index.d.ts +3 -0
  752. package/dist/util.cjs.js +16 -0
  753. package/dist/util.cjs.js.map +1 -1
  754. package/dist/util.es.js +17 -1
  755. package/dist/util.es.js.map +1 -1
  756. package/package.json +8 -2
  757. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +0 -7
  758. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +0 -1
  759. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +0 -8
  760. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +0 -1
  761. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +0 -14
  762. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +0 -1
  763. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +0 -15
  764. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +0 -1
  765. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +0 -11
  766. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +0 -1
  767. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +0 -11
  768. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +0 -1
  769. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +0 -57
  770. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +0 -1
  771. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +0 -58
  772. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +0 -1
  773. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +0 -16
  774. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +0 -1
  775. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +0 -17
  776. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +0 -1
  777. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +0 -1
  778. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +0 -1
  779. /package/dist/shared/src/{utils → util}/extractVersionFromFilename.cjs.js +0 -0
  780. /package/dist/shared/src/{utils → util}/extractVersionFromFilename.es.js +0 -0
  781. /package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.styled.d.ts +0 -0
  782. /package/dist/types/{SimpleTable → containers/SimpleTable}/context/SimpleTableContext.d.ts +0 -0
  783. /package/dist/types/{utils → util}/extractVersionFromFilename.d.ts +0 -0
  784. /package/dist/types/{utils → util}/versionUploadHelpers.d.ts +0 -0
@@ -4,6 +4,7 @@ const productTypes = require("../../../util/productTypes.cjs.js");
4
4
  require("lodash");
5
5
  require("react-toastify");
6
6
  const getEntityTypeIcon = require("../../../util/getEntityTypeIcon.cjs.js");
7
+ require("uuid");
7
8
  require("../../../util/pubsub.cjs.js");
8
9
  const getMentionVersions = (versions = []) => {
9
10
  return versions == null ? void 0 : versions.map((v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"getMentionVersions.cjs.js","sources":["../../../../../../src/containers/Feed/mentionHelpers/getMentionVersions.ts"],"sourcesContent":["import { getFuzzyDate } from '../components/ActivityDate'\nimport { getEntityTypeIcon, productTypes } from '@shared/util'\nimport { VersionSuggestionItem } from '@shared/api'\n\nconst getMentionVersions = (versions: VersionSuggestionItem[] = []) => {\n return versions?.map((v) => {\n if (!v.parent) {\n return null\n }\n const productType = productTypes[v.parent.productType]\n const icon = productType?.icon || getEntityTypeIcon('version')\n const context = v.parent?.name\n const label = v.name || v.version\n const suffix = v.createdAt && getFuzzyDate(new Date(v.createdAt))\n const fullSearchString = `${context} ${label} ${suffix}`\n const keywords = [v.name, v.version, v.parent?.name, fullSearchString]\n\n return {\n type: 'version',\n id: v.id,\n createdAt: v.createdAt,\n label,\n icon,\n context,\n suffix,\n keywords,\n relevance: v.relevance,\n }\n })\n}\n\nexport default getMentionVersions\n"],"names":["getEntityTypeIcon","getFuzzyDate"],"mappings":";;;;;;;AAIA,MAAM,qBAAqB,CAAC,WAAoC,OAAO;AAC9D,SAAA,qCAAU,IAAI,CAAC,MAAM;;AACtB,QAAA,CAAC,EAAE,QAAQ;AACN,aAAA;AAAA,IAAA;AAET,UAAM,cAAc,aAAa,EAAE,OAAO,WAAW;AACrD,UAAM,QAAO,2CAAa,SAAQA,kBAAAA,kBAAkB,SAAS;AACvD,UAAA,WAAU,OAAE,WAAF,mBAAU;AACpB,UAAA,QAAQ,EAAE,QAAQ,EAAE;AACpB,UAAA,SAAS,EAAE,aAAaC,aAAAA,aAAa,IAAI,KAAK,EAAE,SAAS,CAAC;AAChE,UAAM,mBAAmB,GAAG,OAAO,IAAI,KAAK,IAAI,MAAM;AAChD,UAAA,WAAW,CAAC,EAAE,MAAM,EAAE,UAAS,OAAE,WAAF,mBAAU,MAAM,gBAAgB;AAE9D,WAAA;AAAA,MACL,MAAM;AAAA,MACN,IAAI,EAAE;AAAA,MACN,WAAW,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,EAAE;AAAA,IACf;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"getMentionVersions.cjs.js","sources":["../../../../../../src/containers/Feed/mentionHelpers/getMentionVersions.ts"],"sourcesContent":["import { getFuzzyDate } from '../components/ActivityDate'\nimport { getEntityTypeIcon, productTypes } from '@shared/util'\nimport { VersionSuggestionItem } from '@shared/api'\n\nconst getMentionVersions = (versions: VersionSuggestionItem[] = []) => {\n return versions?.map((v) => {\n if (!v.parent) {\n return null\n }\n const productType = productTypes[v.parent.productType]\n const icon = productType?.icon || getEntityTypeIcon('version')\n const context = v.parent?.name\n const label = v.name || v.version\n const suffix = v.createdAt && getFuzzyDate(new Date(v.createdAt))\n const fullSearchString = `${context} ${label} ${suffix}`\n const keywords = [v.name, v.version, v.parent?.name, fullSearchString]\n\n return {\n type: 'version',\n id: v.id,\n createdAt: v.createdAt,\n label,\n icon,\n context,\n suffix,\n keywords,\n relevance: v.relevance,\n }\n })\n}\n\nexport default getMentionVersions\n"],"names":["getEntityTypeIcon","getFuzzyDate"],"mappings":";;;;;;;;AAIA,MAAM,qBAAqB,CAAC,WAAoC,OAAO;AAC9D,SAAA,qCAAU,IAAI,CAAC,MAAM;;AACtB,QAAA,CAAC,EAAE,QAAQ;AACN,aAAA;AAAA,IAAA;AAET,UAAM,cAAc,aAAa,EAAE,OAAO,WAAW;AACrD,UAAM,QAAO,2CAAa,SAAQA,kBAAAA,kBAAkB,SAAS;AACvD,UAAA,WAAU,OAAE,WAAF,mBAAU;AACpB,UAAA,QAAQ,EAAE,QAAQ,EAAE;AACpB,UAAA,SAAS,EAAE,aAAaC,aAAAA,aAAa,IAAI,KAAK,EAAE,SAAS,CAAC;AAChE,UAAM,mBAAmB,GAAG,OAAO,IAAI,KAAK,IAAI,MAAM;AAChD,UAAA,WAAW,CAAC,EAAE,MAAM,EAAE,UAAS,OAAE,WAAF,mBAAU,MAAM,gBAAgB;AAE9D,WAAA;AAAA,MACL,MAAM;AAAA,MACN,IAAI,EAAE;AAAA,MACN,WAAW,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,EAAE;AAAA,IACf;AAAA,EAAA;AAEJ;;"}
@@ -3,6 +3,7 @@ import productTypes from "../../../util/productTypes.es.js";
3
3
  import "lodash";
4
4
  import "react-toastify";
5
5
  import { getEntityTypeIcon } from "../../../util/getEntityTypeIcon.es.js";
6
+ import "uuid";
6
7
  import "../../../util/pubsub.es.js";
7
8
  const getMentionVersions = (versions = []) => {
8
9
  return versions == null ? void 0 : versions.map((v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"getMentionVersions.es.js","sources":["../../../../../../src/containers/Feed/mentionHelpers/getMentionVersions.ts"],"sourcesContent":["import { getFuzzyDate } from '../components/ActivityDate'\nimport { getEntityTypeIcon, productTypes } from '@shared/util'\nimport { VersionSuggestionItem } from '@shared/api'\n\nconst getMentionVersions = (versions: VersionSuggestionItem[] = []) => {\n return versions?.map((v) => {\n if (!v.parent) {\n return null\n }\n const productType = productTypes[v.parent.productType]\n const icon = productType?.icon || getEntityTypeIcon('version')\n const context = v.parent?.name\n const label = v.name || v.version\n const suffix = v.createdAt && getFuzzyDate(new Date(v.createdAt))\n const fullSearchString = `${context} ${label} ${suffix}`\n const keywords = [v.name, v.version, v.parent?.name, fullSearchString]\n\n return {\n type: 'version',\n id: v.id,\n createdAt: v.createdAt,\n label,\n icon,\n context,\n suffix,\n keywords,\n relevance: v.relevance,\n }\n })\n}\n\nexport default getMentionVersions\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,qBAAqB,CAAC,WAAoC,OAAO;AAC9D,SAAA,qCAAU,IAAI,CAAC,MAAM;;AACtB,QAAA,CAAC,EAAE,QAAQ;AACN,aAAA;AAAA,IAAA;AAET,UAAM,cAAc,aAAa,EAAE,OAAO,WAAW;AACrD,UAAM,QAAO,2CAAa,SAAQ,kBAAkB,SAAS;AACvD,UAAA,WAAU,OAAE,WAAF,mBAAU;AACpB,UAAA,QAAQ,EAAE,QAAQ,EAAE;AACpB,UAAA,SAAS,EAAE,aAAa,aAAa,IAAI,KAAK,EAAE,SAAS,CAAC;AAChE,UAAM,mBAAmB,GAAG,OAAO,IAAI,KAAK,IAAI,MAAM;AAChD,UAAA,WAAW,CAAC,EAAE,MAAM,EAAE,UAAS,OAAE,WAAF,mBAAU,MAAM,gBAAgB;AAE9D,WAAA;AAAA,MACL,MAAM;AAAA,MACN,IAAI,EAAE;AAAA,MACN,WAAW,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,EAAE;AAAA,IACf;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"getMentionVersions.es.js","sources":["../../../../../../src/containers/Feed/mentionHelpers/getMentionVersions.ts"],"sourcesContent":["import { getFuzzyDate } from '../components/ActivityDate'\nimport { getEntityTypeIcon, productTypes } from '@shared/util'\nimport { VersionSuggestionItem } from '@shared/api'\n\nconst getMentionVersions = (versions: VersionSuggestionItem[] = []) => {\n return versions?.map((v) => {\n if (!v.parent) {\n return null\n }\n const productType = productTypes[v.parent.productType]\n const icon = productType?.icon || getEntityTypeIcon('version')\n const context = v.parent?.name\n const label = v.name || v.version\n const suffix = v.createdAt && getFuzzyDate(new Date(v.createdAt))\n const fullSearchString = `${context} ${label} ${suffix}`\n const keywords = [v.name, v.version, v.parent?.name, fullSearchString]\n\n return {\n type: 'version',\n id: v.id,\n createdAt: v.createdAt,\n label,\n icon,\n context,\n suffix,\n keywords,\n relevance: v.relevance,\n }\n })\n}\n\nexport default getMentionVersions\n"],"names":[],"mappings":";;;;;;;AAIA,MAAM,qBAAqB,CAAC,WAAoC,OAAO;AAC9D,SAAA,qCAAU,IAAI,CAAC,MAAM;;AACtB,QAAA,CAAC,EAAE,QAAQ;AACN,aAAA;AAAA,IAAA;AAET,UAAM,cAAc,aAAa,EAAE,OAAO,WAAW;AACrD,UAAM,QAAO,2CAAa,SAAQ,kBAAkB,SAAS;AACvD,UAAA,WAAU,OAAE,WAAF,mBAAU;AACpB,UAAA,QAAQ,EAAE,QAAQ,EAAE;AACpB,UAAA,SAAS,EAAE,aAAa,aAAa,IAAI,KAAK,EAAE,SAAS,CAAC;AAChE,UAAM,mBAAmB,GAAG,OAAO,IAAI,KAAK,IAAI,MAAM;AAChD,UAAA,WAAW,CAAC,EAAE,MAAM,EAAE,UAAS,OAAE,WAAF,mBAAU,MAAM,gBAAgB;AAE9D,WAAA;AAAA,MACL,MAAM;AAAA,MACN,IAAI,EAAE;AAAA,MACN,WAAW,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,EAAE;AAAA,IACf;AAAA,EAAA;AAEJ;"}
@@ -29,9 +29,14 @@ const ProjectTableContext = require("./context/ProjectTableContext.cjs.js");
29
29
  const getTableFieldOptions = require("./utils/getTableFieldOptions.cjs.js");
30
30
  const getReadOnlyLists = require("./utils/getReadOnlyLists.cjs.js");
31
31
  const getEntityViewerIds = require("./utils/getEntityViewerIds.cjs.js");
32
+ require("lodash");
33
+ require("react-toastify");
34
+ require("uuid");
35
+ require("../../util/pubsub.cjs.js");
32
36
  const core = require("@dnd-kit/core");
33
37
  const sortable = require("@dnd-kit/sortable");
34
38
  const utilities_esm = require("../../../../node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs.js");
39
+ const CellWidget = require("./widgets/CellWidget.cjs.js");
35
40
  const getCommonPinningStyles = (column) => {
36
41
  const isPinned = column.getIsPinned();
37
42
  const offset = column.id !== SelectionCellsContext.ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0;
@@ -51,7 +56,9 @@ const DRAG_HANDLE_COLUMN_ID = "drag-handle";
51
56
  const ProjectTreeTable = ({
52
57
  scope,
53
58
  sliceId,
54
- fetchMoreOnBottomReached,
59
+ onScroll,
60
+ onScrollBottom,
61
+ // when the user scrolls to the bottom of the table, this callback is called
55
62
  onOpenNew,
56
63
  readOnly,
57
64
  excludedColumns,
@@ -100,7 +107,13 @@ const ProjectTreeTable = ({
100
107
  getEntityById
101
108
  } = ProjectTableContext.useProjectTableContext();
102
109
  const isLoading = isLoadingProp || isLoadingData;
103
- const { statuses = [], folderTypes = [], taskTypes = [], tags = [] } = projectInfo || {};
110
+ const {
111
+ statuses = [],
112
+ folderTypes = [],
113
+ taskTypes = [],
114
+ tags = [],
115
+ linkTypes = []
116
+ } = projectInfo || {};
104
117
  const options = React.useMemo(
105
118
  () => getTableFieldOptions.getTableFieldOptions({
106
119
  users,
@@ -167,6 +180,7 @@ const ProjectTreeTable = ({
167
180
  const columns = React.useMemo(() => {
168
181
  const baseColumns = buildTreeTableColumns.default({
169
182
  attribs: columnAttribs,
183
+ links: linkTypes,
170
184
  showHierarchy,
171
185
  options,
172
186
  extraColumns,
@@ -300,6 +314,21 @@ const ProjectTreeTable = ({
300
314
  if (!dndActiveId || !sortableRows) return null;
301
315
  return tableData.find((r) => r.id === dndActiveId);
302
316
  }, [dndActiveId, tableData, sortableRows]);
317
+ const combinedScrollHandler = React.useCallback(
318
+ (e) => {
319
+ onScroll == null ? void 0 : onScroll(e);
320
+ if (onScrollBottom) {
321
+ const containerRefElement = e.currentTarget;
322
+ if (containerRefElement && !showHierarchy && !groupBy) {
323
+ const { scrollHeight, scrollTop, clientHeight } = containerRefElement;
324
+ if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {
325
+ onScrollBottom(e);
326
+ }
327
+ }
328
+ }
329
+ },
330
+ [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading]
331
+ );
303
332
  const tableUiContent = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
304
333
  ClipboardContext.ClipboardProvider,
305
334
  {
@@ -311,7 +340,7 @@ const ProjectTreeTable = ({
311
340
  {
312
341
  ref: tableContainerRef,
313
342
  style: { height: "100%", padding: 0 },
314
- onScroll: (e) => fetchMoreOnBottomReached(e.currentTarget),
343
+ onScroll: combinedScrollHandler,
315
344
  ...pt == null ? void 0 : pt.container,
316
345
  className: clsx("table-container", (_a = pt == null ? void 0 : pt.container) == null ? void 0 : _a.className),
317
346
  children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
@@ -807,7 +836,7 @@ const TableCell = ({
807
836
  clearSelection
808
837
  } = SelectionCellsContext.useSelectionCellsContext();
809
838
  const { isRowSelected } = SelectedRowsContext.useSelectedRowsContext();
810
- const { isEditing } = CellEditingContext.useCellEditing();
839
+ const { isEditing, setEditingCellId } = CellEditingContext.useCellEditing();
811
840
  const borderClasses = getCellBorderClasses(cellId);
812
841
  const isPinned = cell.column.getIsPinned();
813
842
  const isLastLeftPinnedColumn = isPinned === "left" && cell.column.getIsLastColumn("left");
@@ -841,14 +870,15 @@ const TableCell = ({
841
870
  if (e.button !== 0) return;
842
871
  const target = e.target;
843
872
  if (target.closest(".expander")) return;
844
- if (target.closest(".options")) return;
845
- if (target.closest(".expand")) {
873
+ if (target.closest("." + CellWidget.EDIT_TRIGGER_CLASS)) {
846
874
  if (!isCellSelected(cellId)) {
847
875
  selectCell(cellId, false, false);
848
876
  focusCell(cellId);
849
877
  }
878
+ setEditingCellId(cellId);
850
879
  return;
851
880
  }
881
+ if (target.closest(".options")) return;
852
882
  if (isGroup && cell.column.id !== "name") return clearSelection();
853
883
  const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn;
854
884
  if (e.shiftKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport HeaderActionButton from './components/HeaderActionButton'\nimport RowDragHandleCellContent from './components/RowDragHandleCellContent' // Added import\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n fetchMoreOnBottomReached: (element: HTMLDivElement | null) => void\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n fetchMoreOnBottomReached,\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const { statuses = [], folderTypes = [], taskTypes = [], tags = [] } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, readOnly),\n [attribFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) continue\n\n if (colId?.replace('attrib_', '') === field && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n getSortedRowModel: clientSorting ? getSortedRowModel() : undefined,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n enableSorting: true,\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={(e) => fetchMoreOnBottomReached(e.currentTarget)}\n {...pt?.container}\n className={clsx('table-container', pt?.container?.className)}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: 40,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\">\n {/* COLUMN HIDING */}\n {canHide && (\n <HeaderActionButton\n icon=\"visibility_off\"\n selected={!column.getIsVisible()}\n onClick={column.getToggleVisibilityHandler()}\n />\n )}\n {/* COLUMN PINNING */}\n {canPin && (\n <HeaderActionButton\n icon=\"push_pin\"\n selected={header.column.getIsPinned() === 'left'}\n onClick={() => {\n if (header.column.getIsPinned() === 'left') {\n header.column.pin(false)\n } else {\n header.column.pin('left')\n }\n }}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon={'sort'}\n style={{\n transform: (column.getIsSorted() as string) === 'asc' ? 'scaleY(-1)' : undefined,\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const { handleTableBodyContextMenu } = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: 40, // Explicit height can be beneficial for absolute positioning\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: 40,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if selection options from a dropdown skip\n if (target.closest('.options')) return\n\n // if selecting dropdown expand icon, make sure it is selected ()\n if (target.closest('.expand')) {\n if (!isCellSelected(cellId)) {\n // select\n selectCell(cellId, false, false)\n // focus\n focusCell(cellId)\n }\n return\n }\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["ROW_SELECTION_COLUMN_ID","useColumnSettingsContext","useProjectTableContext","useMemo","getTableFieldOptions","useRef","useSelectionCellsContext","_a","loadingAttrib","generateDummyAttributes","loadingRows","generateLoadingRows","getReadOnlyLists","useCellEditing","useCallback","parseCellId","entity","buildTreeTableColumns","useEffect","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","jsx","ClipboardProvider","Styled.TableWrapper","Styled.TableContainer","jsxs","createPortal","DragOverlay","Styled.TR","Styled.TableCell","Icon","getCellId","Fragment","Styled.TableHeader","Styled.ColumnHeader","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","Styled.ResizedHandler","usePrefetchFolderTasks","useVirtualizer","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","sortable","useSortable","CSS","useSelectedRowsContext","getEntityViewierIds","memo"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport HeaderActionButton from './components/HeaderActionButton'\nimport RowDragHandleCellContent from './components/RowDragHandleCellContent' // Added import\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, readOnly),\n [attribFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) continue\n\n if (colId?.replace('attrib_', '') === field && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n getSortedRowModel: clientSorting ? getSortedRowModel() : undefined,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n enableSorting: true,\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx('table-container', pt?.container?.className)}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: 40,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\">\n {/* COLUMN HIDING */}\n {canHide && (\n <HeaderActionButton\n icon=\"visibility_off\"\n selected={!column.getIsVisible()}\n onClick={column.getToggleVisibilityHandler()}\n />\n )}\n {/* COLUMN PINNING */}\n {canPin && (\n <HeaderActionButton\n icon=\"push_pin\"\n selected={header.column.getIsPinned() === 'left'}\n onClick={() => {\n if (header.column.getIsPinned() === 'left') {\n header.column.pin(false)\n } else {\n header.column.pin('left')\n }\n }}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon={'sort'}\n style={{\n transform: (column.getIsSorted() as string) === 'asc' ? 'scaleY(-1)' : undefined,\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const { handleTableBodyContextMenu } = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: 40, // Explicit height can be beneficial for absolute positioning\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: 40,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["ROW_SELECTION_COLUMN_ID","useColumnSettingsContext","useProjectTableContext","useMemo","getTableFieldOptions","useRef","useSelectionCellsContext","_a","loadingAttrib","generateDummyAttributes","loadingRows","generateLoadingRows","getReadOnlyLists","useCellEditing","useCallback","parseCellId","entity","buildTreeTableColumns","useEffect","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","jsx","ClipboardProvider","Styled.TableWrapper","Styled.TableContainer","jsxs","createPortal","DragOverlay","Styled.TR","Styled.TableCell","Icon","getCellId","Fragment","Styled.TableHeader","Styled.ColumnHeader","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","Styled.ResizedHandler","usePrefetchFolderTasks","useVirtualizer","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","sortable","useSortable","CSS","useSelectedRowsContext","EDIT_TRIGGER_CLASS","getEntityViewierIds","memo"],"mappings":"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"}
@@ -27,9 +27,14 @@ import { useProjectTableContext } from "./context/ProjectTableContext.es.js";
27
27
  import { getTableFieldOptions } from "./utils/getTableFieldOptions.es.js";
28
28
  import { getReadOnlyLists } from "./utils/getReadOnlyLists.es.js";
29
29
  import { getEntityViewierIds } from "./utils/getEntityViewerIds.es.js";
30
+ import "lodash";
31
+ import "react-toastify";
32
+ import "uuid";
33
+ import "../../util/pubsub.es.js";
30
34
  import { DragOverlay } from "@dnd-kit/core";
31
35
  import { SortableContext, verticalListSortingStrategy, useSortable } from "@dnd-kit/sortable";
32
36
  import { CSS } from "../../../../node_modules/@dnd-kit/utilities/dist/utilities.esm.es.js";
37
+ import { EDIT_TRIGGER_CLASS } from "./widgets/CellWidget.es.js";
33
38
  const getCommonPinningStyles = (column) => {
34
39
  const isPinned = column.getIsPinned();
35
40
  const offset = column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0;
@@ -49,7 +54,9 @@ const DRAG_HANDLE_COLUMN_ID = "drag-handle";
49
54
  const ProjectTreeTable = ({
50
55
  scope,
51
56
  sliceId,
52
- fetchMoreOnBottomReached,
57
+ onScroll,
58
+ onScrollBottom,
59
+ // when the user scrolls to the bottom of the table, this callback is called
53
60
  onOpenNew,
54
61
  readOnly,
55
62
  excludedColumns,
@@ -98,7 +105,13 @@ const ProjectTreeTable = ({
98
105
  getEntityById
99
106
  } = useProjectTableContext();
100
107
  const isLoading = isLoadingProp || isLoadingData;
101
- const { statuses = [], folderTypes = [], taskTypes = [], tags = [] } = projectInfo || {};
108
+ const {
109
+ statuses = [],
110
+ folderTypes = [],
111
+ taskTypes = [],
112
+ tags = [],
113
+ linkTypes = []
114
+ } = projectInfo || {};
102
115
  const options = useMemo(
103
116
  () => getTableFieldOptions({
104
117
  users,
@@ -165,6 +178,7 @@ const ProjectTreeTable = ({
165
178
  const columns = useMemo(() => {
166
179
  const baseColumns = buildTreeTableColumns({
167
180
  attribs: columnAttribs,
181
+ links: linkTypes,
168
182
  showHierarchy,
169
183
  options,
170
184
  extraColumns,
@@ -298,6 +312,21 @@ const ProjectTreeTable = ({
298
312
  if (!dndActiveId || !sortableRows) return null;
299
313
  return tableData.find((r) => r.id === dndActiveId);
300
314
  }, [dndActiveId, tableData, sortableRows]);
315
+ const combinedScrollHandler = useCallback(
316
+ (e) => {
317
+ onScroll == null ? void 0 : onScroll(e);
318
+ if (onScrollBottom) {
319
+ const containerRefElement = e.currentTarget;
320
+ if (containerRefElement && !showHierarchy && !groupBy) {
321
+ const { scrollHeight, scrollTop, clientHeight } = containerRefElement;
322
+ if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {
323
+ onScrollBottom(e);
324
+ }
325
+ }
326
+ }
327
+ },
328
+ [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading]
329
+ );
301
330
  const tableUiContent = /* @__PURE__ */ jsxRuntimeExports.jsx(
302
331
  ClipboardProvider,
303
332
  {
@@ -309,7 +338,7 @@ const ProjectTreeTable = ({
309
338
  {
310
339
  ref: tableContainerRef,
311
340
  style: { height: "100%", padding: 0 },
312
- onScroll: (e) => fetchMoreOnBottomReached(e.currentTarget),
341
+ onScroll: combinedScrollHandler,
313
342
  ...pt == null ? void 0 : pt.container,
314
343
  className: clsx("table-container", (_a = pt == null ? void 0 : pt.container) == null ? void 0 : _a.className),
315
344
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -805,7 +834,7 @@ const TableCell = ({
805
834
  clearSelection
806
835
  } = useSelectionCellsContext();
807
836
  const { isRowSelected } = useSelectedRowsContext();
808
- const { isEditing } = useCellEditing();
837
+ const { isEditing, setEditingCellId } = useCellEditing();
809
838
  const borderClasses = getCellBorderClasses(cellId);
810
839
  const isPinned = cell.column.getIsPinned();
811
840
  const isLastLeftPinnedColumn = isPinned === "left" && cell.column.getIsLastColumn("left");
@@ -839,14 +868,15 @@ const TableCell = ({
839
868
  if (e.button !== 0) return;
840
869
  const target = e.target;
841
870
  if (target.closest(".expander")) return;
842
- if (target.closest(".options")) return;
843
- if (target.closest(".expand")) {
871
+ if (target.closest("." + EDIT_TRIGGER_CLASS)) {
844
872
  if (!isCellSelected(cellId)) {
845
873
  selectCell(cellId, false, false);
846
874
  focusCell(cellId);
847
875
  }
876
+ setEditingCellId(cellId);
848
877
  return;
849
878
  }
879
+ if (target.closest(".options")) return;
850
880
  if (isGroup && cell.column.id !== "name") return clearSelection();
851
881
  const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn;
852
882
  if (e.shiftKey) {