@ynput/ayon-frontend-shared 0.2.37 → 0.2.38

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 (529) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +67 -66
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +182 -167
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Views.cjs.js.map +1 -1
  8. package/dist/Views.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs10.js +1 -1
  10. package/dist/_virtual/index.cjs11.js +1 -1
  11. package/dist/_virtual/index.cjs12.js +1 -1
  12. package/dist/_virtual/index.es10.js +3 -3
  13. package/dist/_virtual/index.es11.js +5 -5
  14. package/dist/_virtual/index.es12.js +5 -5
  15. package/dist/api.cjs.js +1 -1
  16. package/dist/api.es.js +107 -106
  17. package/dist/components.cjs.js +1 -1
  18. package/dist/components.es.js +135 -133
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/context.cjs.js +1 -1
  21. package/dist/context.es.js +15 -12
  22. package/dist/context.es.js.map +1 -1
  23. package/dist/index.cjs.js +1 -1
  24. package/dist/index.es.js +56 -55
  25. package/dist/index.es.js.map +1 -1
  26. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  27. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  28. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  29. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  30. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  31. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  32. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  33. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  34. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  35. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  36. package/dist/shared/src/api/queries/project/getProject.es.js +7 -1
  37. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  39. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  40. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +73 -67
  41. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +131 -114
  45. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  46. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  47. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  48. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  49. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  51. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  53. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  54. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  55. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  56. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +61 -50
  57. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  58. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  59. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  60. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  61. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  62. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  63. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  64. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +70 -69
  65. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  66. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  67. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  68. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
  69. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  70. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  71. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  72. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  73. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  74. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  75. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  76. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +106 -106
  77. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  78. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  79. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +53 -52
  81. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  82. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  83. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  84. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +58 -46
  85. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  86. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  87. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  88. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +5 -4
  89. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  90. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  91. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  92. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +44 -43
  93. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  94. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  95. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  96. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +81 -80
  97. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  98. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  99. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  100. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +43 -42
  101. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  102. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +2 -0
  103. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -0
  104. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +263 -0
  105. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -0
  106. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +2 -2
  107. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  108. package/dist/shared/src/components/RenameForm/RenameForm.es.js +65 -64
  109. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  110. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  111. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  112. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +139 -142
  113. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  114. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  115. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  116. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +49 -48
  117. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  118. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  119. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  120. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +48 -47
  121. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  122. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js +1 -1
  123. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js.map +1 -1
  124. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.es.js +19 -27
  125. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.es.js.map +1 -1
  126. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  127. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  128. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +221 -211
  129. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  130. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  131. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  132. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +23 -22
  133. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  134. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  135. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  136. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +47 -46
  137. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  138. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  139. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  140. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +8 -7
  141. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  142. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -6
  143. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +108 -112
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  146. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  147. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  148. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +22 -23
  149. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  150. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  151. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  152. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +48 -47
  153. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  154. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  155. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  156. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  157. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  159. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +49 -48
  161. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  162. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +164 -166
  165. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  166. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +57 -56
  169. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +103 -97
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +87 -86
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +18 -17
  185. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
  189. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js +25 -22
  193. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  194. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
  197. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  198. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  199. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +44 -43
  201. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  202. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  203. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +48 -47
  205. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  206. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +48 -47
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +48 -47
  213. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  214. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +44 -46
  217. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  219. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/Feed.es.js +4 -3
  221. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  225. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  227. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +3 -2
  229. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  231. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +110 -109
  233. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  235. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
  237. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  239. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  240. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
  241. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  242. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  243. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  244. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +12 -11
  245. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  246. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  247. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  248. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +43 -43
  249. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  250. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  251. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  252. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  253. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  254. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  255. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  256. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +11 -9
  257. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +333 -333
  261. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +52 -51
  265. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +42 -41
  269. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +52 -51
  273. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +50 -49
  277. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  279. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +235 -214
  281. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +45 -40
  285. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +160 -156
  291. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +59 -58
  295. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +10 -9
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +65 -66
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +111 -112
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +57 -57
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +50 -49
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +59 -53
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +15 -20
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +49 -48
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +46 -45
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +50 -49
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +51 -50
  343. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +66 -65
  347. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js +4 -4
  351. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js.map +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +55 -54
  355. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  356. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +130 -116
  359. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +57 -56
  363. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +26 -34
  367. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +108 -220
  371. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +63 -62
  375. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +46 -45
  379. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +3 -3
  381. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +58 -62
  383. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  384. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  385. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +114 -113
  387. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  388. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  389. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +48 -47
  391. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  392. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  393. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  395. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  396. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  397. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +3 -2
  399. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  400. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  401. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +92 -87
  403. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  404. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  405. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +3 -2
  407. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  408. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  409. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
  411. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  412. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  413. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  414. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  415. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  416. package/dist/shared/src/context/DetailsPanelContext.es.js +5 -4
  417. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  418. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  419. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  420. package/dist/shared/src/context/PowerpackContext.es.js +7 -6
  421. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  422. package/dist/shared/src/context/ProjectContext.cjs.js +2 -0
  423. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -0
  424. package/dist/shared/src/context/ProjectContext.es.js +182 -0
  425. package/dist/shared/src/context/ProjectContext.es.js.map +1 -0
  426. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  427. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  428. package/dist/shared/src/context/WebsocketContext.es.js +47 -46
  429. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  430. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  431. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  432. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  433. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  434. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  435. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  436. package/dist/shared/src/hooks/useGetEntityGroups.es.js +6 -5
  437. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  438. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  439. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  440. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
  441. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  442. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  443. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  444. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  445. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  446. package/dist/shared/src/util/versionUploadHelpers.cjs.js +1 -1
  447. package/dist/shared/src/util/versionUploadHelpers.cjs.js.map +1 -1
  448. package/dist/shared/src/util/versionUploadHelpers.es.js +24 -34
  449. package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -1
  450. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
  451. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
  452. package/dist/src/components/Menu/MenuComponents/Menu.es.js +3 -2
  453. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
  454. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
  455. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
  456. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +6 -5
  457. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
  458. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
  459. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
  460. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +3 -2
  461. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
  462. package/dist/types/api/generated/views.d.ts +13 -21
  463. package/dist/types/api/queries/actions/getActions.d.ts +6 -6
  464. package/dist/types/api/queries/activities/getActivities.d.ts +8 -8
  465. package/dist/types/api/queries/activities/getCategories.d.ts +2 -2
  466. package/dist/types/api/queries/activities/getMentions.d.ts +2 -2
  467. package/dist/types/api/queries/addons/getAddons.d.ts +8 -8
  468. package/dist/types/api/queries/attributes/getAttributes.d.ts +4 -4
  469. package/dist/types/api/queries/authentication/getAuthentication.d.ts +2 -2
  470. package/dist/types/api/queries/cloud/cloud.d.ts +4 -4
  471. package/dist/types/api/queries/entities/getEntity.d.ts +10 -10
  472. package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -4
  473. package/dist/types/api/queries/entityLists/getLists.d.ts +188 -188
  474. package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +2 -2
  475. package/dist/types/api/queries/entityLists/listFolders.d.ts +2 -2
  476. package/dist/types/api/queries/folders/getFolders.d.ts +4 -4
  477. package/dist/types/api/queries/grouping/getGrouping.d.ts +2 -2
  478. package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -2
  479. package/dist/types/api/queries/overview/getOverview.d.ts +10 -10
  480. package/dist/types/api/queries/permissions/getPermissions.d.ts +4 -4
  481. package/dist/types/api/queries/project/getProject.d.ts +190 -6
  482. package/dist/types/api/queries/review/getReview.d.ts +6 -6
  483. package/dist/types/api/queries/share/share.d.ts +2 -2
  484. package/dist/types/api/queries/system/getSystem.d.ts +6 -6
  485. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +11 -8
  486. package/dist/types/api/queries/users/getUsers.d.ts +20 -20
  487. package/dist/types/api/queries/users/guests.d.ts +2 -2
  488. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +9 -6
  489. package/dist/types/api/queries/versions/getVersionsProductsUtils.d.ts +5 -5
  490. package/dist/types/api/queries/versions/updateVersions.d.ts +2 -2
  491. package/dist/types/api/queries/views/getViews.d.ts +8 -8
  492. package/dist/types/api/queries/watchers/getWatchers.d.ts +2 -2
  493. package/dist/types/components/DetailsPanelDetails/hooks/index.d.ts +0 -1
  494. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +29 -0
  495. package/dist/types/components/RemotePage/index.d.ts +1 -0
  496. package/dist/types/components/ReviewablesList/getGroupedReviewables.d.ts +1 -2
  497. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
  498. package/dist/types/components/index.d.ts +31 -30
  499. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +3 -2
  500. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +4 -2
  501. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -1
  502. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +0 -5
  503. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -4
  504. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -7
  505. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +2 -3
  506. package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +1 -3
  507. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +5 -3
  508. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +3 -2
  509. package/dist/types/containers/Views/index.d.ts +1 -1
  510. package/dist/types/context/AddonProjectContext.d.ts +9 -14
  511. package/dist/types/context/ProjectContext.d.ts +33 -0
  512. package/dist/types/context/index.d.ts +1 -0
  513. package/dist/types/hooks/useGroupByRemoteModules.d.ts +2 -1
  514. package/dist/types/util/index.d.ts +0 -2
  515. package/dist/types/util/versionUploadHelpers.d.ts +0 -1
  516. package/dist/util.cjs.js +1 -1
  517. package/dist/util.es.js +55 -58
  518. package/dist/util.es.js.map +1 -1
  519. package/package.json +1 -1
  520. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +0 -2
  521. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +0 -1
  522. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +0 -113
  523. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +0 -1
  524. package/dist/shared/src/util/productTypes.cjs.js +0 -2
  525. package/dist/shared/src/util/productTypes.cjs.js.map +0 -1
  526. package/dist/shared/src/util/productTypes.es.js +0 -25
  527. package/dist/shared/src/util/productTypes.es.js.map +0 -1
  528. package/dist/types/components/DetailsPanelDetails/hooks/useEntityData.d.ts +0 -12
  529. package/dist/types/util/productTypes.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -30,8 +30,9 @@ import "../../context/MoveEntityContext.es.js";
