@ynput/ayon-frontend-shared 0.2.29 → 0.2.30

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 (629) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +51 -49
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/api.cjs.js +1 -1
  8. package/dist/api.es.js +220 -213
  9. package/dist/api.es.js.map +1 -1
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +82 -74
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/context.cjs.js +1 -1
  14. package/dist/context.es.js +23 -19
  15. package/dist/context.es.js.map +1 -1
  16. package/dist/hooks.cjs.js +1 -1
  17. package/dist/hooks.es.js +12 -10
  18. package/dist/hooks.es.js.map +1 -1
  19. package/dist/index.cjs.js +1 -1
  20. package/dist/index.es.js +11 -9
  21. package/dist/index.es.js.map +1 -1
  22. package/dist/shared/src/api/base/client.cjs.js +1 -1
  23. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  24. package/dist/shared/src/api/base/client.es.js +8 -7
  25. package/dist/shared/src/api/base/client.es.js.map +1 -1
  26. package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
  28. package/dist/shared/src/api/generated/attributes.cjs.js +1 -1
  29. package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
  30. package/dist/shared/src/api/generated/attributes.es.js +9 -2
  31. package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
  32. package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
  33. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  34. package/dist/shared/src/api/generated/entityLists.es.js +46 -0
  35. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  36. package/dist/shared/src/api/generated/graphql.cjs.js +10 -5
  37. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  38. package/dist/shared/src/api/generated/graphql.es.js +23 -18
  39. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  40. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  41. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/attributes/updateAttributes.es.js +12 -5
  45. package/dist/shared/src/api/queries/attributes/updateAttributes.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
  49. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  51. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  52. package/dist/shared/src/api/queries/entities/updateEntity.es.js +33 -32
  53. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  55. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  56. package/dist/shared/src/api/queries/entityLists/getLists.es.js +151 -125
  57. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  58. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +2 -0
  59. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -0
  60. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +111 -0
  61. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -0
  62. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +104 -88
  65. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/overview/updateOverview.es.js +7 -6
  69. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -19
  71. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/project/getProject.es.js +10 -70
  73. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/project/updateProject.es.js +35 -61
  77. package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/system/getSystem.es.js +14 -8
  81. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +23 -23
  85. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  86. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/users/getUsers.es.js +18 -17
  88. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/users/updateUsers.es.js +19 -11
  92. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  93. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  94. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  95. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +30 -29
  96. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  97. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  98. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  99. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  100. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  101. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -3
  102. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  103. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +64 -51
  104. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  105. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  106. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  107. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +66 -59
  108. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  109. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js +4 -5
  110. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js.map +1 -1
  111. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js +46 -41
  112. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js.map +1 -1
  113. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  114. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  115. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  116. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  117. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +76 -5
  118. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
  119. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +76 -5
  120. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
  121. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -2
  122. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  123. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +11 -11
  124. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  125. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  126. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  127. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +32 -32
  128. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  129. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  130. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  131. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +15 -8
  132. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  133. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
  134. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
  135. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +3 -2
  136. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -1
  137. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  138. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  139. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  140. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  141. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  142. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  143. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  144. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  145. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  146. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  147. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
  148. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  149. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +1 -1
  150. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  151. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +51 -152
  152. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  153. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js +3 -1
  154. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js.map +1 -1
  155. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js +3 -1
  156. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js.map +1 -1
  157. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js +2 -0
  158. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -0
  159. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js +141 -0
  160. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -0
  161. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  162. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  163. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  164. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  165. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  166. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  167. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +5 -2
  168. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  169. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  170. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  171. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  172. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  173. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  174. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  175. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  176. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  177. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +2 -0
  178. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -0
  179. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +177 -0
  180. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -0
  181. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +2 -0
  182. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -0
  183. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +31 -0
  184. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -0
  185. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +3 -3
  186. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  187. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +8 -7
  188. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  189. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  190. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  191. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +42 -31
  192. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  193. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +12 -2
  194. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
  195. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +15 -4
  196. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
  197. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  198. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  199. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -4
  200. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  201. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  202. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  203. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +6 -3
  204. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  205. package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js +2 -1
  206. package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js.map +1 -1
  207. package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js +2 -1
  208. package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js.map +1 -1
  209. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  210. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  211. package/dist/shared/src/components/RenameForm/RenameForm.es.js +116 -105
  212. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  213. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  214. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  215. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  216. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  217. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  218. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  219. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -2
  220. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  221. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  222. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  223. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -3
  224. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  225. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  226. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  227. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -2
  228. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  229. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  230. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  231. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  232. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  233. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  234. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  235. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +3 -2
  236. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  237. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +3 -3
  238. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  239. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -5
  240. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  241. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  242. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  243. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -2
  244. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  245. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  246. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  247. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +12 -11
  248. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  249. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  250. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  251. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -2
  252. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  253. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  254. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  255. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +5 -4
  256. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  257. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  258. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  259. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  260. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  261. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  262. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -2
  264. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  265. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  266. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
  268. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  269. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  270. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -2
  272. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  273. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  274. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +149 -160
  276. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  277. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +7 -1
  278. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -6
  280. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js.map +1 -1
  281. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  282. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -2
  284. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  285. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  286. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  288. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  289. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -2
  292. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  293. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  294. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  296. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  297. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  298. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +3 -2
  300. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  301. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  302. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
  304. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  305. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  306. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
  308. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  309. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  310. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +5 -2
  312. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  313. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  314. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -2
  316. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  317. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  318. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -2
  320. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  321. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  322. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -2
  324. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  325. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  326. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  328. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  329. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  330. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/Feed/Feed.es.js +20 -19
  332. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  333. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  334. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  336. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  337. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +18 -3
  338. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +24 -9
  340. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  341. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  342. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +3 -2
  344. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  345. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +7 -0
  346. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +7 -0
  348. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
  349. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  350. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
  352. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  353. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  354. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
  356. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  357. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  358. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
  360. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  361. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  362. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  364. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  365. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  366. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  368. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  369. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  370. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  372. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +8 -4
  376. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +191 -183
  380. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +3 -3
  382. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +280 -57
  384. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  386. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -2
  388. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  390. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +5 -2
  392. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +34 -32
  396. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +5 -2
  400. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +10 -9
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +20 -18
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +48 -45
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +5 -2
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +2 -0
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -0
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +239 -0
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -0
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +5 -2
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +3 -2
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +25 -22
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -2
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +5 -2
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +16 -13
  460. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +5 -3
  464. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
  466. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +57 -55
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -4
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +5 -2
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  477. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  478. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -2
  480. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  481. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  482. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +169 -148
  484. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  485. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +23 -4
  486. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +24 -5
  488. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  489. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  490. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +62 -50
  492. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  493. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  494. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  496. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  497. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  498. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +9 -8
  500. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  501. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  502. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
  504. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  505. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  506. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
  508. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  509. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  510. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  512. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  513. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  514. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  516. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  517. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  518. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  520. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  521. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  522. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  524. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  525. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  526. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  527. package/dist/shared/src/context/AddonProjectContext.es.js +13 -12
  528. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  529. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  530. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  531. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  532. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  533. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  534. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  535. package/dist/shared/src/context/PowerpackContext.es.js +61 -41
  536. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  537. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  538. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  539. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  540. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  541. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  542. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  543. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  544. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  545. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  546. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  547. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  548. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  549. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  550. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  551. package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
  552. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  553. package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js +2 -0
  554. package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js.map +1 -0
  555. package/dist/shared/src/hooks/useQueryArgumentChangeLoading.es.js +12 -0
  556. package/dist/shared/src/hooks/useQueryArgumentChangeLoading.es.js.map +1 -0
  557. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  558. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  559. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  560. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  561. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  562. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  563. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  564. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  565. package/dist/shared/src/util/checkName.cjs.js +1 -1
  566. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  567. package/dist/shared/src/util/checkName.es.js +35 -5
  568. package/dist/shared/src/util/checkName.es.js.map +1 -1
  569. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
  570. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
  571. package/dist/src/components/Menu/MenuComponents/Menu.es.js +59 -35
  572. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
  573. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +13 -0
  574. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -1
  575. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +13 -0
  576. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -1
  577. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
  578. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
  579. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +52 -36
  580. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
  581. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
  582. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
  583. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +103 -83
  584. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
  585. package/dist/types/api/generated/anatomy.d.ts +23 -0
  586. package/dist/types/api/generated/attributes.d.ts +15 -4
  587. package/dist/types/api/generated/entityLists.d.ts +102 -9
  588. package/dist/types/api/generated/graphql.d.ts +9 -1
  589. package/dist/types/api/generated/projects.d.ts +8 -0
  590. package/dist/types/api/queries/attributes/getAttributes.d.ts +1 -0
  591. package/dist/types/api/queries/attributes/updateAttributes.d.ts +162 -0
  592. package/dist/types/api/queries/entityLists/getLists.d.ts +152 -0
  593. package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +5 -0
  594. package/dist/types/api/queries/entityLists/index.d.ts +1 -0
  595. package/dist/types/api/queries/entityLists/listFolders.d.ts +613 -0
  596. package/dist/types/api/queries/entityLists/types.d.ts +3 -1
  597. package/dist/types/api/queries/entityLists/updateLists.d.ts +5 -0
  598. package/dist/types/api/queries/entityLists/updateListsAttributes.d.ts +5 -0
  599. package/dist/types/api/queries/project/getProject.d.ts +4 -305
  600. package/dist/types/api/queries/project/updateProject.d.ts +803 -0
  601. package/dist/types/api/queries/users/updateUsers.d.ts +160 -0
  602. package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +4 -0
  603. package/dist/types/components/DetailsPanelDetails/BorderedSection.d.ts +5 -3
  604. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +3 -2
  605. package/dist/types/components/DetailsPanelDetails/index.d.ts +1 -0
  606. package/dist/types/components/EnumEditor/EnumEditorItem.d.ts +13 -0
  607. package/dist/types/components/EnumEditor/index.d.ts +1 -0
  608. package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +11 -0
  609. package/dist/types/components/ListAttributeForm/index.d.ts +1 -0
  610. package/dist/types/components/ListMetaData/ListMetaData.d.ts +8 -0
  611. package/dist/types/components/ListMetaData/index.d.ts +1 -0
  612. package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +1 -0
  613. package/dist/types/components/index.d.ts +2 -0
  614. package/dist/types/containers/DetailsPanel/DetailsPanel.styled.d.ts +7 -0
  615. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +2 -0
  616. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  617. package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +1 -2
  618. package/dist/types/containers/ProjectTreeTable/hooks/useColumnGroupBy.d.ts +10 -0
  619. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +3 -0
  620. package/dist/types/containers/SimpleTable/SimpleTableRowTemplate.d.ts +5 -1
  621. package/dist/types/context/AddonProjectContext.d.ts +2 -1
  622. package/dist/types/context/PowerpackContext.d.ts +4 -2
  623. package/dist/types/context/index.d.ts +1 -0
  624. package/dist/types/hooks/index.d.ts +1 -0
  625. package/dist/types/hooks/useQueryArgumentChangeLoading.d.ts +9 -0
  626. package/dist/types/util/checkName.d.ts +9 -1
  627. package/dist/util.cjs.js +1 -1
  628. package/dist/util.es.js +34 -32
  629. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),g=require("react"),ne=require("./components/ActivityItem.cjs.js"),ie=require("./components/CommentInput/CommentInput.cjs.js"),h=require("./Feed.styled.cjs.js"),se=require("./hooks/useCommentMutations.cjs.js"),oe=require("./hooks/useTransformActivities.cjs.js"),re=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),le=require("./hooks/useSaveScrollPos.cjs.js"),ae=require("./hooks/useScrollOnInputOpen.cjs.js"),ce=require("./feedHelpers.cjs.js"),de=require("@ynput/ayon-react-components"),ue=require("clsx"),me=require("./hooks/useScrollToHighlighted.cjs.js"),pe=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),xe=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const f=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const ge=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");const he=require("./helpers/mergeAnnotationAttachments.cjs.js"),fe=30,ye=({isMultiProjects:R,readOnly:S,statuses:D=[]})=>{const{projectName:r,entities:l,entityType:m,editingId:M,projectInfo:w,setEditingId:F,userName:_,activitiesData:N,isLoadingNew:a,isLoadingNextPage:W,loadNextPage:c,hasNextPage:B,users:H,currentTab:d}=f.useFeedContext(),{openSlideOut:U,highlightedActivities:y,setHighlightedActivities:V,onOpenImage:q,setFeedAnnotations:k}=ge.useDetailsPanelContext(),Y=["versions"].includes(d),p=g.useMemo(()=>he(N),[N]);g.useEffect(()=>{p.length||k([]);const e=p.map(t=>{var n,i;return(i=(n=t.activityData)==null?void 0:n.annotations)==null?void 0:i.map(o=>({...o,activityId:t.activityId}))}).filter(Boolean).flat();k(e)},[p]);const E=oe.default(p,H,w,m,_),u=g.useRef(null);ae({feedRef:u,isInputOpen:M===f.FEED_NEW_COMMENT,height:93}),le({entities:l,feedRef:u,filter:d,disabled:!!y.length,isLoading:a}),me({feedRef:u,highlighted:y,isLoading:a,loadNextPage:c,hasNextPage:!!c});const{submitComment:$,updateComment:T,deleteComment:z,isSaving:G}=se({projectName:r,entityType:m,entities:l,filter:d}),J=(e,t)=>{var L;const n=e==null?void 0:e.target;if(!n||!t)return console.log("no target or activity");const i=n.checked,o=i?"[ ]":"[x]",Z=i?"[x]":"[ ]",{body:x}=t,P=Array.from(((L=n.closest(".comment-body"))==null?void 0:L.querySelectorAll(".task-list-item"))||[]).findIndex(I=>I===n.closest("li"));let b=P;(x.match(/\[.\]/g)||[]).forEach((I,te)=>{I!==o&&te<P&&b--});const A=[];let j=-1;for(;(j=x.indexOf(o,j+1))>-1;)A.push(j);const v=A[b];if(v===void 0)return;const ee=v+o.length,O=x.slice(0,v)+Z+x.slice(ee);O&&T(t,O,t.files)},K=e=>{const{entityId:t,entityType:n,activityId:i}=e;if(!n||!["version","task","folder"].includes(n))return console.log("Entity type not supported yet");if(!t||!n||!r)return console.log("No entity id or type found");U({entityId:t,entityType:n,projectName:r}),V([i])},Q=({index:e,activityId:t})=>{const n=Object.values(E).reverse().filter(i=>i.activityType=="comment").map(i=>({id:i.activityId,files:i.files.filter(o=>pe.isFilePreviewable(o.mime,o.ext))})).filter(i=>i.files.length>0);q==null||q({files:n,activityId:t,index:e,projectName:r})},X=g.useMemo(()=>ce.getLoadingPlaceholders(10),[]);let C;return R&&(C=`You are only viewing activities from one project: ${r}.`),s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:s.jsxRuntimeExports.jsxs(h.FeedContainer,{className:"feed",children:[C&&s.jsxRuntimeExports.jsxs(h.Warning,{children:[s.jsxRuntimeExports.jsx(de.Icon,{icon:"info"}),C]}),s.jsxRuntimeExports.jsxs(h.FeedContent,{ref:u,className:ue({loading:a},"no-shimmer"),children:[a?X:E.map(e=>s.jsxRuntimeExports.jsx(ne,{activity:e,onCheckChange:J,onDelete:z,onUpdate:async(t,n,i)=>await T(e,t,n),projectInfo:w,projectName:r,entityType:m,onReferenceClick:K,createdAts:l.map(t=>t.createdAt),onFileExpand:Q,showOrigin:l.length>1,filter:d,editProps:{projectName:r,entities:l,entityType:m},isHighlighted:y.includes(e.activityId),readOnly:S,statuses:D},e.activityId)),E.length===1&&d==="versions"&&!a&&s.jsxRuntimeExports.jsx(xe.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),B&&c&&s.jsxRuntimeExports.jsx(re.InView,{root:u.current,onChange:e=>e&&c(),rootMargin:"400px 0px 0px 0px",children:s.jsxRuntimeExports.jsx(h.LoadMore,{style:{height:0},onClick:()=>c(),children:W?"Loading more...":"Click to load more"})})]}),!Y&&s.jsxRuntimeExports.jsx(ie.default,{initValue:null,onSubmit:$,isOpen:M===f.FEED_NEW_COMMENT,onClose:()=>F(null),onOpen:()=>F(f.FEED_NEW_COMMENT),disabled:R,isLoading:a||!l.length||G})]})})};exports.Feed=ye;exports.activitiesLast=fe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),g=require("react"),ne=require("./components/ActivityItem.cjs.js"),ie=require("./components/CommentInput/CommentInput.cjs.js"),h=require("./Feed.styled.cjs.js"),se=require("./hooks/useCommentMutations.cjs.js"),oe=require("./hooks/useTransformActivities.cjs.js"),re=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),le=require("./hooks/useSaveScrollPos.cjs.js"),ae=require("./hooks/useScrollOnInputOpen.cjs.js"),ce=require("./feedHelpers.cjs.js"),de=require("@ynput/ayon-react-components"),ue=require("clsx"),me=require("./hooks/useScrollToHighlighted.cjs.js"),pe=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),xe=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const f=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const ge=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");const he=require("./helpers/mergeAnnotationAttachments.cjs.js"),fe=30,ye=({isMultiProjects:R,readOnly:S,statuses:D=[]})=>{const{projectName:r,entities:l,entityType:m,editingId:M,projectInfo:w,setEditingId:F,userName:_,activitiesData:N,isLoadingNew:a,isLoadingNextPage:W,loadNextPage:c,hasNextPage:B,users:H,currentTab:d}=f.useFeedContext(),{openSlideOut:U,highlightedActivities:y,setHighlightedActivities:V,onOpenImage:q,setFeedAnnotations:k}=ge.useDetailsPanelContext(),Y=["versions"].includes(d),p=g.useMemo(()=>he(N),[N]);g.useEffect(()=>{p.length||k([]);const e=p.map(t=>{var n,i;return(i=(n=t.activityData)==null?void 0:n.annotations)==null?void 0:i.map(o=>({...o,activityId:t.activityId}))}).filter(Boolean).flat();k(e)},[p]);const E=oe.default(p,H,w,m,_),u=g.useRef(null);ae({feedRef:u,isInputOpen:M===f.FEED_NEW_COMMENT,height:93}),le({entities:l,feedRef:u,filter:d,disabled:!!y.length,isLoading:a}),me({feedRef:u,highlighted:y,isLoading:a,loadNextPage:c,hasNextPage:!!c});const{submitComment:$,updateComment:T,deleteComment:z,isSaving:G}=se({projectName:r,entityType:m,entities:l,filter:d}),J=(e,t)=>{var L;const n=e==null?void 0:e.target;if(!n||!t)return console.log("no target or activity");const i=n.checked,o=i?"[ ]":"[x]",Z=i?"[x]":"[ ]",{body:x}=t,P=Array.from(((L=n.closest(".comment-body"))==null?void 0:L.querySelectorAll(".task-list-item"))||[]).findIndex(I=>I===n.closest("li"));let b=P;(x.match(/\[.\]/g)||[]).forEach((I,te)=>{I!==o&&te<P&&b--});const A=[];let j=-1;for(;(j=x.indexOf(o,j+1))>-1;)A.push(j);const v=A[b];if(v===void 0)return;const ee=v+o.length,O=x.slice(0,v)+Z+x.slice(ee);O&&T(t,O,t.files)},K=e=>{const{entityId:t,entityType:n,activityId:i}=e;if(!n||!["version","task","folder"].includes(n))return console.log("Entity type not supported yet");if(!t||!n||!r)return console.log("No entity id or type found");U({entityId:t,entityType:n,projectName:r}),V([i])},Q=({index:e,activityId:t})=>{const n=Object.values(E).reverse().filter(i=>i.activityType=="comment").map(i=>({id:i.activityId,files:i.files.filter(o=>pe.isFilePreviewable(o.mime,o.ext))})).filter(i=>i.files.length>0);q==null||q({files:n,activityId:t,index:e,projectName:r})},X=g.useMemo(()=>ce.getLoadingPlaceholders(10),[]);let C;return R&&(C=`You are only viewing activities from one project: ${r}.`),s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:s.jsxRuntimeExports.jsxs(h.FeedContainer,{className:"feed",children:[C&&s.jsxRuntimeExports.jsxs(h.Warning,{children:[s.jsxRuntimeExports.jsx(de.Icon,{icon:"info"}),C]}),s.jsxRuntimeExports.jsxs(h.FeedContent,{ref:u,className:ue({loading:a},"no-shimmer"),children:[a?X:E.map(e=>s.jsxRuntimeExports.jsx(ne,{activity:e,onCheckChange:J,onDelete:z,onUpdate:async(t,n,i)=>await T(e,t,n),projectInfo:w,projectName:r,entityType:m,onReferenceClick:K,createdAts:l.map(t=>t.createdAt),onFileExpand:Q,showOrigin:l.length>1,filter:d,editProps:{projectName:r,entities:l,entityType:m},isHighlighted:y.includes(e.activityId),readOnly:S,statuses:D},e.activityId)),E.length===1&&d==="versions"&&!a&&s.jsxRuntimeExports.jsx(xe.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),B&&c&&s.jsxRuntimeExports.jsx(re.InView,{root:u.current,onChange:e=>e&&c(),rootMargin:"400px 0px 0px 0px",children:s.jsxRuntimeExports.jsx(h.LoadMore,{style:{height:0},onClick:()=>c(),children:W?"Loading more...":"Click to load more"})})]}),!Y&&s.jsxRuntimeExports.jsx(ie.default,{initValue:null,onSubmit:$,isOpen:M===f.FEED_NEW_COMMENT,onClose:()=>F(null),onOpen:()=>F(f.FEED_NEW_COMMENT),disabled:R,isLoading:a||!l.length||G})]})})};exports.Feed=ye;exports.activitiesLast=fe;
