@ynput/ayon-frontend-shared 0.3.40 → 0.3.41

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 (419) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +219 -218
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs15.js +1 -1
  8. package/dist/_virtual/index.cjs19.js +1 -1
  9. package/dist/_virtual/index.cjs4.js +1 -1
  10. package/dist/_virtual/index.cjs5.js +1 -1
  11. package/dist/_virtual/index.es15.js +2 -2
  12. package/dist/_virtual/index.es16.js +2 -2
  13. package/dist/_virtual/index.es17.js +2 -2
  14. package/dist/_virtual/index.es18.js +2 -2
  15. package/dist/_virtual/index.es19.js +2 -2
  16. package/dist/_virtual/index.es4.js +5 -2
  17. package/dist/_virtual/index.es4.js.map +1 -1
  18. package/dist/_virtual/index.es5.js +2 -5
  19. package/dist/_virtual/index.es5.js.map +1 -1
  20. package/dist/api.cjs.js +1 -1
  21. package/dist/api.es.js +219 -220
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +10 -9
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  26. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  27. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  28. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  32. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  34. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  35. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  39. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  40. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  41. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  43. package/dist/shared/src/api/generated/graphql.cjs.js +20 -58
  44. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  45. package/dist/shared/src/api/generated/graphql.es.js +37 -75
  46. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  47. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entityLists/getLists.es.js +14 -16
  52. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
  56. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
  60. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
  62. package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
  63. package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
  64. package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
  65. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  66. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  67. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  68. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  74. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  75. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  78. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  80. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  81. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  82. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  83. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +3 -2
  84. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  85. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  86. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  89. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  90. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  91. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +3 -2
  92. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  93. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  94. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  95. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +3 -2
  96. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  97. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  98. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  99. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  100. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  102. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  103. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  104. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  106. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  108. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  110. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  112. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  114. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  115. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +3 -2
  116. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  117. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  118. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  119. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +339 -353
  120. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  121. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  122. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  123. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
  124. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  125. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  126. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  127. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  128. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  129. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  130. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  131. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  132. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  133. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  134. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  135. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -6
  136. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  137. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  138. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  140. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  141. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  142. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  144. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  145. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  146. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  147. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +113 -119
  148. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  149. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  150. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  152. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  154. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +3 -2
  156. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  158. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +132 -122
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
  167. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
  168. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
  169. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
  170. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
  171. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
  172. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
  173. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +3 -2
  176. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +3 -2
  180. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +17 -16
  184. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +3 -2
  188. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +3 -2
  192. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
  194. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
  195. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
  196. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
  197. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
  198. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
  200. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  203. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  206. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  214. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  218. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +3 -2
  222. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  226. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  228. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
  230. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  232. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +5 -4
  234. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  236. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  238. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  239. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  240. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
  242. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  243. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  244. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  246. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  247. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  248. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ListTable/ListTable.es.js +3 -2
  250. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  251. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  252. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +3 -2
  254. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  255. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  256. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +3 -2
  258. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +365 -363
  262. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +3 -2
  266. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +3 -2
  270. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  274. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  278. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +3 -2
  286. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  290. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +3 -2
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +3 -2
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +3 -2
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +3 -2
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  362. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  366. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +3 -2
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  371. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  372. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  374. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  375. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  376. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  378. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  379. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  380. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +3 -2
  382. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  383. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  384. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  386. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  387. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  388. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -2
  390. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  391. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  392. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +61 -82
  394. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  395. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  396. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  397. package/dist/shared/src/context/ProjectContext.es.js +83 -66
  398. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  399. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  401. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  402. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  403. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  404. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  405. package/dist/types/api/generated/graphql.d.ts +1 -34
  406. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
  407. package/dist/types/api/queries/entityLists/getLists.d.ts +2 -315
  408. package/dist/types/api/queries/products/createProduct.d.ts +2 -2
  409. package/dist/types/api/queries/products/getProduct.d.ts +259 -0
  410. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  411. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
  412. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
  413. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
  414. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
  415. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  416. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  417. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
  418. package/dist/types/context/ProjectContext.d.ts +2 -1
  419. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersionReview.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport * as Styled from './ActivityVersionReview.styled'\nimport ActivityDate from '../ActivityDate'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { VersionReviewFeedback } from '../CommentInput/types'\nimport { clsx } from 'clsx'\nimport { UserImage } from '@shared/components'\nimport { CategoryTag } from '../ActivityCategorySelect'\nimport { useCategoryData } from '../../hooks/useCategoryData'\n\ninterface ActivityVersionReviewProps {\n entityType?: string\n isGuest?: boolean\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n activityData: {\n feedback: VersionReviewFeedback\n category: string\n }\n [key: string]: any\n }\n}\n\nexport const getVerbForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'requested changes'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'approved this'\n }\n}\nexport const getVerbForFeedbackBody = (feedback: VersionReviewFeedback, entityType: string) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'Requested changes on ' + entityType\n case VersionReviewFeedback.APPROVE:\n default:\n return 'Approved ' + entityType\n }\n}\n\nexport const getIconForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'refresh'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'task_alt'\n }\n}\n\nconst ActivityVersionReview: React.FC<ActivityVersionReviewProps> = ({\n isGuest,\n activity = {},\n}) => {\n const { authorName, authorFullName, createdAt, activityData } = activity\n\n const label = useMemo(\n () =>\n [\n authorFullName || authorName,\n getVerbForFeedback(activityData?.feedback ?? VersionReviewFeedback.APPROVE),\n ].join(' '),\n [authorFullName, authorName, activityData?.feedback, createdAt],\n )\n\n const { categoryData, categoryNotFound } = useCategoryData(activityData?.category)\n\n if (!activityData?.feedback) return\n\n return (\n <Styled.VersionReview className={clsx(activityData.feedback)}>\n <Styled.Body>\n {authorName && <UserImage name={authorName} size={22} />}\n <Icon icon={getIconForFeedback(activityData.feedback)} />\n {categoryData && !isGuest && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n isCompact\n data-tooltip={\n categoryNotFound ? 'Category not found. It may have been deleted.' : undefined\n }\n data-tooltip-delay={0}\n />\n )}\n <Styled.Text>{label}</Styled.Text>\n <ActivityDate date={createdAt} exactTooltip />\n </Styled.Body>\n </Styled.VersionReview>\n )\n}\n\nexport default ActivityVersionReview\n"],"names":["getVerbForFeedback","feedback","VersionReviewFeedback","getVerbForFeedbackBody","entityType","getIconForFeedback","ActivityVersionReview","isGuest","activity","authorName","authorFullName","createdAt","activityData","label","useMemo","categoryData","categoryNotFound","useCategoryData","jsx","Styled.VersionReview","clsx","jsxs","Styled.Body","UserImage","Icon","CategoryTag","Styled.Text","ActivityDate"],"mappings":"whjBAyBO,MAAMA,EAAsBC,GAAoC,CACrE,OAAQA,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,oBACT,KAAKA,EAAAA,sBAAsB,QAC3B,QACE,MAAO,eAAA,CAEb,EACaC,EAAyB,CAACF,EAAiCG,IAAuB,CAC7F,OAAQH,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,wBAA0BE,EACnC,KAAKF,EAAAA,sBAAsB,QAC3B,QACE,MAAO,YAAcE,CAAA,CAE3B,EAEaC,EAAsBJ,GAAoC,CACrE,OAAQA,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,UACT,KAAKA,EAAAA,sBAAsB,QAC3B,QACE,MAAO,UAAA,CAEb,EAEMI,EAA8D,CAAC,CACnE,QAAAC,EACA,SAAAC,EAAW,CAAA,CACb,IAAM,CACJ,KAAM,CAAE,WAAAC,EAAY,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,GAAiBJ,EAE1DK,EAAQC,EAAAA,QACZ,IACE,CACEJ,GAAkBD,EAClBT,EAAmBY,GAAc,UAAYV,EAAAA,sBAAsB,OAAO,CAAA,EAC1E,KAAK,GAAG,EACZ,CAACQ,EAAgBD,EAAYG,GAAc,SAAUD,CAAS,CAAA,EAG1D,CAAE,aAAAI,EAAc,iBAAAC,CAAA,EAAqBC,EAAAA,gBAAgBL,GAAc,QAAQ,EAEjF,GAAKA,GAAc,SAEnB,OACEM,wBAACC,EAAAA,cAAA,CAAqB,UAAWC,EAAAA,KAAKR,EAAa,QAAQ,EACzD,SAAAS,EAAAA,kBAAAA,KAACC,EAAAA,KAAA,CACE,SAAA,CAAAb,GAAcS,EAAAA,kBAAAA,IAACK,YAAA,CAAU,KAAMd,EAAY,KAAM,GAAI,0BACrDe,EAAAA,KAAA,CAAK,KAAMnB,EAAmBO,EAAa,QAAQ,EAAG,EACtDG,GAAgB,CAACR,GAChBW,EAAAA,kBAAAA,IAACO,EAAAA,YAAA,CACC,MAAOV,EAAa,KACpB,MAAOA,EAAa,MACpB,UAAS,GACT,eACEC,EAAmB,gDAAkD,OAEvE,qBAAoB,CAAA,CAAA,EAGxBE,EAAAA,kBAAAA,IAACQ,EAAAA,KAAA,CAAa,SAAAb,CAAA,CAAM,EACpBK,EAAAA,kBAAAA,IAACS,EAAAA,QAAA,CAAa,KAAMhB,EAAW,aAAY,EAAA,CAAC,CAAA,CAAA,CAC9C,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"ActivityVersionReview.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport * as Styled from './ActivityVersionReview.styled'\nimport ActivityDate from '../ActivityDate'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { VersionReviewFeedback } from '../CommentInput/types'\nimport { clsx } from 'clsx'\nimport { UserImage } from '@shared/components'\nimport { CategoryTag } from '../ActivityCategorySelect'\nimport { useCategoryData } from '../../hooks/useCategoryData'\n\ninterface ActivityVersionReviewProps {\n entityType?: string\n isGuest?: boolean\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n activityData: {\n feedback: VersionReviewFeedback\n category: string\n }\n [key: string]: any\n }\n}\n\nexport const getVerbForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'requested changes'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'approved this'\n }\n}\nexport const getVerbForFeedbackBody = (feedback: VersionReviewFeedback, entityType: string) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'Requested changes on ' + entityType\n case VersionReviewFeedback.APPROVE:\n default:\n return 'Approved ' + entityType\n }\n}\n\nexport const getIconForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'refresh'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'task_alt'\n }\n}\n\nconst ActivityVersionReview: React.FC<ActivityVersionReviewProps> = ({\n isGuest,\n activity = {},\n}) => {\n const { authorName, authorFullName, createdAt, activityData } = activity\n\n const label = useMemo(\n () =>\n [\n authorFullName || authorName,\n getVerbForFeedback(activityData?.feedback ?? VersionReviewFeedback.APPROVE),\n ].join(' '),\n [authorFullName, authorName, activityData?.feedback, createdAt],\n )\n\n const { categoryData, categoryNotFound } = useCategoryData(activityData?.category)\n\n if (!activityData?.feedback) return\n\n return (\n <Styled.VersionReview className={clsx(activityData.feedback)}>\n <Styled.Body>\n {authorName && <UserImage name={authorName} size={22} />}\n <Icon icon={getIconForFeedback(activityData.feedback)} />\n {categoryData && !isGuest && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n isCompact\n data-tooltip={\n categoryNotFound ? 'Category not found. It may have been deleted.' : undefined\n }\n data-tooltip-delay={0}\n />\n )}\n <Styled.Text>{label}</Styled.Text>\n <ActivityDate date={createdAt} exactTooltip />\n </Styled.Body>\n </Styled.VersionReview>\n )\n}\n\nexport default ActivityVersionReview\n"],"names":["getVerbForFeedback","feedback","VersionReviewFeedback","getVerbForFeedbackBody","entityType","getIconForFeedback","ActivityVersionReview","isGuest","activity","authorName","authorFullName","createdAt","activityData","label","useMemo","categoryData","categoryNotFound","useCategoryData","jsx","Styled.VersionReview","clsx","jsxs","Styled.Body","UserImage","Icon","CategoryTag","Styled.Text","ActivityDate"],"mappings":"mnjBAyBO,MAAMA,EAAsBC,GAAoC,CACrE,OAAQA,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,oBACT,KAAKA,EAAAA,sBAAsB,QAC3B,QACE,MAAO,eAAA,CAEb,EACaC,EAAyB,CAACF,EAAiCG,IAAuB,CAC7F,OAAQH,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,wBAA0BE,EACnC,KAAKF,EAAAA,sBAAsB,QAC3B,QACE,MAAO,YAAcE,CAAA,CAE3B,EAEaC,EAAsBJ,GAAoC,CACrE,OAAQA,EAAA,CACN,KAAKC,EAAAA,sBAAsB,gBACzB,MAAO,UACT,KAAKA,EAAAA,sBAAsB,QAC3B,QACE,MAAO,UAAA,CAEb,EAEMI,EAA8D,CAAC,CACnE,QAAAC,EACA,SAAAC,EAAW,CAAA,CACb,IAAM,CACJ,KAAM,CAAE,WAAAC,EAAY,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,GAAiBJ,EAE1DK,EAAQC,EAAAA,QACZ,IACE,CACEJ,GAAkBD,EAClBT,EAAmBY,GAAc,UAAYV,EAAAA,sBAAsB,OAAO,CAAA,EAC1E,KAAK,GAAG,EACZ,CAACQ,EAAgBD,EAAYG,GAAc,SAAUD,CAAS,CAAA,EAG1D,CAAE,aAAAI,EAAc,iBAAAC,CAAA,EAAqBC,EAAAA,gBAAgBL,GAAc,QAAQ,EAEjF,GAAKA,GAAc,SAEnB,OACEM,wBAACC,EAAAA,cAAA,CAAqB,UAAWC,EAAAA,KAAKR,EAAa,QAAQ,EACzD,SAAAS,EAAAA,kBAAAA,KAACC,EAAAA,KAAA,CACE,SAAA,CAAAb,GAAcS,EAAAA,kBAAAA,IAACK,YAAA,CAAU,KAAMd,EAAY,KAAM,GAAI,0BACrDe,EAAAA,KAAA,CAAK,KAAMnB,EAAmBO,EAAa,QAAQ,EAAG,EACtDG,GAAgB,CAACR,GAChBW,EAAAA,kBAAAA,IAACO,EAAAA,YAAA,CACC,MAAOV,EAAa,KACpB,MAAOA,EAAa,MACpB,UAAS,GACT,eACEC,EAAmB,gDAAkD,OAEvE,qBAAoB,CAAA,CAAA,EAGxBE,EAAAA,kBAAAA,IAACQ,EAAAA,KAAA,CAAa,SAAAb,CAAA,CAAM,EACpBK,EAAAA,kBAAAA,IAACS,EAAAA,QAAA,CAAa,KAAMhB,EAAW,aAAY,EAAA,CAAC,CAAA,CAAA,CAC9C,CAAA,CACF,CAEJ"}
