@ynput/ayon-frontend-shared 0.3.31 → 0.3.33

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 (1007) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +219 -199
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +20 -18
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs14.js +1 -1
  11. package/dist/_virtual/index.cjs15.js +1 -1
  12. package/dist/_virtual/index.cjs19.js +1 -1
  13. package/dist/_virtual/index.cjs22.js +1 -1
  14. package/dist/_virtual/index.cjs23.js +1 -1
  15. package/dist/_virtual/index.cjs24.js +1 -1
  16. package/dist/_virtual/index.cjs7.js +1 -1
  17. package/dist/_virtual/index.es10.js +2 -2
  18. package/dist/_virtual/index.es11.js +2 -2
  19. package/dist/_virtual/index.es13.js +2 -2
  20. package/dist/_virtual/index.es14.js +2 -5
  21. package/dist/_virtual/index.es14.js.map +1 -1
  22. package/dist/_virtual/index.es15.js +2 -2
  23. package/dist/_virtual/index.es16.js +2 -2
  24. package/dist/_virtual/index.es17.js +2 -2
  25. package/dist/_virtual/index.es18.js +2 -2
  26. package/dist/_virtual/index.es19.js +2 -2
  27. package/dist/_virtual/index.es20.js +2 -2
  28. package/dist/_virtual/index.es22.js +3 -3
  29. package/dist/_virtual/index.es23.js +5 -5
  30. package/dist/_virtual/index.es24.js +5 -5
  31. package/dist/_virtual/index.es7.js +5 -2
  32. package/dist/_virtual/index.es7.js.map +1 -1
  33. package/dist/_virtual/index.es9.js +2 -2
  34. package/dist/api.cjs.js +1 -1
  35. package/dist/api.es.js +460 -436
  36. package/dist/api.es.js.map +1 -1
  37. package/dist/components.cjs.js +1 -1
  38. package/dist/components.es.js +83 -80
  39. package/dist/components.es.js.map +1 -1
  40. package/dist/index.cjs.js +1 -1
  41. package/dist/index.es.js +15 -11
  42. package/dist/index.es.js.map +1 -1
  43. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  44. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  45. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  46. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  47. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  48. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  49. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  50. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  67. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  76. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  77. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  78. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  79. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  80. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  81. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  82. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  83. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  84. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  85. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  86. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  87. package/dist/shared/src/api/base/client.cjs.js +1 -1
  88. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  89. package/dist/shared/src/api/base/client.es.js +22 -17
  90. package/dist/shared/src/api/base/client.es.js.map +1 -1
  91. package/dist/shared/src/api/generated/folders.cjs.js +1 -1
  92. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  93. package/dist/shared/src/api/generated/folders.es.js +2 -14
  94. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  95. package/dist/shared/src/api/generated/graphql.cjs.js +299 -61
  96. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  97. package/dist/shared/src/api/generated/graphql.es.js +430 -170
  98. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  99. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  100. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/activities/activityQueries.cjs.js +1 -0
  102. package/dist/shared/src/api/queries/activities/activityQueries.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/activities/activityQueries.es.js +1 -0
  104. package/dist/shared/src/api/queries/activities/activityQueries.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  106. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/activities/getActivities.es.js +26 -24
  108. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  110. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +35 -23
  112. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  114. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +74 -60
  116. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +2 -0
  118. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -0
  119. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +96 -0
  120. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -0
  121. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +2 -0
  122. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -0
  123. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +88 -0
  124. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -0
  125. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +62 -48
  128. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  130. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +7 -3
  132. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  134. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/entityLists/getLists.es.js +94 -79
  136. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +2 -0
  138. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -0
  139. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +68 -0
  140. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -0
  141. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  142. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +73 -69
  144. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  146. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/folders/getFolders.es.js +104 -71
  148. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  150. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/overview/getOverview.es.js +265 -216
  152. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  153. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  154. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/overview/updateOverview.es.js +207 -187
  156. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  158. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +138 -107
  160. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -4
  162. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  163. package/dist/shared/src/api/queries/users/getUsers.es.js +11 -11
  164. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  165. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  166. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +332 -239
  168. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
  170. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/views/updateViews.es.js +38 -38
  172. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  173. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  174. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +4 -2
  176. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  177. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  178. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  179. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  180. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  181. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  182. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  183. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +8 -4
  184. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  185. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  186. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  187. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  188. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  189. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  190. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  191. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  192. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  193. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  194. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  195. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  196. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  197. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  198. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  199. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +4 -2
  200. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  201. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  202. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  203. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +143 -162
  204. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  205. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  206. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  207. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +8 -4
  208. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  209. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  210. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  211. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +4 -2
  212. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  213. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  214. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  215. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
  216. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  217. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  218. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  219. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  220. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  221. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  222. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  223. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
  224. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  225. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  226. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  227. package/dist/shared/src/components/LinksManager/LinksManager.es.js +4 -2
  228. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  229. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  230. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  231. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
  232. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  233. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  234. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  235. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  236. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  237. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  238. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  239. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -2
  240. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  241. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  242. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  243. package/dist/shared/src/components/Menu/Menu.es.js +4 -2
  244. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  245. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  246. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  247. package/dist/shared/src/components/Menu/MenuItem.es.js +2 -0
  248. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  249. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  250. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  251. package/dist/shared/src/components/Menu/MenuList.es.js +4 -2
  252. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  253. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  254. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  255. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +4 -2
  256. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  257. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  258. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  259. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
  260. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  261. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
  262. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
  263. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +4 -2
  264. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
  265. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  266. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  267. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +81 -77
  268. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  269. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  270. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
  272. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  273. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  274. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  276. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  277. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  278. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  279. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
  280. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  281. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  282. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  283. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +8 -4
  284. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  285. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  286. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  287. package/dist/shared/src/components/RenameForm/RenameForm.es.js +8 -4
  288. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  289. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  290. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  291. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  292. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  293. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  294. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  295. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -4
  296. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  297. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  298. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  299. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +9 -5
  300. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  301. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  302. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  303. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -4
  304. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  308. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +8 -4
  312. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  313. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  314. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  315. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +2 -1
  316. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  317. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +2 -0
  318. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -0
  319. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +24 -0
  320. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -0
  321. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  322. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  323. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  324. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  325. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  326. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +4 -2
  328. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  329. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  330. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  331. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +10 -6
  332. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  333. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  334. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -4
  336. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  337. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  338. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +4 -2
  340. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  341. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
  342. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  343. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +12 -10
  344. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  345. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  346. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  347. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +49 -44
  348. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  349. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  350. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  351. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +32 -22
  352. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  353. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  354. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  355. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
  356. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  357. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  358. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  359. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +12 -8
  360. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  361. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  362. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  363. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  364. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  365. package/dist/shared/src/config/powerpackFeatures.cjs.js +1 -1
  366. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  367. package/dist/shared/src/config/powerpackFeatures.es.js +7 -1
  368. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  369. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  370. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
  372. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  373. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  374. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
  376. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  377. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  378. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
  380. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -4
  384. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -4
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +45 -40
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +8 -4
  396. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +8 -4
  400. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +8 -4
  404. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  406. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  408. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  410. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +21 -17
  412. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -4
  416. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +7 -3
  420. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +14 -11
  424. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  426. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +14 -14
  428. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +14 -9
  432. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  434. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +8 -4
  436. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  437. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  438. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -4
  440. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  441. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  442. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -4
  444. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  445. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  446. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -4
  448. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  449. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  450. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  452. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  454. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/Feed/Feed.es.js +157 -140
  456. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  457. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  458. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -4
  460. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  461. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  462. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +133 -144
  464. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  466. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +8 -4
  468. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js +3 -3
  470. package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/components/ActivityDate.es.js +39 -31
  472. package/dist/shared/src/containers/Feed/components/ActivityDate.es.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  474. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +23 -20
  476. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  477. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +2 -0
  478. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -0
  479. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +349 -0
  480. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -0
  481. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js +50 -0
  482. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js.map +1 -0
  483. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js +56 -0
  484. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js.map +1 -0
  485. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  486. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +29 -27
  488. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  489. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  490. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +351 -290
  492. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  493. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +87 -12
  494. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +101 -21
  496. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js +2 -0
  498. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -0
  499. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js +34 -0
  500. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -0
  501. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  502. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +12 -8
  504. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  506. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +4 -2
  508. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  510. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +4 -2
  512. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  514. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +4 -2
  516. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  518. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +40 -45
  520. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +4 -2
  524. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  526. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  528. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +14 -13
  532. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js +2 -0
  534. package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js.map +1 -0
  535. package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js +27 -0
  536. package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js.map +1 -0
  537. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  538. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +88 -68
  540. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  542. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  544. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +2 -0
  546. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -0
  547. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +113 -0
  548. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -0
  549. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  550. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  551. package/dist/shared/src/containers/ListTable/ListTable.es.js +214 -204
  552. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  553. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  554. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  555. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -4
  556. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  557. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  558. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +8 -4
  560. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +731 -675
  564. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +32 -10
  566. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +42 -18
  568. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +21 -16
  572. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +61 -45
  576. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +8 -4
  580. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -4
  584. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +48 -0
  586. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -0
  587. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +103 -0
  588. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -0
  589. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +2 -0
  590. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -0
  591. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -0
  592. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -0
  593. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
  596. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  598. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +8 -5
  600. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +219 -183
  606. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  607. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  610. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +94 -90
  614. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +21 -17
  618. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -2
  622. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +21 -13
  626. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -2
  630. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +85 -81
  634. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +203 -181
  638. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +10 -5
  642. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -4
  646. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  647. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +8 -4
  650. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -4
  654. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +179 -175
  658. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  662. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +8 -4
  664. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  665. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  666. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +8 -4
  668. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  670. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -4
  672. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  674. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -4
  676. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +8 -4
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +96 -91
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +8 -4
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +46 -44
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js +2 -0
  694. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -0
  695. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js +16 -0
  696. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -0
  697. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +19 -15
  700. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js +29 -25
  704. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js +2 -0
  706. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js.map +1 -0
  707. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js +17 -0
  708. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js.map +1 -0
  709. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +61 -61
  712. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js +2 -0
  714. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -0
  715. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js +15 -0
  716. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -0
  717. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  718. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +8 -4
  720. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +16 -12
  724. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +10 -6
  728. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  730. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +4 -2
  732. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  734. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +8 -4
  736. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  738. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -4
  740. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +4 -2
  744. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +4 -4
  746. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +24 -19
  748. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  749. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  750. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  751. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +8 -4
  752. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  753. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  754. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  755. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -4
  756. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  757. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  758. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  759. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +52 -50
  760. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  761. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  762. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +4 -2
  764. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  765. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  766. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  767. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
  768. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  769. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  770. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  771. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +57 -53
  772. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  773. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  774. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  775. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +4 -2
  776. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  777. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  778. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  779. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +4 -2
  780. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  781. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  782. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  783. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +8 -4
  784. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  785. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  786. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  787. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +4 -2
  788. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  789. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
  790. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
  791. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +12 -18
  792. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +1 -1
  793. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  794. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  795. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +13 -11
  796. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  797. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  798. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  799. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
  800. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  801. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  802. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  803. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  804. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  805. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  806. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  807. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
  808. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  809. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  810. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  811. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +4 -2
  812. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  813. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  814. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  815. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +120 -118
  816. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  817. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  818. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  819. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +18 -16
  820. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  821. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  822. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  823. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +79 -51
  824. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  825. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +1 -1
  826. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  827. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +19 -17
  828. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  829. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  830. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  831. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +4 -2
  832. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  833. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  834. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  835. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +7 -5
  836. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  837. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  838. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  839. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +13 -11
  840. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  841. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  842. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  843. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
  844. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  845. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  846. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  847. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +79 -65
  848. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  849. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  850. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  851. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  852. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  853. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  854. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  855. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  856. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  857. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  858. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  859. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  860. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  861. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  862. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  863. package/dist/shared/src/context/PowerpackContext.es.js +8 -6
  864. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  865. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  866. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  867. package/dist/shared/src/context/ProjectContext.es.js +6 -4
  868. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  869. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  870. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  871. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  872. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  873. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  874. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  875. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  876. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  877. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  878. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  879. package/dist/shared/src/context/SubtasksModulesContext.es.js +6 -4
  880. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  881. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  882. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  883. package/dist/shared/src/context/UriContext.es.js +7 -5
  884. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  885. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  886. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  887. package/dist/shared/src/context/WebsocketContext.es.js +10 -6
  888. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  889. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  890. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  891. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  892. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  893. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  894. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  895. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  896. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  897. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  898. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  899. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  900. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  901. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  902. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  903. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  904. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  905. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  906. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  907. package/dist/shared/src/hooks/useHierarchyTable.es.js +4 -2
  908. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  909. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  910. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  911. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  912. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  913. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  914. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  915. package/dist/shared/src/hooks/useScopedTypes.es.js +4 -2
  916. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  917. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  918. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  919. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  920. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  921. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  922. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  923. package/dist/shared/src/util/columnConfigConverter.es.js +86 -65
  924. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  925. package/dist/shared/src/util/getThumbnailUrl.cjs.js +2 -0
  926. package/dist/shared/src/util/getThumbnailUrl.cjs.js.map +1 -0
  927. package/dist/shared/src/util/getThumbnailUrl.es.js +23 -0
  928. package/dist/shared/src/util/getThumbnailUrl.es.js.map +1 -0
  929. package/dist/shared/src/util/thumbnailWebsocket.cjs.js +2 -0
  930. package/dist/shared/src/util/thumbnailWebsocket.cjs.js.map +1 -0
  931. package/dist/shared/src/util/thumbnailWebsocket.es.js +54 -0
  932. package/dist/shared/src/util/thumbnailWebsocket.es.js.map +1 -0
  933. package/dist/types/api/generated/folders.d.ts +1 -6
  934. package/dist/types/api/generated/graphql.d.ts +403 -6
  935. package/dist/types/api/generated/graphqlLinks.d.ts +80 -4
  936. package/dist/types/api/queries/activities/activityQueries.d.ts +1 -0
  937. package/dist/types/api/queries/activities/getActivities.d.ts +506 -0
  938. package/dist/types/api/queries/activities/updateActivities.d.ts +116 -0
  939. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
  940. package/dist/types/api/queries/columnStats/columnStats.d.ts +28 -0
  941. package/dist/types/api/queries/columnStats/index.d.ts +2 -0
  942. package/dist/types/api/queries/columnStats/metricTargets.d.ts +31 -0
  943. package/dist/types/api/queries/entities/getEntity.d.ts +57 -0
  944. package/dist/types/api/queries/entities/getEntityPanel.d.ts +57 -0
  945. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  946. package/dist/types/api/queries/entities/updateEntity.d.ts +57 -0
  947. package/dist/types/api/queries/entityLists/getLists.d.ts +57 -0
  948. package/dist/types/api/queries/entityLists/index.d.ts +1 -0
  949. package/dist/types/api/queries/entityLists/listItemsColumnStats.d.ts +312 -0
  950. package/dist/types/api/queries/entityLists/types.d.ts +3 -0
  951. package/dist/types/api/queries/index.d.ts +1 -0
  952. package/dist/types/api/queries/overview/getOverview.d.ts +743 -1
  953. package/dist/types/api/queries/project/getProject.d.ts +57 -0
  954. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +79 -0
  955. package/dist/types/api/queries/users/getUsers.d.ts +57 -0
  956. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +848 -1
  957. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.d.ts +1 -11
  958. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +5 -0
  959. package/dist/types/components/SearchFilter/index.d.ts +1 -0
  960. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +2 -2
  961. package/dist/types/components/Thumbnail/Thumbnail.d.ts +2 -2
  962. package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +1 -1
  963. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  964. package/dist/types/containers/DetailsPanel/containers/FeedWrapper.d.ts +1 -0
  965. package/dist/types/containers/DetailsPanel/helpers/getThumbnails.d.ts +2 -2
  966. package/dist/types/containers/Feed/Feed.d.ts +2 -1
  967. package/dist/types/containers/Feed/components/ActivityDate.d.ts +1 -0
  968. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +20 -0
  969. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.d.ts +3 -0
  970. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +1 -0
  971. package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +8 -0
  972. package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +19 -0
  973. package/dist/types/containers/Feed/components/CommentInput/VersionReviewPill.d.ts +7 -0
  974. package/dist/types/containers/Feed/hooks/useCategoryData.d.ts +7 -0
  975. package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +2 -0
  976. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -0
  977. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +11 -0
  978. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -3
  979. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +2 -0
  980. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  981. package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +14 -0
  982. package/dist/types/containers/ProjectTreeTable/constants.d.ts +2 -0
  983. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -0
  984. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -1
  985. package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +0 -1
  986. package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +2 -1
  987. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  988. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  989. package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
  990. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +17 -1
  991. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +2 -0
  992. package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +50 -0
  993. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +4 -0
  994. package/dist/types/containers/ProjectTreeTable/utils/checkColumnVisibility.d.ts +2 -0
  995. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
  996. package/dist/types/containers/ProjectTreeTable/utils/pinningUtils.d.ts +6 -0
  997. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +2 -0
  998. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
  999. package/dist/types/containers/Views/hooks/useSelectedView.d.ts +2 -1
  1000. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -3
  1001. package/dist/types/util/getThumbnailUrl.d.ts +18 -0
  1002. package/dist/types/util/index.d.ts +2 -0
  1003. package/dist/types/util/thumbnailWebsocket.d.ts +21 -0
  1004. package/dist/util.cjs.js +1 -1
  1005. package/dist/util.es.js +35 -30
  1006. package/dist/util.es.js.map +1 -1
  1007. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type { FolderListItem, GetGroupedTasksListArgs, EntityGroup, QueryFilter } from '@shared/api'\nimport { useGroupedPagination } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n taskIds?: string[] // specific task IDs to filter by (from entity list slicer)\n taskFilters: QueryFilterParams // filters for tasks\n folderFilters: QueryFilterParams // filters for folders\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n taskGroupsCount?: number // override for number of items per group\n expanded: ExpandedState\n showHierarchy: boolean\n isFlatFolderView?: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n skipLinks?: boolean\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n taskIds, // specific task IDs from entity list slicer\n taskFilters,\n folderFilters,\n sorting,\n groupBy,\n taskGroups = [],\n taskGroupsCount,\n expanded,\n showHierarchy,\n isFlatFolderView = false,\n attribFields,\n modules,\n skipLinks,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n },\n { skip: !expandedParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isSelectedInSlicer = selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isSelectedInSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [folders, foldersByTaskFilter, skipFoldersByTaskFilter, expanded, selectedFolders])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n },\n { skip: skipLinks },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // In flat folder view folders are shown as top-level rows — ancestors are\n // not needed and would bring in unrelated subtrees (e.g. showing the root\n // \"assets\" node which then exposes all its children).\n // In hierarchy mode ancestors ARE needed so the tree path is navigable.\n if (!isFlatFolderView) {\n const matchedIds = [...relevantFolderIds]\n for (const folderId of matchedIds) {\n addParents(folderId)\n }\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isSelectedInSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","folderPathParts","isParentOrSelf","i","partialPath","p","isChild","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"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"}
