@ynput/ayon-frontend-shared 0.2.34 → 0.2.35

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 (586) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -23
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Feed.cjs.js +1 -1
  5. package/dist/Feed.es.js +20 -19
  6. package/dist/_virtual/attach-listener.cjs.js +2 -0
  7. package/dist/_virtual/attach-listener.cjs.js.map +1 -0
  8. package/dist/_virtual/attach-listener.es.js +5 -0
  9. package/dist/_virtual/attach-listener.es.js.map +1 -0
  10. package/dist/_virtual/attach-shared-listeners.cjs.js +2 -0
  11. package/dist/_virtual/attach-shared-listeners.cjs.js.map +1 -0
  12. package/dist/_virtual/attach-shared-listeners.es.js +5 -0
  13. package/dist/_virtual/attach-shared-listeners.es.js.map +1 -0
  14. package/dist/_virtual/constants.cjs.js +2 -0
  15. package/dist/_virtual/constants.cjs.js.map +1 -0
  16. package/dist/_virtual/constants.es.js +5 -0
  17. package/dist/_virtual/constants.es.js.map +1 -0
  18. package/dist/_virtual/create-or-join.cjs.js +2 -0
  19. package/dist/_virtual/create-or-join.cjs.js.map +1 -0
  20. package/dist/_virtual/create-or-join.es.js +5 -0
  21. package/dist/_virtual/create-or-join.es.js.map +1 -0
  22. package/dist/_virtual/get-url.cjs.js +2 -0
  23. package/dist/_virtual/get-url.cjs.js.map +1 -0
  24. package/dist/_virtual/get-url.es.js +5 -0
  25. package/dist/_virtual/get-url.es.js.map +1 -0
  26. package/dist/_virtual/globals.cjs.js +2 -0
  27. package/dist/_virtual/globals.cjs.js.map +1 -0
  28. package/dist/_virtual/globals.es.js +5 -0
  29. package/dist/_virtual/globals.es.js.map +1 -0
  30. package/dist/_virtual/heartbeat.cjs.js +2 -0
  31. package/dist/_virtual/heartbeat.cjs.js.map +1 -0
  32. package/dist/_virtual/heartbeat.es.js +5 -0
  33. package/dist/_virtual/heartbeat.es.js.map +1 -0
  34. package/dist/_virtual/index.cjs.js +1 -1
  35. package/dist/_virtual/index.cjs10.js +1 -1
  36. package/dist/_virtual/index.cjs11.js +2 -0
  37. package/dist/_virtual/index.cjs11.js.map +1 -0
  38. package/dist/_virtual/index.cjs12.js +2 -0
  39. package/dist/_virtual/index.cjs12.js.map +1 -0
  40. package/dist/_virtual/index.cjs2.js +1 -1
  41. package/dist/_virtual/index.cjs3.js +1 -1
  42. package/dist/_virtual/index.cjs4.js +1 -1
  43. package/dist/_virtual/index.cjs6.js +1 -1
  44. package/dist/_virtual/index.cjs8.js +1 -1
  45. package/dist/_virtual/index.cjs9.js +1 -1
  46. package/dist/_virtual/index.es.js +5 -4
  47. package/dist/_virtual/index.es10.js +5 -5
  48. package/dist/_virtual/index.es11.js +8 -0
  49. package/dist/_virtual/index.es11.js.map +1 -0
  50. package/dist/_virtual/index.es12.js +8 -0
  51. package/dist/_virtual/index.es12.js.map +1 -0
  52. package/dist/_virtual/index.es2.js +2 -2
  53. package/dist/_virtual/index.es3.js +5 -2
  54. package/dist/_virtual/index.es3.js.map +1 -1
  55. package/dist/_virtual/index.es4.js +2 -5
  56. package/dist/_virtual/index.es4.js.map +1 -1
  57. package/dist/_virtual/index.es6.js +5 -5
  58. package/dist/_virtual/index.es8.js +4 -4
  59. package/dist/_virtual/index.es9.js +2 -5
  60. package/dist/_virtual/index.es9.js.map +1 -1
  61. package/dist/_virtual/manage-subscribers.cjs.js +2 -0
  62. package/dist/_virtual/manage-subscribers.cjs.js.map +1 -0
  63. package/dist/_virtual/manage-subscribers.es.js +5 -0
  64. package/dist/_virtual/manage-subscribers.es.js.map +1 -0
  65. package/dist/_virtual/proxy.cjs.js +2 -0
  66. package/dist/_virtual/proxy.cjs.js.map +1 -0
  67. package/dist/_virtual/proxy.es.js +5 -0
  68. package/dist/_virtual/proxy.es.js.map +1 -0
  69. package/dist/_virtual/socket-io.cjs.js +2 -0
  70. package/dist/_virtual/socket-io.cjs.js.map +1 -0
  71. package/dist/_virtual/socket-io.es.js +5 -0
  72. package/dist/_virtual/socket-io.es.js.map +1 -0
  73. package/dist/_virtual/use-event-source.cjs.js +2 -0
  74. package/dist/_virtual/use-event-source.cjs.js.map +1 -0
  75. package/dist/_virtual/use-event-source.es.js +5 -0
  76. package/dist/_virtual/use-event-source.es.js.map +1 -0
  77. package/dist/_virtual/use-socket-io.cjs.js +2 -0
  78. package/dist/_virtual/use-socket-io.cjs.js.map +1 -0
  79. package/dist/_virtual/use-socket-io.es.js +5 -0
  80. package/dist/_virtual/use-socket-io.es.js.map +1 -0
  81. package/dist/_virtual/use-websocket.cjs.js +2 -0
  82. package/dist/_virtual/use-websocket.cjs.js.map +1 -0
  83. package/dist/_virtual/use-websocket.es.js +5 -0
  84. package/dist/_virtual/use-websocket.es.js.map +1 -0
  85. package/dist/_virtual/util.cjs.js +2 -0
  86. package/dist/_virtual/util.cjs.js.map +1 -0
  87. package/dist/_virtual/util.es.js +5 -0
  88. package/dist/_virtual/util.es.js.map +1 -0
  89. package/dist/api.cjs.js +1 -1
  90. package/dist/api.es.js +233 -230
  91. package/dist/api.es.js.map +1 -1
  92. package/dist/components.cjs.js +1 -1
  93. package/dist/components.es.js +25 -23
  94. package/dist/components.es.js.map +1 -1
  95. package/dist/context.cjs.js +1 -1
  96. package/dist/context.es.js +17 -13
  97. package/dist/context.es.js.map +1 -1
  98. package/dist/index.cjs.js +1 -1
  99. package/dist/index.es.js +11 -10
  100. package/dist/index.es.js.map +1 -1
  101. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  102. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  103. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  104. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  105. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +2 -0
  106. package/dist/node_modules/react-use-websocket/dist/index.cjs.js.map +1 -0
  107. package/dist/node_modules/react-use-websocket/dist/index.es.js +36 -0
  108. package/dist/node_modules/react-use-websocket/dist/index.es.js.map +1 -0
  109. package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.cjs.js +2 -0
  110. package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.cjs.js.map +1 -0
  111. package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.es.js +79 -0
  112. package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.es.js.map +1 -0
  113. package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.cjs.js +2 -0
  114. package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.cjs.js.map +1 -0
  115. package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.es.js +72 -0
  116. package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.es.js.map +1 -0
  117. package/dist/node_modules/react-use-websocket/dist/lib/constants.cjs.js +2 -0
  118. package/dist/node_modules/react-use-websocket/dist/lib/constants.cjs.js.map +1 -0
  119. package/dist/node_modules/react-use-websocket/dist/lib/constants.es.js +32 -0
  120. package/dist/node_modules/react-use-websocket/dist/lib/constants.es.js.map +1 -0
  121. package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.cjs.js +2 -0
  122. package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.cjs.js.map +1 -0
  123. package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.es.js +53 -0
  124. package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.es.js.map +1 -0
  125. package/dist/node_modules/react-use-websocket/dist/lib/get-url.cjs.js +2 -0
  126. package/dist/node_modules/react-use-websocket/dist/lib/get-url.cjs.js.map +1 -0
  127. package/dist/node_modules/react-use-websocket/dist/lib/get-url.es.js +144 -0
  128. package/dist/node_modules/react-use-websocket/dist/lib/get-url.es.js.map +1 -0
  129. package/dist/node_modules/react-use-websocket/dist/lib/globals.cjs.js +2 -0
  130. package/dist/node_modules/react-use-websocket/dist/lib/globals.cjs.js.map +1 -0
  131. package/dist/node_modules/react-use-websocket/dist/lib/globals.es.js +19 -0
  132. package/dist/node_modules/react-use-websocket/dist/lib/globals.es.js.map +1 -0
  133. package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.cjs.js +2 -0
  134. package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.cjs.js.map +1 -0
  135. package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.es.js +35 -0
  136. package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.es.js.map +1 -0
  137. package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.cjs.js +2 -0
  138. package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.cjs.js.map +1 -0
  139. package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.es.js +36 -0
  140. package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.es.js.map +1 -0
  141. package/dist/node_modules/react-use-websocket/dist/lib/proxy.cjs.js +2 -0
  142. package/dist/node_modules/react-use-websocket/dist/lib/proxy.cjs.js.map +1 -0
  143. package/dist/node_modules/react-use-websocket/dist/lib/proxy.es.js +24 -0
  144. package/dist/node_modules/react-use-websocket/dist/lib/proxy.es.js.map +1 -0
  145. package/dist/node_modules/react-use-websocket/dist/lib/socket-io.cjs.js +2 -0
  146. package/dist/node_modules/react-use-websocket/dist/lib/socket-io.cjs.js.map +1 -0
  147. package/dist/node_modules/react-use-websocket/dist/lib/socket-io.es.js +39 -0
  148. package/dist/node_modules/react-use-websocket/dist/lib/socket-io.es.js.map +1 -0
  149. package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.cjs.js +2 -0
  150. package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.cjs.js.map +1 -0
  151. package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.es.js +51 -0
  152. package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.es.js.map +1 -0
  153. package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.cjs.js +2 -0
  154. package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.cjs.js.map +1 -0
  155. package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.es.js +54 -0
  156. package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.es.js.map +1 -0
  157. package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.cjs.js +2 -0
  158. package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.cjs.js.map +1 -0
  159. package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.es.js +198 -0
  160. package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.es.js.map +1 -0
  161. package/dist/node_modules/react-use-websocket/dist/lib/util.cjs.js +2 -0
  162. package/dist/node_modules/react-use-websocket/dist/lib/util.cjs.js.map +1 -0
  163. package/dist/node_modules/react-use-websocket/dist/lib/util.es.js +21 -0
  164. package/dist/node_modules/react-use-websocket/dist/lib/util.es.js.map +1 -0
  165. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  166. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js.map +1 -1
  167. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  168. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  169. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js.map +1 -1
  170. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  171. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  172. package/dist/node_modules/rehype-parse/lib/index.cjs.js.map +1 -1
  173. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  174. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  175. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  176. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  177. package/dist/node_modules/remove-accents/index.es.js +1 -1
  178. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  179. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  180. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  181. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  182. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  183. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  184. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  185. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  186. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  187. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  188. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  189. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  190. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  191. package/dist/shared/src/api/base/client.cjs.js +1 -1
  192. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  193. package/dist/shared/src/api/base/client.es.js +7 -6
  194. package/dist/shared/src/api/base/client.es.js.map +1 -1
  195. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  196. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  197. package/dist/shared/src/api/queries/activities/getActivities.es.js +71 -60
  198. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  199. package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
  200. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  201. package/dist/shared/src/api/queries/activities/getCategories.es.js +11 -6
  202. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  203. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  204. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  205. package/dist/shared/src/api/queries/activities/updateActivities.es.js +1 -1
  206. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  207. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
  208. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  209. package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -1
  210. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  211. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +2 -0
  212. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -0
  213. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +144 -0
  214. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -0
  215. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  216. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  217. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  218. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  219. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js +4 -4
  220. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js.map +1 -1
  221. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js +36 -35
  222. package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js.map +1 -1
  223. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  224. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  225. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  226. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  227. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  228. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  229. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +28 -27
  230. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  231. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  232. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  233. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
  234. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  235. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  236. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  237. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -3
  238. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  239. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  240. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  241. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -3
  242. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  243. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  244. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  245. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +3 -2
  246. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  247. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  248. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  249. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -3
  250. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  251. package/dist/shared/src/components/Powerpack/RequiredAddonVersion.cjs.js +9 -0
  252. package/dist/shared/src/components/Powerpack/RequiredAddonVersion.cjs.js.map +1 -0
  253. package/dist/shared/src/components/Powerpack/RequiredAddonVersion.es.js +30 -0
  254. package/dist/shared/src/components/Powerpack/RequiredAddonVersion.es.js.map +1 -0
  255. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  256. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  257. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
  258. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  259. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js +1 -1
  260. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js +4 -3
  262. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js.map +1 -1
  263. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  264. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  265. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -4
  266. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  267. package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js +1 -0
  268. package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js.map +1 -1
  269. package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js +1 -0
  270. package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js.map +1 -1
  271. package/dist/shared/src/components/RefreshToast/RefreshToast.cjs.js +2 -0
  272. package/dist/shared/src/components/RefreshToast/RefreshToast.cjs.js.map +1 -0
  273. package/dist/shared/src/components/RefreshToast/RefreshToast.es.js +10 -0
  274. package/dist/shared/src/components/RefreshToast/RefreshToast.es.js.map +1 -0
  275. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +2 -2
  276. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  277. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -3
  278. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  280. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  281. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -3
  282. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  283. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  284. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  285. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -4
  286. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  287. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  288. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  289. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -3
  290. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  291. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +4 -4
  292. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  293. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +3 -2
  294. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  295. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  296. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  297. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -3
  298. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  299. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  300. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  301. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +6 -5
  302. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  303. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  304. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  305. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -3
  306. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  307. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  308. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -3
  310. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  311. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  312. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  314. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  315. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  316. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -3
  318. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
  322. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -3
  326. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -4
  330. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -3
  334. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  338. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +3 -2
  342. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
  346. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  347. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  348. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -3
  350. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  351. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  352. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -3
  354. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  355. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  356. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -3
  358. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  359. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  360. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -3
  362. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
  366. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  367. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  368. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/Feed/Feed.es.js +4 -3
  370. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  371. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js +2 -2
  372. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js +42 -39
  374. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  375. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  376. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +13 -12
  378. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  379. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  380. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +7 -6
  382. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  384. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +258 -245
  386. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +66 -11
  388. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +68 -13
  390. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  392. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +13 -10
  394. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  396. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  397. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +6 -5
  398. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  400. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +63 -51
  402. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  403. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +1 -1
  404. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +35 -31
  406. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -0
  408. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -2
  410. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
  411. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  412. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  414. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  415. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  416. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  418. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +73 -72
  422. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -3
  426. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -3
  430. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -3
  434. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -3
  438. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -3
  442. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -3
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -3
  458. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -3
  462. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -3
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -3
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -3
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -3
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +3 -2
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -3
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -14
  490. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  494. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -5
  498. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -3
  502. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  503. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  504. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -3
  506. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  507. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  508. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -3
  510. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  511. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  512. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  514. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  515. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  516. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +3 -2
  518. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  519. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  520. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +5 -4
  522. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  523. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  524. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +3 -2
  526. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  527. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  528. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  529. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
  530. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  531. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  532. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  533. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  534. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  535. package/dist/shared/src/context/AddonProjectContext.es.js +27 -13
  536. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  537. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  538. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  539. package/dist/shared/src/context/DetailsPanelContext.es.js +5 -4
  540. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  541. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  542. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  543. package/dist/shared/src/context/PowerpackContext.es.js +11 -10
  544. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  545. package/dist/shared/src/context/WebsocketContext.cjs.js +2 -0
  546. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -0
  547. package/dist/shared/src/context/WebsocketContext.es.js +309 -0
  548. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -0
  549. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  550. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  551. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  552. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  553. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
  554. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
  555. package/dist/src/components/Menu/MenuComponents/Menu.es.js +3 -2
  556. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
  557. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
  558. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
  559. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +7 -6
  560. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
  561. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
  562. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
  563. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +11 -10
  564. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
  565. package/dist/types/api/queries/activities/getActivities.d.ts +1 -1
  566. package/dist/types/api/queries/activities/index.d.ts +0 -1
  567. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +40 -0
  568. package/dist/types/api/queries/index.d.ts +1 -0
  569. package/dist/types/components/Powerpack/RequiredAddonVersion.d.ts +12 -0
  570. package/dist/types/components/Powerpack/index.d.ts +1 -1
  571. package/dist/types/components/RefreshToast/RefreshToast.d.ts +1 -0
  572. package/dist/types/components/RefreshToast/index.d.ts +1 -0
  573. package/dist/types/components/index.d.ts +1 -0
  574. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +5 -0
  575. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +2 -1
  576. package/dist/types/containers/Feed/components/FilesGrid/FilesGrid.d.ts +6 -2
  577. package/dist/types/context/AddonContext.d.ts +1 -0
  578. package/dist/types/context/AddonProjectContext.d.ts +6 -1
  579. package/dist/types/context/WebsocketContext.d.ts +21 -0
  580. package/dist/types/context/index.d.ts +1 -0
  581. package/package.json +1 -1
  582. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +0 -9
  583. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +0 -1
  584. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +0 -25
  585. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +0 -1
  586. package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -28,8 +28,9 @@ import "../../context/AddonContext.es.js";