2
2
  //# sourceMappingURL=Feed.cjs.js.map
@@ -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 isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: 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 })\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 // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\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) =>\n await updateComment(activity, value, files)\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={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","isMultiProjects","readOnly","statuses","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","warningMessage","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","clsx","ActivityItem","value","files","_refs","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 isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: 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 })\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 // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\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) =>\n await updateComment(activity, value, files)\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={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","isMultiProjects","readOnly","statuses","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","warningMessage","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","clsx","ActivityItem","value","files","_refs","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -4,8 +4,8 @@ import ie from "./components/ActivityItem.es.js";
4
4
  import ne from "./components/CommentInput/CommentInput.es.js";
5
5
  import { FeedContainer as se, Warning as re, FeedContent as le, LoadMore as ae } from "./Feed.styled.es.js";
6
6
  import de from "./hooks/useCommentMutations.es.js";
7
- import ce from "./hooks/useTransformActivities.es.js";
8
- import { InView as me } from "../../../../node_modules/react-intersection-observer/dist/index.es.js";
7
+ import me from "./hooks/useTransformActivities.es.js";
8
+ import { InView as ce } from "../../../../node_modules/react-intersection-observer/dist/index.es.js";
9
9
  import pe from "./hooks/useSaveScrollPos.es.js";
10
10
  import fe from "./hooks/useScrollOnInputOpen.es.js";