1
+ {"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type { FolderListItem, GetGroupedTasksListArgs, EntityGroup, QueryFilter } from '@shared/api'\nimport { useGroupedPagination } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n excludeSelectedFolders?: boolean\n taskIds?: string[] // specific task IDs to filter by (from entity list slicer)\n taskFilters: QueryFilterParams // filters for tasks\n folderFilters: QueryFilterParams // filters for folders\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n taskGroupsCount?: number // override for number of items per group\n expanded: ExpandedState\n showHierarchy: boolean\n isFlatFolderView?: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n skipLinks?: boolean\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n excludeSelectedFolders = false,\n taskIds, // specific task IDs from entity list slicer\n taskFilters,\n folderFilters,\n sorting,\n groupBy,\n taskGroups = [],\n taskGroupsCount,\n expanded,\n showHierarchy,\n isFlatFolderView = false,\n attribFields,\n modules,\n skipLinks,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const taskParentIds = excludeSelectedFolders\n ? Array.from(new Set([...expandedParentIds, ...selectedFolders]))\n : expandedParentIds\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n },\n { skip: !taskParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isRootFromSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [\n folders,\n foldersByTaskFilter,\n skipFoldersByTaskFilter,\n expanded,\n selectedFolders,\n excludeSelectedFolders,\n ])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n },\n { skip: skipLinks },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // In flat folder view folders are shown as top-level rows — ancestors are\n // not needed and would bring in unrelated subtrees (e.g. showing the root\n // \"assets\" node which then exposes all its children).\n // In hierarchy mode ancestors ARE needed so the tree path is navigable.\n if (!isFlatFolderView) {\n const matchedIds = [...relevantFolderIds]\n for (const folderId of matchedIds) {\n addParents(folderId)\n }\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n const isSelected = selectedPaths.includes(folderPath)\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isChild || (isSelected && !excludeSelectedFolders)) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n excludeSelectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length\n ? Array.from(\n new Set([...foldersMap.keys(), ...(excludeSelectedFolders ? selectedFolders : [])]),\n )\n : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","taskParentIds","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFolderRelationships.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n FolderNodeMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string | undefined,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string, field?: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId || '')\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":["useFolderRelationships","tasksMap","entitiesMap","tasksByFolderMap","getEntityById","projectAttrib","attribFields","folderChildrenMap","useMemo","map","folder","parentId","getChildrenEntities","useCallback","id","descendants","queue","visited","currentId","getEntityDataById","taskIds","taskId","task","childFolderIds","getAncestorsOf","ancestors","entity","getTaskAncestors","folderAncestors","findNonInheritedValues","folderId","attribNames","result","pendingAttribs","attribName","getInheritedDependents","entities","blockedInheritanceMap","attribEntries","filteredChildren","child","e","inheritedAttribs","a","ownedAttribs","filteredInheritedAttribs","ancestor","existingEntityIndex","item","findInheritedValueFromAncestors","entityId","entityType"],"mappings":"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"}
1
+ {"version":3,"file":"useFolderRelationships.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string | undefined,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string, field?: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId || '')\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":["useFolderRelationships","tasksMap","entitiesMap","tasksByFolderMap","getEntityById","projectAttrib","attribFields","folderChildrenMap","useMemo","map","folder","parentId","getChildrenEntities","useCallback","id","descendants","queue","visited","currentId","getEntityDataById","taskIds","taskId","task","childFolderIds","getAncestorsOf","ancestors","entity","getTaskAncestors","folderAncestors","findNonInheritedValues","folderId","attribNames","result","pendingAttribs","attribName","getInheritedDependents","entities","blockedInheritanceMap","attribEntries","filteredChildren","child","e","inheritedAttribs","a","ownedAttribs","filteredInheritedAttribs","ancestor","existingEntityIndex","item","findInheritedValueFromAncestors","entityId","entityType"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFolderRelationships.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n FolderNodeMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string | undefined,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string, field?: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId || '')\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":["useFolderRelationships","tasksMap","entitiesMap","tasksByFolderMap","getEntityById","projectAttrib","attribFields","folderChildrenMap","useMemo","map","folder","parentId","getChildrenEntities","useCallback","id","descendants","queue","visited","currentId","getEntityDataById","taskIds","taskId","task","childFolderIds","getAncestorsOf","ancestors","entity","getTaskAncestors","folderAncestors","findNonInheritedValues","folderId","attribNames","result","pendingAttribs","attribName","getInheritedDependents","entities","blockedInheritanceMap","attribEntries","filteredChildren","child","e","inheritedAttribs","a","ownedAttribs","filteredInheritedAttribs","ancestor","existingEntityIndex","item","findInheritedValueFromAncestors","entityId","entityType"],"mappings":";;AAsCA,SAAwBA,EAAuB;AAAA,EAC7C,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AACF,GAAgC;AAE9B,QAAMC,IAAoBC,EAAQ,MAAM;AACtC,UAAMC,wBAAU,IAAA;AAChB,QAAI,CAACP,EAAa,QAAOO;AACzB,eAAWC,KAAUR,EAAY,UAAU;AAEzC,UAAIQ,EAAO,eAAe,SAAU;AACpC,YAAMC,IAAWD,EAAO;AACxB,MAAKC,MAEAF,EAAI,IAAIE,CAAQ,KACnBF,EAAI,IAAIE,GAAU,EAAE,GAEtBF,EAAI,IAAIE,CAAQ,EAAG,KAAKD,EAAO,EAAE;AAAA,IACnC;AACA,WAAOD;AAAA,EACT,GAAG,CAACP,CAAW,CAAC,GAEVU,IAAsBC;AAAA,IAC1B,CAACC,MAAe;AACd,YAAMC,IAAmD,CAAA,GACnDC,IAAkB,CAACF,CAAE,GACrBG,wBAAc,IAAA;AAEpB,aAAOD,EAAM,SAAS,KAAG;AACvB,cAAME,IAAYF,EAAM,MAAA;AAExB,YAAIC,EAAQ,IAAIC,CAAS,EAAG;AAI5B,YAHAD,EAAQ,IAAIC,CAAS,GAGjBA,MAAcJ,KAAMZ,GAAa;AACnC,gBAAMQ,IAASS,EAA4BD,GAAWhB,CAAW;AACjE,UAAIQ,OAAoB,KAAK,EAAE,GAAGA,GAAQ,YAAY,UAAU;AAAA,QAClE;AAGA,cAAMU,IAAUjB,GAAkB,IAAIe,CAAS;AAC/C,YAAIE,GAAS,UAAUlB;AACrB,qBAAWmB,KAAUD,GAAS;AAC5B,kBAAME,IAAOH,EAA0BE,GAAQnB,CAAW;AAC1D,YAAIoB,OAAkB,KAAK,EAAE,GAAGA,GAAM,YAAY,QAAQ;AAAA,UAC5D;AAIF,cAAMC,IAAiBhB,EAAkB,IAAIW,CAAS;AACtD,QAAIK,GAAgB,UAClBP,EAAM,KAAK,GAAGO,CAAc;AAAA,MAEhC;AAEA,aAAOR;AAAA,IACT;AAAA,IACA,CAACb,GAAaC,GAAkBD,GAAaK,CAAiB;AAAA,EAAA,GAI1DiB,IAAiCX;AAAA,IACrC,CAACC,MAAO;AACN,YAAMW,IAAsB,CAAA;AAC5B,UAAIP,IAAYJ;AAEhB,iBAAa;AACX,cAAMY,IAASxB,KAAeiB,EAA4BD,GAAWhB,CAAW;AAChF,YAAI,CAACwB,KAAU,CAACA,EAAO,SAAU;AAEjC,QAAAD,EAAU,KAAKC,EAAO,QAAQ,GAC9BR,IAAYQ,EAAO;AAAA,MACrB;AAEA,aAAOD;AAAA,IACT;AAAA,IACA,CAACvB,CAAW;AAAA,EAAA,GAIRyB,IAAmBd;AAAA,IACvB,CAACQ,MAA6B;AAC5B,YAAMC,IAAOrB,GAAU,IAAIoB,CAAM;AACjC,UAAI,CAACC,KAAQ,CAACA,EAAK,iBAAiB,CAAA;AAGpC,YAAMG,IAAY,CAACH,EAAK,QAAQ,GAG1BM,IAAkBJ,EAAeF,EAAK,QAAQ;AACpD,aAAAG,EAAU,KAAK,GAAGG,CAAe,GAE1BH;AAAA,IACT;AAAA,IACA,CAACxB,GAAUuB,CAAc;AAAA,EAAA,GAIrBK,IAAiDhB;AAAA,IACrD,CAACiB,GAAUC,MAAgB;AACzB,UAAI,CAACA,EAAY,OAAQ,QAAO,CAAA;AAEhC,YAAMC,IAA8B,CAAA,GAC9BC,IAAiB,IAAI,IAAIF,CAAW;AAG1C,UAAIb,IAAYY;AAIhB,aAAOG,EAAe,OAAO,KAAG;AAC9B,cAAMvB,IAASN,EAAcc,KAAa,EAAE;AAC5C,YAAI,CAACR,KAAU,CAACQ,GAAW;AAEzB,qBAAWgB,KAAcD;AACvB,YAAI5B,KAAiB6B,KAAc7B,MAEjC2B,EAAOE,CAAU,IAAI7B,EAAc6B,CAAU,GAC7CD,EAAe,OAAOC,CAAU;AAKpC;AAAA,QACF;AAGA,mBAAWA,KAAc,MAAM,KAAKD,CAAc;AAChD,UACEvB,EAAO,WAAW,SAASwB,CAAU,KACrCxB,EAAO,UACPwB,KAAcxB,EAAO,WAGrBsB,EAAOE,CAAU,IAAIxB,EAAO,OAAOwB,CAAU,GAC7CD,EAAe,OAAOC,CAAU;AAKpC,QAAAhB,IAAYR,EAAO;AAAA,MACrB;AAGA,iBAAWwB,KAAcD;AACvB,QAAAD,EAAOE,CAAU,IAAI;AAGvB,aAAOF;AAAA,IACT;AAAA,IACA,CAAC5B,CAAa;AAAA,EAAA,GAIV+B,IAAiDtB;AAAA,IACrD,CAACuB,MAAa;AAEZ,UAAI,CAACA,EAAS,OAAQ,QAAO,CAAA;AAG7B,YAAMJ,IAA+B,CAAA,GAG/BK,wBAA4B,IAAA;AAElC,iBAAWX,KAAUU,GAAU;AAE7B,YAAIV,EAAO,eAAe,SAAU;AAEpC,cAAMY,IAAgB,OAAO,QAAQZ,EAAO,MAAM;AAClD,YAAI,CAACY,EAAc,OAAQ;AAK3B,cAAMC,IAHW3B,EAAoBc,EAAO,QAAQ,EAGlB;AAAA,UAChC,CAACc,MAAU,CAACJ,EAAS,KAAK,CAACK,MAAMA,EAAE,aAAaD,EAAM,EAAE;AAAA,QAAA;AAG1D,YAAKD,EAAiB;AAEtB,qBAAWC,KAASD,GAAkB;AAEpC,kBAAMG,IAAmBJ,EAAc;AAAA,cACrC,CAAC,CAACJ,CAAU,MACV,CAACM,EAAM,WAAW,SAASN,CAAU,KACrC5B,GAAc,KAAK,CAACqC,MAAMA,EAAE,SAAST,CAAU,GAAG,MAAM;AAAA,YAAA,GAItDU,IAAeN,EAAc;AAAA,cAAO,CAAC,CAACJ,CAAU,MACpDM,EAAM,WAAW,SAASN,CAAU;AAAA,YAAA;AAItC,YAAIU,EAAa,WACVP,EAAsB,IAAIG,EAAM,EAAE,KACrCH,EAAsB,IAAIG,EAAM,IAAI,oBAAI,KAAK,GAE/CI,EAAa,QAAQ,CAAC,CAACV,CAAU,MAAM;AACrC,cAAAG,EAAsB,IAAIG,EAAM,EAAE,EAAG,IAAIN,CAAU;AAAA,YACrD,CAAC;AAIH,kBAAMW,IAA2BH,EAAiB,OAAO,CAAC,CAACR,CAAU,MAAM;AAEzE,oBAAMT,IACJe,EAAM,eAAe,SAASb,EAAiBa,EAAM,EAAE,IAAIhB,EAAegB,EAAM,EAAE;AAGpF,yBAAWM,KAAYrB;AACrB,oBACEY,EAAsB,IAAIS,CAAQ,KAClCT,EAAsB,IAAIS,CAAQ,EAAG,IAAIZ,CAAU;AAEnD,yBAAO;AAGX,qBAAO;AAAA,YACT,CAAC;AAED,gBAAIW,EAAyB,QAAQ;AAEnC,oBAAME,IAAsBf,EAAO,UAAU,CAACgB,MAASA,EAAK,aAAaR,EAAM,EAAE;AAEjF,cAAIO,MAAwB,KAE1Bf,EAAOe,CAAmB,EAAE,SAAS;AAAA,gBACnC,GAAGf,EAAOe,CAAmB,EAAE;AAAA,gBAC/B,GAAG,OAAO,YAAYF,CAAwB;AAAA,cAAA,IAIhDb,EAAO,KAAK;AAAA,gBACV,UAAUQ,EAAM;AAAA,gBAChB,YAAYA,EAAM,eAAe,cAAcA,IAAQ,WAAW;AAAA,gBAClE,QAAQ,OAAO,YAAYK,CAAwB;AAAA,cAAA,CACpD;AAAA,YAEL;AAAA,UACF;AAAA,MACF;AAIA,aAAOb;AAAA,IACT;AAAA,IACA,CAACpB,GAAqBX,GAAU0B,GAAkBH,CAAc;AAAA,EAAA,GAI5DyB,IAAkCpC;AAAA,IACtC,CAACqC,GAAUC,GAAYjB,MAAe;AACpC,YAAMR,IAAStB,EAAc8C,CAAQ;AACrC,UAAI,CAACxB,EAAQ,QAAO;AAGpB,UAAIR,IAAYiC,MAAe,SAASzB,EAAO,WAAWA,EAAO;AAGjE,aAAOR,KAAW;AAChB,cAAM4B,IAAW1C,EAAcc,CAAS;AACxC,YAAI,CAAC4B,EAAU;AAGf,YACEA,EAAS,WAAW,SAASZ,CAAU,KACvCY,EAAS,UACTZ,KAAcY,EAAS;AAEvB,iBAAOA,EAAS,OAAOZ,CAAU;AAInC,QAAAhB,IAAY4B,EAAS;AAAA,MACvB;AAGA,aAAO;AAAA,IACT;AAAA,IACA,CAAC1C,CAAa;AAAA,EAAA;AAGhB,SAAO;AAAA,IACL,mBAAAG;AAAA,IACA,qBAAAK;AAAA,IACA,wBAAAuB;AAAA,IACA,iCAAAc;AAAA,IACA,wBAAApB;AAAA,IACA,gBAAAL;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useFolderRelationships.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string | undefined,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string, field?: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId || '')\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":["useFolderRelationships","tasksMap","entitiesMap","tasksByFolderMap","getEntityById","projectAttrib","attribFields","folderChildrenMap","useMemo","map","folder","parentId","getChildrenEntities","useCallback","id","descendants","queue","visited","currentId","getEntityDataById","taskIds","taskId","task","childFolderIds","getAncestorsOf","ancestors","entity","getTaskAncestors","folderAncestors","findNonInheritedValues","folderId","attribNames","result","pendingAttribs","attribName","getInheritedDependents","entities","blockedInheritanceMap","attribEntries","filteredChildren","child","e","inheritedAttribs","a","ownedAttribs","filteredInheritedAttribs","ancestor","existingEntityIndex","item","findInheritedValueFromAncestors","entityId","entityType"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");require("react-toastify");require("lodash");const u=require("../../../util/getAttributeIcon.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");const p=require("../context/ProjectTableContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");const b=require("../context/ColumnSettingsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const a=["string","integer","float"],l=(r,q,i,t)=>(i||a).includes(r.data.type)&&(!q||r.scope?.includes(q))?t?!!r.data.enum&&r.data.enum.length>0:!0:!1,g=({allowedTypes:r,enumOnly:q,scope:i})=>{const{columnOrder:t}=b.useColumnSettingsContext(),{attribFields:s}=p.useProjectTableContext();return d.useMemo(()=>[{value:"folderType",label:"Folder type",icon:u.getAttributeIcon("folder"),scopes:["folder","task"]},{value:"taskType",label:"Task type",icon:u.getAttributeIcon("task"),scopes:["task","version"]},{value:"productType",label:"Product type",icon:u.getAttributeIcon("product"),scopes:["product","version"]},{value:"assignees",label:"Assignee",icon:u.getAttributeIcon("assignees"),scopes:["task"]},{value:"status",label:"Status",icon:u.getAttributeIcon("status"),scopes:["task","version","folder","product"]},{value:"tags",label:"Tags",icon:u.getAttributeIcon("tags"),scopes:["task","version","folder","product"]},...s.filter(e=>l(e,i,r,q)).map(e=>({value:"attrib."+e.name,label:e.data.title||e.name,icon:u.getAttributeIcon(e.name)}))].filter(e=>!i||("scopes"in e?e.scopes.includes(i):!0)).sort((e,c)=>{const o=t.indexOf(e.value),n=t.indexOf(c.value);return o===-1&&n===-1?0:o===-1?1:n===-1?-1:o-n}),[s,t,r,q,i])};exports.allowedGroupByFields=a;exports.isAttribGroupable=l;exports.useGetGroupedFields=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");require("react-toastify");require("lodash");const u=require("../../../util/getAttributeIcon.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");const p=require("../context/ProjectTableContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../components/TableFooterRow.cjs.js");require("../context/SelectedRowsContext.cjs.js");const b=require("../context/ColumnSettingsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const a=["string","integer","float"],l=(r,q,i,t)=>(i||a).includes(r.data.type)&&(!q||r.scope?.includes(q))?t?!!r.data.enum&&r.data.enum.length>0:!0:!1,g=({allowedTypes:r,enumOnly:q,scope:i})=>{const{columnOrder:t}=b.useColumnSettingsContext(),{attribFields:s}=p.useProjectTableContext();return d.useMemo(()=>[{value:"folderType",label:"Folder type",icon:u.getAttributeIcon("folder"),scopes:["folder","task"]},{value:"taskType",label:"Task type",icon:u.getAttributeIcon("task"),scopes:["task","version"]},{value:"productType",label:"Product type",icon:u.getAttributeIcon("product"),scopes:["product","version"]},{value:"assignees",label:"Assignee",icon:u.getAttributeIcon("assignees"),scopes:["task"]},{value:"status",label:"Status",icon:u.getAttributeIcon("status"),scopes:["task","version","folder","product"]},{value:"tags",label:"Tags",icon:u.getAttributeIcon("tags"),scopes:["task","version","folder","product"]},...s.filter(e=>l(e,i,r,q)).map(e=>({value:"attrib."+e.name,label:e.data.title||e.name,icon:u.getAttributeIcon(e.name)}))].filter(e=>!i||("scopes"in e?e.scopes.includes(i):!0)).sort((e,c)=>{const o=t.indexOf(e.value),n=t.indexOf(c.value);return o===-1&&n===-1?0:o===-1?1:n===-1?-1:o-n}),[s,t,r,q,i])};exports.allowedGroupByFields=a;exports.isAttribGroupable=l;exports.useGetGroupedFields=g;
2
2
  //# sourceMappingURL=useGetGroupedFields.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType?: string,\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType =\n typesToCheck.includes(attrib.data.type) &&\n (!entityType || attrib.scope?.includes(entityType as (typeof attrib.scope)[0]))\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = ({\n allowedTypes,\n enumOnly,\n scope,\n}: {\n allowedTypes?: ('string' | 'integer' | 'float')[]\n enumOnly?: boolean\n scope?: string\n}) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'folderType',\n label: 'Folder type',\n icon: getAttributeIcon('folder'),\n scopes: ['folder', 'task'],\n },\n {\n value: 'taskType',\n label: 'Task type',\n icon: getAttributeIcon('task'),\n scopes: ['task', 'version'],\n },\n {\n value: 'productType',\n label: 'Product type',\n icon: getAttributeIcon('product'),\n scopes: ['product', 'version'],\n },\n // {\n // value: 'version',\n // label: 'Version',\n // icon: getAttributeIcon('version'),\n // scopes: ['version'],\n // },\n // {\n // value: 'author',\n // label: 'Author',\n // icon: getAttributeIcon('author'),\n // scopes: ['version'],\n // },\n {\n value: 'assignees',\n label: 'Assignee',\n icon: getAttributeIcon('assignees'),\n scopes: ['task'],\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, scope, allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ]\n .filter((field) => !scope || ('scopes' in field ? field.scopes.includes(scope) : true))\n .sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly, scope],\n )\n}\n"],"names":["allowedGroupByFields","isAttribGroupable","attrib","entityType","allowedTypes","enumOnly","useGetGroupedFields","scope","columnOrder","useColumnSettingsContext","attribFields","useProjectTableContext","useMemo","getAttributeIcon","field","a","b","indexA","indexB"],"mappings":"ingBAMO,MAAMA,EAAuB,CAAC,SAAU,UAAW,OAAO,EACpDC,EAAoB,CAC/BC,EACAC,EACAC,EACAC,KAEqBD,GAAgBJ,GAEtB,SAASE,EAAO,KAAK,IAAI,IACrC,CAACC,GAAcD,EAAO,OAAO,SAASC,CAAsC,GAG3EE,EAAiB,CAAC,CAACH,EAAO,KAAK,MAAQA,EAAO,KAAK,KAAK,OAAS,EAE9D,GAHmB,GAMfI,EAAsB,CAAC,CAClC,aAAAF,EACA,SAAAC,EACA,MAAAE,CACF,IAIM,CACJ,KAAM,CAAE,YAAAC,CAAA,EAAgBC,2BAAA,EAClB,CAAE,aAAAC,CAAA,EAAiBC,yBAAA,EAEzB,OAAOC,EAAAA,QACL,IACE,CACE,CACE,MAAO,aACP,MAAO,cACP,KAAMC,EAAAA,iBAAiB,QAAQ,EAC/B,OAAQ,CAAC,SAAU,MAAM,CAAA,EAE3B,CACE,MAAO,WACP,MAAO,YACP,KAAMA,EAAAA,iBAAiB,MAAM,EAC7B,OAAQ,CAAC,OAAQ,SAAS,CAAA,EAE5B,CACE,MAAO,cACP,MAAO,eACP,KAAMA,EAAAA,iBAAiB,SAAS,EAChC,OAAQ,CAAC,UAAW,SAAS,CAAA,EAc/B,CACE,MAAO,YACP,MAAO,WACP,KAAMA,EAAAA,iBAAiB,WAAW,EAClC,OAAQ,CAAC,MAAM,CAAA,EAEjB,CACE,MAAO,SACP,MAAO,SACP,KAAMA,EAAAA,iBAAiB,QAAQ,EAC/B,OAAQ,CAAC,OAAQ,UAAW,SAAU,SAAS,CAAA,EAEjD,CACE,MAAO,OACP,MAAO,OACP,KAAMA,EAAAA,iBAAiB,MAAM,EAC7B,OAAQ,CAAC,OAAQ,UAAW,SAAU,SAAS,CAAA,EAEjD,GAAGH,EACA,OAAQR,GAAWD,EAAkBC,EAAQK,EAAOH,EAAcC,CAAQ,CAAC,EAC3E,IAAKS,IAAW,CACf,MAAO,UAAYA,EAAM,KACzB,MAAOA,EAAM,KAAK,OAASA,EAAM,KACjC,KAAMD,EAAAA,iBAAiBC,EAAM,IAAI,CAAA,EACjC,CAAA,EAEH,OAAQA,GAAU,CAACP,IAAU,WAAYO,EAAQA,EAAM,OAAO,SAASP,CAAK,EAAI,GAAK,EACrF,KAAK,CAACQ,EAAGC,IAAM,CACd,MAAMC,EAAST,EAAY,QAAQO,EAAE,KAAK,EACpCG,EAASV,EAAY,QAAQQ,EAAE,KAAK,EAC1C,OAAIC,IAAW,IAAMC,IAAW,GAAW,EACvCD,IAAW,GAAW,EACtBC,IAAW,GAAW,GACnBD,EAASC,CAClB,CAAC,EACL,CAACR,EAAcF,EAAaJ,EAAcC,EAAUE,CAAK,CAAA,CAE7D"}
1
+ {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType?: string,\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType =\n typesToCheck.includes(attrib.data.type) &&\n (!entityType || attrib.scope?.includes(entityType as (typeof attrib.scope)[0]))\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = ({\n allowedTypes,\n enumOnly,\n scope,\n}: {\n allowedTypes?: ('string' | 'integer' | 'float')[]\n enumOnly?: boolean\n scope?: string\n}) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'folderType',\n label: 'Folder type',\n icon: getAttributeIcon('folder'),\n scopes: ['folder', 'task'],\n },\n {\n value: 'taskType',\n label: 'Task type',\n icon: getAttributeIcon('task'),\n scopes: ['task', 'version'],\n },\n {\n value: 'productType',\n label: 'Product type',\n icon: getAttributeIcon('product'),\n scopes: ['product', 'version'],\n },\n // {\n // value: 'version',\n // label: 'Version',\n // icon: getAttributeIcon('version'),\n // scopes: ['version'],\n // },\n // {\n // value: 'author',\n // label: 'Author',\n // icon: getAttributeIcon('author'),\n // scopes: ['version'],\n // },\n {\n value: 'assignees',\n label: 'Assignee',\n icon: getAttributeIcon('assignees'),\n scopes: ['task'],\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, scope, allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ]\n .filter((field) => !scope || ('scopes' in field ? field.scopes.includes(scope) : true))\n .sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly, scope],\n )\n}\n"],"names":["allowedGroupByFields","isAttribGroupable","attrib","entityType","allowedTypes","enumOnly","useGetGroupedFields","scope","columnOrder","useColumnSettingsContext","attribFields","useProjectTableContext","useMemo","getAttributeIcon","field","a","b","indexA","indexB"],"mappings":"o4gBAMO,MAAMA,EAAuB,CAAC,SAAU,UAAW,OAAO,EACpDC,EAAoB,CAC/BC,EACAC,EACAC,EACAC,KAEqBD,GAAgBJ,GAEtB,SAASE,EAAO,KAAK,IAAI,IACrC,CAACC,GAAcD,EAAO,OAAO,SAASC,CAAsC,GAG3EE,EAAiB,CAAC,CAACH,EAAO,KAAK,MAAQA,EAAO,KAAK,KAAK,OAAS,EAE9D,GAHmB,GAMfI,EAAsB,CAAC,CAClC,aAAAF,EACA,SAAAC,EACA,MAAAE,CACF,IAIM,CACJ,KAAM,CAAE,YAAAC,CAAA,EAAgBC,2BAAA,EAClB,CAAE,aAAAC,CAAA,EAAiBC,yBAAA,EAEzB,OAAOC,EAAAA,QACL,IACE,CACE,CACE,MAAO,aACP,MAAO,cACP,KAAMC,EAAAA,iBAAiB,QAAQ,EAC/B,OAAQ,CAAC,SAAU,MAAM,CAAA,EAE3B,CACE,MAAO,WACP,MAAO,YACP,KAAMA,EAAAA,iBAAiB,MAAM,EAC7B,OAAQ,CAAC,OAAQ,SAAS,CAAA,EAE5B,CACE,MAAO,cACP,MAAO,eACP,KAAMA,EAAAA,iBAAiB,SAAS,EAChC,OAAQ,CAAC,UAAW,SAAS,CAAA,EAc/B,CACE,MAAO,YACP,MAAO,WACP,KAAMA,EAAAA,iBAAiB,WAAW,EAClC,OAAQ,CAAC,MAAM,CAAA,EAEjB,CACE,MAAO,SACP,MAAO,SACP,KAAMA,EAAAA,iBAAiB,QAAQ,EAC/B,OAAQ,CAAC,OAAQ,UAAW,SAAU,SAAS,CAAA,EAEjD,CACE,MAAO,OACP,MAAO,OACP,KAAMA,EAAAA,iBAAiB,MAAM,EAC7B,OAAQ,CAAC,OAAQ,UAAW,SAAU,SAAS,CAAA,EAEjD,GAAGH,EACA,OAAQR,GAAWD,EAAkBC,EAAQK,EAAOH,EAAcC,CAAQ,CAAC,EAC3E,IAAKS,IAAW,CACf,MAAO,UAAYA,EAAM,KACzB,MAAOA,EAAM,KAAK,OAASA,EAAM,KACjC,KAAMD,EAAAA,iBAAiBC,EAAM,IAAI,CAAA,EACjC,CAAA,EAEH,OAAQA,GAAU,CAACP,IAAU,WAAYO,EAAQA,EAAM,OAAO,SAASP,CAAK,EAAI,GAAK,EACrF,KAAK,CAACQ,EAAGC,IAAM,CACd,MAAMC,EAAST,EAAY,QAAQO,EAAE,KAAK,EACpCG,EAASV,EAAY,QAAQQ,EAAE,KAAK,EAC1C,OAAIC,IAAW,IAAMC,IAAW,GAAW,EACvCD,IAAW,GAAW,EACtBC,IAAW,GAAW,GACnBD,EAASC,CAClB,CAAC,EACL,CAACR,EAAcF,EAAaJ,EAAcC,EAAUE,CAAK,CAAA,CAE7D"}
@@ -86,6 +86,7 @@ import "../../../api/queries/attributes/getAttributes.es.js";
86
86
  import "../../../api/queries/attributes/updateAttributes.es.js";
87
87
  import "../../../api/queries/authentication/getAuthentication.es.js";
88
88
  import "../../../api/queries/cloud/cloud.es.js";
89
+ import "../../../api/queries/columnStats/metricTargets.es.js";
89
90
  import "../../../api/queries/config/getConfig.es.js";
90
91
  import "../../../api/queries/config/updateConfig.es.js";
91
92
  import "../../../api/queries/entities/getEntity.es.js";
@@ -98,6 +99,7 @@ import "../../../api/queries/entities/updateEntity.es.js";
98
99
  import "../../../api/queries/entityLists/getLists.es.js";
99
100
  import "../../../api/queries/entityLists/updateLists.es.js";
100
101
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
102
+ import "../../../api/queries/entityLists/listItemsColumnStats.es.js";
101
103
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
102
104
  import "../../../api/queries/entityLists/listFolders.es.js";
103
105
  import "../../../api/queries/folders/getFolders.es.js";
@@ -202,10 +204,11 @@ import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.e
202
204
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
203
205
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
204
206
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
205
- import "../../Feed/Feed.styled.es.js";
206
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
207
+ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js";
207
208
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
208
209
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
210
+ import "../../Feed/Feed.styled.es.js";
211
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
209
212
  import "@tanstack/react-virtual";
210
213
  import "../ProjectTreeTable.styled.es.js";
211
214
  import "../components/HeaderActionButton.es.js";
@@ -217,6 +220,7 @@ import "../components/DeleteConfirmContent.es.js";
217
220
  import "../context/ClipboardContext.es.js";
218
221
  import "../context/SelectionCellsContext.es.js";
219
222
  import "../context/ProjectDataContext.es.js";
223
+ import "../components/TableFooterRow.es.js";
220
224
  import "../context/SelectedRowsContext.es.js";
221
225
  import { useColumnSettingsContext as c } from "../context/ColumnSettingsContext.es.js";
222
226
  import "../context/DetailsPanelEntityContext.es.js";
@@ -281,7 +285,7 @@ import "../../../components/ColumnHeaderMenuUI.es.js";
281
285
  import "../widgets/EmptyWidget.es.js";
282
286
  import "../widgets/ErrorWidget.es.js";
283
287
  import "../widgets/LoadMoreWidget.es.js";
284
- const d = ["string", "integer", "float"], f = (o, p, i, m) => (i || d).includes(o.data.type) && (!p || o.scope?.includes(p)) ? m ? !!o.data.enum && o.data.enum.length > 0 : !0 : !1, Pp = ({
288
+ const d = ["string", "integer", "float"], f = (o, p, i, m) => (i || d).includes(o.data.type) && (!p || o.scope?.includes(p)) ? m ? !!o.data.enum && o.data.enum.length > 0 : !0 : !1, Ip = ({
285
289
  allowedTypes: o,
286
290
  enumOnly: p,
287
291
  scope: i
@@ -352,6 +356,6 @@ const d = ["string", "integer", "float"], f = (o, p, i, m) => (i || d).includes(
352
356
  export {
353
357
  d as allowedGroupByFields,
354
358
  f as isAttribGroupable,
355
- Pp as useGetGroupedFields
359
+ Ip as useGetGroupedFields
356
360
  };
357
361
  //# sourceMappingURL=useGetGroupedFields.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType?: string,\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType =\n typesToCheck.includes(attrib.data.type) &&\n (!entityType || attrib.scope?.includes(entityType as (typeof attrib.scope)[0]))\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = ({\n allowedTypes,\n enumOnly,\n scope,\n}: {\n allowedTypes?: ('string' | 'integer' | 'float')[]\n enumOnly?: boolean\n scope?: string\n}) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'folderType',\n label: 'Folder type',\n icon: getAttributeIcon('folder'),\n scopes: ['folder', 'task'],\n },\n {\n value: 'taskType',\n label: 'Task type',\n icon: getAttributeIcon('task'),\n scopes: ['task', 'version'],\n },\n {\n value: 'productType',\n label: 'Product type',\n icon: getAttributeIcon('product'),\n scopes: ['product', 'version'],\n },\n // {\n // value: 'version',\n // label: 'Version',\n // icon: getAttributeIcon('version'),\n // scopes: ['version'],\n // },\n // {\n // value: 'author',\n // label: 'Author',\n // icon: getAttributeIcon('author'),\n // scopes: ['version'],\n // },\n {\n value: 'assignees',\n label: 'Assignee',\n icon: getAttributeIcon('assignees'),\n scopes: ['task'],\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, scope, allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ]\n .filter((field) => !scope || ('scopes' in field ? field.scopes.includes(scope) : true))\n .sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly, scope],\n )\n}\n"],"names":["allowedGroupByFields","isAttribGroupable","attrib","entityType","allowedTypes","enumOnly","useGetGroupedFields","scope","columnOrder","useColumnSettingsContext","attribFields","useProjectTableContext","useMemo","getAttributeIcon","field","a","b","indexA","indexB"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAMA,IAAuB,CAAC,UAAU,WAAW,OAAO,GACpDC,IAAoB,CAC/BC,GACAC,GACAC,GACAC,OAEqBD,KAAgBJ,GAEtB,SAASE,EAAO,KAAK,IAAI,MACrC,CAACC,KAAcD,EAAO,OAAO,SAASC,CAAsC,KAG3EE,IAAiB,CAAC,CAACH,EAAO,KAAK,QAAQA,EAAO,KAAK,KAAK,SAAS,IAE9D,KAHmB,IAMfI,KAAsB,CAAC;AAAA,EAClC,cAAAF;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AACF,MAIM;AACJ,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAClB,EAAE,cAAAC,EAAA,IAAiBC,EAAA;AAEzB,SAAOC;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,EAAiB,QAAQ;AAAA,QAC/B,QAAQ,CAAC,UAAU,MAAM;AAAA,MAAA;AAAA,MAE3B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,MAAM;AAAA,QAC7B,QAAQ,CAAC,QAAQ,SAAS;AAAA,MAAA;AAAA,MAE5B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,SAAS;AAAA,QAChC,QAAQ,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAc/B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,WAAW;AAAA,QAClC,QAAQ,CAAC,MAAM;AAAA,MAAA;AAAA,MAEjB;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,QAAQ;AAAA,QAC/B,QAAQ,CAAC,QAAQ,WAAW,UAAU,SAAS;AAAA,MAAA;AAAA,MAEjD;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,MAAM;AAAA,QAC7B,QAAQ,CAAC,QAAQ,WAAW,UAAU,SAAS;AAAA,MAAA;AAAA,MAEjD,GAAGH,EACA,OAAO,CAACR,MAAWD,EAAkBC,GAAQK,GAAOH,GAAcC,CAAQ,CAAC,EAC3E,IAAI,CAACS,OAAW;AAAA,QACf,OAAO,YAAYA,EAAM;AAAA,QACzB,OAAOA,EAAM,KAAK,SAASA,EAAM;AAAA,QACjC,MAAMD,EAAiBC,EAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EAEH,OAAO,CAACA,MAAU,CAACP,MAAU,YAAYO,IAAQA,EAAM,OAAO,SAASP,CAAK,IAAI,GAAK,EACrF,KAAK,CAACQ,GAAGC,MAAM;AACd,YAAMC,IAAST,EAAY,QAAQO,EAAE,KAAK,GACpCG,IAASV,EAAY,QAAQQ,EAAE,KAAK;AAC1C,aAAIC,MAAW,MAAMC,MAAW,KAAW,IACvCD,MAAW,KAAW,IACtBC,MAAW,KAAW,KACnBD,IAASC;AAAA,IAClB,CAAC;AAAA,IACL,CAACR,GAAcF,GAAaJ,GAAcC,GAAUE,CAAK;AAAA,EAAA;AAE7D;"}
1
+ {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType?: string,\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType =\n typesToCheck.includes(attrib.data.type) &&\n (!entityType || attrib.scope?.includes(entityType as (typeof attrib.scope)[0]))\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = ({\n allowedTypes,\n enumOnly,\n scope,\n}: {\n allowedTypes?: ('string' | 'integer' | 'float')[]\n enumOnly?: boolean\n scope?: string\n}) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'folderType',\n label: 'Folder type',\n icon: getAttributeIcon('folder'),\n scopes: ['folder', 'task'],\n },\n {\n value: 'taskType',\n label: 'Task type',\n icon: getAttributeIcon('task'),\n scopes: ['task', 'version'],\n },\n {\n value: 'productType',\n label: 'Product type',\n icon: getAttributeIcon('product'),\n scopes: ['product', 'version'],\n },\n // {\n // value: 'version',\n // label: 'Version',\n // icon: getAttributeIcon('version'),\n // scopes: ['version'],\n // },\n // {\n // value: 'author',\n // label: 'Author',\n // icon: getAttributeIcon('author'),\n // scopes: ['version'],\n // },\n {\n value: 'assignees',\n label: 'Assignee',\n icon: getAttributeIcon('assignees'),\n scopes: ['task'],\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n scopes: ['task', 'version', 'folder', 'product'],\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, scope, allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ]\n .filter((field) => !scope || ('scopes' in field ? field.scopes.includes(scope) : true))\n .sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly, scope],\n )\n}\n"],"names":["allowedGroupByFields","isAttribGroupable","attrib","entityType","allowedTypes","enumOnly","useGetGroupedFields","scope","columnOrder","useColumnSettingsContext","attribFields","useProjectTableContext","useMemo","getAttributeIcon","field","a","b","indexA","indexB"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAMA,IAAuB,CAAC,UAAU,WAAW,OAAO,GACpDC,IAAoB,CAC/BC,GACAC,GACAC,GACAC,OAEqBD,KAAgBJ,GAEtB,SAASE,EAAO,KAAK,IAAI,MACrC,CAACC,KAAcD,EAAO,OAAO,SAASC,CAAsC,KAG3EE,IAAiB,CAAC,CAACH,EAAO,KAAK,QAAQA,EAAO,KAAK,KAAK,SAAS,IAE9D,KAHmB,IAMfI,KAAsB,CAAC;AAAA,EAClC,cAAAF;AAAA,EACA,UAAAC;AAAA,EACA,OAAAE;AACF,MAIM;AACJ,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAClB,EAAE,cAAAC,EAAA,IAAiBC,EAAA;AAEzB,SAAOC;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,EAAiB,QAAQ;AAAA,QAC/B,QAAQ,CAAC,UAAU,MAAM;AAAA,MAAA;AAAA,MAE3B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,MAAM;AAAA,QAC7B,QAAQ,CAAC,QAAQ,SAAS;AAAA,MAAA;AAAA,MAE5B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,SAAS;AAAA,QAChC,QAAQ,CAAC,WAAW,SAAS;AAAA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAc/B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,WAAW;AAAA,QAClC,QAAQ,CAAC,MAAM;AAAA,MAAA;AAAA,MAEjB;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,QAAQ;AAAA,QAC/B,QAAQ,CAAC,QAAQ,WAAW,UAAU,SAAS;AAAA,MAAA;AAAA,MAEjD;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,EAAiB,MAAM;AAAA,QAC7B,QAAQ,CAAC,QAAQ,WAAW,UAAU,SAAS;AAAA,MAAA;AAAA,MAEjD,GAAGH,EACA,OAAO,CAACR,MAAWD,EAAkBC,GAAQK,GAAOH,GAAcC,CAAQ,CAAC,EAC3E,IAAI,CAACS,OAAW;AAAA,QACf,OAAO,YAAYA,EAAM;AAAA,QACzB,OAAOA,EAAM,KAAK,SAASA,EAAM;AAAA,QACjC,MAAMD,EAAiBC,EAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EAEH,OAAO,CAACA,MAAU,CAACP,MAAU,YAAYO,IAAQA,EAAM,OAAO,SAASP,CAAK,IAAI,GAAK,EACrF,KAAK,CAACQ,GAAGC,MAAM;AACd,YAAMC,IAAST,EAAY,QAAQO,EAAE,KAAK,GACpCG,IAASV,EAAY,QAAQQ,EAAE,KAAK;AAC1C,aAAIC,MAAW,MAAMC,MAAW,KAAW,IACvCD,MAAW,KAAW,IACtBC,MAAW,KAAW,KACnBD,IAASC;AAAA,IAClB,CAAC;AAAA,IACL,CAACR,GAAcF,GAAaJ,GAAcC,GAAUE,CAAK;AAAA,EAAA;AAE7D;"}