28
28
  import "../../context/PowerpackContext.es.js";
29
29
  import "../../context/MoveEntityContext.es.js";
30
30
  import "../../context/MenuContext.es.js";
31
+ import "../../context/WebsocketContext.es.js";
31
32
  import ve from "./helpers/mergeAnnotationAttachments.es.js";
32
- const et = 30, tt = ({ disabled: L, readOnly: S, statuses: R = [], entityListId: D }) => {
33
+ const tt = 30, ot = ({ disabled: L, readOnly: S, statuses: R = [], entityListId: D }) => {
33
34
  const {
34
35
  projectName: r,
35
36
  entities: l,
@@ -182,7 +183,7 @@ const et = 30, tt = ({ disabled: L, readOnly: S, statuses: R = [], entityListId:
182
183
  ] }) });
183
184
  };
184
185
  export {
185
- tt as Feed,
186
- et as activitiesLast
186
+ ot as Feed,
187
+ tt as activitiesLast
187
188
  };
188
189
  //# sourceMappingURL=Feed.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../../../../_virtual/jsx-runtime.cjs.js"),p=require("@ynput/ayon-react-components"),n=require("./CategoryTag.cjs.js"),j=require("styled-components"),C=require("./CategoryDropdownItem.cjs.js"),f=require("react-toastify"),h="1.3.0",E=j(p.Dropdown)`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),C=require("@ynput/ayon-react-components"),s=require("./CategoryTag.cjs.js"),j=require("styled-components"),f=require("./CategoryDropdownItem.cjs.js"),h=require("react-toastify"),E=(e,{isGuest:o,isUser:i})=>!!(o||!e.length&&i),R="1.3.0",T=j(C.Dropdown)`