11
11
  import { getLoadingPlaceholders as ge } from "./feedHelpers.es.js";
@@ -27,8 +27,9 @@ import "../../context/AddonProjectContext.es.js";
27
27
  import "../../context/AddonContext.es.js";
28
28
  import "../../context/PowerpackContext.es.js";
29
29
  import "../../context/MoveEntityContext.es.js";
30
+ import "../../context/MenuContext.es.js";
30
31
  import ke from "./helpers/mergeAnnotationAttachments.es.js";
31
- const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
32
+ const tt = 30, ot = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
32
33
  const {
33
34
  projectName: r,
34
35
  entities: l,
@@ -43,14 +44,14 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
43
44
  loadNextPage: d,
44
45
  hasNextPage: W,
45
46
  users: _,
46
- currentTab: c
47
+ currentTab: m
47
48
  } = Ce(), {
48
49
  openSlideOut: V,
49
50
  highlightedActivities: h,
50
51
  setHighlightedActivities: q,
51
52
  onOpenImage: u,
52
53
  setFeedAnnotations: M
53
- } = Ie(), U = ["versions"].includes(c), f = S(
54
+ } = Ie(), U = ["versions"].includes(m), f = S(
54
55
  () => ke(E),
55
56
  [E]
56
57
  );
@@ -67,22 +68,22 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
67
68
  ).filter(Boolean).flat();