@@ -237,6 +237,7 @@ import "../../../Slicer/context/SlicerContext.es.js";
237
237
  import "../../../Slicer/hooks/useTableDataBySlice.es.js";
238
238
  import "../../../DetailsPanel/DetailsPanel.styled.es.js";
239
239
  import "../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
240
+ import "../../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
240
241
  import "../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
241
242
  import "../../../../components/PlayableIcon/PlayableIcon.es.js";
242
243
  import "../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -299,7 +300,7 @@ const v = (t) => {
299
300
  default:
300
301
  return "approved this";
301
302
  }
302
- }, Km = (t, m) => {
303
+ }, Lm = (t, m) => {
303
304
  switch (t) {
304
305
  case r.REQUEST_CHANGES:
305
306
  return "Requested changes on " + m;
@@ -315,7 +316,7 @@ const v = (t) => {
315
316
  default:
316
317
  return "task_alt";
317
318
  }
318
- }, Lm = ({
319
+ }, Wm = ({
319
320
  isGuest: t,
320
321
  activity: m = {}
321
322
  }) => {
@@ -345,9 +346,9 @@ const v = (t) => {
345
346
  ] }) });
346
347
  };
347
348
  export {
348
- Lm as default,
349
+ Wm as default,
349
350
  y as getIconForFeedback,
350
351
  v as getVerbForFeedback,
351
- Km as getVerbForFeedbackBody
352
+ Lm as getVerbForFeedbackBody
352
353
  };