2
2
  button {
3
3
  /* remove all styles and just use a wrapper */
4
4
  background-color: unset !important;
@@ -9,5 +9,5 @@
9
9
  width: unset !important;
10
10
  color: var(--md-sys-color-on-surface) !important;
11
11
  }
12
- `,R=({value:e,categories:s,readonly:c,isCompact:i,hasPowerpack:u,onPowerFeature:a,onChange:y,...r})=>{const g=s.find(t=>t.name===e),{color:l}=g||{};if(!u)return o.jsxRuntimeExports.jsx(n.CategoryTag,{value:null,isPower:!0,isDisabled:!0,style:r.style,onClick:()=>a==null?void 0:a("commentCategories"),"data-tooltip":"Comment categories is a Powerpack feature"});if(c)return o.jsxRuntimeExports.jsx(n.CategoryTag,{value:e,color:l,isCompact:i,style:r.style});if(!s.length)return o.jsxRuntimeExports.jsx(n.CategoryTag,{value:e,color:l,isCompact:i,style:r.style,onClick:()=>f.toast.warning(`No categories found. Ensure they are set in the Powerpack settings and the version is at least ${h}.`)});const m=[...e?[{label:"No category",value:null,color:"inherit",icon:"clear"}]:[],...s.map(t=>({label:t.name,value:t.name,color:t.color,icon:null}))];return o.jsxRuntimeExports.jsx(E,{options:m,value:e?[e]:[],onChange:t=>y(t[0]),valueTemplate:()=>o.jsxRuntimeExports.jsx(n.CategoryTag,{value:e,color:l,isCompact:i,isEditing:!0}),itemTemplate:(t,T,d,x)=>o.jsxRuntimeExports.jsx(C.CategoryDropdownItem,{label:t.label,color:t.color,isSelected:d,isClear:t.value===null},x),...r})};exports.ActivityCategorySelect=R;
12
+ `,b=({value:e,categories:o,readonly:i,isHidden:c,isCompact:l,hasPowerpack:y,onPowerFeature:a,onChange:g,...n})=>{if(c)return null;const m=o.find(t=>t.name===e),{color:u}=m||{};if(!y)return r.jsxRuntimeExports.jsx(s.CategoryTag,{value:null,isPower:!0,isDisabled:!0,style:n.style,onClick:()=>a==null?void 0:a("commentCategories"),"data-tooltip":"Comment categories is a Powerpack feature"});if(i)return r.jsxRuntimeExports.jsx(s.CategoryTag,{value:e,color:u,isCompact:l,style:n.style});if(!o.length)return r.jsxRuntimeExports.jsx(s.CategoryTag,{value:e,color:u,isCompact:l,style:n.style,onClick:()=>h.toast.warning(`No categories found. Ensure they are set in the Powerpack settings and the version is at least ${R}.`)});const d=[...e?[{label:"No category",value:null,color:"inherit",icon:"clear"}]:[],...o.map(t=>({label:t.name,value:t.name,color:t.color,icon:null}))];return r.jsxRuntimeExports.jsx(T,{options:d,value:e?[e]:[],onChange:t=>g(t[0]),valueTemplate:()=>r.jsxRuntimeExports.jsx(s.CategoryTag,{value:e,color:u,isCompact:l,isEditing:!0}),itemTemplate:(t,v,x,p)=>r.jsxRuntimeExports.jsx(f.CategoryDropdownItem,{label:t.label,color:t.color,isSelected:x,isClear:t.value===null},p),...n})};exports.ActivityCategorySelect=b;exports.isCategoryHidden=E;
13
13
  //# sourceMappingURL=ActivityCategorySelect.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityCategorySelect.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.tsx"],"sourcesContent":["import { ActivityCategory } from '@shared/api'\nimport { Dropdown, DropdownProps, StatusField } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { CategoryTag } from './CategoryTag'\nimport styled from 'styled-components'\nimport { CategoryDropdownItem } from './CategoryDropdownItem'\nimport { PowerpackFeature } from '@shared/context'\nimport { toast } from 'react-toastify'\n\nconst CATEGORY_PP_MIN_VERSION = '1.3.0'\n\nconst StyledDropdown = styled(Dropdown)`\n button {\n /* remove all styles and just use a wrapper */\n background-color: unset !important;\n\n /* override the default quill styles */\n padding: 0 !important;\n height: 32px !important;\n width: unset !important;\n color: var(--md-sys-color-on-surface) !important;\n }\n`\n\nexport interface ActivityCategorySelectProps\n extends Omit<DropdownProps, 'options' | 'value' | 'onChange' | 'valueTemplate'> {\n value?: string | null\n categories: ActivityCategory[]\n readonly?: boolean\n isCompact?: boolean\n hasPowerpack?: boolean\n onPowerFeature?: (feature: PowerpackFeature) => void\n onChange: (value: string) => void\n}\n\nexport const ActivityCategorySelect: FC<ActivityCategorySelectProps> = ({\n value,\n categories,\n readonly,\n isCompact,\n hasPowerpack,\n onPowerFeature,\n onChange,\n ...props\n}) => {\n const category = categories.find((cat) => cat.name === value)\n const { color } = category || {}\n\n if (!hasPowerpack) {\n return (\n <CategoryTag\n value={null}\n isPower\n isDisabled\n style={props.style}\n onClick={() => onPowerFeature?.('commentCategories')}\n data-tooltip={'Comment categories is a Powerpack feature'}\n />\n )\n }\n\n if (readonly) {\n return <CategoryTag value={value} color={color} isCompact={isCompact} style={props.style} />\n }\n\n if (!categories.length) {\n return (\n <CategoryTag\n value={value}\n color={color}\n isCompact={isCompact}\n style={props.style}\n onClick={() =>\n toast.warning(\n `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${CATEGORY_PP_MIN_VERSION}.`,\n )\n }\n />\n )\n }\n\n const options: DropdownProps['options'] = [\n ...(value ? [{ label: 'No category', value: null, color: 'inherit', icon: 'clear' }] : []),\n ...categories.map((cat) => ({\n label: cat.name,\n value: cat.name,\n color: cat.color,\n icon: null,\n })),\n ]\n\n return (\n <StyledDropdown\n options={options}\n value={value ? [value] : []}\n onChange={(val) => onChange(val[0] as string)}\n valueTemplate={() => (\n <CategoryTag value={value} color={color} isCompact={isCompact} isEditing />\n )}\n itemTemplate={(option, isActive, isSelected, index) => (\n <CategoryDropdownItem\n label={option.label}\n color={option.color}\n isSelected={isSelected}\n isClear={option.value === null}\n key={index}\n />\n )}\n {...props}\n />\n )\n}\n"],"names":["CATEGORY_PP_MIN_VERSION","StyledDropdown","styled","Dropdown","ActivityCategorySelect","value","categories","readonly","isCompact","hasPowerpack","onPowerFeature","onChange","props","category","cat","color","jsx","CategoryTag","toast","options","val","option","isActive","isSelected","index","CategoryDropdownItem"],"mappings":"mUASMA,EAA0B,QAE1BC,EAAiBC,EAAOC,UAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBzBC,EAA0D,CAAC,CACtE,MAAAC,EACA,WAAAC,EACA,SAAAC,EACA,UAAAC,EACA,aAAAC,EACA,eAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAWP,EAAW,KAAMQ,GAAQA,EAAI,OAAST,CAAK,EACtD,CAAE,MAAAU,GAAUF,GAAY,CAAC,EAE/B,GAAI,CAACJ,EAED,OAAAO,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,MAAO,KACP,QAAO,GACP,WAAU,GACV,MAAOL,EAAM,MACb,QAAS,IAAMF,GAAA,YAAAA,EAAiB,qBAChC,eAAc,2CAAA,CAChB,EAIJ,GAAIH,EACF,+BAAQU,cAAY,CAAA,MAAAZ,EAAc,MAAAU,EAAc,UAAAP,EAAsB,MAAOI,EAAM,MAAO,EAGxF,GAAA,CAACN,EAAW,OAEZ,OAAAU,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,MAAAZ,EACA,MAAAU,EACA,UAAAP,EACA,MAAOI,EAAM,MACb,QAAS,IACPM,EAAAA,MAAM,QACJ,kGAAkGlB,CAAuB,GAAA,CAC3H,CAEJ,EAIJ,MAAMmB,EAAoC,CACxC,GAAId,EAAQ,CAAC,CAAE,MAAO,cAAe,MAAO,KAAM,MAAO,UAAW,KAAM,OAAQ,CAAC,EAAI,CAAC,EACxF,GAAGC,EAAW,IAAKQ,IAAS,CAC1B,MAAOA,EAAI,KACX,MAAOA,EAAI,KACX,MAAOA,EAAI,MACX,KAAM,IAAA,EACN,CACJ,EAGE,OAAAE,EAAA,kBAAA,IAACf,EAAA,CACC,QAAAkB,EACA,MAAOd,EAAQ,CAACA,CAAK,EAAI,CAAC,EAC1B,SAAWe,GAAQT,EAASS,EAAI,CAAC,CAAW,EAC5C,cAAe,IACZJ,wBAAAC,EAAAA,YAAA,CAAY,MAAAZ,EAAc,MAAAU,EAAc,UAAAP,EAAsB,UAAS,GAAC,EAE3E,aAAc,CAACa,EAAQC,EAAUC,EAAYC,IAC3CR,EAAA,kBAAA,IAACS,EAAA,qBAAA,CACC,MAAOJ,EAAO,MACd,MAAOA,EAAO,MACd,WAAAE,EACA,QAASF,EAAO,QAAU,IAAA,EACrBG,CACP,EAED,GAAGZ,CAAA,CACN,CAEJ"}