68
69
  M(e);
69
70
  }, [f]);
70
- const x = ce(
71
+ const x = me(
71
72
  // @ts-ignore
72
73
  f,
73
74
  _,
74
75
  A,
75
76
  p,
76
77
  B
77
- ), m = oe(null);
78
- fe({ feedRef: m, isInputOpen: j === k, height: 93 }), pe({
78
+ ), c = oe(null);
79
+ fe({ feedRef: c, isInputOpen: j === k, height: 93 }), pe({
79
80
  entities: l,
80
- feedRef: m,
81
- filter: c,
81
+ feedRef: c,
82
+ filter: m,
82
83
  disabled: !!h.length,
83
84
  isLoading: a
84
85
  }), xe({
85
- feedRef: m,
86
+ feedRef: c,
86
87
  highlighted: h,
87
88
  isLoading: a,
88
89
  loadNextPage: d,
@@ -92,7 +93,7 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
92
93
  projectName: r,
93
94
  entityType: p,
94
95
  entities: l,
95
- filter: c
96
+ filter: m
96
97
  }), G = (e, t) => {
97
98
  var L;
98
99
  const o = e == null ? void 0 : e.target;
@@ -131,7 +132,7 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
131
132
  /* @__PURE__ */ n.jsx(he, { icon: "info" }),
132
133
  y
133
134
  ] }),
