@ynput/ayon-frontend-shared 0.3.45 → 0.3.47

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 (767) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +38 -35
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +231 -228
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +193 -25
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/Views.cjs.js +1 -1
  11. package/dist/Views.es.js +27 -26
  12. package/dist/_virtual/index.cjs15.js +1 -1
  13. package/dist/_virtual/index.cjs18.js +1 -1
  14. package/dist/_virtual/index.cjs19.js +1 -1
  15. package/dist/_virtual/index.cjs22.js +1 -1
  16. package/dist/_virtual/index.cjs23.js +1 -1
  17. package/dist/_virtual/index.cjs24.js +1 -1
  18. package/dist/_virtual/index.cjs4.js +1 -1
  19. package/dist/_virtual/index.cjs5.js +1 -1
  20. package/dist/_virtual/index.cjs6.js +1 -1
  21. package/dist/_virtual/index.cjs8.js +1 -1
  22. package/dist/_virtual/index.cjs9.js +1 -1
  23. package/dist/_virtual/index.es10.js +2 -2
  24. package/dist/_virtual/index.es11.js +2 -2
  25. package/dist/_virtual/index.es13.js +2 -2
  26. package/dist/_virtual/index.es14.js +2 -2
  27. package/dist/_virtual/index.es15.js +2 -2
  28. package/dist/_virtual/index.es16.js +2 -2
  29. package/dist/_virtual/index.es17.js +2 -2
  30. package/dist/_virtual/index.es18.js +5 -2
  31. package/dist/_virtual/index.es18.js.map +1 -1
  32. package/dist/_virtual/index.es19.js +2 -2
  33. package/dist/_virtual/index.es22.js +3 -3
  34. package/dist/_virtual/index.es23.js +5 -5
  35. package/dist/_virtual/index.es24.js +5 -5
  36. package/dist/_virtual/index.es4.js +5 -2
  37. package/dist/_virtual/index.es4.js.map +1 -1
  38. package/dist/_virtual/index.es5.js +2 -5
  39. package/dist/_virtual/index.es5.js.map +1 -1
  40. package/dist/_virtual/index.es6.js +2 -2
  41. package/dist/_virtual/index.es8.js +2 -5
  42. package/dist/_virtual/index.es8.js.map +1 -1
  43. package/dist/_virtual/index.es9.js +2 -2
  44. package/dist/api.cjs.js +1 -1
  45. package/dist/api.es.js +347 -344
  46. package/dist/api.es.js.map +1 -1
  47. package/dist/components.cjs.js +1 -1
  48. package/dist/components.es.js +41 -39
  49. package/dist/components.es.js.map +1 -1
  50. package/dist/context.cjs.js +1 -1
  51. package/dist/context.es.js +55 -48
  52. package/dist/context.es.js.map +1 -1
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.es.js +24 -21
  55. package/dist/index.es.js.map +1 -1
  56. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  57. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  58. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  59. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  60. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  61. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  62. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  63. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  64. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  65. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  66. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  67. package/dist/node_modules/remove-accents/index.es.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  79. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  80. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  82. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  83. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  84. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  85. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  86. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  87. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  88. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  89. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  90. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  91. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  92. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  93. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  94. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  95. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  96. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  97. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  98. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  99. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  100. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  101. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  102. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  103. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  104. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  105. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  106. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  107. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  108. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  109. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  110. package/dist/shared/src/api/generated/graphql.cjs.js +3 -3
  111. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  112. package/dist/shared/src/api/generated/graphql.es.js +3 -3
  113. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js +2 -0
  115. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js.map +1 -0
  116. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js +42 -0
  117. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js.map +1 -0
  118. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  119. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  120. package/dist/shared/src/api/queries/activities/getActivities.es.js +121 -156
  121. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  122. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  123. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  124. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +93 -68
  125. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  126. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  127. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  128. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +63 -56
  129. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  130. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  131. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  132. package/dist/shared/src/api/queries/entities/updateEntity.es.js +120 -119
  133. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/entityLists/getLists.es.js +70 -62
  137. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  140. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  141. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  142. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +85 -85
  143. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  144. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  145. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  146. package/dist/shared/src/api/queries/overview/getOverview.es.js +267 -259
  147. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  148. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  149. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  150. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +85 -79
  151. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  152. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  153. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  154. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +170 -2
  155. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  157. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +18 -15
  159. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +165 -2
  163. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  165. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +164 -2
  167. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  169. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +174 -2
  171. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  172. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  173. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  174. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +173 -2
  175. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  178. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  179. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  180. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  181. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  182. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +16 -13
  183. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  184. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  185. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  186. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +168 -2
  187. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  188. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  189. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  190. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +260 -89
  191. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  192. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  193. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  194. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +44 -78
  195. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  196. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  197. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  198. package/dist/shared/src/components/LinksManager/LinksManager.es.js +172 -2
  199. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  200. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  201. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  202. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  203. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  204. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  205. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  206. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +173 -2
  207. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  208. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  209. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  210. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +158 -2
  211. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  212. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  213. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  214. package/dist/shared/src/components/Menu/Menu.es.js +171 -2
  215. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  216. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  217. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  218. package/dist/shared/src/components/Menu/MenuItem.es.js +167 -0
  219. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  220. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  221. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  222. package/dist/shared/src/components/Menu/MenuList.es.js +209 -40
  223. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  224. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  225. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  226. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +171 -2
  227. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  228. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  229. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  230. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +170 -2
  231. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  232. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  233. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  234. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +16 -13
  235. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  236. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  237. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  238. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +82 -79
  239. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  240. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  241. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  242. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +169 -3
  243. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  244. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  245. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  246. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +12 -9
  247. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  248. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  249. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  250. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -2
  251. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  252. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  253. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  254. package/dist/shared/src/components/RenameForm/RenameForm.es.js +5 -2
  255. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  256. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  257. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  258. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +41 -38
  259. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  261. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +19 -16
  263. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  264. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  265. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  266. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +17 -14
  267. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  268. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  269. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  270. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +18 -15
  271. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  272. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  273. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  274. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +453 -284
  275. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  276. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -2
  277. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  278. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +172 -2
  279. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  280. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  281. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  282. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +18 -15
  283. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  284. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  285. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  286. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +18 -15
  287. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  288. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +52 -0
  289. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -0
  290. package/dist/shared/src/components/SyncButton/SyncButton.es.js +265 -0
  291. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -0
  292. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  293. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  294. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +171 -2
  295. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  296. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  297. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  298. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +18 -15
  299. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  300. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  301. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  302. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +20 -17
  303. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  304. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  305. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +18 -15
  307. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  308. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  309. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/Actions/Actions.es.js +213 -44
  311. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  312. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  313. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +18 -15
  315. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +39 -36
  319. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +18 -15
  323. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +19 -16
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +51 -48
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +173 -3
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +18 -15
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +18 -15
  343. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +168 -2
  347. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  349. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +32 -29
  351. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +18 -15
  355. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +81 -78
  359. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +144 -2
  363. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  364. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +174 -2
  367. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  368. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  369. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +18 -15
  371. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  372. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  373. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +18 -15
  375. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  377. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +18 -15
  379. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  381. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +18 -15
  383. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  384. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  385. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +178 -7
  387. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  389. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/Feed.es.js +206 -59
  391. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  393. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +18 -15
  395. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  397. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +19 -16
  399. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  401. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -15
  403. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  405. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +16 -16
  407. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  408. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  409. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +30 -17
  411. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js +11 -0
  413. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js.map +1 -0
  414. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js +27 -0
  415. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js.map +1 -0
  416. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  417. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +20 -17
  419. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  420. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  421. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +218 -39
  423. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  424. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  425. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +78 -75
  427. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  428. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  429. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +22 -19
  431. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  433. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +173 -2
  435. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  436. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  437. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  438. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +173 -2
  439. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  440. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  441. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +181 -14
  443. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  444. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  445. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +169 -2
  447. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  448. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  449. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +80 -77
  451. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  452. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  453. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +197 -26
  455. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  456. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  457. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +9 -8
  459. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  460. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  461. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/ListTable/ListTable.es.js +24 -21
  463. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  464. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  465. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +18 -15
  467. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  468. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  469. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +17 -14
  471. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +5 -2
  475. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +18 -15
  479. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +5 -2
  483. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +84 -81
  487. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +17 -14
  491. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +18 -15
  495. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  497. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +521 -337
  499. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +18 -15
  503. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +175 -4
  507. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +176 -6
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +18 -15
  515. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +174 -2
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +21 -18
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +18 -15
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +18 -15
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +18 -15
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +18 -15
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +5 -2
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +408 -396
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +18 -15
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +18 -15
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +19 -17
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -15
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +18 -15
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +265 -95
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +29 -26
  583. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +18 -15
  587. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  589. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +94 -91
  591. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +3 -3
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +25 -22
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +20 -17
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +4 -4
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +188 -34
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +18 -15
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +25 -22
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +2 -2
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +225 -61
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  616. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  617. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +18 -15
  619. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  620. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  621. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  622. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +21 -18
  623. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  624. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  625. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  626. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +37 -37
  627. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  628. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  629. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  630. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +353 -51
  631. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  632. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  633. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  634. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +172 -2
  635. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  636. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  637. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +18 -15
  639. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  640. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  641. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  642. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +216 -45
  643. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  645. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  646. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +185 -13
  647. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  649. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  650. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +174 -2
  651. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  652. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  653. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  654. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +40 -289
  655. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  657. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  658. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +174 -2
  659. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  661. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +173 -2
  663. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  664. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  665. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  666. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +174 -2
  667. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  669. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +174 -2
  671. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  672. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  673. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  674. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +226 -52
  675. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  676. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  677. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  678. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +176 -6
  679. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  680. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  681. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  682. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -2
  683. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  684. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  685. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  686. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +185 -18
  687. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  688. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  689. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  690. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +209 -38
  691. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  692. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  693. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  694. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +180 -10
  695. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  696. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  697. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  698. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +107 -73
  699. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  700. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  701. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  702. package/dist/shared/src/context/DetailsPanelContext.es.js +210 -38
  703. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  704. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +2 -0
  705. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -0
  706. package/dist/shared/src/context/EntityUpdatesContext.es.js +392 -0
  707. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -0
  708. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js +2 -0
  709. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js.map +1 -0
  710. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js +6 -0
  711. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js.map +1 -0
  712. package/dist/shared/src/context/MenuContext.es.js +3 -3
  713. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  714. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  715. package/dist/shared/src/context/PowerpackContext.es.js +178 -6
  716. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  717. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  718. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  719. package/dist/shared/src/context/ProjectFoldersContext.es.js +196 -24
  720. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  721. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  722. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  723. package/dist/shared/src/context/SubtasksModulesContext.es.js +176 -4
  724. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  725. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  726. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  727. package/dist/shared/src/context/WebsocketContext.es.js +52 -45
  728. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  729. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  730. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  731. package/dist/shared/src/hooks/useEntityUpdate.es.js +174 -2
  732. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  733. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  734. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  735. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +174 -2
  736. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  737. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  738. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  739. package/dist/shared/src/hooks/useHierarchyTable.es.js +174 -2
  740. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  741. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  742. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  743. package/dist/shared/src/hooks/useUserProjectConfig.es.js +174 -2
  744. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  745. package/dist/types/api/generated/graphql.d.ts +3 -3
  746. package/dist/types/api/queries/actions/index.d.ts +1 -0
  747. package/dist/types/api/queries/actions/refreshActiveAndPurgeOthers.d.ts +11 -0
  748. package/dist/types/api/queries/activities/getActivities.d.ts +65 -855
  749. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +19 -0
  750. package/dist/types/api/queries/links/getEntityLinks.d.ts +4 -2
  751. package/dist/types/components/SyncButton/SyncButton.d.ts +11 -0
  752. package/dist/types/components/SyncButton/index.d.ts +1 -0
  753. package/dist/types/components/index.d.ts +1 -0
  754. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.d.ts +7 -0
  755. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +3 -0
  756. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -42
  757. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -4
  758. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +10 -2
  759. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +9 -2
  760. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  761. package/dist/types/containers/Slicer/hooks/useSelectedEntityIds.d.ts +7 -1
  762. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -0
  763. package/dist/types/context/EntityUpdatesContext.d.ts +44 -0
  764. package/dist/types/context/EntityUpdatesContextInstance.d.ts +2 -0
  765. package/dist/types/context/ProjectFoldersContext.d.ts +2 -2
  766. package/dist/types/context/index.d.ts +1 -0
  767. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./useGetEntityTypeData.cjs.js"),D=require("react");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");require("react-toastify");require("lodash");require("uuid");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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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("../../../util/pubsub.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("clsx");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.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("../../../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("../../../../../_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");const O=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.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("../../../components/InfoMessage/InfoMessage.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/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.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("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");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("../widgets/LinksWidget.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableContextInstance.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContextInstance.cjs.js");require("../context/CellEditingContext.cjs.js");require("../components/TableFooterRow.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.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/LinkedTaskRow.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/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.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/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("react-router-dom");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.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/VersionUploadContextInstance.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");const x=require("../utils/linksToTableData.cjs.js"),P="next-page",l="_ungrouped",h="__",A=e=>e?Array.isArray(e)?[...new Set(e.map(q=>q.toString()))]:[e.toString()]:[],S=(e,q,a,o,t)=>{const p=o?.get(q),n=a?.find(f=>f.value===q),g=n?{value:n.value,label:n.label||n.value,color:n.color,icon:n.icon,count:n.count,img:e==="assignees"?`/api/users/${n.value}/avatar`:void 0}:{value:q,label:q};return p?(g.count=p.count,g.percentage=p.percentage):o&&t&&(g.count=0,g.percentage=void 0),g},b="_GROUP_",_=e=>`${b}${e}`,N=e=>e.startsWith(b)?e.slice(b.length):null,W=e=>e.startsWith(b),$=(e,q,a=[])=>{const o=e.id.replace("attrib.","");return o==="status"?q?.statuses?.map(t=>t.name)||[]:o==="taskType"?q?.taskTypes?.map(t=>t.name)||[]:o==="folderType"?q?.folderTypes?.map(t=>t.name)||[]:e.id.startsWith("attrib.")?a.find(t=>t.name===o)?.data.enum?.map(t=>t.value.toString())||[]:[]},L=(e,q,a,o,t)=>{const p=t(a,e.taskType);return{id:e.id+h+q,entityId:e.id,entityType:a,parentId:e.folderId,folderId:e.folderId,name:e.name||"",label:e.label||e.name||"",icon:p?.icon||null,color:p?.color||null,status:e.status,assignees:e.assignees,tags:e.tags,img:null,subRows:[],subType:e.taskType||null,attrib:e.attrib,ownAttrib:e.ownAttrib,parents:e.parents||[],folder:e.parents?.[e.parents.length-1]||void 0,createdAt:e.createdAt,updatedAt:e.updatedAt,hasReviewables:e.hasReviewables||!1,links:x.linksToTableData(e.links,a,{folderTypes:o?.folderTypes||[],productTypes:Object.values(o.productTypes)||[],taskTypes:o?.taskTypes||[]}),subtasks:e.subtasks||[],latestComments:e.latestComments||[]}},M=({entities:e,entityType:q,groups:a=[],attribFields:o,showEmpty:t,groupRowFunc:p,groupCounts:n,groupCountsComplete:g})=>{const f=O.useProjectContext(),w=E.useGetEntityTypeData({projectInfo:f}),v=D.useCallback((s,c)=>{const T=p?p(s):L(s,c,q,f,w);return{...T,id:s.id+h+c,subRows:T.subRows||[]}},[p,w,q,f]);return D.useCallback(s=>{const c=new Map;for(const r of a){const i=r.value?.toString(),u=_(i),d=S(s.id,i,a,n,g);c.set(i,{id:u,name:i,entityType:"group",subRows:[],label:d.label,group:d,links:{}})}const T=_(l),G=()=>{let r=c.get(l);if(!r){const i=n?.get(l);r={id:T,name:"Ungrouped",entityType:"group",subRows:[],label:"Ungrouped",group:{value:l,label:"Ungrouped",count:i?.count,percentage:i?.percentage},links:{}},c.set(l,r)}return r};(s.id==="tags"||s.id==="assignees"||s.id.startsWith("attrib."))&&G();for(const[,r]of e){if(r.entityType!==q)continue;let i=[];if(s.id.startsWith("attrib.")){const u=s.id.split(".")[1];i=A(r.attrib?.[u])}else s.id==="folderType"&&"folder"in r?i=A(r.folder?.folderType):i=A(r[s.id]);i.length===0&&G().subRows?.push(v(r,l));for(const u of i){const d=c.get(u);d?d.subRows?.push(v(r,u)):G().subRows?.push(v(r,l))}if("groups"in r&&Array.isArray(r.groups)){for(const u of r.groups)if(u.hasNextPage&&c.has(u.value)){const y=c.get(u.value);y&&y.subRows?.push({id:`${u.value}-next-page`,name:"Load more tasks...",entityType:P,subRows:[],label:`Next page for ${u.value}`,group:{value:u.value,label:u.value},links:{}})}}}const R=Array.from(c.values()),m=$(s,f,o),I=s.desc?-1:1;R.sort((r,i)=>{if(r.group?.value===l)return 1;if(i.group?.value===l)return-1;if(m.length){const u=m.indexOf(r.group?.value||""),d=m.indexOf(i.group?.value||"");return u!==-1&&d!==-1?(u-d)*I:u!==-1?-1:d!==-1?1:(r.group?.label?.localeCompare(i.group?.label||"")||0)*I}else return(r.group?.label?.localeCompare(i.group?.label||"")||0)*I});const U=R.filter(r=>(r.group?.count??0)>0||(r.subRows?.length??0)>0||r.group?.value===l);return t?R:U},[e,q,a,o,t,n,g,v,f])};exports.GROUP_BY_ID=b;exports.NEXT_PAGE_ID=P;exports.ROW_ID_SEPARATOR=h;exports.UNGROUPED_VALUE=l;exports.buildGroupId=_;exports.default=M;exports.isGroupId=W;exports.parseGroupId=N;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("./useGetEntityTypeData.cjs.js"),D=require("react");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");require("react-toastify");require("lodash");require("uuid");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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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("../../../util/pubsub.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("clsx");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.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("../../../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("../../../../../_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");const O=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../../../context/EntityUpdatesContextInstance.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/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.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/ActivityStatusChange/ActivityStatusSecondary.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("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");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("../widgets/LinksWidget.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableContextInstance.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContextInstance.cjs.js");require("../context/CellEditingContext.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/TableFooterRow.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.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/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.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("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/InfoMessage/InfoMessage.cjs.js");require("../../../components/EnumEditor/EnumEditor.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/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("react-router-dom");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.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/SyncButton/SyncButton.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/VersionUploadContextInstance.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");const x=require("../utils/linksToTableData.cjs.js"),P="next-page",l="_ungrouped",h="__",A=e=>e?Array.isArray(e)?[...new Set(e.map(q=>q.toString()))]:[e.toString()]:[],S=(e,q,a,o,t)=>{const p=o?.get(q),n=a?.find(f=>f.value===q),g=n?{value:n.value,label:n.label||n.value,color:n.color,icon:n.icon,count:n.count,img:e==="assignees"?`/api/users/${n.value}/avatar`:void 0}:{value:q,label:q};return p?(g.count=p.count,g.percentage=p.percentage):o&&t&&(g.count=0,g.percentage=void 0),g},b="_GROUP_",_=e=>`${b}${e}`,N=e=>e.startsWith(b)?e.slice(b.length):null,W=e=>e.startsWith(b),$=(e,q,a=[])=>{const o=e.id.replace("attrib.","");return o==="status"?q?.statuses?.map(t=>t.name)||[]:o==="taskType"?q?.taskTypes?.map(t=>t.name)||[]:o==="folderType"?q?.folderTypes?.map(t=>t.name)||[]:e.id.startsWith("attrib.")?a.find(t=>t.name===o)?.data.enum?.map(t=>t.value.toString())||[]:[]},L=(e,q,a,o,t)=>{const p=t(a,e.taskType);return{id:e.id+h+q,entityId:e.id,entityType:a,parentId:e.folderId,folderId:e.folderId,name:e.name||"",label:e.label||e.name||"",icon:p?.icon||null,color:p?.color||null,status:e.status,assignees:e.assignees,tags:e.tags,img:null,subRows:[],subType:e.taskType||null,attrib:e.attrib,ownAttrib:e.ownAttrib,parents:e.parents||[],folder:e.parents?.[e.parents.length-1]||void 0,createdAt:e.createdAt,updatedAt:e.updatedAt,hasReviewables:e.hasReviewables||!1,links:x.linksToTableData(e.links,a,{folderTypes:o?.folderTypes||[],productTypes:Object.values(o.productTypes)||[],taskTypes:o?.taskTypes||[]}),subtasks:e.subtasks||[],latestComments:e.latestComments||[]}},M=({entities:e,entityType:q,groups:a=[],attribFields:o,showEmpty:t,groupRowFunc:p,groupCounts:n,groupCountsComplete:g})=>{const f=O.useProjectContext(),w=E.useGetEntityTypeData({projectInfo:f}),v=D.useCallback((s,c)=>{const T=p?p(s):L(s,c,q,f,w);return{...T,id:s.id+h+c,subRows:T.subRows||[]}},[p,w,q,f]);return D.useCallback(s=>{const c=new Map;for(const r of a){const i=r.value?.toString(),u=_(i),d=S(s.id,i,a,n,g);c.set(i,{id:u,name:i,entityType:"group",subRows:[],label:d.label,group:d,links:{}})}const T=_(l),G=()=>{let r=c.get(l);if(!r){const i=n?.get(l);r={id:T,name:"Ungrouped",entityType:"group",subRows:[],label:"Ungrouped",group:{value:l,label:"Ungrouped",count:i?.count,percentage:i?.percentage},links:{}},c.set(l,r)}return r};(s.id==="tags"||s.id==="assignees"||s.id.startsWith("attrib."))&&G();for(const[,r]of e){if(r.entityType!==q)continue;let i=[];if(s.id.startsWith("attrib.")){const u=s.id.split(".")[1];i=A(r.attrib?.[u])}else s.id==="folderType"&&"folder"in r?i=A(r.folder?.folderType):i=A(r[s.id]);i.length===0&&G().subRows?.push(v(r,l));for(const u of i){const d=c.get(u);d?d.subRows?.push(v(r,u)):G().subRows?.push(v(r,l))}if("groups"in r&&Array.isArray(r.groups)){for(const u of r.groups)if(u.hasNextPage&&c.has(u.value)){const y=c.get(u.value);y&&y.subRows?.push({id:`${u.value}-next-page`,name:"Load more tasks...",entityType:P,subRows:[],label:`Next page for ${u.value}`,group:{value:u.value,label:u.value},links:{}})}}}const R=Array.from(c.values()),m=$(s,f,o),I=s.desc?-1:1;R.sort((r,i)=>{if(r.group?.value===l)return 1;if(i.group?.value===l)return-1;if(m.length){const u=m.indexOf(r.group?.value||""),d=m.indexOf(i.group?.value||"");return u!==-1&&d!==-1?(u-d)*I:u!==-1?-1:d!==-1?1:(r.group?.label?.localeCompare(i.group?.label||"")||0)*I}else return(r.group?.label?.localeCompare(i.group?.label||"")||0)*I});const U=R.filter(r=>(r.group?.count??0)>0||(r.subRows?.length??0)>0||r.group?.value===l);return t?R:U},[e,q,a,o,t,n,g,v,f])};exports.GROUP_BY_ID=b;exports.NEXT_PAGE_ID=P;exports.ROW_ID_SEPARATOR=h;exports.UNGROUPED_VALUE=l;exports.buildGroupId=_;exports.default=M;exports.isGroupId=W;exports.parseGroupId=N;
2
2
  //# sourceMappingURL=useBuildGroupByTableData.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildGroupByTableData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.ts"],"sourcesContent":["// based on the groupBy field we take a flat list of items and group them\n// each group is a root node with subItems as the grouped items\n// any leftover items that do not match the groupBy field are added as a separate group (\"Ungrouped\")\n\nimport type { GroupCountsMap } from '@shared/api'\nimport { EntityGroup } from '@shared/api'\nimport { TableGroupBy } from '../context'\nimport { EditorTaskNode, EntitiesMap, EntityMap, ProjectTableAttribute, TableRow } from '../types'\nimport { useGetEntityTypeData } from './useGetEntityTypeData'\nimport { useCallback } from 'react'\nimport { linksToTableData } from '../utils'\nimport { ProjectModelWithProducts, useProjectContext } from '@shared/context'\n\nexport type GroupByEntityType = 'task' | 'folder' | 'version' | 'product'\n\nexport type GroupData = {\n value: string\n label: string\n color?: string\n icon?: string\n img?: string\n count?: number\n percentage?: number\n}\n\nexport const NEXT_PAGE_ID = 'next-page'\nexport const UNGROUPED_VALUE = '_ungrouped'\nexport const ROW_ID_SEPARATOR = '__'\n\nconst valueToStringArray = (value?: any): string[] =>\n value\n ? Array.isArray(value)\n ? [...new Set(value.map((v) => v.toString()))] // dedup so an entity can't land in the same group twice (keeps row.id unique)\n : [value.toString()]\n : []\n\n// get group label, color and icon; overlay the filter-aware count + percentage\n// from groupCounts when available (falls back to the grouping endpoint count)\nconst getGroupData = (\n groupById: string,\n groupValue: string,\n groups?: EntityGroup[],\n groupCounts?: GroupCountsMap,\n groupCountsComplete?: boolean,\n): GroupData => {\n const stat = groupCounts?.get(groupValue)\n const group = groups?.find((g) => g.value === groupValue)\n\n const base: GroupData = group\n ? {\n value: group.value,\n label: group.label || group.value,\n color: group.color,\n icon: group.icon,\n count: group.count,\n img: groupById === 'assignees' ? `/api/users/${group.value}/avatar` : undefined,\n }\n : { value: groupValue, label: groupValue }\n\n if (stat) {\n base.count = stat.count\n base.percentage = stat.percentage\n } else if (groupCounts && groupCountsComplete) {\n // stats are authoritative: a named group absent from them truly has 0 matches\n base.count = 0\n base.percentage = undefined\n }\n return base\n}\n\nexport const GROUP_BY_ID = '_GROUP_'\nexport const buildGroupId = (value: string) => `${GROUP_BY_ID}${value}`\nexport const parseGroupId = (groupId: string): string | null => {\n if (!groupId.startsWith(GROUP_BY_ID)) return null\n return groupId.slice(GROUP_BY_ID.length) // +1 for the underscore\n}\nexport const isGroupId = (id: string): boolean => id.startsWith(GROUP_BY_ID)\n\ntype BuildGroupByTableProps = {\n entities: EntitiesMap\n entityType: string\n groups?: EntityGroup[]\n attribFields: ProjectTableAttribute[]\n showEmpty?: boolean\n groupRowFunc?: (node: any) => TableRow\n groupCounts?: GroupCountsMap\n groupCountsComplete?: boolean\n}\n\n// get sorting ids based on the groupBy field\nconst getSortingIds = (\n groupBy: TableGroupBy,\n project?: ProjectModelWithProducts,\n attribFields: ProjectTableAttribute[] = [],\n): string[] => {\n const attributeId = groupBy.id.replace('attrib.', '')\n\n // for status, taskType, folderType use project data order\n if (attributeId === 'status') {\n return project?.statuses?.map((s) => s.name) || []\n } else if (attributeId === 'taskType') {\n return project?.taskTypes?.map((t) => t.name) || []\n } else if (attributeId === 'folderType') {\n return project?.folderTypes?.map((f) => f.name) || []\n } else if (groupBy.id.startsWith('attrib.')) {\n // for other enum attributes, use the enum values order\n return (\n attribFields\n .find((field) => field.name === attributeId)\n ?.data.enum?.map((e) => e.value.toString()) || []\n )\n } else return []\n}\n\nconst defaultEntityToGroupRow = (\n task: EditorTaskNode,\n group: string | undefined,\n entityType: string,\n project: ProjectModelWithProducts,\n getEntityTypeData: ReturnType<typeof useGetEntityTypeData>,\n): TableRow & { subRows: TableRow[] } => {\n const typeData = getEntityTypeData(entityType, task.taskType)\n return {\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the folder\n entityId: task.id,\n entityType: entityType,\n parentId: task.folderId,\n folderId: task.folderId,\n name: task.name || '',\n label: task.label || task.name || '',\n icon: typeData?.icon || null,\n color: typeData?.color || null,\n status: task.status,\n assignees: task.assignees,\n tags: task.tags,\n img: null,\n subRows: [],\n subType: task.taskType || null,\n attrib: task.attrib,\n ownAttrib: task.ownAttrib,\n parents: task.parents || [],\n folder: task.parents?.[task.parents.length - 1] || undefined,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n hasReviewables: task.hasReviewables || false,\n links: linksToTableData(task.links, entityType, {\n folderTypes: project?.folderTypes || [],\n productTypes: Object.values(project.productTypes) || [],\n taskTypes: project?.taskTypes || [],\n }),\n subtasks: task.subtasks || [],\n latestComments: task.latestComments || [],\n }\n}\n\nconst useBuildGroupByTableData = ({\n entities,\n entityType,\n groups = [],\n attribFields,\n showEmpty,\n groupRowFunc, // for versions etc\n groupCounts,\n groupCountsComplete,\n}: BuildGroupByTableProps) => {\n const project = useProjectContext()\n const getEntityTypeData = useGetEntityTypeData({ projectInfo: project })\n\n const entityToGroupRow = useCallback(\n (task: EditorTaskNode, group?: string): TableRow & { subRows: TableRow[] } => {\n // Use provided groupRowFunc or fall back to default\n const baseRow = groupRowFunc\n ? groupRowFunc(task)\n : defaultEntityToGroupRow(task, group, entityType, project, getEntityTypeData)\n\n // Ensure group-specific fields are set\n return {\n ...baseRow,\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the group\n subRows: baseRow.subRows || [],\n }\n },\n [groupRowFunc, getEntityTypeData, entityType, project],\n )\n\n return useCallback(\n (groupBy: TableGroupBy): TableRow[] => {\n const groupsMap = new Map<string, TableRow>()\n\n for (const group of groups) {\n const groupValue = group.value?.toString() as string\n const groupId = buildGroupId(groupValue)\n const groupData = getGroupData(\n groupBy.id,\n groupValue,\n groups,\n groupCounts,\n groupCountsComplete,\n )\n groupsMap.set(groupValue, {\n id: groupId,\n name: groupValue,\n entityType: 'group',\n subRows: [],\n label: groupData.label,\n group: groupData,\n links: {},\n })\n }\n\n const ungroupedId = buildGroupId(UNGROUPED_VALUE)\n // gets the \"Ungrouped\" group, creating it if it doesn't exist\n const getUnGroupedGroup = () => {\n let ungroupedGroup = groupsMap.get(UNGROUPED_VALUE)\n if (!ungroupedGroup) {\n const stat = groupCounts?.get(UNGROUPED_VALUE)\n ungroupedGroup = {\n id: ungroupedId,\n name: 'Ungrouped',\n entityType: 'group',\n subRows: [],\n label: 'Ungrouped',\n group: {\n value: UNGROUPED_VALUE,\n label: 'Ungrouped',\n count: stat?.count,\n percentage: stat?.percentage,\n },\n links: {},\n }\n // create ungrouped group if it doesn't exist\n groupsMap.set(UNGROUPED_VALUE, ungroupedGroup)\n }\n return ungroupedGroup\n }\n\n const canHaveUngrouped =\n groupBy.id === 'tags' || groupBy.id === 'assignees' || groupBy.id.startsWith('attrib.')\n if (canHaveUngrouped) getUnGroupedGroup()\n\n for (const [, entity] of entities) {\n // if the entity is not of the specified type, skip it\n if (entity.entityType !== entityType) continue\n // add entities to specific group\n let groupValues: string[] = []\n if (groupBy.id.startsWith('attrib.')) {\n // for attribute based grouping, get the value of the attribute\n const attributeId = groupBy.id.split('.')[1]\n groupValues = valueToStringArray(entity.attrib?.[attributeId])\n } else if (groupBy.id === 'folderType' && 'folder' in entity) {\n // folderType is nested under folder for task entities (from TaskPropsFragment)\n groupValues = valueToStringArray(\n (entity as EditorTaskNode & { folder?: { folderType?: string } }).folder?.folderType,\n )\n } else {\n groupValues = valueToStringArray(entity[groupBy.id as keyof EntityMap])\n }\n\n // if there are no values, add to \"Ungrouped\" group\n if (groupValues.length === 0) {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE))\n }\n // for each group value, find it's group and add the entity to it\n // if we can't find the group, add it to \"Ungrouped\"\n for (const groupValue of groupValues) {\n const groupRow = groupsMap.get(groupValue)\n if (groupRow) {\n groupRow.subRows?.push(entityToGroupRow(entity as EditorTaskNode, groupValue))\n } else {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(\n entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE),\n )\n }\n }\n\n // for groups metadata on entity, check if there is a next page\n if ('groups' in entity && Array.isArray(entity.groups)) {\n for (const group of entity.groups) {\n const hasNextPageGroup = group.hasNextPage\n if (hasNextPageGroup && groupsMap.has(group.value)) {\n // add a next page row to the group\n const groupRow = groupsMap.get(group.value)\n if (groupRow) {\n groupRow.subRows?.push({\n id: `${group.value}-next-page`,\n name: `Load more tasks...`,\n entityType: NEXT_PAGE_ID,\n subRows: [],\n label: `Next page for ${group.value}`,\n group: { value: group.value, label: group.value },\n links: {},\n })\n }\n }\n }\n }\n }\n\n const groupsList = Array.from(groupsMap.values())\n\n const attribSortingIds = getSortingIds(groupBy, project, attribFields)\n\n // sort the groups by their label\n // if the group is an attribute with enum values, sort by the enum values\n const sortDirection = groupBy.desc ? -1 : 1\n groupsList.sort((a, b) => {\n if (a.group?.value === UNGROUPED_VALUE) return 1 // \"Ungrouped\" should always be last\n if (b.group?.value === UNGROUPED_VALUE) return -1 // \"Ungrouped\" should always be last\n if (attribSortingIds.length) {\n // sort by index of the enum value\n const indexA = attribSortingIds.indexOf(a.group?.value || '')\n const indexB = attribSortingIds.indexOf(b.group?.value || '')\n if (indexA !== -1 && indexB !== -1) {\n return (indexA - indexB) * sortDirection\n }\n if (indexA !== -1) return -1 // a is in the enum, b is not\n if (indexB !== -1) return 1 // b is in the enum, a is not\n // if both are not in the enum, sort by label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n } else {\n // for other groupings, sort by the group label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n }\n })\n\n // filter out empty groups — Ungrouped has no server count, keep it reachable\n const nonEmptyGroups = groupsList.filter(\n (group) =>\n (group.group?.count ?? 0) > 0 ||\n (group.subRows?.length ?? 0) > 0 ||\n group.group?.value === UNGROUPED_VALUE,\n )\n\n return showEmpty ? groupsList : nonEmptyGroups\n },\n [\n entities,\n entityType,\n groups,\n attribFields,\n showEmpty,\n groupCounts,\n groupCountsComplete,\n entityToGroupRow,\n project,\n ],\n )\n}\n\nexport default useBuildGroupByTableData\n"],"names":["NEXT_PAGE_ID","UNGROUPED_VALUE","ROW_ID_SEPARATOR","valueToStringArray","value","v","getGroupData","groupById","groupValue","groups","groupCounts","groupCountsComplete","stat","group","g","base","GROUP_BY_ID","buildGroupId","parseGroupId","groupId","isGroupId","id","getSortingIds","groupBy","project","attribFields","attributeId","s","f","field","e","defaultEntityToGroupRow","task","entityType","getEntityTypeData","typeData","linksToTableData","useBuildGroupByTableData","entities","showEmpty","groupRowFunc","useProjectContext","useGetEntityTypeData","entityToGroupRow","useCallback","baseRow","groupsMap","groupData","ungroupedId","getUnGroupedGroup","ungroupedGroup","entity","groupValues","groupRow","groupsList","attribSortingIds","sortDirection","a","b","indexA","indexB","nonEmptyGroups"],"mappings":"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"}
1
+ {"version":3,"file":"useBuildGroupByTableData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.ts"],"sourcesContent":["// based on the groupBy field we take a flat list of items and group them\n// each group is a root node with subItems as the grouped items\n// any leftover items that do not match the groupBy field are added as a separate group (\"Ungrouped\")\n\nimport type { GroupCountsMap } from '@shared/api'\nimport { EntityGroup } from '@shared/api'\nimport { TableGroupBy } from '../context'\nimport { EditorTaskNode, EntitiesMap, EntityMap, ProjectTableAttribute, TableRow } from '../types'\nimport { useGetEntityTypeData } from './useGetEntityTypeData'\nimport { useCallback } from 'react'\nimport { linksToTableData } from '../utils'\nimport { ProjectModelWithProducts, useProjectContext } from '@shared/context'\n\nexport type GroupByEntityType = 'task' | 'folder' | 'version' | 'product'\n\nexport type GroupData = {\n value: string\n label: string\n color?: string\n icon?: string\n img?: string\n count?: number\n percentage?: number\n}\n\nexport const NEXT_PAGE_ID = 'next-page'\nexport const UNGROUPED_VALUE = '_ungrouped'\nexport const ROW_ID_SEPARATOR = '__'\n\nconst valueToStringArray = (value?: any): string[] =>\n value\n ? Array.isArray(value)\n ? [...new Set(value.map((v) => v.toString()))] // dedup so an entity can't land in the same group twice (keeps row.id unique)\n : [value.toString()]\n : []\n\n// get group label, color and icon; overlay the filter-aware count + percentage\n// from groupCounts when available (falls back to the grouping endpoint count)\nconst getGroupData = (\n groupById: string,\n groupValue: string,\n groups?: EntityGroup[],\n groupCounts?: GroupCountsMap,\n groupCountsComplete?: boolean,\n): GroupData => {\n const stat = groupCounts?.get(groupValue)\n const group = groups?.find((g) => g.value === groupValue)\n\n const base: GroupData = group\n ? {\n value: group.value,\n label: group.label || group.value,\n color: group.color,\n icon: group.icon,\n count: group.count,\n img: groupById === 'assignees' ? `/api/users/${group.value}/avatar` : undefined,\n }\n : { value: groupValue, label: groupValue }\n\n if (stat) {\n base.count = stat.count\n base.percentage = stat.percentage\n } else if (groupCounts && groupCountsComplete) {\n // stats are authoritative: a named group absent from them truly has 0 matches\n base.count = 0\n base.percentage = undefined\n }\n return base\n}\n\nexport const GROUP_BY_ID = '_GROUP_'\nexport const buildGroupId = (value: string) => `${GROUP_BY_ID}${value}`\nexport const parseGroupId = (groupId: string): string | null => {\n if (!groupId.startsWith(GROUP_BY_ID)) return null\n return groupId.slice(GROUP_BY_ID.length) // +1 for the underscore\n}\nexport const isGroupId = (id: string): boolean => id.startsWith(GROUP_BY_ID)\n\ntype BuildGroupByTableProps = {\n entities: EntitiesMap\n entityType: string\n groups?: EntityGroup[]\n attribFields: ProjectTableAttribute[]\n showEmpty?: boolean\n groupRowFunc?: (node: any) => TableRow\n groupCounts?: GroupCountsMap\n groupCountsComplete?: boolean\n}\n\n// get sorting ids based on the groupBy field\nconst getSortingIds = (\n groupBy: TableGroupBy,\n project?: ProjectModelWithProducts,\n attribFields: ProjectTableAttribute[] = [],\n): string[] => {\n const attributeId = groupBy.id.replace('attrib.', '')\n\n // for status, taskType, folderType use project data order\n if (attributeId === 'status') {\n return project?.statuses?.map((s) => s.name) || []\n } else if (attributeId === 'taskType') {\n return project?.taskTypes?.map((t) => t.name) || []\n } else if (attributeId === 'folderType') {\n return project?.folderTypes?.map((f) => f.name) || []\n } else if (groupBy.id.startsWith('attrib.')) {\n // for other enum attributes, use the enum values order\n return (\n attribFields\n .find((field) => field.name === attributeId)\n ?.data.enum?.map((e) => e.value.toString()) || []\n )\n } else return []\n}\n\nconst defaultEntityToGroupRow = (\n task: EditorTaskNode,\n group: string | undefined,\n entityType: string,\n project: ProjectModelWithProducts,\n getEntityTypeData: ReturnType<typeof useGetEntityTypeData>,\n): TableRow & { subRows: TableRow[] } => {\n const typeData = getEntityTypeData(entityType, task.taskType)\n return {\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the folder\n entityId: task.id,\n entityType: entityType,\n parentId: task.folderId,\n folderId: task.folderId,\n name: task.name || '',\n label: task.label || task.name || '',\n icon: typeData?.icon || null,\n color: typeData?.color || null,\n status: task.status,\n assignees: task.assignees,\n tags: task.tags,\n img: null,\n subRows: [],\n subType: task.taskType || null,\n attrib: task.attrib,\n ownAttrib: task.ownAttrib,\n parents: task.parents || [],\n folder: task.parents?.[task.parents.length - 1] || undefined,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n hasReviewables: task.hasReviewables || false,\n links: linksToTableData(task.links, entityType, {\n folderTypes: project?.folderTypes || [],\n productTypes: Object.values(project.productTypes) || [],\n taskTypes: project?.taskTypes || [],\n }),\n subtasks: task.subtasks || [],\n latestComments: task.latestComments || [],\n }\n}\n\nconst useBuildGroupByTableData = ({\n entities,\n entityType,\n groups = [],\n attribFields,\n showEmpty,\n groupRowFunc, // for versions etc\n groupCounts,\n groupCountsComplete,\n}: BuildGroupByTableProps) => {\n const project = useProjectContext()\n const getEntityTypeData = useGetEntityTypeData({ projectInfo: project })\n\n const entityToGroupRow = useCallback(\n (task: EditorTaskNode, group?: string): TableRow & { subRows: TableRow[] } => {\n // Use provided groupRowFunc or fall back to default\n const baseRow = groupRowFunc\n ? groupRowFunc(task)\n : defaultEntityToGroupRow(task, group, entityType, project, getEntityTypeData)\n\n // Ensure group-specific fields are set\n return {\n ...baseRow,\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the group\n subRows: baseRow.subRows || [],\n }\n },\n [groupRowFunc, getEntityTypeData, entityType, project],\n )\n\n return useCallback(\n (groupBy: TableGroupBy): TableRow[] => {\n const groupsMap = new Map<string, TableRow>()\n\n for (const group of groups) {\n const groupValue = group.value?.toString() as string\n const groupId = buildGroupId(groupValue)\n const groupData = getGroupData(\n groupBy.id,\n groupValue,\n groups,\n groupCounts,\n groupCountsComplete,\n )\n groupsMap.set(groupValue, {\n id: groupId,\n name: groupValue,\n entityType: 'group',\n subRows: [],\n label: groupData.label,\n group: groupData,\n links: {},\n })\n }\n\n const ungroupedId = buildGroupId(UNGROUPED_VALUE)\n // gets the \"Ungrouped\" group, creating it if it doesn't exist\n const getUnGroupedGroup = () => {\n let ungroupedGroup = groupsMap.get(UNGROUPED_VALUE)\n if (!ungroupedGroup) {\n const stat = groupCounts?.get(UNGROUPED_VALUE)\n ungroupedGroup = {\n id: ungroupedId,\n name: 'Ungrouped',\n entityType: 'group',\n subRows: [],\n label: 'Ungrouped',\n group: {\n value: UNGROUPED_VALUE,\n label: 'Ungrouped',\n count: stat?.count,\n percentage: stat?.percentage,\n },\n links: {},\n }\n // create ungrouped group if it doesn't exist\n groupsMap.set(UNGROUPED_VALUE, ungroupedGroup)\n }\n return ungroupedGroup\n }\n\n const canHaveUngrouped =\n groupBy.id === 'tags' || groupBy.id === 'assignees' || groupBy.id.startsWith('attrib.')\n if (canHaveUngrouped) getUnGroupedGroup()\n\n for (const [, entity] of entities) {\n // if the entity is not of the specified type, skip it\n if (entity.entityType !== entityType) continue\n // add entities to specific group\n let groupValues: string[] = []\n if (groupBy.id.startsWith('attrib.')) {\n // for attribute based grouping, get the value of the attribute\n const attributeId = groupBy.id.split('.')[1]\n groupValues = valueToStringArray(entity.attrib?.[attributeId])\n } else if (groupBy.id === 'folderType' && 'folder' in entity) {\n // folderType is nested under folder for task entities (from TaskPropsFragment)\n groupValues = valueToStringArray(\n (entity as EditorTaskNode & { folder?: { folderType?: string } }).folder?.folderType,\n )\n } else {\n groupValues = valueToStringArray(entity[groupBy.id as keyof EntityMap])\n }\n\n // if there are no values, add to \"Ungrouped\" group\n if (groupValues.length === 0) {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE))\n }\n // for each group value, find it's group and add the entity to it\n // if we can't find the group, add it to \"Ungrouped\"\n for (const groupValue of groupValues) {\n const groupRow = groupsMap.get(groupValue)\n if (groupRow) {\n groupRow.subRows?.push(entityToGroupRow(entity as EditorTaskNode, groupValue))\n } else {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(\n entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE),\n )\n }\n }\n\n // for groups metadata on entity, check if there is a next page\n if ('groups' in entity && Array.isArray(entity.groups)) {\n for (const group of entity.groups) {\n const hasNextPageGroup = group.hasNextPage\n if (hasNextPageGroup && groupsMap.has(group.value)) {\n // add a next page row to the group\n const groupRow = groupsMap.get(group.value)\n if (groupRow) {\n groupRow.subRows?.push({\n id: `${group.value}-next-page`,\n name: `Load more tasks...`,\n entityType: NEXT_PAGE_ID,\n subRows: [],\n label: `Next page for ${group.value}`,\n group: { value: group.value, label: group.value },\n links: {},\n })\n }\n }\n }\n }\n }\n\n const groupsList = Array.from(groupsMap.values())\n\n const attribSortingIds = getSortingIds(groupBy, project, attribFields)\n\n // sort the groups by their label\n // if the group is an attribute with enum values, sort by the enum values\n const sortDirection = groupBy.desc ? -1 : 1\n groupsList.sort((a, b) => {\n if (a.group?.value === UNGROUPED_VALUE) return 1 // \"Ungrouped\" should always be last\n if (b.group?.value === UNGROUPED_VALUE) return -1 // \"Ungrouped\" should always be last\n if (attribSortingIds.length) {\n // sort by index of the enum value\n const indexA = attribSortingIds.indexOf(a.group?.value || '')\n const indexB = attribSortingIds.indexOf(b.group?.value || '')\n if (indexA !== -1 && indexB !== -1) {\n return (indexA - indexB) * sortDirection\n }\n if (indexA !== -1) return -1 // a is in the enum, b is not\n if (indexB !== -1) return 1 // b is in the enum, a is not\n // if both are not in the enum, sort by label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n } else {\n // for other groupings, sort by the group label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n }\n })\n\n // filter out empty groups — Ungrouped has no server count, keep it reachable\n const nonEmptyGroups = groupsList.filter(\n (group) =>\n (group.group?.count ?? 0) > 0 ||\n (group.subRows?.length ?? 0) > 0 ||\n group.group?.value === UNGROUPED_VALUE,\n )\n\n return showEmpty ? groupsList : nonEmptyGroups\n },\n [\n entities,\n entityType,\n groups,\n attribFields,\n showEmpty,\n groupCounts,\n groupCountsComplete,\n entityToGroupRow,\n project,\n ],\n )\n}\n\nexport default useBuildGroupByTableData\n"],"names":["NEXT_PAGE_ID","UNGROUPED_VALUE","ROW_ID_SEPARATOR","valueToStringArray","value","v","getGroupData","groupById","groupValue","groups","groupCounts","groupCountsComplete","stat","group","g","base","GROUP_BY_ID","buildGroupId","parseGroupId","groupId","isGroupId","id","getSortingIds","groupBy","project","attribFields","attributeId","s","f","field","e","defaultEntityToGroupRow","task","entityType","getEntityTypeData","typeData","linksToTableData","useBuildGroupByTableData","entities","showEmpty","groupRowFunc","useProjectContext","useGetEntityTypeData","entityToGroupRow","useCallback","baseRow","groupsMap","groupData","ungroupedId","getUnGroupedGroup","ungroupedGroup","entity","groupValues","groupRow","groupsList","attribSortingIds","sortDirection","a","b","indexA","indexB","nonEmptyGroups"],"mappings":"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"}
@@ -154,19 +154,7 @@ import "../../../context/WebsocketContext.es.js";
154
154
  import "../../../context/GlobalContext.es.js";
155
155
  import { useProjectContext as S } from "../../../context/ProjectContext.es.js";
156
156
  import "../../../context/ProjectFoldersContextInstance.es.js";
157
- import "react-redux";
158
- import "custom-protocol-check";
159
- import "../components/GroupSettingsFallback.es.js";
160
- import "../../../components/DetailsPanelDetails/DetailsSection.es.js";
161
- import "../../../components/DetailsPanelDetails/FieldLabel.es.js";
162
- import "../../../components/DoneCheckbox/DoneCheckbox.es.js";
163
- import "../../../components/EarlyPreview/EarlyPreview.es.js";
164
- import "../../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
165
- import "../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
166
- import "../../../components/InfoMessage/InfoMessage.es.js";
167
- import "@dnd-kit/core";
168
- import "@dnd-kit/sortable";
169
- import "../../../components/EnumEditor/EnumEditor.styled.es.js";
157
+ import "../../../context/EntityUpdatesContextInstance.es.js";
170
158
  import "../../ContextMenu/ContextMenuContext.es.js";
171
159
  /* empty css */
172
160
  import "../../Feed/context/FeedContext.es.js";
@@ -190,6 +178,7 @@ import "../../Feed/components/ActivityReference/ActivityReference.styled.es.js";
190
178
  import "../../Feed/components/ActivityDate.es.js";
191
179
  import "../../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
192
180
  import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
181
+ import "../../Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js";
193
182
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
194
183
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
195
184
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
@@ -197,6 +186,8 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
197
186
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
198
187
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
199
188
  import "../../Feed/Feed.styled.es.js";
189
+ import "../../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
190
+ import "../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
200
191
  import "../../Feed/components/FeedSearchFilter.es.js";
201
192
  import "@tanstack/react-virtual";
202
193
  import "@tanstack/react-table";
@@ -228,6 +219,8 @@ import "../context/ClipboardContext.es.js";
228
219
  import "../context/SelectionCellsContext.es.js";
229
220
  import "../context/ProjectDataContextInstance.es.js";
230
221
  import "../context/CellEditingContext.es.js";
222
+ import "@dnd-kit/core";
223
+ import "@dnd-kit/sortable";
231
224
  import "../components/TableFooterRow.es.js";
232
225
  import "../context/SelectedRowsContext.es.js";
233
226
  import "../context/DetailsPanelEntityContext.es.js";
@@ -236,6 +229,7 @@ import "../../Slicer/components/Slicer.es.js";
236
229
  import "../../Slicer/context/SlicerContextInstance.es.js";
237
230
  import "../../Slicer/components/SlicerDropdownFallback.es.js";
238
231
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
232
+ import "react-redux";
239
233
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
240
234
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
241
235
  import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
@@ -256,6 +250,14 @@ import "../../Views/Views.styled.es.js";
256
250
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
257
251
  import "../../ListTable/ListTableRow.es.js";
258
252
  import "../../ListTable/ListTable.styled.es.js";
253
+ import "custom-protocol-check";
254
+ import "../components/GroupSettingsFallback.es.js";
255
+ import "../../../components/DetailsPanelDetails/DetailsSection.es.js";
256
+ import "../../../components/DetailsPanelDetails/FieldLabel.es.js";
257
+ import "../../../components/DoneCheckbox/DoneCheckbox.es.js";
258
+ import "../../../components/EarlyPreview/EarlyPreview.es.js";
259
+ import "../../../components/InfoMessage/InfoMessage.es.js";
260
+ import "../../../components/EnumEditor/EnumEditor.styled.es.js";
259
261
  import "../../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
260
262
  import "axios";
261
263
  import "../../../components/ReviewablesList/ReviewablesList.styled.es.js";
@@ -283,6 +285,7 @@ import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
283
285
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
284
286
  import "../../../components/SimpleFormDialog/SimpleFormDialog.es.js";
285
287
  import "../../../components/StyledLink/StyledLink.es.js";
288
+ import "../../../components/SyncButton/SyncButton.es.js";
286
289
  import "../../../components/TableGridSwitch/TableGridSwitch.es.js";
287
290
  import "../../../components/Thumbnail/Thumbnail.styled.es.js";
288
291
  import "../../../components/Thumbnail/StackedThumbnails.es.js";
@@ -305,7 +308,7 @@ const O = "next-page", c = "_ungrouped", _ = "__", A = (t) => t ? Array.isArray(
305
308
  img: t === "assignees" ? `/api/users/${s.value}/avatar` : void 0
306
309
  } : { value: p, label: p };
307
310
  return u ? (f.count = u.count, f.percentage = u.percentage) : e && m && (f.count = 0, f.percentage = void 0), f;
308
- }, T = "_GROUP_", D = (t) => `${T}${t}`, dm = (t) => t.startsWith(T) ? t.slice(T.length) : null, cm = (t) => t.startsWith(T), W = (t, p, a = []) => {
311
+ }, T = "_GROUP_", D = (t) => `${T}${t}`, gm = (t) => t.startsWith(T) ? t.slice(T.length) : null, bm = (t) => t.startsWith(T), W = (t, p, a = []) => {
309
312
  const e = t.id.replace("attrib.", "");
310
313
  return e === "status" ? p?.statuses?.map((m) => m.name) || [] : e === "taskType" ? p?.taskTypes?.map((m) => m.name) || [] : e === "folderType" ? p?.folderTypes?.map((m) => m.name) || [] : t.id.startsWith("attrib.") ? a.find((m) => m.name === e)?.data.enum?.map((m) => m.value.toString()) || [] : [];
311
314
  }, $ = (t, p, a, e, m) => {
@@ -342,7 +345,7 @@ const O = "next-page", c = "_ungrouped", _ = "__", A = (t) => t ? Array.isArray(
342
345
  subtasks: t.subtasks || [],
343
346
  latestComments: t.latestComments || []
344
347
  };
345
- }, fm = ({
348
+ }, vm = ({
346
349
  entities: t,
347
350
  entityType: p,
348
351
  groups: a = [],
@@ -474,8 +477,8 @@ export {
474
477
  _ as ROW_ID_SEPARATOR,
475
478
  c as UNGROUPED_VALUE,
476
479
  D as buildGroupId,
477
- fm as default,
478
- cm as isGroupId,
479
- dm as parseGroupId
480
+ vm as default,
481
+ bm as isGroupId,
482
+ gm as parseGroupId
480
483
  };
481
484
  //# sourceMappingURL=useBuildGroupByTableData.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildGroupByTableData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.ts"],"sourcesContent":["// based on the groupBy field we take a flat list of items and group them\n// each group is a root node with subItems as the grouped items\n// any leftover items that do not match the groupBy field are added as a separate group (\"Ungrouped\")\n\nimport type { GroupCountsMap } from '@shared/api'\nimport { EntityGroup } from '@shared/api'\nimport { TableGroupBy } from '../context'\nimport { EditorTaskNode, EntitiesMap, EntityMap, ProjectTableAttribute, TableRow } from '../types'\nimport { useGetEntityTypeData } from './useGetEntityTypeData'\nimport { useCallback } from 'react'\nimport { linksToTableData } from '../utils'\nimport { ProjectModelWithProducts, useProjectContext } from '@shared/context'\n\nexport type GroupByEntityType = 'task' | 'folder' | 'version' | 'product'\n\nexport type GroupData = {\n value: string\n label: string\n color?: string\n icon?: string\n img?: string\n count?: number\n percentage?: number\n}\n\nexport const NEXT_PAGE_ID = 'next-page'\nexport const UNGROUPED_VALUE = '_ungrouped'\nexport const ROW_ID_SEPARATOR = '__'\n\nconst valueToStringArray = (value?: any): string[] =>\n value\n ? Array.isArray(value)\n ? [...new Set(value.map((v) => v.toString()))] // dedup so an entity can't land in the same group twice (keeps row.id unique)\n : [value.toString()]\n : []\n\n// get group label, color and icon; overlay the filter-aware count + percentage\n// from groupCounts when available (falls back to the grouping endpoint count)\nconst getGroupData = (\n groupById: string,\n groupValue: string,\n groups?: EntityGroup[],\n groupCounts?: GroupCountsMap,\n groupCountsComplete?: boolean,\n): GroupData => {\n const stat = groupCounts?.get(groupValue)\n const group = groups?.find((g) => g.value === groupValue)\n\n const base: GroupData = group\n ? {\n value: group.value,\n label: group.label || group.value,\n color: group.color,\n icon: group.icon,\n count: group.count,\n img: groupById === 'assignees' ? `/api/users/${group.value}/avatar` : undefined,\n }\n : { value: groupValue, label: groupValue }\n\n if (stat) {\n base.count = stat.count\n base.percentage = stat.percentage\n } else if (groupCounts && groupCountsComplete) {\n // stats are authoritative: a named group absent from them truly has 0 matches\n base.count = 0\n base.percentage = undefined\n }\n return base\n}\n\nexport const GROUP_BY_ID = '_GROUP_'\nexport const buildGroupId = (value: string) => `${GROUP_BY_ID}${value}`\nexport const parseGroupId = (groupId: string): string | null => {\n if (!groupId.startsWith(GROUP_BY_ID)) return null\n return groupId.slice(GROUP_BY_ID.length) // +1 for the underscore\n}\nexport const isGroupId = (id: string): boolean => id.startsWith(GROUP_BY_ID)\n\ntype BuildGroupByTableProps = {\n entities: EntitiesMap\n entityType: string\n groups?: EntityGroup[]\n attribFields: ProjectTableAttribute[]\n showEmpty?: boolean\n groupRowFunc?: (node: any) => TableRow\n groupCounts?: GroupCountsMap\n groupCountsComplete?: boolean\n}\n\n// get sorting ids based on the groupBy field\nconst getSortingIds = (\n groupBy: TableGroupBy,\n project?: ProjectModelWithProducts,\n attribFields: ProjectTableAttribute[] = [],\n): string[] => {\n const attributeId = groupBy.id.replace('attrib.', '')\n\n // for status, taskType, folderType use project data order\n if (attributeId === 'status') {\n return project?.statuses?.map((s) => s.name) || []\n } else if (attributeId === 'taskType') {\n return project?.taskTypes?.map((t) => t.name) || []\n } else if (attributeId === 'folderType') {\n return project?.folderTypes?.map((f) => f.name) || []\n } else if (groupBy.id.startsWith('attrib.')) {\n // for other enum attributes, use the enum values order\n return (\n attribFields\n .find((field) => field.name === attributeId)\n ?.data.enum?.map((e) => e.value.toString()) || []\n )\n } else return []\n}\n\nconst defaultEntityToGroupRow = (\n task: EditorTaskNode,\n group: string | undefined,\n entityType: string,\n project: ProjectModelWithProducts,\n getEntityTypeData: ReturnType<typeof useGetEntityTypeData>,\n): TableRow & { subRows: TableRow[] } => {\n const typeData = getEntityTypeData(entityType, task.taskType)\n return {\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the folder\n entityId: task.id,\n entityType: entityType,\n parentId: task.folderId,\n folderId: task.folderId,\n name: task.name || '',\n label: task.label || task.name || '',\n icon: typeData?.icon || null,\n color: typeData?.color || null,\n status: task.status,\n assignees: task.assignees,\n tags: task.tags,\n img: null,\n subRows: [],\n subType: task.taskType || null,\n attrib: task.attrib,\n ownAttrib: task.ownAttrib,\n parents: task.parents || [],\n folder: task.parents?.[task.parents.length - 1] || undefined,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n hasReviewables: task.hasReviewables || false,\n links: linksToTableData(task.links, entityType, {\n folderTypes: project?.folderTypes || [],\n productTypes: Object.values(project.productTypes) || [],\n taskTypes: project?.taskTypes || [],\n }),\n subtasks: task.subtasks || [],\n latestComments: task.latestComments || [],\n }\n}\n\nconst useBuildGroupByTableData = ({\n entities,\n entityType,\n groups = [],\n attribFields,\n showEmpty,\n groupRowFunc, // for versions etc\n groupCounts,\n groupCountsComplete,\n}: BuildGroupByTableProps) => {\n const project = useProjectContext()\n const getEntityTypeData = useGetEntityTypeData({ projectInfo: project })\n\n const entityToGroupRow = useCallback(\n (task: EditorTaskNode, group?: string): TableRow & { subRows: TableRow[] } => {\n // Use provided groupRowFunc or fall back to default\n const baseRow = groupRowFunc\n ? groupRowFunc(task)\n : defaultEntityToGroupRow(task, group, entityType, project, getEntityTypeData)\n\n // Ensure group-specific fields are set\n return {\n ...baseRow,\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the group\n subRows: baseRow.subRows || [],\n }\n },\n [groupRowFunc, getEntityTypeData, entityType, project],\n )\n\n return useCallback(\n (groupBy: TableGroupBy): TableRow[] => {\n const groupsMap = new Map<string, TableRow>()\n\n for (const group of groups) {\n const groupValue = group.value?.toString() as string\n const groupId = buildGroupId(groupValue)\n const groupData = getGroupData(\n groupBy.id,\n groupValue,\n groups,\n groupCounts,\n groupCountsComplete,\n )\n groupsMap.set(groupValue, {\n id: groupId,\n name: groupValue,\n entityType: 'group',\n subRows: [],\n label: groupData.label,\n group: groupData,\n links: {},\n })\n }\n\n const ungroupedId = buildGroupId(UNGROUPED_VALUE)\n // gets the \"Ungrouped\" group, creating it if it doesn't exist\n const getUnGroupedGroup = () => {\n let ungroupedGroup = groupsMap.get(UNGROUPED_VALUE)\n if (!ungroupedGroup) {\n const stat = groupCounts?.get(UNGROUPED_VALUE)\n ungroupedGroup = {\n id: ungroupedId,\n name: 'Ungrouped',\n entityType: 'group',\n subRows: [],\n label: 'Ungrouped',\n group: {\n value: UNGROUPED_VALUE,\n label: 'Ungrouped',\n count: stat?.count,\n percentage: stat?.percentage,\n },\n links: {},\n }\n // create ungrouped group if it doesn't exist\n groupsMap.set(UNGROUPED_VALUE, ungroupedGroup)\n }\n return ungroupedGroup\n }\n\n const canHaveUngrouped =\n groupBy.id === 'tags' || groupBy.id === 'assignees' || groupBy.id.startsWith('attrib.')\n if (canHaveUngrouped) getUnGroupedGroup()\n\n for (const [, entity] of entities) {\n // if the entity is not of the specified type, skip it\n if (entity.entityType !== entityType) continue\n // add entities to specific group\n let groupValues: string[] = []\n if (groupBy.id.startsWith('attrib.')) {\n // for attribute based grouping, get the value of the attribute\n const attributeId = groupBy.id.split('.')[1]\n groupValues = valueToStringArray(entity.attrib?.[attributeId])\n } else if (groupBy.id === 'folderType' && 'folder' in entity) {\n // folderType is nested under folder for task entities (from TaskPropsFragment)\n groupValues = valueToStringArray(\n (entity as EditorTaskNode & { folder?: { folderType?: string } }).folder?.folderType,\n )\n } else {\n groupValues = valueToStringArray(entity[groupBy.id as keyof EntityMap])\n }\n\n // if there are no values, add to \"Ungrouped\" group\n if (groupValues.length === 0) {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE))\n }\n // for each group value, find it's group and add the entity to it\n // if we can't find the group, add it to \"Ungrouped\"\n for (const groupValue of groupValues) {\n const groupRow = groupsMap.get(groupValue)\n if (groupRow) {\n groupRow.subRows?.push(entityToGroupRow(entity as EditorTaskNode, groupValue))\n } else {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(\n entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE),\n )\n }\n }\n\n // for groups metadata on entity, check if there is a next page\n if ('groups' in entity && Array.isArray(entity.groups)) {\n for (const group of entity.groups) {\n const hasNextPageGroup = group.hasNextPage\n if (hasNextPageGroup && groupsMap.has(group.value)) {\n // add a next page row to the group\n const groupRow = groupsMap.get(group.value)\n if (groupRow) {\n groupRow.subRows?.push({\n id: `${group.value}-next-page`,\n name: `Load more tasks...`,\n entityType: NEXT_PAGE_ID,\n subRows: [],\n label: `Next page for ${group.value}`,\n group: { value: group.value, label: group.value },\n links: {},\n })\n }\n }\n }\n }\n }\n\n const groupsList = Array.from(groupsMap.values())\n\n const attribSortingIds = getSortingIds(groupBy, project, attribFields)\n\n // sort the groups by their label\n // if the group is an attribute with enum values, sort by the enum values\n const sortDirection = groupBy.desc ? -1 : 1\n groupsList.sort((a, b) => {\n if (a.group?.value === UNGROUPED_VALUE) return 1 // \"Ungrouped\" should always be last\n if (b.group?.value === UNGROUPED_VALUE) return -1 // \"Ungrouped\" should always be last\n if (attribSortingIds.length) {\n // sort by index of the enum value\n const indexA = attribSortingIds.indexOf(a.group?.value || '')\n const indexB = attribSortingIds.indexOf(b.group?.value || '')\n if (indexA !== -1 && indexB !== -1) {\n return (indexA - indexB) * sortDirection\n }\n if (indexA !== -1) return -1 // a is in the enum, b is not\n if (indexB !== -1) return 1 // b is in the enum, a is not\n // if both are not in the enum, sort by label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n } else {\n // for other groupings, sort by the group label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n }\n })\n\n // filter out empty groups — Ungrouped has no server count, keep it reachable\n const nonEmptyGroups = groupsList.filter(\n (group) =>\n (group.group?.count ?? 0) > 0 ||\n (group.subRows?.length ?? 0) > 0 ||\n group.group?.value === UNGROUPED_VALUE,\n )\n\n return showEmpty ? groupsList : nonEmptyGroups\n },\n [\n entities,\n entityType,\n groups,\n attribFields,\n showEmpty,\n groupCounts,\n groupCountsComplete,\n entityToGroupRow,\n project,\n ],\n )\n}\n\nexport default useBuildGroupByTableData\n"],"names":["NEXT_PAGE_ID","UNGROUPED_VALUE","ROW_ID_SEPARATOR","valueToStringArray","value","v","getGroupData","groupById","groupValue","groups","groupCounts","groupCountsComplete","stat","group","base","GROUP_BY_ID","buildGroupId","parseGroupId","groupId","isGroupId","id","getSortingIds","groupBy","project","attribFields","attributeId","s","t","f","field","e","defaultEntityToGroupRow","task","entityType","getEntityTypeData","typeData","linksToTableData","useBuildGroupByTableData","entities","showEmpty","groupRowFunc","useProjectContext","useGetEntityTypeData","entityToGroupRow","useCallback","baseRow","groupsMap","groupData","ungroupedId","getUnGroupedGroup","ungroupedGroup","entity","groupValues","groupRow","groupsList","attribSortingIds","sortDirection","a","b","indexA","indexB","nonEmptyGroups"],"mappings":"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"}
1
+ {"version":3,"file":"useBuildGroupByTableData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.ts"],"sourcesContent":["// based on the groupBy field we take a flat list of items and group them\n// each group is a root node with subItems as the grouped items\n// any leftover items that do not match the groupBy field are added as a separate group (\"Ungrouped\")\n\nimport type { GroupCountsMap } from '@shared/api'\nimport { EntityGroup } from '@shared/api'\nimport { TableGroupBy } from '../context'\nimport { EditorTaskNode, EntitiesMap, EntityMap, ProjectTableAttribute, TableRow } from '../types'\nimport { useGetEntityTypeData } from './useGetEntityTypeData'\nimport { useCallback } from 'react'\nimport { linksToTableData } from '../utils'\nimport { ProjectModelWithProducts, useProjectContext } from '@shared/context'\n\nexport type GroupByEntityType = 'task' | 'folder' | 'version' | 'product'\n\nexport type GroupData = {\n value: string\n label: string\n color?: string\n icon?: string\n img?: string\n count?: number\n percentage?: number\n}\n\nexport const NEXT_PAGE_ID = 'next-page'\nexport const UNGROUPED_VALUE = '_ungrouped'\nexport const ROW_ID_SEPARATOR = '__'\n\nconst valueToStringArray = (value?: any): string[] =>\n value\n ? Array.isArray(value)\n ? [...new Set(value.map((v) => v.toString()))] // dedup so an entity can't land in the same group twice (keeps row.id unique)\n : [value.toString()]\n : []\n\n// get group label, color and icon; overlay the filter-aware count + percentage\n// from groupCounts when available (falls back to the grouping endpoint count)\nconst getGroupData = (\n groupById: string,\n groupValue: string,\n groups?: EntityGroup[],\n groupCounts?: GroupCountsMap,\n groupCountsComplete?: boolean,\n): GroupData => {\n const stat = groupCounts?.get(groupValue)\n const group = groups?.find((g) => g.value === groupValue)\n\n const base: GroupData = group\n ? {\n value: group.value,\n label: group.label || group.value,\n color: group.color,\n icon: group.icon,\n count: group.count,\n img: groupById === 'assignees' ? `/api/users/${group.value}/avatar` : undefined,\n }\n : { value: groupValue, label: groupValue }\n\n if (stat) {\n base.count = stat.count\n base.percentage = stat.percentage\n } else if (groupCounts && groupCountsComplete) {\n // stats are authoritative: a named group absent from them truly has 0 matches\n base.count = 0\n base.percentage = undefined\n }\n return base\n}\n\nexport const GROUP_BY_ID = '_GROUP_'\nexport const buildGroupId = (value: string) => `${GROUP_BY_ID}${value}`\nexport const parseGroupId = (groupId: string): string | null => {\n if (!groupId.startsWith(GROUP_BY_ID)) return null\n return groupId.slice(GROUP_BY_ID.length) // +1 for the underscore\n}\nexport const isGroupId = (id: string): boolean => id.startsWith(GROUP_BY_ID)\n\ntype BuildGroupByTableProps = {\n entities: EntitiesMap\n entityType: string\n groups?: EntityGroup[]\n attribFields: ProjectTableAttribute[]\n showEmpty?: boolean\n groupRowFunc?: (node: any) => TableRow\n groupCounts?: GroupCountsMap\n groupCountsComplete?: boolean\n}\n\n// get sorting ids based on the groupBy field\nconst getSortingIds = (\n groupBy: TableGroupBy,\n project?: ProjectModelWithProducts,\n attribFields: ProjectTableAttribute[] = [],\n): string[] => {\n const attributeId = groupBy.id.replace('attrib.', '')\n\n // for status, taskType, folderType use project data order\n if (attributeId === 'status') {\n return project?.statuses?.map((s) => s.name) || []\n } else if (attributeId === 'taskType') {\n return project?.taskTypes?.map((t) => t.name) || []\n } else if (attributeId === 'folderType') {\n return project?.folderTypes?.map((f) => f.name) || []\n } else if (groupBy.id.startsWith('attrib.')) {\n // for other enum attributes, use the enum values order\n return (\n attribFields\n .find((field) => field.name === attributeId)\n ?.data.enum?.map((e) => e.value.toString()) || []\n )\n } else return []\n}\n\nconst defaultEntityToGroupRow = (\n task: EditorTaskNode,\n group: string | undefined,\n entityType: string,\n project: ProjectModelWithProducts,\n getEntityTypeData: ReturnType<typeof useGetEntityTypeData>,\n): TableRow & { subRows: TableRow[] } => {\n const typeData = getEntityTypeData(entityType, task.taskType)\n return {\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the folder\n entityId: task.id,\n entityType: entityType,\n parentId: task.folderId,\n folderId: task.folderId,\n name: task.name || '',\n label: task.label || task.name || '',\n icon: typeData?.icon || null,\n color: typeData?.color || null,\n status: task.status,\n assignees: task.assignees,\n tags: task.tags,\n img: null,\n subRows: [],\n subType: task.taskType || null,\n attrib: task.attrib,\n ownAttrib: task.ownAttrib,\n parents: task.parents || [],\n folder: task.parents?.[task.parents.length - 1] || undefined,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n hasReviewables: task.hasReviewables || false,\n links: linksToTableData(task.links, entityType, {\n folderTypes: project?.folderTypes || [],\n productTypes: Object.values(project.productTypes) || [],\n taskTypes: project?.taskTypes || [],\n }),\n subtasks: task.subtasks || [],\n latestComments: task.latestComments || [],\n }\n}\n\nconst useBuildGroupByTableData = ({\n entities,\n entityType,\n groups = [],\n attribFields,\n showEmpty,\n groupRowFunc, // for versions etc\n groupCounts,\n groupCountsComplete,\n}: BuildGroupByTableProps) => {\n const project = useProjectContext()\n const getEntityTypeData = useGetEntityTypeData({ projectInfo: project })\n\n const entityToGroupRow = useCallback(\n (task: EditorTaskNode, group?: string): TableRow & { subRows: TableRow[] } => {\n // Use provided groupRowFunc or fall back to default\n const baseRow = groupRowFunc\n ? groupRowFunc(task)\n : defaultEntityToGroupRow(task, group, entityType, project, getEntityTypeData)\n\n // Ensure group-specific fields are set\n return {\n ...baseRow,\n id: task.id + ROW_ID_SEPARATOR + group, // unique id for the task in the group\n subRows: baseRow.subRows || [],\n }\n },\n [groupRowFunc, getEntityTypeData, entityType, project],\n )\n\n return useCallback(\n (groupBy: TableGroupBy): TableRow[] => {\n const groupsMap = new Map<string, TableRow>()\n\n for (const group of groups) {\n const groupValue = group.value?.toString() as string\n const groupId = buildGroupId(groupValue)\n const groupData = getGroupData(\n groupBy.id,\n groupValue,\n groups,\n groupCounts,\n groupCountsComplete,\n )\n groupsMap.set(groupValue, {\n id: groupId,\n name: groupValue,\n entityType: 'group',\n subRows: [],\n label: groupData.label,\n group: groupData,\n links: {},\n })\n }\n\n const ungroupedId = buildGroupId(UNGROUPED_VALUE)\n // gets the \"Ungrouped\" group, creating it if it doesn't exist\n const getUnGroupedGroup = () => {\n let ungroupedGroup = groupsMap.get(UNGROUPED_VALUE)\n if (!ungroupedGroup) {\n const stat = groupCounts?.get(UNGROUPED_VALUE)\n ungroupedGroup = {\n id: ungroupedId,\n name: 'Ungrouped',\n entityType: 'group',\n subRows: [],\n label: 'Ungrouped',\n group: {\n value: UNGROUPED_VALUE,\n label: 'Ungrouped',\n count: stat?.count,\n percentage: stat?.percentage,\n },\n links: {},\n }\n // create ungrouped group if it doesn't exist\n groupsMap.set(UNGROUPED_VALUE, ungroupedGroup)\n }\n return ungroupedGroup\n }\n\n const canHaveUngrouped =\n groupBy.id === 'tags' || groupBy.id === 'assignees' || groupBy.id.startsWith('attrib.')\n if (canHaveUngrouped) getUnGroupedGroup()\n\n for (const [, entity] of entities) {\n // if the entity is not of the specified type, skip it\n if (entity.entityType !== entityType) continue\n // add entities to specific group\n let groupValues: string[] = []\n if (groupBy.id.startsWith('attrib.')) {\n // for attribute based grouping, get the value of the attribute\n const attributeId = groupBy.id.split('.')[1]\n groupValues = valueToStringArray(entity.attrib?.[attributeId])\n } else if (groupBy.id === 'folderType' && 'folder' in entity) {\n // folderType is nested under folder for task entities (from TaskPropsFragment)\n groupValues = valueToStringArray(\n (entity as EditorTaskNode & { folder?: { folderType?: string } }).folder?.folderType,\n )\n } else {\n groupValues = valueToStringArray(entity[groupBy.id as keyof EntityMap])\n }\n\n // if there are no values, add to \"Ungrouped\" group\n if (groupValues.length === 0) {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE))\n }\n // for each group value, find it's group and add the entity to it\n // if we can't find the group, add it to \"Ungrouped\"\n for (const groupValue of groupValues) {\n const groupRow = groupsMap.get(groupValue)\n if (groupRow) {\n groupRow.subRows?.push(entityToGroupRow(entity as EditorTaskNode, groupValue))\n } else {\n const ungroupedGroup = getUnGroupedGroup()\n ungroupedGroup.subRows?.push(\n entityToGroupRow(entity as EditorTaskNode, UNGROUPED_VALUE),\n )\n }\n }\n\n // for groups metadata on entity, check if there is a next page\n if ('groups' in entity && Array.isArray(entity.groups)) {\n for (const group of entity.groups) {\n const hasNextPageGroup = group.hasNextPage\n if (hasNextPageGroup && groupsMap.has(group.value)) {\n // add a next page row to the group\n const groupRow = groupsMap.get(group.value)\n if (groupRow) {\n groupRow.subRows?.push({\n id: `${group.value}-next-page`,\n name: `Load more tasks...`,\n entityType: NEXT_PAGE_ID,\n subRows: [],\n label: `Next page for ${group.value}`,\n group: { value: group.value, label: group.value },\n links: {},\n })\n }\n }\n }\n }\n }\n\n const groupsList = Array.from(groupsMap.values())\n\n const attribSortingIds = getSortingIds(groupBy, project, attribFields)\n\n // sort the groups by their label\n // if the group is an attribute with enum values, sort by the enum values\n const sortDirection = groupBy.desc ? -1 : 1\n groupsList.sort((a, b) => {\n if (a.group?.value === UNGROUPED_VALUE) return 1 // \"Ungrouped\" should always be last\n if (b.group?.value === UNGROUPED_VALUE) return -1 // \"Ungrouped\" should always be last\n if (attribSortingIds.length) {\n // sort by index of the enum value\n const indexA = attribSortingIds.indexOf(a.group?.value || '')\n const indexB = attribSortingIds.indexOf(b.group?.value || '')\n if (indexA !== -1 && indexB !== -1) {\n return (indexA - indexB) * sortDirection\n }\n if (indexA !== -1) return -1 // a is in the enum, b is not\n if (indexB !== -1) return 1 // b is in the enum, a is not\n // if both are not in the enum, sort by label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n } else {\n // for other groupings, sort by the group label\n return (a.group?.label?.localeCompare(b.group?.label || '') || 0) * sortDirection\n }\n })\n\n // filter out empty groups — Ungrouped has no server count, keep it reachable\n const nonEmptyGroups = groupsList.filter(\n (group) =>\n (group.group?.count ?? 0) > 0 ||\n (group.subRows?.length ?? 0) > 0 ||\n group.group?.value === UNGROUPED_VALUE,\n )\n\n return showEmpty ? groupsList : nonEmptyGroups\n },\n [\n entities,\n entityType,\n groups,\n attribFields,\n showEmpty,\n groupCounts,\n groupCountsComplete,\n entityToGroupRow,\n project,\n ],\n )\n}\n\nexport default useBuildGroupByTableData\n"],"names":["NEXT_PAGE_ID","UNGROUPED_VALUE","ROW_ID_SEPARATOR","valueToStringArray","value","v","getGroupData","groupById","groupValue","groups","groupCounts","groupCountsComplete","stat","group","base","GROUP_BY_ID","buildGroupId","parseGroupId","groupId","isGroupId","id","getSortingIds","groupBy","project","attribFields","attributeId","s","t","f","field","e","defaultEntityToGroupRow","task","entityType","getEntityTypeData","typeData","linksToTableData","useBuildGroupByTableData","entities","showEmpty","groupRowFunc","useProjectContext","useGetEntityTypeData","entityToGroupRow","useCallback","baseRow","groupsMap","groupData","ungroupedId","getUnGroupedGroup","ungroupedGroup","entity","groupValues","groupRow","groupsList","attribSortingIds","sortDirection","a","b","indexA","indexB","nonEmptyGroups"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,IAAe,aACfC,IAAkB,cAClBC,IAAmB,MAE1BC,IAAqB,CAACC,MAC1BA,IACI,MAAM,QAAQA,CAAK,IACjB,CAAC,GAAG,IAAI,IAAIA,EAAM,IAAI,CAACC,MAAMA,EAAE,SAAA,CAAU,CAAC,CAAC,IAC3C,CAACD,EAAM,SAAA,CAAU,IACnB,CAAA,GAIAE,IAAe,CACnBC,GACAC,GACAC,GACAC,GACAC,MACc;AACd,QAAMC,IAAOF,GAAa,IAAIF,CAAU,GAClCK,IAAQJ,GAAQ,KAAK,CAAC,MAAM,EAAE,UAAUD,CAAU,GAElDM,IAAkBD,IACpB;AAAA,IACE,OAAOA,EAAM;AAAA,IACb,OAAOA,EAAM,SAASA,EAAM;AAAA,IAC5B,OAAOA,EAAM;AAAA,IACb,MAAMA,EAAM;AAAA,IACZ,OAAOA,EAAM;AAAA,IACb,KAAKN,MAAc,cAAc,cAAcM,EAAM,KAAK,YAAY;AAAA,EAAA,IAExE,EAAE,OAAOL,GAAY,OAAOA,EAAA;AAEhC,SAAII,KACFE,EAAK,QAAQF,EAAK,OAClBE,EAAK,aAAaF,EAAK,cACdF,KAAeC,MAExBG,EAAK,QAAQ,GACbA,EAAK,aAAa,SAEbA;AACT,GAEaC,IAAc,WACdC,IAAe,CAACZ,MAAkB,GAAGW,CAAW,GAAGX,CAAK,IACxDa,KAAe,CAACC,MACtBA,EAAQ,WAAWH,CAAW,IAC5BG,EAAQ,MAAMH,EAAY,MAAM,IADM,MAGlCI,KAAY,CAACC,MAAwBA,EAAG,WAAWL,CAAW,GAcrEM,IAAgB,CACpBC,GACAC,GACAC,IAAwC,CAAA,MAC3B;AACb,QAAMC,IAAcH,EAAQ,GAAG,QAAQ,WAAW,EAAE;AAGpD,SAAIG,MAAgB,WACXF,GAAS,UAAU,IAAI,CAACG,MAAMA,EAAE,IAAI,KAAK,CAAA,IACvCD,MAAgB,aAClBF,GAAS,WAAW,IAAI,CAACI,MAAMA,EAAE,IAAI,KAAK,CAAA,IACxCF,MAAgB,eAClBF,GAAS,aAAa,IAAI,CAACK,MAAMA,EAAE,IAAI,KAAK,CAAA,IAC1CN,EAAQ,GAAG,WAAW,SAAS,IAGtCE,EACG,KAAK,CAACK,MAAUA,EAAM,SAASJ,CAAW,GACzC,KAAK,MAAM,IAAI,CAACK,MAAMA,EAAE,MAAM,SAAA,CAAU,KAAK,CAAA,IAEvC,CAAA;AAChB,GAEMC,IAA0B,CAC9BC,GACAnB,GACAoB,GACAV,GACAW,MACuC;AACvC,QAAMC,IAAWD,EAAkBD,GAAYD,EAAK,QAAQ;AAC5D,SAAO;AAAA,IACL,IAAIA,EAAK,KAAK9B,IAAmBW;AAAA;AAAA,IACjC,UAAUmB,EAAK;AAAA,IACf,YAAAC;AAAA,IACA,UAAUD,EAAK;AAAA,IACf,UAAUA,EAAK;AAAA,IACf,MAAMA,EAAK,QAAQ;AAAA,IACnB,OAAOA,EAAK,SAASA,EAAK,QAAQ;AAAA,IAClC,MAAMG,GAAU,QAAQ;AAAA,IACxB,OAAOA,GAAU,SAAS;AAAA,IAC1B,QAAQH,EAAK;AAAA,IACb,WAAWA,EAAK;AAAA,IAChB,MAAMA,EAAK;AAAA,IACX,KAAK;AAAA,IACL,SAAS,CAAA;AAAA,IACT,SAASA,EAAK,YAAY;AAAA,IAC1B,QAAQA,EAAK;AAAA,IACb,WAAWA,EAAK;AAAA,IAChB,SAASA,EAAK,WAAW,CAAA;AAAA,IACzB,QAAQA,EAAK,UAAUA,EAAK,QAAQ,SAAS,CAAC,KAAK;AAAA,IACnD,WAAWA,EAAK;AAAA,IAChB,WAAWA,EAAK;AAAA,IAChB,gBAAgBA,EAAK,kBAAkB;AAAA,IACvC,OAAOI,EAAiBJ,EAAK,OAAOC,GAAY;AAAA,MAC9C,aAAaV,GAAS,eAAe,CAAA;AAAA,MACrC,cAAc,OAAO,OAAOA,EAAQ,YAAY,KAAK,CAAA;AAAA,MACrD,WAAWA,GAAS,aAAa,CAAA;AAAA,IAAC,CACnC;AAAA,IACD,UAAUS,EAAK,YAAY,CAAA;AAAA,IAC3B,gBAAgBA,EAAK,kBAAkB,CAAA;AAAA,EAAC;AAE5C,GAEMK,KAA2B,CAAC;AAAA,EAChC,UAAAC;AAAA,EACA,YAAAL;AAAA,EACA,QAAAxB,IAAS,CAAA;AAAA,EACT,cAAAe;AAAA,EACA,WAAAe;AAAA,EACA,cAAAC;AAAA;AAAA,EACA,aAAA9B;AAAA,EACA,qBAAAC;AACF,MAA8B;AAC5B,QAAMY,IAAUkB,EAAA,GACVP,IAAoBQ,EAAqB,EAAE,aAAanB,GAAS,GAEjEoB,IAAmBC;AAAA,IACvB,CAACZ,GAAsBnB,MAAuD;AAE5E,YAAMgC,IAAUL,IACZA,EAAaR,CAAI,IACjBD,EAAwBC,GAAMnB,GAAOoB,GAAYV,GAASW,CAAiB;AAG/E,aAAO;AAAA,QACL,GAAGW;AAAA,QACH,IAAIb,EAAK,KAAK9B,IAAmBW;AAAA;AAAA,QACjC,SAASgC,EAAQ,WAAW,CAAA;AAAA,MAAC;AAAA,IAEjC;AAAA,IACA,CAACL,GAAcN,GAAmBD,GAAYV,CAAO;AAAA,EAAA;AAGvD,SAAOqB;AAAA,IACL,CAACtB,MAAsC;AACrC,YAAMwB,wBAAgB,IAAA;AAEtB,iBAAWjC,KAASJ,GAAQ;AAC1B,cAAMD,IAAaK,EAAM,OAAO,SAAA,GAC1BK,IAAUF,EAAaR,CAAU,GACjCuC,IAAYzC;AAAA,UAChBgB,EAAQ;AAAA,UACRd;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,QAAA;AAEF,QAAAmC,EAAU,IAAItC,GAAY;AAAA,UACxB,IAAIU;AAAA,UACJ,MAAMV;AAAA,UACN,YAAY;AAAA,UACZ,SAAS,CAAA;AAAA,UACT,OAAOuC,EAAU;AAAA,UACjB,OAAOA;AAAA,UACP,OAAO,CAAA;AAAA,QAAC,CACT;AAAA,MACH;AAEA,YAAMC,IAAchC,EAAaf,CAAe,GAE1CgD,IAAoB,MAAM;AAC9B,YAAIC,IAAiBJ,EAAU,IAAI7C,CAAe;AAClD,YAAI,CAACiD,GAAgB;AACnB,gBAAMtC,IAAOF,GAAa,IAAIT,CAAe;AAC7C,UAAAiD,IAAiB;AAAA,YACf,IAAIF;AAAA,YACJ,MAAM;AAAA,YACN,YAAY;AAAA,YACZ,SAAS,CAAA;AAAA,YACT,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO/C;AAAA,cACP,OAAO;AAAA,cACP,OAAOW,GAAM;AAAA,cACb,YAAYA,GAAM;AAAA,YAAA;AAAA,YAEpB,OAAO,CAAA;AAAA,UAAC,GAGVkC,EAAU,IAAI7C,GAAiBiD,CAAc;AAAA,QAC/C;AACA,eAAOA;AAAA,MACT;AAIA,OADE5B,EAAQ,OAAO,UAAUA,EAAQ,OAAO,eAAeA,EAAQ,GAAG,WAAW,SAAS,MAClE2B,EAAA;AAEtB,iBAAW,CAAA,EAAGE,CAAM,KAAKb,GAAU;AAEjC,YAAIa,EAAO,eAAelB,EAAY;AAEtC,YAAImB,IAAwB,CAAA;AAC5B,YAAI9B,EAAQ,GAAG,WAAW,SAAS,GAAG;AAEpC,gBAAMG,IAAcH,EAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3C,UAAA8B,IAAcjD,EAAmBgD,EAAO,SAAS1B,CAAW,CAAC;AAAA,QAC/D,MAAA,CAAWH,EAAQ,OAAO,gBAAgB,YAAY6B,IAEpDC,IAAcjD;AAAA,UACXgD,EAAiE,QAAQ;AAAA,QAAA,IAG5EC,IAAcjD,EAAmBgD,EAAO7B,EAAQ,EAAqB,CAAC;AAIxE,QAAI8B,EAAY,WAAW,KACFH,EAAA,EACR,SAAS,KAAKN,EAAiBQ,GAA0BlD,CAAe,CAAC;AAI1F,mBAAWO,KAAc4C,GAAa;AACpC,gBAAMC,IAAWP,EAAU,IAAItC,CAAU;AACzC,UAAI6C,IACFA,EAAS,SAAS,KAAKV,EAAiBQ,GAA0B3C,CAAU,CAAC,IAEtDyC,EAAA,EACR,SAAS;AAAA,YACtBN,EAAiBQ,GAA0BlD,CAAe;AAAA,UAAA;AAAA,QAGhE;AAGA,YAAI,YAAYkD,KAAU,MAAM,QAAQA,EAAO,MAAM;AACnD,qBAAWtC,KAASsC,EAAO;AAEzB,gBADyBtC,EAAM,eACPiC,EAAU,IAAIjC,EAAM,KAAK,GAAG;AAElD,oBAAMwC,IAAWP,EAAU,IAAIjC,EAAM,KAAK;AAC1C,cAAIwC,KACFA,EAAS,SAAS,KAAK;AAAA,gBACrB,IAAI,GAAGxC,EAAM,KAAK;AAAA,gBAClB,MAAM;AAAA,gBACN,YAAYb;AAAA,gBACZ,SAAS,CAAA;AAAA,gBACT,OAAO,iBAAiBa,EAAM,KAAK;AAAA,gBACnC,OAAO,EAAE,OAAOA,EAAM,OAAO,OAAOA,EAAM,MAAA;AAAA,gBAC1C,OAAO,CAAA;AAAA,cAAC,CACT;AAAA,YAEL;AAAA;AAAA,MAGN;AAEA,YAAMyC,IAAa,MAAM,KAAKR,EAAU,QAAQ,GAE1CS,IAAmBlC,EAAcC,GAASC,GAASC,CAAY,GAI/DgC,IAAgBlC,EAAQ,OAAO,KAAK;AAC1C,MAAAgC,EAAW,KAAK,CAACG,GAAGC,MAAM;AACxB,YAAID,EAAE,OAAO,UAAUxD,EAAiB,QAAO;AAC/C,YAAIyD,EAAE,OAAO,UAAUzD,EAAiB,QAAO;AAC/C,YAAIsD,EAAiB,QAAQ;AAE3B,gBAAMI,IAASJ,EAAiB,QAAQE,EAAE,OAAO,SAAS,EAAE,GACtDG,IAASL,EAAiB,QAAQG,EAAE,OAAO,SAAS,EAAE;AAC5D,iBAAIC,MAAW,MAAMC,MAAW,MACtBD,IAASC,KAAUJ,IAEzBG,MAAW,KAAW,KACtBC,MAAW,KAAW,KAElBH,EAAE,OAAO,OAAO,cAAcC,EAAE,OAAO,SAAS,EAAE,KAAK,KAAKF;AAAA,QACtE;AAEE,kBAAQC,EAAE,OAAO,OAAO,cAAcC,EAAE,OAAO,SAAS,EAAE,KAAK,KAAKF;AAAA,MAExE,CAAC;AAGD,YAAMK,IAAiBP,EAAW;AAAA,QAChC,CAACzC,OACEA,EAAM,OAAO,SAAS,KAAK,MAC3BA,EAAM,SAAS,UAAU,KAAK,KAC/BA,EAAM,OAAO,UAAUZ;AAAA,MAAA;AAG3B,aAAOsC,IAAYe,IAAaO;AAAA,IAClC;AAAA,IACA;AAAA,MACEvB;AAAA,MACAL;AAAA,MACAxB;AAAA,MACAe;AAAA,MACAe;AAAA,MACA7B;AAAA,MACAC;AAAA,MACAgC;AAAA,MACApB;AAAA,IAAA;AAAA,EACF;AAEJ;"}