1
+ {"version":3,"file":"ActivityCategorySelect.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.tsx"],"sourcesContent":["import { ActivityCategory } from '@shared/api'\nimport { Dropdown, DropdownProps, StatusField } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { CategoryTag } from './CategoryTag'\nimport styled from 'styled-components'\nimport { CategoryDropdownItem } from './CategoryDropdownItem'\nimport { PowerpackFeature } from '@shared/context'\nimport { toast } from 'react-toastify'\n\nexport const isCategoryHidden = (\n categories: ActivityCategory[],\n { isGuest, isUser }: { isGuest?: boolean; isUser: boolean },\n) => {\n // guest can never see categories. They create comments with categories but cannot see them\n if (isGuest) return true\n // if there are no categories a regular user has access to, hide the category select\n if (!categories.length && isUser) return true\n // admins always see the category select, even if there are no categories\n return false\n}\n\nconst CATEGORY_PP_MIN_VERSION = '1.3.0'\n\nconst StyledDropdown = styled(Dropdown)`\n button {\n /* remove all styles and just use a wrapper */\n background-color: unset !important;\n\n /* override the default quill styles */\n padding: 0 !important;\n height: 32px !important;\n width: unset !important;\n color: var(--md-sys-color-on-surface) !important;\n }\n`\n\nexport interface ActivityCategorySelectProps\n extends Omit<DropdownProps, 'options' | 'value' | 'onChange' | 'valueTemplate'> {\n value?: string | null\n categories: ActivityCategory[]\n readonly?: boolean\n isHidden?: boolean\n isCompact?: boolean\n hasPowerpack?: boolean\n onPowerFeature?: (feature: PowerpackFeature) => void\n onChange: (value: string) => void\n}\n\nexport const ActivityCategorySelect: FC<ActivityCategorySelectProps> = ({\n value,\n categories,\n readonly,\n isHidden,\n isCompact,\n hasPowerpack,\n onPowerFeature,\n onChange,\n ...props\n}) => {\n if (isHidden) return null\n\n const category = categories.find((cat) => cat.name === value)\n const { color } = category || {}\n\n if (!hasPowerpack) {\n return (\n <CategoryTag\n value={null}\n isPower\n isDisabled\n style={props.style}\n onClick={() => onPowerFeature?.('commentCategories')}\n data-tooltip={'Comment categories is a Powerpack feature'}\n />\n )\n }\n\n if (readonly) {\n return <CategoryTag value={value} color={color} isCompact={isCompact} style={props.style} />\n }\n\n if (!categories.length) {\n return (\n <CategoryTag\n value={value}\n color={color}\n isCompact={isCompact}\n style={props.style}\n onClick={() =>\n toast.warning(\n `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${CATEGORY_PP_MIN_VERSION}.`,\n )\n }\n />\n )\n }\n\n const options: DropdownProps['options'] = [\n ...(value ? [{ label: 'No category', value: null, color: 'inherit', icon: 'clear' }] : []),\n ...categories.map((cat) => ({\n label: cat.name,\n value: cat.name,\n color: cat.color,\n icon: null,\n })),\n ]\n\n return (\n <StyledDropdown\n options={options}\n value={value ? [value] : []}\n onChange={(val) => onChange(val[0] as string)}\n valueTemplate={() => (\n <CategoryTag value={value} color={color} isCompact={isCompact} isEditing />\n )}\n itemTemplate={(option, isActive, isSelected, index) => (\n <CategoryDropdownItem\n label={option.label}\n color={option.color}\n isSelected={isSelected}\n isClear={option.value === null}\n key={index}\n />\n )}\n {...props}\n />\n )\n}\n"],"names":["isCategoryHidden","categories","isGuest","isUser","CATEGORY_PP_MIN_VERSION","StyledDropdown","styled","Dropdown","ActivityCategorySelect","value","readonly","isHidden","isCompact","hasPowerpack","onPowerFeature","onChange","props","category","cat","color","jsx","CategoryTag","toast","options","val","option","isActive","isSelected","index","CategoryDropdownItem"],"mappings":"mUASaA,EAAmB,CAC9BC,EACA,CAAE,QAAAC,EAAS,OAAAC,KAGP,GAAAD,GAEA,CAACD,EAAW,QAAUE,GAKtBC,EAA0B,QAE1BC,EAAiBC,EAAOC,UAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBzBC,EAA0D,CAAC,CACtE,MAAAC,EACA,WAAAR,EACA,SAAAS,EACA,SAAAC,EACA,UAAAC,EACA,aAAAC,EACA,eAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,GAAIL,EAAiB,OAAA,KAErB,MAAMM,EAAWhB,EAAW,KAAMiB,GAAQA,EAAI,OAAST,CAAK,EACtD,CAAE,MAAAU,GAAUF,GAAY,CAAC,EAE/B,GAAI,CAACJ,EAED,OAAAO,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,MAAO,KACP,QAAO,GACP,WAAU,GACV,MAAOL,EAAM,MACb,QAAS,IAAMF,GAAA,YAAAA,EAAiB,qBAChC,eAAc,2CAAA,CAChB,EAIJ,GAAIJ,EACF,+BAAQW,cAAY,CAAA,MAAAZ,EAAc,MAAAU,EAAc,UAAAP,EAAsB,MAAOI,EAAM,MAAO,EAGxF,GAAA,CAACf,EAAW,OAEZ,OAAAmB,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,MAAAZ,EACA,MAAAU,EACA,UAAAP,EACA,MAAOI,EAAM,MACb,QAAS,IACPM,EAAAA,MAAM,QACJ,kGAAkGlB,CAAuB,GAAA,CAC3H,CAEJ,EAIJ,MAAMmB,EAAoC,CACxC,GAAId,EAAQ,CAAC,CAAE,MAAO,cAAe,MAAO,KAAM,MAAO,UAAW,KAAM,OAAQ,CAAC,EAAI,CAAC,EACxF,GAAGR,EAAW,IAAKiB,IAAS,CAC1B,MAAOA,EAAI,KACX,MAAOA,EAAI,KACX,MAAOA,EAAI,MACX,KAAM,IAAA,EACN,CACJ,EAGE,OAAAE,EAAA,kBAAA,IAACf,EAAA,CACC,QAAAkB,EACA,MAAOd,EAAQ,CAACA,CAAK,EAAI,CAAC,EAC1B,SAAWe,GAAQT,EAASS,EAAI,CAAC,CAAW,EAC5C,cAAe,IACZJ,wBAAAC,EAAAA,YAAA,CAAY,MAAAZ,EAAc,MAAAU,EAAc,UAAAP,EAAsB,UAAS,GAAC,EAE3E,aAAc,CAACa,EAAQC,EAAUC,EAAYC,IAC3CR,EAAA,kBAAA,IAACS,EAAA,qBAAA,CACC,MAAOJ,EAAO,MACd,MAAOA,EAAO,MACd,WAAAE,EACA,QAASF,EAAO,QAAU,IAAA,EACrBG,CACP,EAED,GAAGZ,CAAA,CACN,CAEJ"}
@@ -1,10 +1,10 @@
1
- import { j as o } from "../../../../../../_virtual/jsx-runtime.es.js";
2
- import { Dropdown as f } from "@ynput/ayon-react-components";
1
+ import { j as r } from "../../../../../../_virtual/jsx-runtime.es.js";
2
+ import { Dropdown as h } from "@ynput/ayon-react-components";
3
3
  import { CategoryTag as l } from "./CategoryTag.es.js";