134
- /* @__PURE__ */ n.jsxs(le, { ref: m, className: ue({ loading: a }, "no-shimmer"), children: [
135
+ /* @__PURE__ */ n.jsxs(le, { ref: c, className: ue({ loading: a }, "no-shimmer"), children: [
135
136
  a ? Q : x.map((e) => /* @__PURE__ */ n.jsx(
136
137
  ie,
137
138
  {
@@ -146,7 +147,7 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
146
147
  createdAts: l.map((t) => t.createdAt),
147
148
  onFileExpand: K,
148
149
  showOrigin: l.length > 1,
149
- filter: c,
150
+ filter: m,
150
151
  editProps: {
151
152
  projectName: r,
152
153
  entities: l,
@@ -158,11 +159,11 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
158
159
  },
159
160
  e.activityId
160
161
  )),
161
- x.length === 1 && c === "versions" && !a && /* @__PURE__ */ n.jsx(ve, { message: "No versions published yet", icon: "layers" }),
162
+ x.length === 1 && m === "versions" && !a && /* @__PURE__ */ n.jsx(ve, { message: "No versions published yet", icon: "layers" }),
162
163
  W && d && /* @__PURE__ */ n.jsx(
163
- me,
164
+ ce,
164
165
  {
165
- root: m.current,
166
+ root: c.current,
166
167
  onChange: (e) => e && d(),
167
168
  rootMargin: "400px 0px 0px 0px",
168
169
  children: /* @__PURE__ */ n.jsx(ae, { style: { height: 0 }, onClick: () => d(), children: H ? "Loading more..." : "Click to load more" })
@@ -184,7 +185,7 @@ const et = 30, tt = ({ isMultiProjects: w, readOnly: R, statuses: D = [] }) => {
184
185
  ] }) });
185
186
  };
186
187
  export {
187
- tt as Feed,
188
- et as activitiesLast
188
+ ot as Feed,
189
+ tt 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 isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: 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 })\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 // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\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) =>\n await updateComment(activity, value, files)\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={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","isMultiProjects","readOnly","statuses","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","warningMessage","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","clsx","ActivityItem","value","files","_refs","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 isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: 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 })\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 // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\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) =>\n await updateComment(activity, value, files)\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={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","isMultiProjects","readOnly","statuses","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","warningMessage","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","clsx","ActivityItem","value","files","_refs","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("../../../../../../_virtual/jsx-runtime.cjs.js"),A=require("clsx"),w=require("react"),Y=require("react-markdown"),Z=require("remark-emoji"),$=require("remark-gfm"),U=require("remark-directive"),ee=require("remark-directive-rehype"),te=require("../CommentInput/CommentInput.cjs.js"),ne=require("../ReactionContainer/Reactions.cjs.js"),ie=require("../../hooks/useReferenceTooltip.cjs.js"),se=require("../FilesGrid/FilesGrid.cjs.js"),re=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),oe=require("./CommentWrapper.cjs.js"),l=require("./ActivityMarkdownComponents.cjs.js"),ce=require("./mappers.cjs.js"),ue=require("@ynput/ayon-react-components"),ae=require("../ActivityStatus/ActivityStatus.cjs.js"),D=require("../../context/FeedContext.cjs.js"),le=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const me=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const xe=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");const de=({activity:r={},onCheckChange:b,onDelete:m,onUpdate:x,projectInfo:pe,editProps:F,projectName:o,entityType:I,onReferenceClick:f,onFileExpand:M,showOrigin:H,isHighlighted:N,readOnly:g,statuses:B=[]})=>{const{userName:d,createReaction:P,deleteReaction:S}=D.useFeedContext();let{body:p,authorName:c,authorFullName:q,createdAt:G,referenceType:_,entityId:C,activityId:n,author:i,isOwner:R,files:j=[],origin:h}=r;c||(c=(i==null?void 0:i.name)||""),q||(q=(i==null?void 0:i.fullName)||c);const{editingId:L,setEditingId:E}=D.useFeedContext(),{onGoToFrame:u,setHighlightedActivities:O}=xe.useDetailsPanelContext(),y=()=>{E(n)},Q=()=>{E(null)},V=async(e,X)=>{await(x==null?void 0:x(e,X)),E(null)},a=L===n,T=_!=="origin"||H,W=async()=>{const e=re.getTextRefs(p);T&&h&&e.push({id:h.id,type:h.type}),m&&await m(n,C,e)},z=()=>{le.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await W()}})},[,k]=ie(),v=w.useMemo(()=>ce.mapGraphQLReactions(r.reactions,d),[[...r.reactions||[]]]),J=e=>{e.isActive?P({projectName:o,userName:d,activityId:n,createReactionModel:{reaction:e.type}}):S({projectName:o,userName:d,activityId:n,reaction:e.type})},K=w.useCallback(e=>{e.annotation&&(u==null||u(e.annotation.range[0]),O([n]))},[u]);return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(s.Comment,{className:A("comment",{isOwner:R,isEditing:a,isHighlighted:N}),id:n,children:[t.jsxRuntimeExports.jsx(me,{name:c,fullName:q,date:G,isRef:T,activity:r,projectName:o,entityType:I,onReferenceClick:f,onReferenceTooltip:k,children:void 0}),t.jsxRuntimeExports.jsxs(s.Body,{className:A("comment-body",{isEditing:a}),children:[!g&&t.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[R&&m&&t.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:z,tooltip:"Delete comment"}),R&&y&&t.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:y})]}),a?t.jsxRuntimeExports.jsx(te.default,{initValue:p,initFiles:j,isEditing:!0,onClose:Q,onSubmit:V,isOpen:!0,...F}):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(oe,{children:t.jsxRuntimeExports.jsx(Y,{remarkPlugins:[$,Z,U,ee],urlTransform:e=>e,components:{a:e=>l.aTag(e,{entityId:C,projectName:o,onReferenceClick:f,onReferenceTooltip:k,activityId:n}),input:e=>l.inputTag(e,{activity:r,onCheckChange:b}),code:e=>l.codeTag(e),blockquote:e=>l.blockquoteTag(e),tip:e=>t.jsxRuntimeExports.jsxs(s.Tip,{children:[t.jsxRuntimeExports.jsx(ue.Icon,{icon:"info"}),e.children]}),status:e=>t.jsxRuntimeExports.jsx(ae,{name:e.id,statuses:B,children:e.children})},children:p})}),t.jsxRuntimeExports.jsx(se,{files:j,isCompact:j.length>6,activityId:n,projectName:o,isDownloadable:!0,onExpand:M,onAnnotationClick:K,onRemove:void 0})]}),!a&&t.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:v&&t.jsxRuntimeExports.jsx(ne,{reactions:v,changeHandler:J,readOnly:g})})]})]})})};module.exports=de;
1
+ "use strict";const t=require("../../../../../../_virtual/jsx-runtime.cjs.js"),A=require("clsx"),w=require("react"),Y=require("react-markdown"),Z=require("remark-emoji"),$=require("remark-gfm"),U=require("remark-directive"),ee=require("remark-directive-rehype"),te=require("../CommentInput/CommentInput.cjs.js"),ne=require("../ReactionContainer/Reactions.cjs.js"),ie=require("../../hooks/useReferenceTooltip.cjs.js"),se=require("../FilesGrid/FilesGrid.cjs.js"),re=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),oe=require("./CommentWrapper.cjs.js"),l=require("./ActivityMarkdownComponents.cjs.js"),ce=require("./mappers.cjs.js"),ue=require("@ynput/ayon-react-components"),ae=require("../ActivityStatus/ActivityStatus.cjs.js"),D=require("../../context/FeedContext.cjs.js"),le=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const me=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const xe=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");const de=({activity:r={},onCheckChange:b,onDelete:m,onUpdate:x,projectInfo:pe,editProps:F,projectName:o,entityType:I,onReferenceClick:f,onFileExpand:M,showOrigin:H,isHighlighted:N,readOnly:g,statuses:B=[]})=>{const{userName:d,createReaction:P,deleteReaction:S}=D.useFeedContext();let{body:p,authorName:c,authorFullName:q,createdAt:G,referenceType:_,entityId:C,activityId:n,author:i,isOwner:R,files:j=[],origin:h}=r;c||(c=(i==null?void 0:i.name)||""),q||(q=(i==null?void 0:i.fullName)||c);const{editingId:L,setEditingId:E}=D.useFeedContext(),{onGoToFrame:u,setHighlightedActivities:O}=xe.useDetailsPanelContext(),y=()=>{E(n)},Q=()=>{E(null)},V=async(e,X)=>{await(x==null?void 0:x(e,X)),E(null)},a=L===n,T=_!=="origin"||H,W=async()=>{const e=re.getTextRefs(p);T&&h&&e.push({id:h.id,type:h.type}),m&&await m(n,C,e)},z=()=>{le.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await W()}})},[,k]=ie(),v=w.useMemo(()=>ce.mapGraphQLReactions(r.reactions,d),[[...r.reactions||[]]]),J=e=>{e.isActive?P({projectName:o,userName:d,activityId:n,createReactionModel:{reaction:e.type}}):S({projectName:o,userName:d,activityId:n,reaction:e.type})},K=w.useCallback(e=>{e.annotation&&(u==null||u(e.annotation.range[0]),O([n]))},[u]);return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(s.Comment,{className:A("comment",{isOwner:R,isEditing:a,isHighlighted:N}),id:n,children:[t.jsxRuntimeExports.jsx(me,{name:c,fullName:q,date:G,isRef:T,activity:r,projectName:o,entityType:I,onReferenceClick:f,onReferenceTooltip:k,children:void 0}),t.jsxRuntimeExports.jsxs(s.Body,{className:A("comment-body",{isEditing:a}),children:[!g&&t.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[R&&m&&t.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:z,tooltip:"Delete comment"}),R&&y&&t.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:y})]}),a?t.jsxRuntimeExports.jsx(te.default,{initValue:p,initFiles:j,isEditing:!0,onClose:Q,onSubmit:V,isOpen:!0,...F}):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(oe,{children:t.jsxRuntimeExports.jsx(Y,{remarkPlugins:[$,Z,U,ee],urlTransform:e=>e,components:{a:e=>l.aTag(e,{entityId:C,projectName:o,onReferenceClick:f,onReferenceTooltip:k,activityId:n}),input:e=>l.inputTag(e,{activity:r,onCheckChange:b}),code:e=>l.codeTag(e),blockquote:e=>l.blockquoteTag(e),tip:e=>t.jsxRuntimeExports.jsxs(s.Tip,{children:[t.jsxRuntimeExports.jsx(ue.Icon,{icon:"info"}),e.children]}),status:e=>t.jsxRuntimeExports.jsx(ae,{name:e.id,statuses:B,children:e.children})},children:p})}),t.jsxRuntimeExports.jsx(se,{files:j,isCompact:j.length>6,activityId:n,projectName:o,isDownloadable:!0,onExpand:M,onAnnotationClick:K,onRemove:void 0})]}),!a&&t.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:v&&t.jsxRuntimeExports.jsx(ne,{reactions:v,changeHandler:J,readOnly:g})})]})]})})};module.exports=de;
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'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: Function\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 } = useFeedContext()\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 { editingId, setEditingId } = useFeedContext()\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) => {\n await onUpdate?.(value, files)\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', { isOwner, isEditing, isHighlighted })}\n id={activityId}\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 && (\n <Styled.Tools className={'tools'}>\n {isOwner && onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n />\n )}\n {isOwner && handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} />\n )}\n </Styled.Tools>\n )}\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\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 }),\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 />\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","useFeedContext","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","editingId","setEditingId","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","useMemo","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","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'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: Function\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 } = useFeedContext()\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 { editingId, setEditingId } = useFeedContext()\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) => {\n await onUpdate?.(value, files)\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', { isOwner, isEditing, isHighlighted })}\n id={activityId}\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 && (\n <Styled.Tools className={'tools'}>\n {isOwner && onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n />\n )}\n {isOwner && handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} />\n )}\n </Styled.Tools>\n )}\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\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 }),\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 />\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","useFeedContext","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","editingId","setEditingId","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","useMemo","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
@@ -35,7 +35,8 @@ import "../../../../context/AddonProjectContext.es.js";
35
35
  import "../../../../context/AddonContext.es.js";