30
30
  import "../../context/MenuContext.es.js";
31
31
  import "../../context/WebsocketContext.es.js";
32
32
  import "../../context/GlobalContext.es.js";
33
+ import "../../context/ProjectContext.es.js";
33
34
  import ve from "./helpers/mergeAnnotationAttachments.es.js";
34
- const ot = 30, it = ({ disabled: L, readOnly: S, statuses: R = [], entityListId: D }) => {
35
+ const it = 30, nt = ({ disabled: L, readOnly: S, statuses: R = [], entityListId: D }) => {
35
36
  const {
36
37
  projectName: r,
37
38
  entities: l,
@@ -184,7 +185,7 @@ const ot = 30, it = ({ disabled: L, readOnly: S, statuses: R = [], entityListId:
184
185
  ] }) });
185
186
  };
186
187
  export {
187
- it as Feed,
188
- ot as activitiesLast
188
+ nt as Feed,
189
+ it as activitiesLast
189
190
  };
190
191
  //# sourceMappingURL=Feed.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
1
+ "use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
2
2
  //# sourceMappingURL=ActivityComment.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
1
+ {"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"w7DAkDMA,GAAkB,CAAC,CACvB,SAAAC,EAAW,CAAC,EACZ,cAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,GACA,UAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,CAAA,CACb,IAAa,OACL,KAAA,CAAE,SAAAC,EAAU,eAAAC,EAAgB,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,EAAc,WAAAC,EAAY,QAAAC,CAAQ,EAC7FC,kBAAe,EAEXC,EAAeC,EAAAA,QAAQ,IACpBJ,EAAW,KAAMK,GAAQ,OAAA,OAAAA,EAAI,SAASC,EAAAzB,EAAS,eAAT,YAAAyB,EAAuB,UAAQ,GAAK,KAChF,EAACA,EAAAzB,GAAA,YAAAA,EAAU,eAAV,YAAAyB,EAAwB,SAAUN,CAAU,CAAC,EAE3CO,EAAuBC,GAAAA,wBAAwBL,GAAA,YAAAA,EAAc,KAAK,EAEpE,GAAA,CACF,KAAAM,EACA,WAAAC,EACA,eAAAC,EACA,UAAAC,EACA,cAAAC,EACA,SAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,OAAAC,CAAA,EACEtC,EACC6B,IAAyBA,GAAAM,GAAA,YAAAA,EAAQ,OAAQ,IACzCL,IAAiCA,GAAAK,GAAA,YAAAA,EAAQ,WAAYN,GAE1D,KAAM,CAAE,YAAAU,EAAa,yBAAAC,CAAyB,EAAIC,0BAAuB,EAEnEC,EAAoB,IAAM,CAC9BxB,EAAagB,CAAU,CACzB,EAEMS,EAAmB,IAAM,CAE7BzB,EAAa,IAAI,CACnB,EAEM0B,EAAa,MAAOC,EAAYR,EAAYS,KAAe,CAC/D,MAAM3C,GAAA,YAAAA,EAAW0C,EAAOR,EAAO,OAAWS,KAC1C5B,EAAa,IAAI,CACnB,EAEM6B,EAAY9B,IAAciB,EAE1Bc,EAAQhB,IAAkB,UAAYtB,EAEtCuC,EAAe,SAAY,CACzB,MAAAC,EAAOC,eAAYvB,CAAI,EAKzBoB,GAASV,GACNY,EAAA,KAAK,CAAE,GAAIZ,EAAO,GAAI,KAAMA,EAAO,KAAM,EAIhDpC,GAAa,MAAMA,EAASgC,EAAYD,EAAUiB,CAAI,CACxD,EAEME,EAAqB,IAAM,CACjBC,iBAAA,CACZ,MAAO,iBACP,QAAS,gDACT,OAAQ,SAAY,CAClB,MAAMJ,EAAa,CAAA,CACrB,CACD,CACH,EAEM,CAAG,CAAAK,CAAa,EAAIC,GAAoB,EAExCC,EAAkBjC,EAAA,QACtB,IAAMkC,uBAAoBzD,EAAS,UAAWc,CAAQ,EACtD,CAAC,CAAC,GAAId,EAAS,WAAa,EAAG,CAAC,CAClC,EAEM0D,EAAyBC,GAAuB,CAChDA,EAAS,SACI5C,EAAA,CACb,YAAAT,EAEA,SAAAQ,EACA,WAAAoB,EACA,oBAAqB,CACnB,SAAUyB,EAAS,IAAA,CACrB,CACD,EAEc3C,EAAA,CACb,YAAAV,EAEA,SAAAQ,EACA,WAAAoB,EACA,SAAUyB,EAAS,IAAA,CACpB,CAEL,EAEMC,EAAoBC,EAAA,YACvBC,GAAc,CACRA,EAAK,aAEVvB,GAAA,MAAAA,EAAeuB,EAAK,WAAuC,MAAM,CAAC,GACzCtB,EAAA,CAACN,CAAU,CAAC,EACvC,EACA,CAACK,CAAW,CACd,EAEA,OAEIwB,wBAAAC,EAAAA,kBAAAA,SAAA,CAAA,SAAAC,EAAA,kBAAA,KAACC,EAAO,QAAP,CACC,UAAWC,EAAK,UAAW,CACzB,QAAA/B,EACA,UAAAW,EACA,cAAApC,EACA,SAAU,CAAC,CAACW,GAAgB,CAACF,CAAA,CAC9B,EACD,GAAIc,EACJ,iBAAkBZ,GAAA,YAAAA,EAAc,MAChC,kBAAmBI,EAAqB,QACxC,mBAAoBA,EAAqB,UAEzC,SAAA,CAAAqC,EAAA,kBAAA,IAACK,GAAA,CACC,KAAMvC,EACN,SAAUC,EACV,KAAMC,EACN,MAAAiB,EACA,SAAAhD,EAEA,YAAAM,EACA,WAAAC,EACA,iBAAAC,EACA,mBAAoB8C,EACpB,SAAU,MAAA,CACZ,EACAW,yBAACI,EAAAA,KAAA,CAAY,UAAWF,EAAK,eAAgB,CAAE,UAAApB,EAAW,EACvD,SAAA,CAAA,CAACnC,GAAYwB,EACZ6B,EAAA,kBAAA,KAACK,EAAA,MAAA,CAAa,UAAW,QACtB,SAAA,CACCpE,GAAA6D,EAAA,kBAAA,IAACQ,EAAO,WAAP,CACC,KAAK,SACL,QAASnB,EACT,QAAQ,iBACR,QAAQ,MAAA,CACV,EAEDV,GACEqB,EAAAA,kBAAAA,IAAAQ,EAAA,WAAA,CAAkB,KAAK,cAAc,QAAS7B,EAAmB,QAAQ,MAAO,CAAA,CAAA,CAErF,CAAA,EAEAqB,EAAAA,kBAAAA,IAAC,MAAI,CAAA,UAAU,OAAQ,CAAA,EAGxB,CAAChB,GAAa,CAAC3B,GAAWE,GACzByC,EAAA,kBAAA,IAACS,GAAA,YAAA,CACC,MAAOlD,EAAa,KACpB,MAAOA,EAAa,MACpB,MAAO,CACL,IAAK,GACL,KAAM,EACR,EACA,UAAS,EAAA,CACX,EAGDyB,EACCgB,EAAA,kBAAA,IAACU,GAAA,QAAA,CACC,UAAW7C,EACX,UAAWS,EACX,aAAcf,GAAA,YAAAA,EAAc,KAC5B,UAAS,GACT,QAASqB,EACT,SAAUC,EACV,OAAQ,GACP,GAAGvC,CAAA,CAAA,EAIJ4D,EAAA,kBAAA,KAAAD,6BAAA,CAAA,SAAA,CAAAD,wBAACW,GACC,CAAA,SAAAX,EAAA,kBAAA,IAACY,GAAA,CACC,cAAe,CAACC,GAAWC,GAAOC,GAAiBC,EAAqB,EACxE,aAAeC,GAAQA,EACvB,WAAY,CAGV,EAAIC,GAEFC,EAAAA,KAAKD,EAAO,CACV,SAAAhD,EACA,YAAA3B,EAEA,iBAAAE,EACA,mBAAoB8C,EACpB,WAAApB,EACA,gBAAiBZ,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,SACzC,CAAA,EAGH,MAAQuD,GAAUE,EAAA,SAASF,EAAO,CAAE,SAAAjF,EAAU,cAAAC,EAAe,EAI7D,KAAOgF,GAAUG,EAAA,QAAQH,CAAK,EAE9B,WAAaA,GAAUI,EAAA,cAAcJ,CAAK,EAE1C,IAAMA,GACHhB,EAAA,kBAAA,KAAAqB,MAAA,CACC,SAAA,CAACvB,EAAAA,kBAAAA,IAAAwB,GAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EACjBN,EAAM,QAAA,EACT,EAGF,OAASA,2BAEJO,GAAe,CAAA,KAAMP,EAAM,GAAI,SAAApE,EAC7B,WAAM,SACT,CAGN,EAEC,SAAAe,CAAA,CAAA,EAEL,EAGAmC,EAAA,kBAAA,IAAC0B,GAAA,CACC,MAAApD,EACA,UAAWA,EAAM,OAAS,EAC1B,WAAAH,EACA,YAAA5B,EACA,eAAc,GACd,SAAUG,EACV,kBAAAmD,EACA,SAAU,MAAA,CAAA,CACZ,EACF,EAGD,CAACb,GACCgB,EAAAA,kBAAAA,IAAA,MAAA,CAAI,MAAO,CAAE,UAAW,MAAO,EAC7B,SACCP,GAAAO,EAAA,kBAAA,IAAC2B,GAAA,CACC,UAAWlC,EACX,cAAeE,EACf,SAAA9C,EACA,SAAUU,GAAgB,CAACF,EAAUE,EAAa,KAAO,OACzD,gBAAiBA,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,UACxC,iBAAkBA,EAAqB,OAAA,CAAA,CAG7C,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAAA,EAEJ,CAEJ"}
@@ -38,9 +38,10 @@ import "../../../../context/MoveEntityContext.es.js";
38
38
  import "../../../../context/MenuContext.es.js";
39
39
  import "../../../../context/WebsocketContext.es.js";
40
40
  import "../../../../context/GlobalContext.es.js";
41
+ import "../../../../context/ProjectContext.es.js";
41
42
  import { useBlendedCategoryColor as we } from "../CommentInput/hooks/useBlendedCategoryColor.es.js";
42
43
  import { CategoryTag as Ee } from "../ActivityCategorySelect/CategoryTag.es.js";
43
- const Co = ({
44
+ const jo = ({
44
45
  activity: r = {},
45
46
  onCheckChange: H,
46
47
  onDelete: d,
@@ -256,6 +257,6 @@ const Co = ({
256
257
  ) });
257
258
  };
258
259
  export {
259
- Co as default
260
+ jo as default
260
261
  };
261
262
  //# sourceMappingURL=ActivityComment.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityComment.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
1
+ {"version":3,"file":"ActivityComment.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("../../../../../../_virtual/jsx-runtime.cjs.js"),p=require("react"),T=require("@ynput/ayon-react-components"),b=require("../ActivityHeader/ActivityHeader.cjs.js"),t=require("./ActivityVersions.styled.cjs.js"),f=require("../ActivityGroup/ActivityGroup.styled.cjs.js"),k=require("../ActivityDate.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const w=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");const D=({activity:l,projectName:s,entityType:h,onReferenceClick:q,filter:a})=>{const{onOpenViewer:r}=w.useDetailsPanelContext();let{authorName:m,authorFullName:E,createdAt:d,versions:i=[]}=l;const[n,R]=p.useState(a==="versions"),o=2,[y,v]=p.useState(!1),A=(u,x)=>r==null?void 0:r({versionIds:[u],productId:x,projectName:s});return e.jsxRuntimeExports.jsxs(t.Container,{children:[e.jsxRuntimeExports.jsx(b,{name:m,fullName:E||m,date:d,activity:l,projectName:s,entityType:h,onReferenceClick:q}),i.flatMap((u,x)=>{const{name:C,id:c,productId:S,productName:I,updatedAt:N,comment:j}=u;return(x<o||n)&&e.jsxRuntimeExports.jsxs(t.Card,{onClick:()=>A(c,S),children:[e.jsxRuntimeExports.jsxs(t.Content,{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsxs(t.Title,{children:[e.jsxRuntimeExports.jsx("span",{children:I}),e.jsxRuntimeExports.jsx(k.default,{date:d,isExact:!0})]}),e.jsxRuntimeExports.jsx(t.VersionName,{className:"version",children:C})]}),e.jsxRuntimeExports.jsx(t.Thumbnail,{projectName:s,entityId:c,entityType:"version",onError:()=>v(!0),iconOnly:y,entityUpdatedAt:N,icon:"play_circle"})]}),j&&e.jsxRuntimeExports.jsx(t.Comment,{children:j})]},c)}),a!=="versions"&&i.length>o&&e.jsxRuntimeExports.jsxs(f.More,{onClick:()=>R(!n),children:[e.jsxRuntimeExports.jsx(T.Icon,{icon:"more"}),e.jsxRuntimeExports.jsx("span",{children:n?"Show less":`Show ${i.length-o} more versions`})]})]})};module.exports=D;
1
+ "use strict";const e=require("../../../../../../_virtual/jsx-runtime.cjs.js"),p=require("react"),T=require("@ynput/ayon-react-components"),b=require("../ActivityHeader/ActivityHeader.cjs.js"),t=require("./ActivityVersions.styled.cjs.js"),f=require("../ActivityGroup/ActivityGroup.styled.cjs.js"),k=require("../ActivityDate.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const w=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");const D=({activity:l,projectName:r,entityType:h,onReferenceClick:q,filter:a})=>{const{onOpenViewer:s}=w.useDetailsPanelContext();let{authorName:m,authorFullName:E,createdAt:d,versions:i=[]}=l;const[n,R]=p.useState(a==="versions"),o=2,[y,v]=p.useState(!1),A=(u,x)=>s==null?void 0:s({versionIds:[u],productId:x,projectName:r});return e.jsxRuntimeExports.jsxs(t.Container,{children:[e.jsxRuntimeExports.jsx(b,{name:m,fullName:E||m,date:d,activity:l,projectName:r,entityType:h,onReferenceClick:q}),i.flatMap((u,x)=>{const{name:C,id:c,productId:S,productName:I,updatedAt:N,comment:j}=u;return(x<o||n)&&e.jsxRuntimeExports.jsxs(t.Card,{onClick:()=>A(c,S),children:[e.jsxRuntimeExports.jsxs(t.Content,{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsxs(t.Title,{children:[e.jsxRuntimeExports.jsx("span",{children:I}),e.jsxRuntimeExports.jsx(k.default,{date:d,isExact:!0})]}),e.jsxRuntimeExports.jsx(t.VersionName,{className:"version",children:C})]}),e.jsxRuntimeExports.jsx(t.Thumbnail,{projectName:r,entityId:c,entityType:"version",onError:()=>v(!0),iconOnly:y,entityUpdatedAt:N,icon:"play_circle"})]}),j&&e.jsxRuntimeExports.jsx(t.Comment,{children:j})]},c)}),a!=="versions"&&i.length>o&&e.jsxRuntimeExports.jsxs(f.More,{onClick:()=>R(!n),children:[e.jsxRuntimeExports.jsx(T.Icon,{icon:"more"}),e.jsxRuntimeExports.jsx("span",{children:n?"Show less":`Show ${i.length-o} more versions`})]})]})};module.exports=D;
2
2
  //# sourceMappingURL=ActivityVersions.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":"4jCA+BA,MAAMA,EAAoD,CAAC,CACzD,SAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,OAAAC,CACF,IAAM,CACE,KAAA,CAAE,aAAAC,CAAa,EAAIC,yBAAuB,EAChD,GAAI,CAAE,WAAAC,EAAY,eAAAC,EAAgB,UAAAC,EAAW,SAAAC,EAAW,IAAOV,EAE/D,KAAM,CAACW,EAASC,CAAU,EAAIC,EAAAA,SAAST,IAAW,UAAU,EACtDU,EAAQ,EAER,CAACC,EAAgBC,CAAiB,EAAIH,EAAAA,SAAS,EAAK,EAEpDI,EAAc,CAACC,EAAmBC,IACtCd,GAAA,YAAAA,EAAe,CAAE,WAAY,CAACa,CAAS,EAAG,UAAAC,EAAW,YAAAlB,CAAA,GAGrD,OAAAmB,EAAA,kBAAA,KAACC,YAAA,CACC,SAAA,CAAAC,EAAA,kBAAA,IAACC,EAAA,CACC,KAAMhB,EACN,SAAUC,GAAkBD,EAC5B,KAAME,EACN,SAAAT,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,CAAA,CACF,EACCO,EAAS,QAAQ,CAACc,EAASC,IAAU,CACpC,KAAM,CAAE,KAAAC,EAAM,GAAAC,EAAI,UAAAR,EAAW,YAAAS,EAAa,UAAAC,EAAW,QAAAC,GAAYN,EACjE,OACGC,EAAQX,GAASH,IAChBS,EAAA,kBAAA,KAACW,EAAO,KAAP,CAAY,QAAS,IAAMd,EAAYU,EAAIR,CAAS,EACnD,SAAA,CAACC,yBAAAY,EAAAA,QAAA,CACC,SAAA,CAAAZ,yBAAC,MACC,CAAA,SAAA,CAACA,yBAAAa,EAAAA,MAAA,CACC,SAAA,CAAAX,EAAAA,kBAAAA,IAAC,QAAM,SAAYM,CAAA,CAAA,EAClBN,EAAA,kBAAA,IAAAY,EAAA,QAAA,CAAa,KAAMzB,EAAW,QAAO,EAAC,CAAA,CAAA,EACzC,0BACC0B,EAAO,YAAP,CAAmB,UAAU,UAAW,SAAKT,CAAA,CAAA,CAAA,EAChD,EACAJ,EAAA,kBAAA,IAACc,EAAO,UAAP,CACO,YAAAnC,EACN,SAAU0B,EACV,WAAW,UACX,QAAS,IAAMX,EAAkB,EAAI,EACrC,SAAUD,EACV,gBAAiBc,EACjB,KAAM,aAAA,CAAA,CACR,EACF,EACCC,GAAWR,EAAAA,kBAAAA,IAACe,EAAAA,QAAA,CAAgB,SAAQP,CAAA,CAAA,CAAA,CAAA,EAnBsBH,CAoB7D,CAAA,CAGL,EACAvB,IAAW,YAAcM,EAAS,OAASI,GAC1CM,EAAA,kBAAA,KAACkB,OAAK,CAAA,QAAS,IAAM1B,EAAW,CAACD,CAAO,EACtC,SAAA,CAACW,EAAAA,kBAAAA,IAAAiB,EAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EAClBjB,EAAAA,kBAAAA,IAAC,QAAM,SAAUX,EAAA,YAAc,QAAQD,EAAS,OAASI,CAAK,gBAAiB,CAAA,CAAA,CACjF,CAAA,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":"inCA+BA,MAAMA,EAAoD,CAAC,CACzD,SAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,OAAAC,CACF,IAAM,CACE,KAAA,CAAE,aAAAC,CAAa,EAAIC,yBAAuB,EAChD,GAAI,CAAE,WAAAC,EAAY,eAAAC,EAAgB,UAAAC,EAAW,SAAAC,EAAW,IAAOV,EAE/D,KAAM,CAACW,EAASC,CAAU,EAAIC,EAAAA,SAAST,IAAW,UAAU,EACtDU,EAAQ,EAER,CAACC,EAAgBC,CAAiB,EAAIH,EAAAA,SAAS,EAAK,EAEpDI,EAAc,CAACC,EAAmBC,IACtCd,GAAA,YAAAA,EAAe,CAAE,WAAY,CAACa,CAAS,EAAG,UAAAC,EAAW,YAAAlB,CAAA,GAGrD,OAAAmB,EAAA,kBAAA,KAACC,YAAA,CACC,SAAA,CAAAC,EAAA,kBAAA,IAACC,EAAA,CACC,KAAMhB,EACN,SAAUC,GAAkBD,EAC5B,KAAME,EACN,SAAAT,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,CAAA,CACF,EACCO,EAAS,QAAQ,CAACc,EAASC,IAAU,CACpC,KAAM,CAAE,KAAAC,EAAM,GAAAC,EAAI,UAAAR,EAAW,YAAAS,EAAa,UAAAC,EAAW,QAAAC,GAAYN,EACjE,OACGC,EAAQX,GAASH,IAChBS,EAAA,kBAAA,KAACW,EAAO,KAAP,CAAY,QAAS,IAAMd,EAAYU,EAAIR,CAAS,EACnD,SAAA,CAACC,yBAAAY,EAAAA,QAAA,CACC,SAAA,CAAAZ,yBAAC,MACC,CAAA,SAAA,CAACA,yBAAAa,EAAAA,MAAA,CACC,SAAA,CAAAX,EAAAA,kBAAAA,IAAC,QAAM,SAAYM,CAAA,CAAA,EAClBN,EAAA,kBAAA,IAAAY,EAAA,QAAA,CAAa,KAAMzB,EAAW,QAAO,EAAC,CAAA,CAAA,EACzC,0BACC0B,EAAO,YAAP,CAAmB,UAAU,UAAW,SAAKT,CAAA,CAAA,CAAA,EAChD,EACAJ,EAAA,kBAAA,IAACc,EAAO,UAAP,CACO,YAAAnC,EACN,SAAU0B,EACV,WAAW,UACX,QAAS,IAAMX,EAAkB,EAAI,EACrC,SAAUD,EACV,gBAAiBc,EACjB,KAAM,aAAA,CAAA,CACR,EACF,EACCC,GAAWR,EAAAA,kBAAAA,IAACe,EAAAA,QAAA,CAAgB,SAAQP,CAAA,CAAA,CAAA,CAAA,EAnBsBH,CAoB7D,CAAA,CAGL,EACAvB,IAAW,YAAcM,EAAS,OAASI,GAC1CM,EAAA,kBAAA,KAACkB,OAAK,CAAA,QAAS,IAAM1B,EAAW,CAACD,CAAO,EACtC,SAAA,CAACW,EAAAA,kBAAAA,IAAAiB,EAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EAClBjB,EAAAA,kBAAAA,IAAC,QAAM,SAAUX,EAAA,YAAc,QAAQD,EAAS,OAASI,CAAK,gBAAiB,CAAA,CAAA,CACjF,CAAA,CAAA,EAEJ,CAEJ"}