4
- import h from "styled-components";
5
- import { CategoryDropdownItem as x } from "./CategoryDropdownItem.es.js";
6
- import { toast as j } from "react-toastify";
7
- const C = "1.3.0", b = h(f)`
4
+ import x from "styled-components";
5
+ import { CategoryDropdownItem as j } from "./CategoryDropdownItem.es.js";
6
+ import { toast as C } from "react-toastify";
7
+ const I = (e, { isGuest: o, isUser: i }) => !!(o || !e.length && i), b = "1.3.0", v = x(h)`
8
8
  button {
9
9
  /* remove all styles and just use a wrapper */
10
10
  background-color: unset !important;
@@ -15,75 +15,78 @@ const C = "1.3.0", b = h(f)`
15
15
  width: unset !important;
16
16
  color: var(--md-sys-color-on-surface) !important;
17
17
  }
18
- `, A = ({
18
+ `, R = ({
19
19
  value: e,
20
- categories: n,
21
- readonly: m,
20
+ categories: o,
21
+ readonly: i,
22
+ isHidden: c,
22
23
  isCompact: s,
23
- hasPowerpack: c,
24
- onPowerFeature: i,
25
- onChange: u,
26
- ...r
24
+ hasPowerpack: u,
25
+ onPowerFeature: a,
26
+ onChange: d,
27
+ ...n
27
28
  }) => {
28
- const d = n.find((t) => t.name === e), { color: a } = d || {};
29
- if (!c)
30
- return /* @__PURE__ */ o.jsx(
29
+ if (c) return null;
30
+ const y = o.find((t) => t.name === e), { color: m } = y || {};
31
+ if (!u)
32
+ return /* @__PURE__ */ r.jsx(
31
33
  l,
32
34
  {
33
35
  value: null,
34
36
  isPower: !0,
35
37
  isDisabled: !0,
36
- style: r.style,
37
- onClick: () => i == null ? void 0 : i("commentCategories"),
38
+ style: n.style,
39
+ onClick: () => a == null ? void 0 : a("commentCategories"),
38
40
  "data-tooltip": "Comment categories is a Powerpack feature"
39
41
  }
40
42
  );
41
- if (m)
42
- return /* @__PURE__ */ o.jsx(l, { value: e, color: a, isCompact: s, style: r.style });
43
- if (!n.length)
44
- return /* @__PURE__ */ o.jsx(
43
+ if (i)
44
+ return /* @__PURE__ */ r.jsx(l, { value: e, color: m, isCompact: s, style: n.style });
45
+ if (!o.length)
46
+ return /* @__PURE__ */ r.jsx(
45
47
  l,
46
48
  {
47
49
  value: e,
48
- color: a,
50
+ color: m,
49
51
  isCompact: s,
50
- style: r.style,
51
- onClick: () => j.warning(
52
- `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${C}.`
52
+ style: n.style,
53
+ onClick: () => C.warning(
54
+ `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${b}.`
53
55
  )
54
56
  }
55
57
  );
56
- const y = [
58
+ const f = [
57
59
  ...e ? [{ label: "No category", value: null, color: "inherit", icon: "clear" }] : [],
58
- ...n.map((t) => ({
60
+ ...o.map((t) => ({
59
61
  label: t.name,
60
62
  value: t.name,
61
63
  color: t.color,
62
64
  icon: null
63
65
  }))
64
66
  ];
65
- return /* @__PURE__ */ o.jsx(
66
- b,
67
+ return /* @__PURE__ */ r.jsx(
68
+ v,
67
69
  {
68
- options: y,
70
+ options: f,
69
71
  value: e ? [e] : [],
70
- onChange: (t) => u(t[0]),
71
- valueTemplate: () => /* @__PURE__ */ o.jsx(l, { value: e, color: a, isCompact: s, isEditing: !0 }),
72
- itemTemplate: (t, v, p, g) => /* @__PURE__ */ o.jsx(
73
- x,
72
+ onChange: (t) => d(t[0]),
73
+ valueTemplate: () => /* @__PURE__ */ r.jsx(l, { value: e, color: m, isCompact: s, isEditing: !0 }),
74
+ itemTemplate: (t, k, g, p) => /* @__PURE__ */ r.jsx(
75
+ j,
74
76
  {
75
77
  label: t.label,
76
78
  color: t.color,
77
- isSelected: p,
79
+ isSelected: g,
78
80
  isClear: t.value === null
79
81
  },
80
- g
82
+ p
81
83
  ),
82
- ...r
84
+ ...n
83
85
  }
84
86
  );
85
87
  };
86
88
  export {
87
- A as ActivityCategorySelect
89
+ R as ActivityCategorySelect,
90
+ I as isCategoryHidden
88
91
  };
89
92
  //# sourceMappingURL=ActivityCategorySelect.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityCategorySelect.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.tsx"],"sourcesContent":["import { ActivityCategory } from '@shared/api'\nimport { Dropdown, DropdownProps, StatusField } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { CategoryTag } from './CategoryTag'\nimport styled from 'styled-components'\nimport { CategoryDropdownItem } from './CategoryDropdownItem'\nimport { PowerpackFeature } from '@shared/context'\nimport { toast } from 'react-toastify'\n\nconst CATEGORY_PP_MIN_VERSION = '1.3.0'\n\nconst StyledDropdown = styled(Dropdown)`\n button {\n /* remove all styles and just use a wrapper */\n background-color: unset !important;\n\n /* override the default quill styles */\n padding: 0 !important;\n height: 32px !important;\n width: unset !important;\n color: var(--md-sys-color-on-surface) !important;\n }\n`\n\nexport interface ActivityCategorySelectProps\n extends Omit<DropdownProps, 'options' | 'value' | 'onChange' | 'valueTemplate'> {\n value?: string | null\n categories: ActivityCategory[]\n readonly?: boolean\n isCompact?: boolean\n hasPowerpack?: boolean\n onPowerFeature?: (feature: PowerpackFeature) => void\n onChange: (value: string) => void\n}\n\nexport const ActivityCategorySelect: FC<ActivityCategorySelectProps> = ({\n value,\n categories,\n readonly,\n isCompact,\n hasPowerpack,\n onPowerFeature,\n onChange,\n ...props\n}) => {\n const category = categories.find((cat) => cat.name === value)\n const { color } = category || {}\n\n if (!hasPowerpack) {\n return (\n <CategoryTag\n value={null}\n isPower\n isDisabled\n style={props.style}\n onClick={() => onPowerFeature?.('commentCategories')}\n data-tooltip={'Comment categories is a Powerpack feature'}\n />\n )\n }\n\n if (readonly) {\n return <CategoryTag value={value} color={color} isCompact={isCompact} style={props.style} />\n }\n\n if (!categories.length) {\n return (\n <CategoryTag\n value={value}\n color={color}\n isCompact={isCompact}\n style={props.style}\n onClick={() =>\n toast.warning(\n `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${CATEGORY_PP_MIN_VERSION}.`,\n )\n }\n />\n )\n }\n\n const options: DropdownProps['options'] = [\n ...(value ? [{ label: 'No category', value: null, color: 'inherit', icon: 'clear' }] : []),\n ...categories.map((cat) => ({\n label: cat.name,\n value: cat.name,\n color: cat.color,\n icon: null,\n })),\n ]\n\n return (\n <StyledDropdown\n options={options}\n value={value ? [value] : []}\n onChange={(val) => onChange(val[0] as string)}\n valueTemplate={() => (\n <CategoryTag value={value} color={color} isCompact={isCompact} isEditing />\n )}\n itemTemplate={(option, isActive, isSelected, index) => (\n <CategoryDropdownItem\n label={option.label}\n color={option.color}\n isSelected={isSelected}\n isClear={option.value === null}\n key={index}\n />\n )}\n {...props}\n />\n )\n}\n"],"names":["CATEGORY_PP_MIN_VERSION","StyledDropdown","styled","Dropdown","ActivityCategorySelect","value","categories","readonly","isCompact","hasPowerpack","onPowerFeature","onChange","props","category","cat","color","jsx","CategoryTag","toast","options","val","option","isActive","isSelected","index","CategoryDropdownItem"],"mappings":";;;;;;AASA,MAAMA,IAA0B,SAE1BC,IAAiBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAwBzBC,IAA0D,CAAC;AAAA,EACtE,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAWP,EAAW,KAAK,CAACQ,MAAQA,EAAI,SAAST,CAAK,GACtD,EAAE,OAAAU,MAAUF,KAAY,CAAC;AAE/B,MAAI,CAACJ;AAED,WAAAO,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,SAAO;AAAA,QACP,YAAU;AAAA,QACV,OAAOL,EAAM;AAAA,QACb,SAAS,MAAMF,KAAA,gBAAAA,EAAiB;AAAA,QAChC,gBAAc;AAAA,MAAA;AAAA,IAChB;AAIJ,MAAIH;AACF,iCAAQU,GAAY,EAAA,OAAAZ,GAAc,OAAAU,GAAc,WAAAP,GAAsB,OAAOI,EAAM,OAAO;AAGxF,MAAA,CAACN,EAAW;AAEZ,WAAAU,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAAZ;AAAA,QACA,OAAAU;AAAA,QACA,WAAAP;AAAA,QACA,OAAOI,EAAM;AAAA,QACb,SAAS,MACPM,EAAM;AAAA,UACJ,kGAAkGlB,CAAuB;AAAA,QAAA;AAAA,MAC3H;AAAA,IAEJ;AAIJ,QAAMmB,IAAoC;AAAA,IACxC,GAAId,IAAQ,CAAC,EAAE,OAAO,eAAe,OAAO,MAAM,OAAO,WAAW,MAAM,QAAQ,CAAC,IAAI,CAAC;AAAA,IACxF,GAAGC,EAAW,IAAI,CAACQ,OAAS;AAAA,MAC1B,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI;AAAA,MACX,MAAM;AAAA,IAAA,EACN;AAAA,EACJ;AAGE,SAAAE,gBAAAA,EAAA;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,SAAAkB;AAAA,MACA,OAAOd,IAAQ,CAACA,CAAK,IAAI,CAAC;AAAA,MAC1B,UAAU,CAACe,MAAQT,EAASS,EAAI,CAAC,CAAW;AAAA,MAC5C,eAAe,MACZJ,gBAAAA,MAAAC,GAAA,EAAY,OAAAZ,GAAc,OAAAU,GAAc,WAAAP,GAAsB,WAAS,IAAC;AAAA,MAE3E,cAAc,CAACa,GAAQC,GAAUC,GAAYC,MAC3CR,gBAAAA,EAAA;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,OAAOJ,EAAO;AAAA,UACd,OAAOA,EAAO;AAAA,UACd,YAAAE;AAAA,UACA,SAASF,EAAO,UAAU;AAAA,QAAA;AAAA,QACrBG;AAAA,MACP;AAAA,MAED,GAAGZ;AAAA,IAAA;AAAA,EACN;AAEJ;"}
1
+ {"version":3,"file":"ActivityCategorySelect.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.tsx"],"sourcesContent":["import { ActivityCategory } from '@shared/api'\nimport { Dropdown, DropdownProps, StatusField } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { CategoryTag } from './CategoryTag'\nimport styled from 'styled-components'\nimport { CategoryDropdownItem } from './CategoryDropdownItem'\nimport { PowerpackFeature } from '@shared/context'\nimport { toast } from 'react-toastify'\n\nexport const isCategoryHidden = (\n categories: ActivityCategory[],\n { isGuest, isUser }: { isGuest?: boolean; isUser: boolean },\n) => {\n // guest can never see categories. They create comments with categories but cannot see them\n if (isGuest) return true\n // if there are no categories a regular user has access to, hide the category select\n if (!categories.length && isUser) return true\n // admins always see the category select, even if there are no categories\n return false\n}\n\nconst CATEGORY_PP_MIN_VERSION = '1.3.0'\n\nconst StyledDropdown = styled(Dropdown)`\n button {\n /* remove all styles and just use a wrapper */\n background-color: unset !important;\n\n /* override the default quill styles */\n padding: 0 !important;\n height: 32px !important;\n width: unset !important;\n color: var(--md-sys-color-on-surface) !important;\n }\n`\n\nexport interface ActivityCategorySelectProps\n extends Omit<DropdownProps, 'options' | 'value' | 'onChange' | 'valueTemplate'> {\n value?: string | null\n categories: ActivityCategory[]\n readonly?: boolean\n isHidden?: boolean\n isCompact?: boolean\n hasPowerpack?: boolean\n onPowerFeature?: (feature: PowerpackFeature) => void\n onChange: (value: string) => void\n}\n\nexport const ActivityCategorySelect: FC<ActivityCategorySelectProps> = ({\n value,\n categories,\n readonly,\n isHidden,\n isCompact,\n hasPowerpack,\n onPowerFeature,\n onChange,\n ...props\n}) => {\n if (isHidden) return null\n\n const category = categories.find((cat) => cat.name === value)\n const { color } = category || {}\n\n if (!hasPowerpack) {\n return (\n <CategoryTag\n value={null}\n isPower\n isDisabled\n style={props.style}\n onClick={() => onPowerFeature?.('commentCategories')}\n data-tooltip={'Comment categories is a Powerpack feature'}\n />\n )\n }\n\n if (readonly) {\n return <CategoryTag value={value} color={color} isCompact={isCompact} style={props.style} />\n }\n\n if (!categories.length) {\n return (\n <CategoryTag\n value={value}\n color={color}\n isCompact={isCompact}\n style={props.style}\n onClick={() =>\n toast.warning(\n `No categories found. Ensure they are set in the Powerpack settings and the version is at least ${CATEGORY_PP_MIN_VERSION}.`,\n )\n }\n />\n )\n }\n\n const options: DropdownProps['options'] = [\n ...(value ? [{ label: 'No category', value: null, color: 'inherit', icon: 'clear' }] : []),\n ...categories.map((cat) => ({\n label: cat.name,\n value: cat.name,\n color: cat.color,\n icon: null,\n })),\n ]\n\n return (\n <StyledDropdown\n options={options}\n value={value ? [value] : []}\n onChange={(val) => onChange(val[0] as string)}\n valueTemplate={() => (\n <CategoryTag value={value} color={color} isCompact={isCompact} isEditing />\n )}\n itemTemplate={(option, isActive, isSelected, index) => (\n <CategoryDropdownItem\n label={option.label}\n color={option.color}\n isSelected={isSelected}\n isClear={option.value === null}\n key={index}\n />\n )}\n {...props}\n />\n )\n}\n"],"names":["isCategoryHidden","categories","isGuest","isUser","CATEGORY_PP_MIN_VERSION","StyledDropdown","styled","Dropdown","ActivityCategorySelect","value","readonly","isHidden","isCompact","hasPowerpack","onPowerFeature","onChange","props","category","cat","color","jsx","CategoryTag","toast","options","val","option","isActive","isSelected","index","CategoryDropdownItem"],"mappings":";;;;;;AASO,MAAMA,IAAmB,CAC9BC,GACA,EAAE,SAAAC,GAAS,QAAAC,QAGP,GAAAD,KAEA,CAACD,EAAW,UAAUE,IAKtBC,IAA0B,SAE1BC,IAAiBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAyBzBC,IAA0D,CAAC;AAAA,EACtE,OAAAC;AAAA,EACA,YAAAR;AAAA,EACA,UAAAS;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,MAAIL,EAAiB,QAAA;AAErB,QAAMM,IAAWhB,EAAW,KAAK,CAACiB,MAAQA,EAAI,SAAST,CAAK,GACtD,EAAE,OAAAU,MAAUF,KAAY,CAAC;AAE/B,MAAI,CAACJ;AAED,WAAAO,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,SAAO;AAAA,QACP,YAAU;AAAA,QACV,OAAOL,EAAM;AAAA,QACb,SAAS,MAAMF,KAAA,gBAAAA,EAAiB;AAAA,QAChC,gBAAc;AAAA,MAAA;AAAA,IAChB;AAIJ,MAAIJ;AACF,iCAAQW,GAAY,EAAA,OAAAZ,GAAc,OAAAU,GAAc,WAAAP,GAAsB,OAAOI,EAAM,OAAO;AAGxF,MAAA,CAACf,EAAW;AAEZ,WAAAmB,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAAZ;AAAA,QACA,OAAAU;AAAA,QACA,WAAAP;AAAA,QACA,OAAOI,EAAM;AAAA,QACb,SAAS,MACPM,EAAM;AAAA,UACJ,kGAAkGlB,CAAuB;AAAA,QAAA;AAAA,MAC3H;AAAA,IAEJ;AAIJ,QAAMmB,IAAoC;AAAA,IACxC,GAAId,IAAQ,CAAC,EAAE,OAAO,eAAe,OAAO,MAAM,OAAO,WAAW,MAAM,QAAQ,CAAC,IAAI,CAAC;AAAA,IACxF,GAAGR,EAAW,IAAI,CAACiB,OAAS;AAAA,MAC1B,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI;AAAA,MACX,MAAM;AAAA,IAAA,EACN;AAAA,EACJ;AAGE,SAAAE,gBAAAA,EAAA;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,SAAAkB;AAAA,MACA,OAAOd,IAAQ,CAACA,CAAK,IAAI,CAAC;AAAA,MAC1B,UAAU,CAACe,MAAQT,EAASS,EAAI,CAAC,CAAW;AAAA,MAC5C,eAAe,MACZJ,gBAAAA,MAAAC,GAAA,EAAY,OAAAZ,GAAc,OAAAU,GAAc,WAAAP,GAAsB,WAAS,IAAC;AAAA,MAE3E,cAAc,CAACa,GAAQC,GAAUC,GAAYC,MAC3CR,gBAAAA,EAAA;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,OAAOJ,EAAO;AAAA,UACd,OAAOA,EAAO;AAAA,UACd,YAAAE;AAAA,UACA,SAASF,EAAO,UAAU;AAAA,QAAA;AAAA,QACrBG;AAAA,MACP;AAAA,MAED,GAAGZ;AAAA,IAAA;AAAA,EACN;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
1
+ "use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
2
2
  //# sourceMappingURL=ActivityComment.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
1
+ {"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"+0DAkDMA,GAAkB,CAAC,CACvB,SAAAC,EAAW,CAAC,EACZ,cAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,GACA,UAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,CAAA,CACb,IAAa,OACL,KAAA,CAAE,SAAAC,EAAU,eAAAC,EAAgB,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,EAAc,WAAAC,EAAY,QAAAC,CAAQ,EAC7FC,kBAAe,EAEXC,EAAeC,EAAAA,QAAQ,IACpBJ,EAAW,KAAMK,GAAQ,OAAA,OAAAA,EAAI,SAASC,EAAAzB,EAAS,eAAT,YAAAyB,EAAuB,UAAQ,GAAK,KAChF,EAACA,EAAAzB,GAAA,YAAAA,EAAU,eAAV,YAAAyB,EAAwB,SAAUN,CAAU,CAAC,EAE3CO,EAAuBC,GAAAA,wBAAwBL,GAAA,YAAAA,EAAc,KAAK,EAEpE,GAAA,CACF,KAAAM,EACA,WAAAC,EACA,eAAAC,EACA,UAAAC,EACA,cAAAC,EACA,SAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,OAAAC,CAAA,EACEtC,EACC6B,IAAyBA,GAAAM,GAAA,YAAAA,EAAQ,OAAQ,IACzCL,IAAiCA,GAAAK,GAAA,YAAAA,EAAQ,WAAYN,GAE1D,KAAM,CAAE,YAAAU,EAAa,yBAAAC,CAAyB,EAAIC,0BAAuB,EAEnEC,EAAoB,IAAM,CAC9BxB,EAAagB,CAAU,CACzB,EAEMS,EAAmB,IAAM,CAE7BzB,EAAa,IAAI,CACnB,EAEM0B,EAAa,MAAOC,EAAYR,EAAYS,KAAe,CAC/D,MAAM3C,GAAA,YAAAA,EAAW0C,EAAOR,EAAO,OAAWS,KAC1C5B,EAAa,IAAI,CACnB,EAEM6B,EAAY9B,IAAciB,EAE1Bc,EAAQhB,IAAkB,UAAYtB,EAEtCuC,EAAe,SAAY,CACzB,MAAAC,EAAOC,eAAYvB,CAAI,EAKzBoB,GAASV,GACNY,EAAA,KAAK,CAAE,GAAIZ,EAAO,GAAI,KAAMA,EAAO,KAAM,EAIhDpC,GAAa,MAAMA,EAASgC,EAAYD,EAAUiB,CAAI,CACxD,EAEME,EAAqB,IAAM,CACjBC,iBAAA,CACZ,MAAO,iBACP,QAAS,gDACT,OAAQ,SAAY,CAClB,MAAMJ,EAAa,CAAA,CACrB,CACD,CACH,EAEM,CAAG,CAAAK,CAAa,EAAIC,GAAoB,EAExCC,EAAkBjC,EAAA,QACtB,IAAMkC,uBAAoBzD,EAAS,UAAWc,CAAQ,EACtD,CAAC,CAAC,GAAId,EAAS,WAAa,EAAG,CAAC,CAClC,EAEM0D,EAAyBC,GAAuB,CAChDA,EAAS,SACI5C,EAAA,CACb,YAAAT,EAEA,SAAAQ,EACA,WAAAoB,EACA,oBAAqB,CACnB,SAAUyB,EAAS,IAAA,CACrB,CACD,EAEc3C,EAAA,CACb,YAAAV,EAEA,SAAAQ,EACA,WAAAoB,EACA,SAAUyB,EAAS,IAAA,CACpB,CAEL,EAEMC,EAAoBC,EAAA,YACvBC,GAAc,CACRA,EAAK,aAEVvB,GAAA,MAAAA,EAAeuB,EAAK,WAAuC,MAAM,CAAC,GACzCtB,EAAA,CAACN,CAAU,CAAC,EACvC,EACA,CAACK,CAAW,CACd,EAEA,OAEIwB,wBAAAC,EAAAA,kBAAAA,SAAA,CAAA,SAAAC,EAAA,kBAAA,KAACC,EAAO,QAAP,CACC,UAAWC,EAAK,UAAW,CACzB,QAAA/B,EACA,UAAAW,EACA,cAAApC,EACA,SAAU,CAAC,CAACW,GAAgB,CAACF,CAAA,CAC9B,EACD,GAAIc,EACJ,iBAAkBZ,GAAA,YAAAA,EAAc,MAChC,kBAAmBI,EAAqB,QACxC,mBAAoBA,EAAqB,UAEzC,SAAA,CAAAqC,EAAA,kBAAA,IAACK,GAAA,CACC,KAAMvC,EACN,SAAUC,EACV,KAAMC,EACN,MAAAiB,EACA,SAAAhD,EAEA,YAAAM,EACA,WAAAC,EACA,iBAAAC,EACA,mBAAoB8C,EACpB,SAAU,MAAA,CACZ,EACAW,yBAACI,EAAAA,KAAA,CAAY,UAAWF,EAAK,eAAgB,CAAE,UAAApB,EAAW,EACvD,SAAA,CAAA,CAACnC,GAAYwB,EACZ6B,EAAA,kBAAA,KAACK,EAAA,MAAA,CAAa,UAAW,QACtB,SAAA,CACCpE,GAAA6D,EAAA,kBAAA,IAACQ,EAAO,WAAP,CACC,KAAK,SACL,QAASnB,EACT,QAAQ,iBACR,QAAQ,MAAA,CACV,EAEDV,GACEqB,EAAAA,kBAAAA,IAAAQ,EAAA,WAAA,CAAkB,KAAK,cAAc,QAAS7B,EAAmB,QAAQ,MAAO,CAAA,CAAA,CAErF,CAAA,EAEAqB,EAAAA,kBAAAA,IAAC,MAAI,CAAA,UAAU,OAAQ,CAAA,EAGxB,CAAChB,GAAa,CAAC3B,GAAWE,GACzByC,EAAA,kBAAA,IAACS,GAAA,YAAA,CACC,MAAOlD,EAAa,KACpB,MAAOA,EAAa,MACpB,MAAO,CACL,IAAK,GACL,KAAM,EACR,EACA,UAAS,EAAA,CACX,EAGDyB,EACCgB,EAAA,kBAAA,IAACU,GAAA,QAAA,CACC,UAAW7C,EACX,UAAWS,EACX,aAAcf,GAAA,YAAAA,EAAc,KAC5B,UAAS,GACT,QAASqB,EACT,SAAUC,EACV,OAAQ,GACP,GAAGvC,CAAA,CAAA,EAIJ4D,EAAA,kBAAA,KAAAD,6BAAA,CAAA,SAAA,CAAAD,wBAACW,GACC,CAAA,SAAAX,EAAA,kBAAA,IAACY,GAAA,CACC,cAAe,CAACC,GAAWC,GAAOC,GAAiBC,EAAqB,EACxE,aAAeC,GAAQA,EACvB,WAAY,CAGV,EAAIC,GAEFC,EAAAA,KAAKD,EAAO,CACV,SAAAhD,EACA,YAAA3B,EAEA,iBAAAE,EACA,mBAAoB8C,EACpB,WAAApB,EACA,gBAAiBZ,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,SACzC,CAAA,EAGH,MAAQuD,GAAUE,EAAA,SAASF,EAAO,CAAE,SAAAjF,EAAU,cAAAC,EAAe,EAI7D,KAAOgF,GAAUG,EAAA,QAAQH,CAAK,EAE9B,WAAaA,GAAUI,EAAA,cAAcJ,CAAK,EAE1C,IAAMA,GACHhB,EAAA,kBAAA,KAAAqB,MAAA,CACC,SAAA,CAACvB,EAAAA,kBAAAA,IAAAwB,GAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EACjBN,EAAM,QAAA,EACT,EAGF,OAASA,2BAEJO,GAAe,CAAA,KAAMP,EAAM,GAAI,SAAApE,EAC7B,WAAM,SACT,CAGN,EAEC,SAAAe,CAAA,CAAA,EAEL,EAGAmC,EAAA,kBAAA,IAAC0B,GAAA,CACC,MAAApD,EACA,UAAWA,EAAM,OAAS,EAC1B,WAAAH,EACA,YAAA5B,EACA,eAAc,GACd,SAAUG,EACV,kBAAAmD,EACA,SAAU,MAAA,CAAA,CACZ,EACF,EAGD,CAACb,GACCgB,EAAAA,kBAAAA,IAAA,MAAA,CAAI,MAAO,CAAE,UAAW,MAAO,EAC7B,SACCP,GAAAO,EAAA,kBAAA,IAAC2B,GAAA,CACC,UAAWlC,EACX,cAAeE,EACf,SAAA9C,EACA,SAAUU,GAAgB,CAACF,EAAUE,EAAa,KAAO,OACzD,gBAAiBA,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,UACxC,iBAAkBA,EAAqB,OAAA,CAAA,CAG7C,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAAA,EAEJ,CAEJ"}