36
36
  import "../../../../context/PowerpackContext.es.js";
37
37
  import "../../../../context/MoveEntityContext.es.js";
38
- const nt = ({
38
+ import "../../../../context/MenuContext.es.js";
39
+ const mt = ({
39
40
  activity: r = {},
40
41
  onCheckChange: E,
41
42
  onDelete: c,
@@ -219,6 +220,6 @@ const nt = ({
219
220
  ) });
220
221
  };
221
222
  export {
222
- nt as default
223
+ mt as default
223
224
  };
224
225
  //# 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'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: Function\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 } = useFeedContext()\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 { editingId, setEditingId } = useFeedContext()\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) => {\n await onUpdate?.(value, files)\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', { isOwner, isEditing, isHighlighted })}\n id={activityId}\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 && (\n <Styled.Tools className={'tools'}>\n {isOwner && onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n />\n )}\n {isOwner && handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} />\n )}\n </Styled.Tools>\n )}\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\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 }),\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 />\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","useFeedContext","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","editingId","setEditingId","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","useMemo","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","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'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: Function\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 } = useFeedContext()\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 { editingId, setEditingId } = useFeedContext()\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) => {\n await onUpdate?.(value, files)\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', { isOwner, isEditing, isHighlighted })}\n id={activityId}\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 && (\n <Styled.Tools className={'tools'}>\n {isOwner && onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n />\n )}\n {isOwner && handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} />\n )}\n </Styled.Tools>\n )}\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\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 }),\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 />\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","useFeedContext","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","editingId","setEditingId","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","useMemo","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
@@ -142,6 +142,14 @@
142
142
  }
143
143
  }