@@ -19,7 +19,8 @@ import "../../../../context/MoveEntityContext.es.js";
19
19
  import "../../../../context/MenuContext.es.js";
20
20
  import "../../../../context/WebsocketContext.es.js";
21
21
  import "../../../../context/GlobalContext.es.js";
22
- const st = ({
22
+ import "../../../../context/ProjectContext.es.js";
23
+ const nt = ({
23
24
  activity: a,
24
25
  projectName: r,
25
26
  entityType: u,
@@ -76,6 +77,6 @@ const st = ({
76
77
  ] });
77
78
  };
78
79
  export {
79
- st as default
80
+ nt as default
80
81
  };
81
82
  //# sourceMappingURL=ActivityVersions.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersions.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+BA,MAAMA,KAAoD,CAAC;AAAA,EACzD,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACE,QAAA,EAAE,cAAAC,EAAa,IAAIC,EAAuB;AAChD,MAAI,EAAE,YAAAC,GAAY,gBAAAC,GAAgB,WAAAC,GAAW,UAAAC,IAAW,OAAOV;AAE/D,QAAM,CAACW,GAASC,CAAU,IAAIC,EAAST,MAAW,UAAU,GACtDU,IAAQ,GAER,CAACC,GAAgBC,CAAiB,IAAIH,EAAS,EAAK,GAEpDI,IAAc,CAACC,GAAmBC,MACtCd,KAAA,gBAAAA,EAAe,EAAE,YAAY,CAACa,CAAS,GAAG,WAAAC,GAAW,aAAAlB,EAAA;AAGrD,SAAAmB,gBAAAA,EAAA,KAACC,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAMhB;AAAA,QACN,UAAUC,KAAkBD;AAAA,QAC5B,MAAME;AAAA,QACN,UAAAT;AAAA,QACA,aAAAC;AAAA,QACA,YAAAC;AAAA,QACA,kBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IACCO,EAAS,QAAQ,CAACc,GAASC,MAAU;AACpC,YAAM,EAAE,MAAAC,GAAM,IAAAC,GAAI,WAAAR,GAAW,aAAAS,GAAa,WAAAC,GAAW,SAAAC,MAAYN;AACjE,cACGC,IAAQX,KAASH,MAChBS,gBAAAA,EAAA,KAACW,GAAA,EAAY,SAAS,MAAMd,EAAYU,GAAIR,CAAS,GACnD,UAAA;AAAA,QAACC,gBAAAA,OAAAY,GAAA,EACC,UAAA;AAAA,UAAAZ,gBAAAA,OAAC,OACC,EAAA,UAAA;AAAA,YAACA,gBAAAA,OAAAa,GAAA,EACC,UAAA;AAAA,cAAAX,gBAAAA,EAAAA,IAAC,UAAM,UAAYM,EAAA,CAAA;AAAA,cAClBN,gBAAAA,EAAA,IAAAY,GAAA,EAAa,MAAMzB,GAAW,SAAO,GAAC,CAAA;AAAA,YAAA,GACzC;AAAA,kCACC0B,GAAA,EAAmB,WAAU,WAAW,UAAKT,EAAA,CAAA;AAAA,UAAA,GAChD;AAAA,UACAJ,gBAAAA,EAAA;AAAA,YAACc;AAAAA,YAAA;AAAA,cACO,aAAAnC;AAAA,cACN,UAAU0B;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAMX,EAAkB,EAAI;AAAA,cACrC,UAAUD;AAAA,cACV,iBAAiBc;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACCC,KAAWR,gBAAAA,EAAAA,IAACe,GAAA,EAAgB,UAAQP,EAAA,CAAA;AAAA,MAAA,EAAA,GAnBsBH,CAoB7D;AAAA,IAAA,CAGL;AAAA,IACAvB,MAAW,cAAcM,EAAS,SAASI,KAC1CM,gBAAAA,EAAA,KAACkB,GAAK,EAAA,SAAS,MAAM1B,EAAW,CAACD,CAAO,GACtC,UAAA;AAAA,MAACW,gBAAAA,EAAAA,IAAAiB,GAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBjB,gBAAAA,EAAAA,IAAC,UAAM,UAAUX,IAAA,cAAc,QAAQD,EAAS,SAASI,CAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"ActivityVersions.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAMA,KAAoD,CAAC;AAAA,EACzD,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACE,QAAA,EAAE,cAAAC,EAAa,IAAIC,EAAuB;AAChD,MAAI,EAAE,YAAAC,GAAY,gBAAAC,GAAgB,WAAAC,GAAW,UAAAC,IAAW,OAAOV;AAE/D,QAAM,CAACW,GAASC,CAAU,IAAIC,EAAST,MAAW,UAAU,GACtDU,IAAQ,GAER,CAACC,GAAgBC,CAAiB,IAAIH,EAAS,EAAK,GAEpDI,IAAc,CAACC,GAAmBC,MACtCd,KAAA,gBAAAA,EAAe,EAAE,YAAY,CAACa,CAAS,GAAG,WAAAC,GAAW,aAAAlB,EAAA;AAGrD,SAAAmB,gBAAAA,EAAA,KAACC,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAMhB;AAAA,QACN,UAAUC,KAAkBD;AAAA,QAC5B,MAAME;AAAA,QACN,UAAAT;AAAA,QACA,aAAAC;AAAA,QACA,YAAAC;AAAA,QACA,kBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IACCO,EAAS,QAAQ,CAACc,GAASC,MAAU;AACpC,YAAM,EAAE,MAAAC,GAAM,IAAAC,GAAI,WAAAR,GAAW,aAAAS,GAAa,WAAAC,GAAW,SAAAC,MAAYN;AACjE,cACGC,IAAQX,KAASH,MAChBS,gBAAAA,EAAA,KAACW,GAAA,EAAY,SAAS,MAAMd,EAAYU,GAAIR,CAAS,GACnD,UAAA;AAAA,QAACC,gBAAAA,OAAAY,GAAA,EACC,UAAA;AAAA,UAAAZ,gBAAAA,OAAC,OACC,EAAA,UAAA;AAAA,YAACA,gBAAAA,OAAAa,GAAA,EACC,UAAA;AAAA,cAAAX,gBAAAA,EAAAA,IAAC,UAAM,UAAYM,EAAA,CAAA;AAAA,cAClBN,gBAAAA,EAAA,IAAAY,GAAA,EAAa,MAAMzB,GAAW,SAAO,GAAC,CAAA;AAAA,YAAA,GACzC;AAAA,kCACC0B,GAAA,EAAmB,WAAU,WAAW,UAAKT,EAAA,CAAA;AAAA,UAAA,GAChD;AAAA,UACAJ,gBAAAA,EAAA;AAAA,YAACc;AAAAA,YAAA;AAAA,cACO,aAAAnC;AAAA,cACN,UAAU0B;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAMX,EAAkB,EAAI;AAAA,cACrC,UAAUD;AAAA,cACV,iBAAiBc;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACCC,KAAWR,gBAAAA,EAAAA,IAACe,GAAA,EAAgB,UAAQP,EAAA,CAAA;AAAA,MAAA,EAAA,GAnBsBH,CAoB7D;AAAA,IAAA,CAGL;AAAA,IACAvB,MAAW,cAAcM,EAAS,SAASI,KAC1CM,gBAAAA,EAAA,KAACkB,GAAK,EAAA,SAAS,MAAM1B,EAAW,CAACD,CAAO,GACtC,UAAA;AAAA,MAACW,gBAAAA,EAAAA,IAAAiB,GAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBjB,gBAAAA,EAAAA,IAAC,UAAM,UAAUX,IAAA,cAAc,QAAQD,EAAS,SAASI,CAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}