353
354
  //# sourceMappingURL=ActivityVersionReview.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersionReview.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport * as Styled from './ActivityVersionReview.styled'\nimport ActivityDate from '../ActivityDate'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { VersionReviewFeedback } from '../CommentInput/types'\nimport { clsx } from 'clsx'\nimport { UserImage } from '@shared/components'\nimport { CategoryTag } from '../ActivityCategorySelect'\nimport { useCategoryData } from '../../hooks/useCategoryData'\n\ninterface ActivityVersionReviewProps {\n entityType?: string\n isGuest?: boolean\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n activityData: {\n feedback: VersionReviewFeedback\n category: string\n }\n [key: string]: any\n }\n}\n\nexport const getVerbForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'requested changes'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'approved this'\n }\n}\nexport const getVerbForFeedbackBody = (feedback: VersionReviewFeedback, entityType: string) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'Requested changes on ' + entityType\n case VersionReviewFeedback.APPROVE:\n default:\n return 'Approved ' + entityType\n }\n}\n\nexport const getIconForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'refresh'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'task_alt'\n }\n}\n\nconst ActivityVersionReview: React.FC<ActivityVersionReviewProps> = ({\n isGuest,\n activity = {},\n}) => {\n const { authorName, authorFullName, createdAt, activityData } = activity\n\n const label = useMemo(\n () =>\n [\n authorFullName || authorName,\n getVerbForFeedback(activityData?.feedback ?? VersionReviewFeedback.APPROVE),\n ].join(' '),\n [authorFullName, authorName, activityData?.feedback, createdAt],\n )\n\n const { categoryData, categoryNotFound } = useCategoryData(activityData?.category)\n\n if (!activityData?.feedback) return\n\n return (\n <Styled.VersionReview className={clsx(activityData.feedback)}>\n <Styled.Body>\n {authorName && <UserImage name={authorName} size={22} />}\n <Icon icon={getIconForFeedback(activityData.feedback)} />\n {categoryData && !isGuest && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n isCompact\n data-tooltip={\n categoryNotFound ? 'Category not found. It may have been deleted.' : undefined\n }\n data-tooltip-delay={0}\n />\n )}\n <Styled.Text>{label}</Styled.Text>\n <ActivityDate date={createdAt} exactTooltip />\n </Styled.Body>\n </Styled.VersionReview>\n )\n}\n\nexport default ActivityVersionReview\n"],"names":["getVerbForFeedback","feedback","VersionReviewFeedback","getVerbForFeedbackBody","entityType","getIconForFeedback","ActivityVersionReview","isGuest","activity","authorName","authorFullName","createdAt","activityData","label","useMemo","categoryData","categoryNotFound","useCategoryData","jsx","Styled.VersionReview","clsx","jsxs","Styled.Body","UserImage","Icon","CategoryTag","Styled.Text","ActivityDate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,IAAqB,CAACC,MAAoC;AACrE,UAAQA,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO;AAAA,IACT,KAAKA,EAAsB;AAAA,IAC3B;AACE,aAAO;AAAA,EAAA;AAEb,GACaC,KAAyB,CAACF,GAAiCG,MAAuB;AAC7F,UAAQH,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO,0BAA0BE;AAAA,IACnC,KAAKF,EAAsB;AAAA,IAC3B;AACE,aAAO,cAAcE;AAAA,EAAA;AAE3B,GAEaC,IAAqB,CAACJ,MAAoC;AACrE,UAAQA,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO;AAAA,IACT,KAAKA,EAAsB;AAAA,IAC3B;AACE,aAAO;AAAA,EAAA;AAEb,GAEMI,KAA8D,CAAC;AAAA,EACnE,SAAAC;AAAA,EACA,UAAAC,IAAW,CAAA;AACb,MAAM;AACJ,QAAM,EAAE,YAAAC,GAAY,gBAAAC,GAAgB,WAAAC,GAAW,cAAAC,MAAiBJ,GAE1DK,IAAQC;AAAA,IACZ,MACE;AAAA,MACEJ,KAAkBD;AAAA,MAClBT,EAAmBY,GAAc,YAAYV,EAAsB,OAAO;AAAA,IAAA,EAC1E,KAAK,GAAG;AAAA,IACZ,CAACQ,GAAgBD,GAAYG,GAAc,UAAUD,CAAS;AAAA,EAAA,GAG1D,EAAE,cAAAI,GAAc,kBAAAC,EAAA,IAAqBC,EAAgBL,GAAc,QAAQ;AAEjF,MAAKA,GAAc;AAEnB,WACEM,gBAAAA,MAACC,GAAA,EAAqB,WAAWC,EAAKR,EAAa,QAAQ,GACzD,UAAAS,gBAAAA,EAAAA,KAACC,GAAA,EACE,UAAA;AAAA,MAAAb,KAAcS,gBAAAA,EAAAA,IAACK,GAAA,EAAU,MAAMd,GAAY,MAAM,IAAI;AAAA,4BACrDe,GAAA,EAAK,MAAMnB,EAAmBO,EAAa,QAAQ,GAAG;AAAA,MACtDG,KAAgB,CAACR,KAChBW,gBAAAA,EAAAA;AAAAA,QAACO;AAAA,QAAA;AAAA,UACC,OAAOV,EAAa;AAAA,UACpB,OAAOA,EAAa;AAAA,UACpB,WAAS;AAAA,UACT,gBACEC,IAAmB,kDAAkD;AAAA,UAEvE,sBAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,MAGxBE,gBAAAA,EAAAA,IAACQ,GAAA,EAAa,UAAAb,EAAA,CAAM;AAAA,MACpBK,gBAAAA,EAAAA,IAACS,GAAA,EAAa,MAAMhB,GAAW,cAAY,GAAA,CAAC;AAAA,IAAA,EAAA,CAC9C,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"ActivityVersionReview.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport * as Styled from './ActivityVersionReview.styled'\nimport ActivityDate from '../ActivityDate'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { VersionReviewFeedback } from '../CommentInput/types'\nimport { clsx } from 'clsx'\nimport { UserImage } from '@shared/components'\nimport { CategoryTag } from '../ActivityCategorySelect'\nimport { useCategoryData } from '../../hooks/useCategoryData'\n\ninterface ActivityVersionReviewProps {\n entityType?: string\n isGuest?: boolean\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n activityData: {\n feedback: VersionReviewFeedback\n category: string\n }\n [key: string]: any\n }\n}\n\nexport const getVerbForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'requested changes'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'approved this'\n }\n}\nexport const getVerbForFeedbackBody = (feedback: VersionReviewFeedback, entityType: string) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'Requested changes on ' + entityType\n case VersionReviewFeedback.APPROVE:\n default:\n return 'Approved ' + entityType\n }\n}\n\nexport const getIconForFeedback = (feedback: VersionReviewFeedback) => {\n switch (feedback) {\n case VersionReviewFeedback.REQUEST_CHANGES:\n return 'refresh'\n case VersionReviewFeedback.APPROVE:\n default:\n return 'task_alt'\n }\n}\n\nconst ActivityVersionReview: React.FC<ActivityVersionReviewProps> = ({\n isGuest,\n activity = {},\n}) => {\n const { authorName, authorFullName, createdAt, activityData } = activity\n\n const label = useMemo(\n () =>\n [\n authorFullName || authorName,\n getVerbForFeedback(activityData?.feedback ?? VersionReviewFeedback.APPROVE),\n ].join(' '),\n [authorFullName, authorName, activityData?.feedback, createdAt],\n )\n\n const { categoryData, categoryNotFound } = useCategoryData(activityData?.category)\n\n if (!activityData?.feedback) return\n\n return (\n <Styled.VersionReview className={clsx(activityData.feedback)}>\n <Styled.Body>\n {authorName && <UserImage name={authorName} size={22} />}\n <Icon icon={getIconForFeedback(activityData.feedback)} />\n {categoryData && !isGuest && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n isCompact\n data-tooltip={\n categoryNotFound ? 'Category not found. It may have been deleted.' : undefined\n }\n data-tooltip-delay={0}\n />\n )}\n <Styled.Text>{label}</Styled.Text>\n <ActivityDate date={createdAt} exactTooltip />\n </Styled.Body>\n </Styled.VersionReview>\n )\n}\n\nexport default ActivityVersionReview\n"],"names":["getVerbForFeedback","feedback","VersionReviewFeedback","getVerbForFeedbackBody","entityType","getIconForFeedback","ActivityVersionReview","isGuest","activity","authorName","authorFullName","createdAt","activityData","label","useMemo","categoryData","categoryNotFound","useCategoryData","jsx","Styled.VersionReview","clsx","jsxs","Styled.Body","UserImage","Icon","CategoryTag","Styled.Text","ActivityDate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,IAAqB,CAACC,MAAoC;AACrE,UAAQA,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO;AAAA,IACT,KAAKA,EAAsB;AAAA,IAC3B;AACE,aAAO;AAAA,EAAA;AAEb,GACaC,KAAyB,CAACF,GAAiCG,MAAuB;AAC7F,UAAQH,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO,0BAA0BE;AAAA,IACnC,KAAKF,EAAsB;AAAA,IAC3B;AACE,aAAO,cAAcE;AAAA,EAAA;AAE3B,GAEaC,IAAqB,CAACJ,MAAoC;AACrE,UAAQA,GAAA;AAAA,IACN,KAAKC,EAAsB;AACzB,aAAO;AAAA,IACT,KAAKA,EAAsB;AAAA,IAC3B;AACE,aAAO;AAAA,EAAA;AAEb,GAEMI,KAA8D,CAAC;AAAA,EACnE,SAAAC;AAAA,EACA,UAAAC,IAAW,CAAA;AACb,MAAM;AACJ,QAAM,EAAE,YAAAC,GAAY,gBAAAC,GAAgB,WAAAC,GAAW,cAAAC,MAAiBJ,GAE1DK,IAAQC;AAAA,IACZ,MACE;AAAA,MACEJ,KAAkBD;AAAA,MAClBT,EAAmBY,GAAc,YAAYV,EAAsB,OAAO;AAAA,IAAA,EAC1E,KAAK,GAAG;AAAA,IACZ,CAACQ,GAAgBD,GAAYG,GAAc,UAAUD,CAAS;AAAA,EAAA,GAG1D,EAAE,cAAAI,GAAc,kBAAAC,EAAA,IAAqBC,EAAgBL,GAAc,QAAQ;AAEjF,MAAKA,GAAc;AAEnB,WACEM,gBAAAA,MAACC,GAAA,EAAqB,WAAWC,EAAKR,EAAa,QAAQ,GACzD,UAAAS,gBAAAA,EAAAA,KAACC,GAAA,EACE,UAAA;AAAA,MAAAb,KAAcS,gBAAAA,EAAAA,IAACK,GAAA,EAAU,MAAMd,GAAY,MAAM,IAAI;AAAA,4BACrDe,GAAA,EAAK,MAAMnB,EAAmBO,EAAa,QAAQ,GAAG;AAAA,MACtDG,KAAgB,CAACR,KAChBW,gBAAAA,EAAAA;AAAAA,QAACO;AAAA,QAAA;AAAA,UACC,OAAOV,EAAa;AAAA,UACpB,OAAOA,EAAa;AAAA,UACpB,WAAS;AAAA,UACT,gBACEC,IAAmB,kDAAkD;AAAA,UAEvE,sBAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,MAGxBE,gBAAAA,EAAAA,IAACQ,GAAA,EAAa,UAAAb,EAAA,CAAM;AAAA,MACpBK,gBAAAA,EAAAA,IAACS,GAAA,EAAa,MAAMhB,GAAW,cAAY,GAAA,CAAC;AAAA,IAAA,EAAA,CAC9C,EAAA,CACF;AAEJ;"}