144
144
 
145
+ /* Inline code elements (not in pre blocks) */
146
+ code:not(pre code) {
147
+ font-family: monospace;
148
+ background-color: var(--md-sys-color-surface-container-lowest);
149
+ padding: 2px 4px;
150
+ border-radius: 2px;
151
+ }
152
+
145
153
  &.isEditing {
146
154
  padding: 0;
147
155
  border-radius: var(--border-radius-l);
@@ -205,11 +213,18 @@
205
213
  padding: var(--padding-m);
206
214
  border-radius: var(--padding-s);
207
215
  background-color: var(--md-sys-color-surface-container-lowest);
216
+ font-family: monospace;
217
+ font-size: var(--md-sys-typescale-body-small-font-size);
208
218
 
209
219
  line-break: anywhere;
210
220
  word-break: break-word;
211
221
  overflow: hidden;
212
- `,d=o.div`
222
+
223
+ /* Ensure all child elements use monospace font */
224
+ * {
225
+ font-family: monospace !important;
226
+ }
227
+ `,s=o.div`
213
228
  display: flex;
214
229
  position: absolute;
215
230
  right: 4px;
@@ -217,7 +232,7 @@
217
232
  background-color: var(--md-sys-color-surface-container-highest);
218
233
  border-radius: var(--border-radius-m);
219
234
  z-index: 50;
220
- `,s=o(r.Button)`
235
+ `,d=o(r.Button)`
221
236
  padding: 4px;
222
237
 
223
238
  [icon='edit_square'] {
@@ -245,5 +260,5 @@
245
260
  .icon {
246
261
  font-size: 24px;
247
262
  }
248
- `;exports.BlockCode=n;exports.Body=i;exports.Comment=a;exports.QuoteLine=t;exports.Tip=l;exports.ToolButton=s;exports.Tools=d;
263
+ `;exports.BlockCode=n;exports.Body=i;exports.Comment=a;exports.QuoteLine=t;exports.Tip=l;exports.ToolButton=d;exports.Tools=s;
249
264
  //# sourceMappingURL=ActivityComment.styled.cjs.js.map