@@ -1,3 +1,3 @@
1
- "use strict";const t=require("../../../../../../_virtual/jsx-runtime.cjs.js"),u=require("react"),N=require("clsx"),Pe=require("react-toastify"),Ae=require("react-quill-ayon"),w=require("@ynput/ayon-react-components"),dr=require("../CommentMentionSelect/CommentMentionSelect.cjs.js"),mr=require("./InputMarkdownConvert.cjs.js"),pr=require("../FilesGrid/FilesGrid.cjs.js"),d=require("./CommentInput.styled.cjs.js"),xr=require("../../../../components/QuillListStyles/QuillListStyles.cjs.js"),hr=require("../../mentionHelpers/getMentionOptions.cjs.js"),fr=require("../../mentionHelpers/getMentionUsers.cjs.js"),gr=require("../../mentionHelpers/getMentionTasks.cjs.js"),yr=require("../../mentionHelpers/getMentionVersions.cjs.js"),jr=require("./quillToMarkdown.cjs.js"),X=require("./helpers.cjs.js"),De=require("./modules/index.cjs.js"),Cr=require("./hooks/useInitialValue.cjs.js"),vr=require("./hooks/useSetCursorEnd.cjs.js"),Rr=require("./hooks/useMentionLink.cjs.js"),Sr=require("./hooks/useAnnotationsSync.cjs.js"),wr=require("./hooks/useBlendedCategoryColor.cjs.js"),Er=require("./hooks/useAnnotationsUpload.cjs.js"),kr=require("../../context/FeedContext.cjs.js");require("react-dom");require("../Tooltips/UserTooltipItem.cjs.js");require("../Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../../api/base/client.cjs.js");require("../../../../api/generated/graphql.cjs.js");require("../../../../api/generated/graphqlLinks.cjs.js");require("../../../../api/generated/access.cjs.js");require("../../../../api/generated/actions.cjs.js");require("../../../../api/generated/activityFeed.cjs.js");require("../../../../api/generated/addons.cjs.js");require("../../../../api/generated/anatomy.cjs.js");require("../../../../api/generated/attributes.cjs.js");require("../../../../api/generated/authentication.cjs.js");require("../../../../api/generated/bundles.cjs.js");require("../../../../api/generated/configuration.cjs.js");require("../../../../api/generated/dataImport.cjs.js");require("../../../../api/generated/desktop.cjs.js");require("../../../../api/generated/entityLists.cjs.js");require("../../../../api/generated/events.cjs.js");require("../../../../api/generated/files.cjs.js");require("../../../../api/generated/folders.cjs.js");require("../../../../api/generated/inbox.cjs.js");require("../../../../api/generated/links.cjs.js");require("../../../../api/generated/market.cjs.js");require("../../../../api/generated/onboarding.cjs.js");require("../../../../api/generated/operations.cjs.js");require("../../../../api/generated/products.cjs.js");require("../../../../api/generated/projectDashboard.cjs.js");require("../../../../api/generated/projects.cjs.js");require("../../../../api/generated/projectFolders.cjs.js");require("../../../../api/generated/reviewables.cjs.js");require("../../../../api/generated/services.cjs.js");require("../../../../api/generated/system.cjs.js");require("../../../../api/generated/tasks.cjs.js");require("../../../../api/generated/teams.cjs.js");require("../../../../api/generated/thumbnails.cjs.js");require("../../../../api/generated/uRIs.cjs.js");require("../../../../api/generated/users.cjs.js");require("../../../../api/generated/versions.cjs.js");require("../../../../api/generated/workfiles.cjs.js");require("../../../../api/generated/ynputCloud.cjs.js");require("../../../../api/generated/grouping.cjs.js");require("../../../../api/generated/views.cjs.js");require("../../../../api/queries/actions/getActions.cjs.js");require("../../../../api/queries/activities/getActivities.cjs.js");require("../../../../api/queries/activities/updateActivities.cjs.js");require("../../../../api/queries/activities/updateReaction.cjs.js");require("../../../../api/queries/activities/getMentions.cjs.js");require("../../../../api/queries/activities/getCategories.cjs.js");require("../../../../api/queries/addons/getAddons.cjs.js");require("../../../../api/queries/addons/updateAddons.cjs.js");require("../../../../api/queries/attributes/getAttributes.cjs.js");require("../../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../../api/queries/cloud/cloud.cjs.js");require("../../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../../api/queries/config/getConfig.cjs.js");require("../../../../api/queries/config/updateConfig.cjs.js");require("../../../../api/queries/entities/getEntity.cjs.js");require("../../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../../api/queries/overview/getOverview.cjs.js");require("../../../../api/queries/overview/updateOverview.cjs.js");require("../../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../../api/queries/links/getEntityLinks.cjs.js");require("../../../../api/queries/entities/updateEntity.cjs.js");require("../../../../api/queries/entityLists/getLists.cjs.js");require("../../../../api/queries/entityLists/updateLists.cjs.js");require("../../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listFolders.cjs.js");require("../../../../api/queries/folders/getFolders.cjs.js");require("../../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../../api/queries/grouping/getGrouping.cjs.js");require("../../../../api/queries/links/updateLinks.cjs.js");require("../../../../api/queries/links/getLinks.cjs.js");require("../../../../api/queries/permissions/getPermissions.cjs.js");require("../../../../api/queries/products/createProduct.cjs.js");require("../../../../api/queries/products/getFolderProducts.cjs.js");require("../../../../api/queries/project/getProject.cjs.js");require("../../../../api/queries/project/updateProject.cjs.js");require("../../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../../api/queries/review/getReview.cjs.js");require("../../../../api/queries/review/updateReview.cjs.js");require("../../../../api/queries/share/share.cjs.js");require("../../../../api/queries/system/getSystem.cjs.js");require("../../../../api/queries/tasks/getTasks.cjs.js");require("../../../../api/queries/tasks/updateTasks.cjs.js");require("../../../../api/queries/teams/getTeams.cjs.js");require("../../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../../api/queries/users/getUsers.cjs.js");require("../../../../api/queries/users/updateUsers.cjs.js");require("../../../../api/queries/users/guests.cjs.js");require("../../../../api/queries/versions/updateVersions.cjs.js");require("../../../../api/queries/views/getViews.cjs.js");require("../../../../api/queries/views/updateViews.cjs.js");require("../../../../api/queries/watchers/getWatchers.cjs.js");require("../../../../api/queries/uris/getUris.cjs.js");require("../Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Tr=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../../../_virtual/runtime.cjs.js");require("../../../../../../_virtual/semver.cjs.js");require("lodash");require("react-redux");require("custom-protocol-check");require("../../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../../../util/pubsub.cjs.js");require("../../../../context/PowerpackContextInstance.cjs.js");require("../../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");const Fr=require("../../../../context/ProjectContext.cjs.js");require("../../../../context/ProjectFoldersContext.cjs.js");require("../../../../context/UriContext.cjs.js");require("../FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../ReactionContainer/Reactions.styled.cjs.js");require("../ActivityComment/ActivityComment.styled.cjs.js");require("../ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../../components/AccessUser/AccessUser.cjs.js");require("../../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../../components/Badge/Badge.cjs.js");require("../../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../../_virtual/index.cjs.js");require("../../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("../../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../ProjectTreeTable/components/TableFooterRow.cjs.js");require("../../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../Slicer/components/Slicer.cjs.js");require("../../../Slicer/context/SlicerContext.cjs.js");require("../../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../Actions/Actions.styled.cjs.js");require("../../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../Actions/ActionIcon.cjs.js");require("../../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../Views/context/ViewsContextInstance.cjs.js");require("../../../Views/Views.styled.cjs.js");require("../../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../ListTable/ListTableRow.cjs.js");require("../../../ListTable/ListTable.styled.cjs.js");require("../../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");const E=require("../../../../components/ReviewablesList/useReviewablesUpload.cjs.js");require("../../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../../components/Feedback/SupportBubble.cjs.js");require("../../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../../components/Powerpack/CTAButton.cjs.js");require("../../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../../components/StyledLink/StyledLink.cjs.js");require("../../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../../components/Watchers/Watchers.cjs.js");require("../../../../components/Menu/Menu.styled.cjs.js");require("../../../../components/Menu/MenuItem.cjs.js");require("../../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../../components/ColumnHeaderMenuUI.cjs.js");require("../ActivityReference/ActivityReference.styled.cjs.js");require("../ActivityStatus/ActivityStatus.cjs.js");require("../ActivityHeader/ActivityHeader.styled.cjs.js");require("../ActivityDate.cjs.js");require("../ActivityCategorySelect/CategoryTag.cjs.js");require("../ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../ActivityVersions/ActivityVersions.styled.cjs.js");require("../ActivityGroup/ActivityGroup.styled.cjs.js");require("../ActivityVersionReview/ActivityVersionReview.styled.cjs.js");const k=require("./types.cjs.js"),Ie=require("../ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed.styled.cjs.js");require("../FeedSearchFilter.cjs.js");const Mr=require("./VersionReviewPill.cjs.js");var be=Ae.Quill.import("delta");const Pr="<p><br></p>",L=["@","@@","@@@"],Dr=({initValue:Z,initFiles:Be=[],initCategory:Ve=null,data:ee={},versionReview:re,lastOwnVersionReview:te,onSubmit:ie,onReview:H,isEditing:c,disabled:T,isLoading:ne,isOpen:l,onOpen:oe,onClose:se})=>{const{projectName:R,entities:_,projectInfo:Ue,scope:Ir,feedFilter:Ne,mentionSuggestionsData:Le,categories:ue,isGuest:h}=kr.useFeedContext(),{hasLicense:He,onPowerFeature:_e,user:Ke}=Tr.useDetailsPanelContext(),Qe=Ke?.data?.isAdmin,$e=Fr.useProjectContext(),{users:ae,teams:ce,versions:le,tasks:qe}=Le||{},[de,Ge]=u.useState(88),[F,b]=u.useState(""),[C,A]=u.useState(Be),[K,B]=u.useState([]),[me,V]=u.useState(!1),[Oe,pe]=u.useState(!1),{annotations:M,removeAnnotation:ze,goToAnnotation:We}=Sr.default({entityId:_[0]?.id,filesUploading:K}),[s,Q]=u.useState(null),[$,G]=u.useState(0),[P,xe]=u.useState(""),D=()=>{Q(null),G(0),xe("")},[U,Ye]=u.useState(Ve),he=ue.filter(e=>e.accessLevel>=20),fe=ue.find(e=>e.name===U),ge=wr.useBlendedCategoryColor(fe?.color),m=u.useRef(null),Je=u.useRef(null),ye=u.useRef(null);Cr({markdownRef:ye,initValue:Z,setEditorValue:b,setInitHeight:Ge,isOpen:l,filter:Ne}),vr({initHeight:de,editorRef:m,isEditing:c}),Rr({projectName:R}),u.useEffect(()=>{if(l){if(m.current?.getEditor()?.enable(),M.length>0&&C.length===0)return;m.current?.focus()}},[l,m]),L.sort((e,r)=>r.length-e.length);const je=P+(s?.search||""),Ce=u.useMemo(()=>hr.default(s?.type,{"@":()=>fr(ae,ce),"@@":()=>yr(le,$e),"@@@":()=>gr(qe,Ue.taskTypes)},je||void 0),[qe,le,ae,ce,s?.type,je]),I=Ce.slice(0,5),[O,ve]=u.useState();u.useEffect(()=>{O&&(ve(null),m.current.getEditor().setSelection(O))},[O]);const Re=e=>{const r=m.current.getEditor(),i=s.type,o=i+(s.search||""),n=i+e.label,p=k.mentionTypeOptions[i],f=`${e.type||p?.id}:${e.id}`,a=(r.getSelection(!0)?.index||0)-o.length;r.deleteText(a,o.length),r.insertText(a,n,"mention",f);const q=a+n.length;r.updateContents(new be().retain(q).insert(" ")),r.updateContents(new be().retain(q+1).delete(1)),ve(q+1),D()},Xe=e=>{Re(e)},Ze=(e,r,i,o)=>{let n=r.ops[0]&&r.ops[0].insert||r.ops[1]&&r.ops[1].insert;const p=n===`
2
- `||n===" ",y=Ce[$];if(s&&p&&y&&!h){r.ops[0]&&r.ops[0].retain,Re(y);return}b(e);const f=r.ops.length===2&&!!r.ops[1].delete;if(!n&&f&&(n=o.getText(r.ops[0].retain-1,1)),L.includes(n)){const x=r.ops.findIndex(j=>"insert"in j||"delete"in j),a=n;let q=x===0?0:r.ops[x-1].retain;f&&(q=q-1);let v=null;for(const j of L){let S=!0;if(j.endsWith(a))for(let g=j.length-1;g>=0;g--){if(g===0)continue;const lr=j[g-1],qr=q-(j.length-g);if(o.getText(qr,1)!==lr){S=!1;break}}else S=!1;if(S){v=j;break}}v?Q({type:v,retain:q}):D()}else if(s){const x=r.ops[0].retain;if(n===" "||!x){D();return}let a=x-s.retain;f||a++;const q=o.getText(s.retain,a),v=q.replace(s.type.slice(-1),"");q.includes(" ")?D():Q({...s,search:v?.toLowerCase()})}else if(f){const x=m.current.getEditor(),a=x.getSelection(!1);if(x.getFormat(a?.index,a?.length).mention){const[v]=x.getLine(a.index-1)||[],S=(v?.cache?.delta?.ops||[]).reverse().find(g=>g.attributes?.mention);if(S){const g=S.insert.length;x.deleteText(a.index-g,g)}}}},er=e=>{const r=m.current.getEditor();let i=r.getSelection(!0)?.index||0;const o=r.getText(i-1,1);o!==" "&&o&&(r.insertText(i," "),i++),X.typeWithDelay(r,i,e)},z=e=>{if(s){const{type:r,retain:i,search:o=""}=s,n=m.current.getEditor(),p=r.length+o.length,y=i-r.length+1;n.deleteText(y,p)}er(e)},rr=()=>{l||T||oe&&oe()},Se=()=>{(m.current.getEditor().getText().length<2||c)&&b(""),se&&se()},W=({file:e,data:r})=>{const i=E.parseFilename(e.name),o={id:r.id,name:i,mime:e.type,size:e.size,order:C.length};return A(n=>[...n,o]),B(n=>n.filter(p=>E.parseFilename(p.name)!==i)),o},tr=(e,r,i)=>{i?ze?.(e):(A(o=>o.filter(n=>n.id!==e)),B(o=>o.filter(n=>E.parseFilename(n.name)!==E.parseFilename(r))))},we=(e,r)=>{const i=Math.round(e.loaded*100/e.total);if(i!==100){const o=E.parseFilename(r.name),n={name:o,progress:i,type:r.type,order:C.length+K.length};B(p=>[...p.filter(f=>E.parseFilename(f.name)!==o),n])}},ir=e=>{V(!1),X.handleFileDrop(e,R,we,W)},nr=e=>{e.preventDefault(),e.stopPropagation(),V(!0)},or=Er({projectName:R,onSuccess:W}),Y=async()=>{try{pe(!0);let e=[],r;if(M.length){const{files:y,metadata:f}=await or(M);e=y;const{annotations:J=[]}=ee||{};r=[...J,...f]}const[i]=jr.convertToMarkdown(F),o=X.parseImages(i),n=[...C,...e],p={...ee,annotations:r,category:h?null:U};if((o||n.length)&&ie)try{await ie(o,n,p),b(""),A([])}catch{return}}catch(e){console.error(e),Pe.toast.error("Something went wrong")}finally{pe(!1)}},sr=e=>{if(s){if(e.key==="Escape"){D();return}s&&e.key;const r=e.key==="ArrowUp"?-1:e.key==="ArrowDown"?1:0;if(r){e.preventDefault();let i=$+r;i<0&&(i=I.length-1),i>=I.length&&(i=0),G(i)}e.key}e.key==="Enter"&&(e.ctrlKey||e.metaKey)&&Y(),e.key==="Escape"&&Se()};let Ee=l?de+41:44;c&&(Ee=void 0);const ur=u.useMemo(()=>De.getModules({imageUploader:{projectName:R,onUpload:W,onUploadProgress:we},mentionTypeOptions:k.mentionTypeOptions}),[R,A,B]),ke=[...M,...C||[],...K].sort((e,r)=>e.order-r.order),ar=ke.length>3;let Te=null;_.length&&_[0].entityType==="folder"&&s?.type==="@@"&&(Te="Version mentions are disabled for folders");const Fe=e=>T?h?"You do not have permission to comment.":"Commenting is disabled across multiple projects.":h||!e?"Leave a comment":"Comment or mention with @user, @@version, @@@task...",Me=async e=>{if(H)try{(F&&F!==Pr||C.length>0||M.length>0)&&await Y(),H(e)}catch(r){console.error(r),Pe.toast.error("Something went wrong while submitting the review")}},cr=re&&H&&t.jsxRuntimeExports.jsxs(d.VersionReviewButtons,{className:N("version-review-buttons",{guest:h}),children:[t.jsxRuntimeExports.jsx(d.VersionReviewButton,{icon:"check",variant:"tertiary","data-tooltip":"Approve",onClick:()=>Me(k.VersionReviewFeedback.APPROVE),children:t.jsxRuntimeExports.jsx("span",{className:"label",children:"Approve"})}),t.jsxRuntimeExports.jsx(d.VersionReviewButton,{icon:"refresh",variant:"danger","data-tooltip":"Request changes",onClick:()=>Me(k.VersionReviewFeedback.REQUEST_CHANGES),children:t.jsxRuntimeExports.jsx("span",{className:"label",children:"Request changes"})})]});return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(d.AutoHeight,{className:N("comment-container",{isOpen:l,isEditing:c}),onDragOver:nr,onDragLeave:()=>V(!1),onDrop:ir,onClick:()=>V(!1),onKeyDown:e=>e.stopPropagation(),children:[re&&te&&t.jsxRuntimeExports.jsx(Mr.VersionReviewPill,{lastOwnVersionReview:te}),t.jsxRuntimeExports.jsxs(d.Comment,{className:N("block-shortcuts",{isOpen:l,isClosed:!l||T,isEditing:c,isDropping:me,disabled:T,isLoading:ne,isSubmitting:Oe,category:!!U&&!h}),onKeyDown:sr,onClick:rr,$categoryPrimary:fe?.color,$categoryTertiary:ge.primary,$categorySecondary:ge.secondary,children:[t.jsxRuntimeExports.jsx(d.Markdown,{ref:ye,children:t.jsxRuntimeExports.jsx(mr.default,{typeOptions:k.mentionTypeOptions,initValue:Z})}),l&&t.jsxRuntimeExports.jsx(pr,{files:ke,isCompact:ar||c,onRemove:tr,projectName:R,onAnnotationClick:We,style:{borderBottom:"1px solid var(--md-sys-color-outline-variant)",height:"100%"},isEditing:!0,pt:{file:{style:{height:c?70:void 0}}}}),l&&!T?t.jsxRuntimeExports.jsxs(xr.QuillListStyles,{ref:Je,children:[!h&&t.jsxRuntimeExports.jsx(Ie.ActivityCategorySelect,{value:U,categories:he,onChange:e=>Ye(e),isCompact:c,hasPowerpack:He,onPowerFeature:_e,isHidden:Ie.isCategoryHidden(he,{isGuest:h,isAdmin:Qe}),style:{position:c?"relative":"absolute",left:4,top:c?0:4}}),t.jsxRuntimeExports.jsx(Ae,{theme:"snow",style:{minHeight:Ee,maxHeight:300},ref:m,value:F,onChange:Ze,readOnly:!l,placeholder:Fe(!0),modules:ur,formats:De.quillFormats})]}):t.jsxRuntimeExports.jsx(d.Placeholder,{children:Fe()}),t.jsxRuntimeExports.jsxs(d.Footer,{children:[!h&&t.jsxRuntimeExports.jsxs(d.Buttons,{children:[t.jsxRuntimeExports.jsx(w.Button,{icon:"person",variant:"text",onClick:()=>z("@"),"data-tooltip":"Mention user","data-shortcut":"@"}),t.jsxRuntimeExports.jsx(w.Button,{icon:"layers",variant:"text",onClick:()=>z("@@"),"data-tooltip":"Mention version","data-shortcut":"@@"}),t.jsxRuntimeExports.jsx(w.Button,{icon:"check_circle",variant:"text",onClick:()=>z("@@@"),"data-tooltip":"Mention task","data-shortcut":"@@@"})]}),t.jsxRuntimeExports.jsxs(d.SubmitButtons,{children:[c&&t.jsxRuntimeExports.jsx(w.Button,{variant:"text",onClick:Se,children:"Cancel"}),t.jsxRuntimeExports.jsx(w.SaveButton,{label:c?"Save":"Comment",className:"comment",active:!!F||!!C.length,onClick:Y,disabled:ne})]})]}),t.jsxRuntimeExports.jsx(d.Dropzone,{className:N({show:me&&l}),children:t.jsxRuntimeExports.jsx(w.Icon,{icon:"cloud_upload"})})]}),t.jsxRuntimeExports.jsx(dr,{mention:s,options:I,onChange:Xe,onPrefixFilter:e=>{xe(e),G(0)},activePrefix:P?P.replace(":",""):void 0,types:L,config:k.mentionTypeOptions[s?.type],noneFound:!I.length&&(s?.search||P),noneFoundAtAll:!I.length&&!s?.search&&!P,selectedIndex:$,error:Te,isGuest:h}),t.jsxRuntimeExports.jsx(d.VersionReviewButtonsSpacer,{}),cr]})})};module.exports=Dr;
1
+ "use strict";const t=require("../../../../../../_virtual/jsx-runtime.cjs.js"),u=require("react"),N=require("clsx"),Pe=require("react-toastify"),Ae=require("react-quill-ayon"),w=require("@ynput/ayon-react-components"),dr=require("../CommentMentionSelect/CommentMentionSelect.cjs.js"),mr=require("./InputMarkdownConvert.cjs.js"),pr=require("../FilesGrid/FilesGrid.cjs.js"),d=require("./CommentInput.styled.cjs.js"),xr=require("../../../../components/QuillListStyles/QuillListStyles.cjs.js"),hr=require("../../mentionHelpers/getMentionOptions.cjs.js"),fr=require("../../mentionHelpers/getMentionUsers.cjs.js"),gr=require("../../mentionHelpers/getMentionTasks.cjs.js"),yr=require("../../mentionHelpers/getMentionVersions.cjs.js"),jr=require("./quillToMarkdown.cjs.js"),X=require("./helpers.cjs.js"),De=require("./modules/index.cjs.js"),Cr=require("./hooks/useInitialValue.cjs.js"),vr=require("./hooks/useSetCursorEnd.cjs.js"),Rr=require("./hooks/useMentionLink.cjs.js"),Sr=require("./hooks/useAnnotationsSync.cjs.js"),wr=require("./hooks/useBlendedCategoryColor.cjs.js"),Er=require("./hooks/useAnnotationsUpload.cjs.js"),kr=require("../../context/FeedContext.cjs.js");require("react-dom");require("../Tooltips/UserTooltipItem.cjs.js");require("../Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../../api/base/client.cjs.js");require("../../../../api/generated/graphql.cjs.js");require("../../../../api/generated/graphqlLinks.cjs.js");require("../../../../api/generated/access.cjs.js");require("../../../../api/generated/actions.cjs.js");require("../../../../api/generated/activityFeed.cjs.js");require("../../../../api/generated/addons.cjs.js");require("../../../../api/generated/anatomy.cjs.js");require("../../../../api/generated/attributes.cjs.js");require("../../../../api/generated/authentication.cjs.js");require("../../../../api/generated/bundles.cjs.js");require("../../../../api/generated/configuration.cjs.js");require("../../../../api/generated/dataImport.cjs.js");require("../../../../api/generated/desktop.cjs.js");require("../../../../api/generated/entityLists.cjs.js");require("../../../../api/generated/events.cjs.js");require("../../../../api/generated/files.cjs.js");require("../../../../api/generated/folders.cjs.js");require("../../../../api/generated/inbox.cjs.js");require("../../../../api/generated/links.cjs.js");require("../../../../api/generated/market.cjs.js");require("../../../../api/generated/onboarding.cjs.js");require("../../../../api/generated/operations.cjs.js");require("../../../../api/generated/products.cjs.js");require("../../../../api/generated/projectDashboard.cjs.js");require("../../../../api/generated/projects.cjs.js");require("../../../../api/generated/projectFolders.cjs.js");require("../../../../api/generated/reviewables.cjs.js");require("../../../../api/generated/services.cjs.js");require("../../../../api/generated/system.cjs.js");require("../../../../api/generated/tasks.cjs.js");require("../../../../api/generated/teams.cjs.js");require("../../../../api/generated/thumbnails.cjs.js");require("../../../../api/generated/uRIs.cjs.js");require("../../../../api/generated/users.cjs.js");require("../../../../api/generated/versions.cjs.js");require("../../../../api/generated/workfiles.cjs.js");require("../../../../api/generated/ynputCloud.cjs.js");require("../../../../api/generated/grouping.cjs.js");require("../../../../api/generated/views.cjs.js");require("../../../../api/queries/actions/getActions.cjs.js");require("../../../../api/queries/activities/getActivities.cjs.js");require("../../../../api/queries/activities/updateActivities.cjs.js");require("../../../../api/queries/activities/updateReaction.cjs.js");require("../../../../api/queries/activities/getMentions.cjs.js");require("../../../../api/queries/activities/getCategories.cjs.js");require("../../../../api/queries/addons/getAddons.cjs.js");require("../../../../api/queries/addons/updateAddons.cjs.js");require("../../../../api/queries/attributes/getAttributes.cjs.js");require("../../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../../api/queries/cloud/cloud.cjs.js");require("../../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../../api/queries/config/getConfig.cjs.js");require("../../../../api/queries/config/updateConfig.cjs.js");require("../../../../api/queries/entities/getEntity.cjs.js");require("../../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../../api/queries/overview/getOverview.cjs.js");require("../../../../api/queries/overview/updateOverview.cjs.js");require("../../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../../api/queries/links/getEntityLinks.cjs.js");require("../../../../api/queries/entities/updateEntity.cjs.js");require("../../../../api/queries/entityLists/getLists.cjs.js");require("../../../../api/queries/entityLists/updateLists.cjs.js");require("../../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listFolders.cjs.js");require("../../../../api/queries/folders/getFolders.cjs.js");require("../../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../../api/queries/grouping/getGrouping.cjs.js");require("../../../../api/queries/links/updateLinks.cjs.js");require("../../../../api/queries/links/getLinks.cjs.js");require("../../../../api/queries/permissions/getPermissions.cjs.js");require("../../../../api/queries/products/createProduct.cjs.js");require("../../../../api/queries/products/getFolderProducts.cjs.js");require("../../../../api/queries/project/getProject.cjs.js");require("../../../../api/queries/project/updateProject.cjs.js");require("../../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../../api/queries/review/getReview.cjs.js");require("../../../../api/queries/review/updateReview.cjs.js");require("../../../../api/queries/share/share.cjs.js");require("../../../../api/queries/system/getSystem.cjs.js");require("../../../../api/queries/tasks/getTasks.cjs.js");require("../../../../api/queries/tasks/updateTasks.cjs.js");require("../../../../api/queries/teams/getTeams.cjs.js");require("../../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../../api/queries/users/getUsers.cjs.js");require("../../../../api/queries/users/updateUsers.cjs.js");require("../../../../api/queries/users/guests.cjs.js");require("../../../../api/queries/versions/updateVersions.cjs.js");require("../../../../api/queries/views/getViews.cjs.js");require("../../../../api/queries/views/updateViews.cjs.js");require("../../../../api/queries/watchers/getWatchers.cjs.js");require("../../../../api/queries/uris/getUris.cjs.js");require("../Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Tr=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../../../_virtual/runtime.cjs.js");require("../../../../../../_virtual/semver.cjs.js");require("lodash");require("react-redux");require("custom-protocol-check");require("../../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../../../util/pubsub.cjs.js");require("../../../../context/PowerpackContextInstance.cjs.js");require("../../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");const Fr=require("../../../../context/ProjectContext.cjs.js");require("../../../../context/ProjectFoldersContext.cjs.js");require("../../../../context/UriContext.cjs.js");require("../FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../ReactionContainer/Reactions.styled.cjs.js");require("../ActivityComment/ActivityComment.styled.cjs.js");require("../ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../../components/AccessUser/AccessUser.cjs.js");require("../../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../../components/Badge/Badge.cjs.js");require("../../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../../_virtual/index.cjs.js");require("../../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("../../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../ProjectTreeTable/components/TableFooterRow.cjs.js");require("../../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../Slicer/components/Slicer.cjs.js");require("../../../Slicer/context/SlicerContext.cjs.js");require("../../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../Actions/Actions.styled.cjs.js");require("../../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../Actions/ActionIcon.cjs.js");require("../../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../Views/context/ViewsContextInstance.cjs.js");require("../../../Views/Views.styled.cjs.js");require("../../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../ListTable/ListTableRow.cjs.js");require("../../../ListTable/ListTable.styled.cjs.js");require("../../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");const E=require("../../../../components/ReviewablesList/useReviewablesUpload.cjs.js");require("../../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../../components/Feedback/SupportBubble.cjs.js");require("../../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../../components/Powerpack/CTAButton.cjs.js");require("../../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../../components/StyledLink/StyledLink.cjs.js");require("../../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../../components/Watchers/Watchers.cjs.js");require("../../../../components/Menu/Menu.styled.cjs.js");require("../../../../components/Menu/MenuItem.cjs.js");require("../../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../../components/ColumnHeaderMenuUI.cjs.js");require("../ActivityReference/ActivityReference.styled.cjs.js");require("../ActivityStatus/ActivityStatus.cjs.js");require("../ActivityHeader/ActivityHeader.styled.cjs.js");require("../ActivityDate.cjs.js");require("../ActivityCategorySelect/CategoryTag.cjs.js");require("../ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../ActivityVersions/ActivityVersions.styled.cjs.js");require("../ActivityGroup/ActivityGroup.styled.cjs.js");require("../ActivityVersionReview/ActivityVersionReview.styled.cjs.js");const k=require("./types.cjs.js"),Ie=require("../ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed.styled.cjs.js");require("../FeedSearchFilter.cjs.js");const Mr=require("./VersionReviewPill.cjs.js");var be=Ae.Quill.import("delta");const Pr="<p><br></p>",L=["@","@@","@@@"],Dr=({initValue:Z,initFiles:Be=[],initCategory:Ve=null,data:ee={},versionReview:re,lastOwnVersionReview:te,onSubmit:ie,onReview:H,isEditing:c,disabled:T,isLoading:ne,isOpen:q,onOpen:oe,onClose:se})=>{const{projectName:R,entities:_,projectInfo:Ue,scope:Ir,feedFilter:Ne,mentionSuggestionsData:Le,categories:ue,isGuest:h}=kr.useFeedContext(),{hasLicense:He,onPowerFeature:_e,user:Ke}=Tr.useDetailsPanelContext(),Qe=Ke?.data?.isAdmin,$e=Fr.useProjectContext(),{users:ae,teams:ce,versions:qe,tasks:le}=Le||{},[de,Ge]=u.useState(88),[F,b]=u.useState(""),[C,A]=u.useState(Be),[K,B]=u.useState([]),[me,V]=u.useState(!1),[Oe,pe]=u.useState(!1),{annotations:M,removeAnnotation:ze,goToAnnotation:We}=Sr.default({entityId:_[0]?.id,filesUploading:K}),[s,Q]=u.useState(null),[$,G]=u.useState(0),[P,xe]=u.useState(""),D=()=>{Q(null),G(0),xe("")},[U,Ye]=u.useState(Ve),he=ue.filter(e=>e.accessLevel>=20),fe=ue.find(e=>e.name===U),ge=wr.useBlendedCategoryColor(fe?.color),m=u.useRef(null),Je=u.useRef(null),ye=u.useRef(null);Cr({markdownRef:ye,initValue:Z,setEditorValue:b,setInitHeight:Ge,isOpen:q,filter:Ne}),vr({initHeight:de,editorRef:m,isEditing:c}),Rr({projectName:R}),u.useEffect(()=>{if(q){if(m.current?.getEditor()?.enable(),M.length>0&&C.length===0)return;m.current?.focus()}},[q,m]),L.sort((e,r)=>r.length-e.length);const je=P+(s?.search||""),Ce=u.useMemo(()=>hr.default(s?.type,{"@":()=>fr(ae,ce),"@@":()=>yr(qe,$e),"@@@":()=>gr(le,Ue.taskTypes)},je||void 0),[le,qe,ae,ce,s?.type,je]),I=Ce.slice(0,5),[O,ve]=u.useState();u.useEffect(()=>{O&&(ve(null),m.current.getEditor().setSelection(O))},[O]);const Re=e=>{const r=m.current.getEditor(),i=s.type,o=i+(s.search||""),n=i+e.label,p=k.mentionTypeOptions[i],f=`${e.type||p?.id}:${e.id}`,a=(r.getSelection(!0)?.index||0)-o.length;r.deleteText(a,o.length),r.insertText(a,n,"mention",f);const l=a+n.length;r.updateContents(new be().retain(l).insert(" ")),r.updateContents(new be().retain(l+1).delete(1)),ve(l+1),D()},Xe=e=>{Re(e)},Ze=(e,r,i,o)=>{let n=r.ops[0]&&r.ops[0].insert||r.ops[1]&&r.ops[1].insert;const p=n===`
2
+ `||n===" ",y=Ce[$];if(s&&p&&y&&!h){r.ops[0]&&r.ops[0].retain,Re(y);return}b(e);const f=r.ops.length===2&&!!r.ops[1].delete;if(!n&&f&&(n=o.getText(r.ops[0].retain-1,1)),L.includes(n)){const x=r.ops.findIndex(j=>"insert"in j||"delete"in j),a=n;let l=x===0?0:r.ops[x-1].retain;f&&(l=l-1);let v=null;for(const j of L){let S=!0;if(j.endsWith(a))for(let g=j.length-1;g>=0;g--){if(g===0)continue;const qr=j[g-1],lr=l-(j.length-g);if(o.getText(lr,1)!==qr){S=!1;break}}else S=!1;if(S){v=j;break}}v?Q({type:v,retain:l}):D()}else if(s){const x=r.ops[0].retain;if(n===" "||!x){D();return}let a=x-s.retain;f||a++;const l=o.getText(s.retain,a),v=l.replace(s.type.slice(-1),"");l.includes(" ")?D():Q({...s,search:v?.toLowerCase()})}else if(f){const x=m.current.getEditor(),a=x.getSelection(!1);if(x.getFormat(a?.index,a?.length).mention){const[v]=x.getLine(a.index-1)||[],S=(v?.cache?.delta?.ops||[]).reverse().find(g=>g.attributes?.mention);if(S){const g=S.insert.length;x.deleteText(a.index-g,g)}}}},er=e=>{const r=m.current.getEditor();let i=r.getSelection(!0)?.index||0;const o=r.getText(i-1,1);o!==" "&&o&&(r.insertText(i," "),i++),X.typeWithDelay(r,i,e)},z=e=>{if(s){const{type:r,retain:i,search:o=""}=s,n=m.current.getEditor(),p=r.length+o.length,y=i-r.length+1;n.deleteText(y,p)}er(e)},rr=()=>{q||T||oe&&oe()},Se=()=>{(m.current.getEditor().getText().length<2||c)&&b(""),se&&se()},W=({file:e,data:r})=>{const i=E.parseFilename(e.name),o={id:r.id,name:i,mime:e.type,size:e.size,order:C.length};return A(n=>[...n,o]),B(n=>n.filter(p=>E.parseFilename(p.name)!==i)),o},tr=(e,r,i)=>{i?ze?.(e):(A(o=>o.filter(n=>n.id!==e)),B(o=>o.filter(n=>E.parseFilename(n.name)!==E.parseFilename(r))))},we=(e,r)=>{const i=Math.round(e.loaded*100/e.total);if(i!==100){const o=E.parseFilename(r.name),n={name:o,progress:i,type:r.type,order:C.length+K.length};B(p=>[...p.filter(f=>E.parseFilename(f.name)!==o),n])}},ir=e=>{V(!1),X.handleFileDrop(e,R,we,W)},nr=e=>{e.preventDefault(),e.stopPropagation(),V(!0)},or=Er({projectName:R,onSuccess:W}),Y=async()=>{try{pe(!0);let e=[],r;if(M.length){const{files:y,metadata:f}=await or(M);e=y;const{annotations:J=[]}=ee||{};r=[...J,...f]}const[i]=jr.convertToMarkdown(F),o=X.parseImages(i),n=[...C,...e],p={...ee,annotations:r,category:h?null:U};if((o||n.length)&&ie)try{await ie(o,n,p),b(""),A([])}catch{return}}catch(e){console.error(e),Pe.toast.error("Something went wrong")}finally{pe(!1)}},sr=e=>{if(s){if(e.key==="Escape"){D();return}s&&e.key;const r=e.key==="ArrowUp"?-1:e.key==="ArrowDown"?1:0;if(r){e.preventDefault();let i=$+r;i<0&&(i=I.length-1),i>=I.length&&(i=0),G(i)}e.key}e.key==="Enter"&&(e.ctrlKey||e.metaKey)&&Y(),e.key==="Escape"&&Se()};let Ee=q?de+41:44;c&&(Ee=void 0);const ur=u.useMemo(()=>De.getModules({imageUploader:{projectName:R,onUpload:W,onUploadProgress:we},mentionTypeOptions:k.mentionTypeOptions}),[R,A,B]),ke=[...M,...C||[],...K].sort((e,r)=>e.order-r.order),ar=ke.length>3;let Te=null;_.length&&_[0].entityType==="folder"&&s?.type==="@@"&&(Te="Version mentions are disabled for folders");const Fe=e=>T?h?"You do not have permission to comment.":"Commenting is disabled across multiple projects.":h||!e?"Leave a comment":"Comment or mention with @user, @@version, @@@task...",Me=async e=>{if(H)try{(F&&F!==Pr||C.length>0||M.length>0)&&await Y(),H(e)}catch(r){console.error(r),Pe.toast.error("Something went wrong while submitting the review")}},cr=re&&H&&t.jsxRuntimeExports.jsxs(d.VersionReviewButtons,{className:N("version-review-buttons",{guest:h}),children:[t.jsxRuntimeExports.jsx(d.VersionReviewButton,{icon:"check",variant:"tertiary","data-tooltip":"Approve",onClick:()=>Me(k.VersionReviewFeedback.APPROVE),children:t.jsxRuntimeExports.jsx("span",{className:"label",children:"Approve"})}),t.jsxRuntimeExports.jsx(d.VersionReviewButton,{icon:"refresh",variant:"danger","data-tooltip":"Request changes",onClick:()=>Me(k.VersionReviewFeedback.REQUEST_CHANGES),children:t.jsxRuntimeExports.jsx("span",{className:"label",children:"Request changes"})})]});return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(d.AutoHeight,{className:N("comment-container",{isOpen:q,isEditing:c}),onDragOver:nr,onDragLeave:()=>V(!1),onDrop:ir,onClick:()=>V(!1),onKeyDown:e=>e.stopPropagation(),children:[re&&te&&t.jsxRuntimeExports.jsx(Mr.VersionReviewPill,{lastOwnVersionReview:te}),t.jsxRuntimeExports.jsxs(d.Comment,{className:N("block-shortcuts",{isOpen:q,isClosed:!q||T,isEditing:c,isDropping:me,disabled:T,isLoading:ne,isSubmitting:Oe,category:!!U&&!h}),onKeyDown:sr,onClick:rr,$categoryPrimary:fe?.color,$categoryTertiary:ge.primary,$categorySecondary:ge.secondary,children:[t.jsxRuntimeExports.jsx(d.Markdown,{ref:ye,children:t.jsxRuntimeExports.jsx(mr.default,{typeOptions:k.mentionTypeOptions,initValue:Z})}),q&&t.jsxRuntimeExports.jsx(pr,{files:ke,isCompact:ar||c,onRemove:tr,projectName:R,onAnnotationClick:We,style:{borderBottom:"1px solid var(--md-sys-color-outline-variant)",height:"100%"},isEditing:!0,pt:{file:{style:{height:c?70:void 0}}}}),q&&!T?t.jsxRuntimeExports.jsxs(xr.QuillListStyles,{ref:Je,children:[!h&&t.jsxRuntimeExports.jsx(Ie.ActivityCategorySelect,{value:U,categories:he,onChange:e=>Ye(e),isCompact:c,hasPowerpack:He,onPowerFeature:_e,isHidden:Ie.isCategoryHidden(he,{isGuest:h,isAdmin:Qe}),style:{position:c?"relative":"absolute",left:4,top:c?0:4}}),t.jsxRuntimeExports.jsx(Ae,{theme:"snow",style:{minHeight:Ee,maxHeight:300},ref:m,value:F,onChange:Ze,readOnly:!q,placeholder:Fe(!0),modules:ur,formats:De.quillFormats})]}):t.jsxRuntimeExports.jsx(d.Placeholder,{children:Fe()}),t.jsxRuntimeExports.jsxs(d.Footer,{children:[!h&&t.jsxRuntimeExports.jsxs(d.Buttons,{children:[t.jsxRuntimeExports.jsx(w.Button,{icon:"person",variant:"text",onClick:()=>z("@"),"data-tooltip":"Mention user","data-shortcut":"@"}),t.jsxRuntimeExports.jsx(w.Button,{icon:"layers",variant:"text",onClick:()=>z("@@"),"data-tooltip":"Mention version","data-shortcut":"@@"}),t.jsxRuntimeExports.jsx(w.Button,{icon:"check_circle",variant:"text",onClick:()=>z("@@@"),"data-tooltip":"Mention task","data-shortcut":"@@@"})]}),t.jsxRuntimeExports.jsxs(d.SubmitButtons,{children:[c&&t.jsxRuntimeExports.jsx(w.Button,{variant:"text",onClick:Se,children:"Cancel"}),t.jsxRuntimeExports.jsx(w.SaveButton,{label:c?"Save":"Comment",className:"comment",active:!!F||!!C.length,onClick:Y,disabled:ne})]})]}),t.jsxRuntimeExports.jsx(d.Dropzone,{className:N({show:me&&q}),children:t.jsxRuntimeExports.jsx(w.Icon,{icon:"cloud_upload"})})]}),t.jsxRuntimeExports.jsx(dr,{mention:s,options:I,onChange:Xe,onPrefixFilter:e=>{xe(e),G(0)},activePrefix:P?P.replace(":",""):void 0,types:L,config:k.mentionTypeOptions[s?.type],noneFound:!I.length&&(s?.search||P),noneFoundAtAll:!I.length&&!s?.search&&!P,selectedIndex:$,error:Te,isGuest:h}),t.jsxRuntimeExports.jsx(d.VersionReviewButtonsSpacer,{}),cr]})})};module.exports=Dr;
3
3
  //# sourceMappingURL=CommentInput.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentInput.cjs.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\nimport { FeedActivity } from '@shared/api'\nimport { VersionReviewPill } from './VersionReviewPill'\nimport { VersionReviewFeedback, mentionTypeOptions } from './types'\n\nvar Delta = Quill.import('delta')\n\nconst EMPTY_EDITOR_VALUE = '<p><br></p>'\n\nconst mentionTypes = ['@', '@@', '@@@']\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n versionReview: boolean\n lastOwnVersionReview?: FeedActivity\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n onReview?: (feedback: VersionReviewFeedback) => void\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n versionReview,\n lastOwnVersionReview,\n onSubmit,\n onReview,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [\n mentionTasks,\n mentionVersions,\n mentionUsers,\n mentionTeams,\n mention?.type,\n mentionSearchWithPrefix,\n ],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n const handleReviewSubmit = async (status: VersionReviewFeedback) => {\n if (!onReview) return\n try {\n const postComment =\n (editorValue && editorValue !== EMPTY_EDITOR_VALUE) ||\n files.length > 0 ||\n annotations.length > 0\n // if the editor value is valid, also submit the comment first\n if (postComment) {\n await handleSubmit()\n }\n\n onReview(status)\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong while submitting the review')\n }\n }\n\n const versionReviewButtons = versionReview && onReview && (\n <Styled.VersionReviewButtons className={clsx('version-review-buttons', { guest: isGuest })}>\n <Styled.VersionReviewButton\n icon=\"check\"\n variant=\"tertiary\"\n data-tooltip=\"Approve\"\n onClick={() => handleReviewSubmit(VersionReviewFeedback.APPROVE)}\n >\n <span className=\"label\">Approve</span>\n </Styled.VersionReviewButton>\n <Styled.VersionReviewButton\n icon=\"refresh\"\n variant=\"danger\"\n data-tooltip=\"Request changes\"\n onClick={() => handleReviewSubmit(VersionReviewFeedback.REQUEST_CHANGES)}\n >\n <span className=\"label\">Request changes</span>\n </Styled.VersionReviewButton>\n </Styled.VersionReviewButtons>\n )\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n {versionReview && lastOwnVersionReview && (\n <VersionReviewPill lastOwnVersionReview={lastOwnVersionReview} />\n )}\n\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.SubmitButtons>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.SubmitButtons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n\n <Styled.VersionReviewButtonsSpacer />\n {versionReviewButtons}\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","EMPTY_EDITOR_VALUE","mentionTypes","CommentInput","initValue","initFiles","initCategory","data","versionReview","lastOwnVersionReview","onSubmit","onReview","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","mentionTypeOptions","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","handleReviewSubmit","status","versionReviewButtons","jsxs","Styled.VersionReviewButtons","clsx","jsx","Styled.VersionReviewButton","VersionReviewFeedback","Fragment","Styled.AutoHeight","VersionReviewPill","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","Styled.SubmitButtons","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix","Styled.VersionReviewButtonsSpacer"],"mappings":"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"}
1
+ {"version":3,"file":"CommentInput.cjs.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\nimport { FeedActivity } from '@shared/api'\nimport { VersionReviewPill } from './VersionReviewPill'\nimport { VersionReviewFeedback, mentionTypeOptions } from './types'\n\nvar Delta = Quill.import('delta')\n\nconst EMPTY_EDITOR_VALUE = '<p><br></p>'\n\nconst mentionTypes = ['@', '@@', '@@@']\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n versionReview: boolean\n lastOwnVersionReview?: FeedActivity\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n onReview?: (feedback: VersionReviewFeedback) => void\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n versionReview,\n lastOwnVersionReview,\n onSubmit,\n onReview,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [\n mentionTasks,\n mentionVersions,\n mentionUsers,\n mentionTeams,\n mention?.type,\n mentionSearchWithPrefix,\n ],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n const handleReviewSubmit = async (status: VersionReviewFeedback) => {\n if (!onReview) return\n try {\n const postComment =\n (editorValue && editorValue !== EMPTY_EDITOR_VALUE) ||\n files.length > 0 ||\n annotations.length > 0\n // if the editor value is valid, also submit the comment first\n if (postComment) {\n await handleSubmit()\n }\n\n onReview(status)\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong while submitting the review')\n }\n }\n\n const versionReviewButtons = versionReview && onReview && (\n <Styled.VersionReviewButtons className={clsx('version-review-buttons', { guest: isGuest })}>\n <Styled.VersionReviewButton\n icon=\"check\"\n variant=\"tertiary\"\n data-tooltip=\"Approve\"\n onClick={() => handleReviewSubmit(VersionReviewFeedback.APPROVE)}\n >\n <span className=\"label\">Approve</span>\n </Styled.VersionReviewButton>\n <Styled.VersionReviewButton\n icon=\"refresh\"\n variant=\"danger\"\n data-tooltip=\"Request changes\"\n onClick={() => handleReviewSubmit(VersionReviewFeedback.REQUEST_CHANGES)}\n >\n <span className=\"label\">Request changes</span>\n </Styled.VersionReviewButton>\n </Styled.VersionReviewButtons>\n )\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n {versionReview && lastOwnVersionReview && (\n <VersionReviewPill lastOwnVersionReview={lastOwnVersionReview} />\n )}\n\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.SubmitButtons>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.SubmitButtons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n\n <Styled.VersionReviewButtonsSpacer />\n {versionReviewButtons}\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","EMPTY_EDITOR_VALUE","mentionTypes","CommentInput","initValue","initFiles","initCategory","data","versionReview","lastOwnVersionReview","onSubmit","onReview","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","mentionTypeOptions","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","handleReviewSubmit","status","versionReviewButtons","jsxs","Styled.VersionReviewButtons","clsx","jsx","Styled.VersionReviewButton","VersionReviewFeedback","Fragment","Styled.AutoHeight","VersionReviewPill","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","Styled.SubmitButtons","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix","Styled.VersionReviewButtonsSpacer"],"mappings":"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"}
@@ -230,6 +230,7 @@ import "../../../Slicer/context/SlicerContext.es.js";
230
230
  import "../../../Slicer/hooks/useTableDataBySlice.es.js";
231
231
  import "../../../DetailsPanel/DetailsPanel.styled.es.js";
232
232
  import "../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
233
+ import "../../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
233
234
  import "../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
234
235
  import "../../../../components/PlayableIcon/PlayableIcon.es.js";
235
236
  import "../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -303,7 +304,7 @@ import "../../Feed.styled.es.js";
303
304
  import "../FeedSearchFilter.es.js";
304
305
  import { VersionReviewPill as Xo } from "./VersionReviewPill.es.js";
305
306
  var Bt = fo.import("delta");
306
- const Zo = "<p><br></p>", q = ["@", "@@", "@@@"], Up = ({
307
+ const Zo = "<p><br></p>", q = ["@", "@@", "@@@"], Vp = ({
307
308
  initValue: X,
308
309
  initFiles: Nt = [],
309
310
  initCategory: Ut = null,
@@ -742,6 +743,6 @@ const Zo = "<p><br></p>", q = ["@", "@@", "@@@"], Up = ({
742
743
  ) });
743
744
  };
744
745
  export {
745
- Up as default
746
+ Vp as default
746
747
  };
747
748
  //# sourceMappingURL=CommentInput.es.js.map