@ynput/ayon-frontend-shared 0.2.3 → 0.2.5

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 (530) hide show
  1. package/dist/ContextMenu.cjs.js +1 -0
  2. package/dist/ContextMenu.cjs.js.map +1 -1
  3. package/dist/ContextMenu.es.js +1 -0
  4. package/dist/ContextMenu.es.js.map +1 -1
  5. package/dist/DetailsPanel.cjs.js +23 -1
  6. package/dist/DetailsPanel.cjs.js.map +1 -1
  7. package/dist/DetailsPanel.es.js +23 -1
  8. package/dist/DetailsPanel.es.js.map +1 -1
  9. package/dist/ProjectTreeTable.cjs.js +12 -1
  10. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  11. package/dist/ProjectTreeTable.es.js +14 -3
  12. package/dist/ProjectTreeTable.es.js.map +1 -1
  13. package/dist/_virtual/_commonjsHelpers.cjs.js +0 -2
  14. package/dist/_virtual/_commonjsHelpers.cjs.js.map +1 -1
  15. package/dist/_virtual/_commonjsHelpers.es.js +0 -2
  16. package/dist/_virtual/_commonjsHelpers.es.js.map +1 -1
  17. package/dist/_virtual/index.cjs5.js +3 -5
  18. package/dist/_virtual/index.cjs5.js.map +1 -1
  19. package/dist/_virtual/index.cjs6.js +5 -3
  20. package/dist/_virtual/index.cjs6.js.map +1 -1
  21. package/dist/_virtual/index.es5.js +2 -5
  22. package/dist/_virtual/index.es5.js.map +1 -1
  23. package/dist/_virtual/index.es6.js +5 -2
  24. package/dist/_virtual/index.es6.js.map +1 -1
  25. package/dist/api.cjs.js +24 -1
  26. package/dist/api.cjs.js.map +1 -1
  27. package/dist/api.es.js +26 -3
  28. package/dist/api.es.js.map +1 -1
  29. package/dist/components.cjs.js +12 -0
  30. package/dist/components.cjs.js.map +1 -1
  31. package/dist/components.es.js +12 -0
  32. package/dist/components.es.js.map +1 -1
  33. package/dist/context.cjs.js +3 -0
  34. package/dist/context.cjs.js.map +1 -1
  35. package/dist/context.es.js +3 -0
  36. package/dist/context.es.js.map +1 -1
  37. package/dist/index.cjs.js +24 -2
  38. package/dist/index.cjs.js.map +1 -1
  39. package/dist/index.es.js +24 -2
  40. package/dist/index.es.js.map +1 -1
  41. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  42. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  43. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  44. package/dist/node_modules/remove-accents/index.es.js +1 -1
  45. package/dist/shared/src/api/base/client.cjs.js +3 -0
  46. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  47. package/dist/shared/src/api/base/client.es.js +3 -0
  48. package/dist/shared/src/api/base/client.es.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.cjs.js +130 -0
  50. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/graphql.es.js +130 -0
  52. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
  55. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +8 -4
  56. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +9 -5
  58. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +4 -0
  60. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -0
  62. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +267 -0
  64. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -0
  65. package/dist/shared/src/api/queries/entityLists/getLists.es.js +267 -0
  66. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -0
  67. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +51 -0
  68. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -0
  69. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +51 -0
  70. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -0
  71. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +169 -0
  72. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -0
  73. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +169 -0
  74. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -0
  75. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.cjs.js +29 -0
  76. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.cjs.js.map +1 -0
  77. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.es.js +29 -0
  78. package/dist/shared/src/api/queries/entityLists/updateListsAttributes.es.js.map +1 -0
  79. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +3 -4
  80. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/overview/getOverview.es.js +3 -4
  82. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +40 -5
  84. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/overview/updateOverview.es.js +40 -5
  86. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  88. package/dist/shared/src/api/queries/review/getReview.es.js +1 -1
  89. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -1
  91. package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -2
  92. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/users/getUsers.es.js +7 -3
  94. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  95. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +355 -0
  96. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -0
  97. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +355 -0
  98. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -0
  99. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.cjs.js +93 -0
  100. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.cjs.js.map +1 -0
  101. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.es.js +93 -0
  102. package/dist/shared/src/components/AttributeEditor/components/MinMaxField.es.js.map +1 -0
  103. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
  104. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  105. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
  106. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  107. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -2
  108. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  109. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -2
  110. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  111. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
  112. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -1
  113. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.cjs.js +4 -2
  114. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.cjs.js.map +1 -1
  115. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.es.js +4 -2
  116. package/dist/shared/src/components/EmptyPlaceholder/EmptyPlaceholder.es.js.map +1 -1
  117. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +3 -1
  118. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  119. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -1
  120. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  121. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +23 -1
  122. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  123. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +23 -1
  124. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  125. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +194 -0
  126. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -0
  127. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +195 -0
  128. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -0
  129. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js +128 -0
  130. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js.map +1 -0
  131. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js +128 -0
  132. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js.map +1 -0
  133. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js +185 -0
  134. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js.map +1 -0
  135. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js +185 -0
  136. package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js.map +1 -0
  137. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js +67 -0
  138. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js.map +1 -0
  139. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js +68 -0
  140. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js.map +1 -0
  141. package/dist/shared/src/components/EnumEditor/util/index.cjs.js +19 -0
  142. package/dist/shared/src/components/EnumEditor/util/index.cjs.js.map +1 -0
  143. package/dist/shared/src/components/EnumEditor/util/index.es.js +19 -0
  144. package/dist/shared/src/components/EnumEditor/util/index.es.js.map +1 -0
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js +78 -0
  146. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js.map +1 -0
  147. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js +79 -0
  148. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js.map +1 -0
  149. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +352 -0
  150. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -0
  151. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +353 -0
  152. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -0
  153. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +113 -0
  154. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -0
  155. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -0
  156. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -0
  157. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js +52 -0
  158. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js.map +1 -0
  159. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js +53 -0
  160. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js.map +1 -0
  161. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
  162. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  163. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
  164. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +23 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +23 -1
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +23 -1
  170. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +23 -1
  172. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +23 -1
  174. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +23 -1
  176. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  177. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +103 -0
  178. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -0
  179. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +103 -0
  180. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -0
  181. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +83 -0
  182. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -0
  183. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +83 -0
  184. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -0
  185. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
  186. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  187. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
  188. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  189. package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
  190. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  191. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
  192. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  193. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +23 -1
  194. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +23 -1
  196. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  197. package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -1
  198. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/Actions/Actions.es.js +6 -1
  200. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  201. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  202. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +2 -2
  204. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  205. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +23 -1
  206. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +23 -1
  208. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  209. package/dist/shared/src/containers/ContextMenu/ContextMenu.css +54 -19
  210. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js +11 -1
  211. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  212. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js +11 -1
  213. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  214. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +23 -1
  215. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  216. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +25 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +25 -1
  221. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  222. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +24 -2
  223. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +24 -2
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +26 -4
  227. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  228. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +26 -4
  229. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +5 -0
  231. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  232. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +5 -0
  233. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
  235. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
  237. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  239. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +1 -1
  240. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -2
  241. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -2
  243. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  244. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
  245. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
  247. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  248. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +2 -2
  249. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +2 -2
  251. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  252. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  253. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +1 -1
  254. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
  255. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  256. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
  257. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  258. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -0
  259. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  260. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +1 -0
  261. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  262. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
  263. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
  265. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  266. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +2 -1
  267. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +2 -1
  269. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  270. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +5 -0
  271. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +5 -0
  273. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  274. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +7 -3
  275. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +7 -3
  277. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  278. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  279. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +1 -1
  280. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  281. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +198 -222
  283. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +201 -225
  285. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +1 -3
  287. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +1 -3
  289. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +361 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +361 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +41 -20
  295. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +41 -20
  297. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +29 -35
  299. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +31 -37
  301. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +33 -4
  303. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +34 -5
  305. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +17 -11
  307. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +17 -11
  309. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.cjs.js +3 -3
  315. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.es.js +3 -3
  317. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardUtils.es.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +190 -146
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +190 -146
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +10 -3
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +10 -3
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +15 -12
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +15 -12
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +44 -0
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -0
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +45 -0
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -0
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +15 -7
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +15 -7
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js +27 -31
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js +27 -31
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +1 -1
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useUpdateOverview.cjs.js → useUpdateTableData.cjs.js} +48 -20
  343. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -0
  344. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useUpdateOverview.es.js → useUpdateTableData.es.js} +48 -20
  345. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -0
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +2 -0
  347. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +2 -0
  349. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  350. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +25 -20
  351. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +25 -20
  353. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  354. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js +36 -0
  355. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -0
  356. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js +36 -0
  357. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -0
  358. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +39 -0
  359. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -0
  360. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +39 -0
  361. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -0
  362. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js +1 -0
  363. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js +1 -0
  365. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js +57 -0
  367. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -0
  368. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js +58 -0
  369. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -0
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +10 -0
  371. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -0
  373. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +17 -2
  381. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +17 -2
  383. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +53 -0
  385. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -0
  386. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +53 -0
  387. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -0
  388. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +24 -2
  389. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -2
  391. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  392. package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -1
  393. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  394. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -1
  395. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  396. package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
  397. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  398. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
  399. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  400. package/dist/shared/src/context/SettingsPanelContext.cjs.js +63 -0
  401. package/dist/shared/src/context/SettingsPanelContext.cjs.js.map +1 -0
  402. package/dist/shared/src/context/SettingsPanelContext.es.js +63 -0
  403. package/dist/shared/src/context/SettingsPanelContext.es.js.map +1 -0
  404. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -0
  405. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  406. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +1 -0
  407. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  408. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +5 -0
  409. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  410. package/dist/shared/src/hooks/useEntityUpdate.es.js +5 -0
  411. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  412. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -2
  413. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  414. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -2
  415. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  416. package/dist/shared/src/util/confirmDelete.cjs.js +3 -3
  417. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  418. package/dist/shared/src/util/confirmDelete.es.js +3 -3
  419. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  420. package/dist/shared/src/util/getAttributeIcon.cjs.js +48 -0
  421. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -0
  422. package/dist/shared/src/util/getAttributeIcon.es.js +48 -0
  423. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -0
  424. package/dist/shared/src/util/platform.cjs.js +7 -6
  425. package/dist/shared/src/util/platform.cjs.js.map +1 -1
  426. package/dist/shared/src/util/platform.es.js +7 -6
  427. package/dist/shared/src/util/platform.es.js.map +1 -1
  428. package/dist/types/SimpleTable/SimpleTable.d.ts +43 -0
  429. package/dist/types/SimpleTable/SimpleTable.styled.d.ts +10 -0
  430. package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +13 -0
  431. package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +23 -0
  432. package/dist/types/SimpleTable/index.d.ts +5 -0
  433. package/dist/types/api/generated/graphql.d.ts +255 -39
  434. package/dist/types/api/queries/activities/getActivities.d.ts +16 -0
  435. package/dist/types/api/queries/activities/updateActivities.d.ts +32 -0
  436. package/dist/types/api/queries/entities/getEntity.d.ts +16 -0
  437. package/dist/types/api/queries/entities/getEntityPanel.d.ts +16 -0
  438. package/dist/types/api/queries/entities/updateEntity.d.ts +16 -0
  439. package/dist/types/api/queries/entityLists/getLists.d.ts +3009 -0
  440. package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +148 -0
  441. package/dist/types/api/queries/entityLists/index.d.ts +5 -0
  442. package/dist/types/api/queries/entityLists/types.d.ts +71 -0
  443. package/dist/types/api/queries/entityLists/updateLists.d.ts +1137 -0
  444. package/dist/types/api/queries/entityLists/updateListsAttributes.d.ts +176 -0
  445. package/dist/types/api/queries/index.d.ts +1 -0
  446. package/dist/types/api/queries/overview/getOverview.d.ts +17 -1
  447. package/dist/types/api/queries/overview/updateOverview.d.ts +2 -2
  448. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +16 -0
  449. package/dist/types/api/queries/users/getUsers.d.ts +16 -0
  450. package/dist/types/components/AttributeEditor/AttributeEditor.d.ts +18 -0
  451. package/dist/types/components/AttributeEditor/components/MinMaxField.d.ts +14 -0
  452. package/dist/types/components/AttributeEditor/components/index.d.ts +1 -0
  453. package/dist/types/components/AttributeEditor/index.d.ts +1 -0
  454. package/dist/types/components/EnumEditor/DraggableEnumEditorItem.d.ts +10 -0
  455. package/dist/types/components/EnumEditor/EnumEditor.d.ts +22 -0
  456. package/dist/types/components/EnumEditor/EnumEditor.styled.d.ts +23 -0
  457. package/dist/types/components/EnumEditor/hooks/useDraggable.d.ts +17 -0
  458. package/dist/types/components/EnumEditor/index.d.ts +1 -0
  459. package/dist/types/components/EnumEditor/util/index.d.ts +1 -0
  460. package/dist/types/components/ProjectTableSettings/ColumnItem.d.ts +14 -0
  461. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +9 -0
  462. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +18 -0
  463. package/dist/types/components/ProjectTableSettings/SortableColumnItem.d.ts +13 -0
  464. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  465. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +16 -0
  466. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +20 -0
  467. package/dist/types/components/SettingsPanel/index.d.ts +2 -0
  468. package/dist/types/components/index.d.ts +4 -0
  469. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +3 -1
  470. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +20 -7
  471. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +23 -0
  472. package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +3 -3
  473. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +6 -2
  474. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +41 -34
  475. package/dist/types/containers/ProjectTreeTable/context/ProjectTableQueriesContext.d.ts +3 -2
  476. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +4 -1
  477. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardUtils.d.ts +2 -2
  478. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +21 -2
  479. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +7 -7
  480. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +6 -0
  481. package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +5 -3
  482. package/dist/types/containers/ProjectTreeTable/hooks/useOverviewTable.d.ts +5 -20
  483. package/dist/types/containers/ProjectTreeTable/hooks/{useUpdateOverview.d.ts → useUpdateTableData.d.ts} +12 -3
  484. package/dist/types/containers/ProjectTreeTable/index.d.ts +5 -1
  485. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +4 -6
  486. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +51 -12
  487. package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +2 -3
  488. package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +14 -2
  489. package/dist/types/containers/ProjectTreeTable/utils/getReadOnlyLists.d.ts +5 -0
  490. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +14 -0
  491. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
  492. package/dist/types/containers/ProjectTreeTable/utils/validateUpdateEntities.d.ts +4 -0
  493. package/dist/types/containers/ProjectTreeTable/widgets/EntityNameWidget.d.ts +1 -1
  494. package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -1
  495. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -0
  496. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +9 -0
  497. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  498. package/dist/types/context/SettingsPanelContext.d.ts +20 -0
  499. package/dist/types/context/index.d.ts +1 -0
  500. package/dist/types/util/getAttributeIcon.d.ts +4 -0
  501. package/dist/types/util/index.d.ts +1 -0
  502. package/dist/util.cjs.js +2 -0
  503. package/dist/util.cjs.js.map +1 -1
  504. package/dist/util.es.js +2 -0
  505. package/dist/util.es.js.map +1 -1
  506. package/package.json +2 -1
  507. package/dist/_virtual/lodash.cjs.js +0 -6
  508. package/dist/_virtual/lodash.cjs.js.map +0 -1
  509. package/dist/_virtual/lodash.cjs2.js +0 -5
  510. package/dist/_virtual/lodash.cjs2.js.map +0 -1
  511. package/dist/_virtual/lodash.es.js +0 -6
  512. package/dist/_virtual/lodash.es.js.map +0 -1
  513. package/dist/_virtual/lodash.es2.js +0 -5
  514. package/dist/_virtual/lodash.es2.js.map +0 -1
  515. package/dist/shared/node_modules/lodash/lodash.cjs.js +0 -5492
  516. package/dist/shared/node_modules/lodash/lodash.cjs.js.map +0 -1
  517. package/dist/shared/node_modules/lodash/lodash.es.js +0 -5492
  518. package/dist/shared/node_modules/lodash/lodash.es.js.map +0 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.cjs.js +0 -269
  520. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.cjs.js.map +0 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.es.js +0 -270
  522. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTableColumns.es.js.map +0 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateOverview.cjs.js.map +0 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateOverview.es.js.map +0 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.cjs.js +0 -69
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.cjs.js.map +0 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.es.js +0 -70
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useValidateUpdates.es.js.map +0 -1
  529. package/dist/types/containers/ProjectTreeTable/ProjectTreeTableColumns.d.ts +0 -16
  530. package/dist/types/containers/ProjectTreeTable/hooks/useValidateUpdates.d.ts +0 -3
@@ -49,6 +49,10 @@ require("../../../api/queries/authentication/getAuthentication.cjs.js");
49
49
  const getEntity = require("../../../api/queries/entities/getEntity.cjs.js");
50
50
  require("../../../api/queries/entities/getEntityPanel.cjs.js");
51
51
  require("../../../api/queries/entities/updateEntity.cjs.js");
52
+ require("../../../api/queries/entityLists/getLists.cjs.js");
53
+ require("../../../api/queries/entityLists/updateLists.cjs.js");
54
+ require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
55
+ require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
52
56
  const getFolders = require("../../../api/queries/folders/getFolders.cjs.js");
53
57
  require("../../../api/queries/overview/getOverview.cjs.js");
54
58
  require("../../../api/queries/overview/updateOverview.cjs.js");
@@ -78,8 +82,8 @@ const useGetEntityPath = ({
78
82
  );
79
83
  const versions = React.useMemo(
80
84
  () => {
81
- var _a2;
82
- return !((_a2 = versionsData == null ? void 0 : versionsData.project.product) == null ? void 0 : _a2.versionList) ? [] : [...versionsData.project.product.versionList].sort((a, b) => {
85
+ var _a2, _b2;
86
+ return !((_a2 = versionsData == null ? void 0 : versionsData.project.product) == null ? void 0 : _a2.versionList) ? [] : [...((_b2 = versionsData.project.product) == null ? void 0 : _b2.versionList) || []].sort((a, b) => {
83
87
  if (a.name === "HERO") return -1;
84
88
  if (b.name === "HERO") return 1;
85
89
  return b.name.localeCompare(a.name);
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityPath.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...versionsData.project.product.versionList]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["useGetFolderListQuery","useGetProductVersionsQuery","useMemo","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAeA,WAAA;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiBC,UAAA;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAWC,MAAA;AAAA,IACf,MACE;;AAAA,gBAACC,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,CACA,IAAA,CAAC,GAAG,aAAa,QAAQ,QAAQ,WAAW,EACzC,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAaD,MAAA;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAWA,MAAA;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;;"}
1
+ {"version":3,"file":"useGetEntityPath.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["useGetFolderListQuery","useGetProductVersionsQuery","useMemo","_a","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAeA,WAAA;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiBC,UAAA;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAWC,MAAA;AAAA,IACf,MACE;;AAAA,gBAACC,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,KACA,CAAC,KAAIC,MAAA,aAAa,QAAQ,YAArB,gBAAAA,IAA8B,gBAAe,CAAG,CAAA,EAClD,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAaF,MAAA;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAWA,MAAA;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;;"}
@@ -48,6 +48,10 @@ import "../../../api/queries/authentication/getAuthentication.es.js";
48
48
  import { useGetProductVersionsQuery } from "../../../api/queries/entities/getEntity.es.js";
49
49
  import "../../../api/queries/entities/getEntityPanel.es.js";
50
50
  import "../../../api/queries/entities/updateEntity.es.js";
51
+ import "../../../api/queries/entityLists/getLists.es.js";
52
+ import "../../../api/queries/entityLists/updateLists.es.js";
53
+ import "../../../api/queries/entityLists/getListsAttributes.es.js";
54
+ import "../../../api/queries/entityLists/updateListsAttributes.es.js";
51
55
  import { useGetFolderListQuery } from "../../../api/queries/folders/getFolders.es.js";
52
56
  import "../../../api/queries/overview/getOverview.es.js";
53
57
  import "../../../api/queries/overview/updateOverview.es.js";
@@ -77,8 +81,8 @@ const useGetEntityPath = ({
77
81
  );
78
82
  const versions = useMemo(
79
83
  () => {
80
- var _a2;
81
- return !((_a2 = versionsData == null ? void 0 : versionsData.project.product) == null ? void 0 : _a2.versionList) ? [] : [...versionsData.project.product.versionList].sort((a, b) => {
84
+ var _a2, _b2;
85
+ return !((_a2 = versionsData == null ? void 0 : versionsData.project.product) == null ? void 0 : _a2.versionList) ? [] : [...((_b2 = versionsData.project.product) == null ? void 0 : _b2.versionList) || []].sort((a, b) => {
82
86
  if (a.name === "HERO") return -1;
83
87
  if (b.name === "HERO") return 1;
84
88
  return b.name.localeCompare(a.name);
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityPath.es.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...versionsData.project.product.versionList]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAe;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiB;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAW;AAAA,IACf,MACE;;AAAA,gBAACA,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,CACA,IAAA,CAAC,GAAG,aAAa,QAAQ,QAAQ,WAAW,EACzC,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAa;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAW;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;"}
1
+ {"version":3,"file":"useGetEntityPath.es.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["_a","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAe;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiB;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAW;AAAA,IACf,MACE;;AAAA,gBAACA,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,KACA,CAAC,KAAIC,MAAA,aAAa,QAAQ,YAArB,gBAAAA,IAA8B,gBAAe,CAAG,CAAA,EAClD,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAa;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAW;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;"}
@@ -21,6 +21,7 @@ const FeedContext = require("./context/FeedContext.cjs.js");
21
21
  require("../../context/RemoteModulesContext.cjs.js");
22
22
  const DetailsPanelContext = require("../../context/DetailsPanelContext.cjs.js");
23
23
  require("../../context/ThumbnailUploaderContext.cjs.js");
24
+ require("../../context/SettingsPanelContext.cjs.js");
24
25
  require("../../context/pip/PiPProvider.cjs.js");
25
26
  require("react-dom");
26
27
  require("../../context/pip/PiPWrapper.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const { openSlideOut, highlightedActivities, setHighlightedActivities, onOpenImage } =\n useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesData,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs) =>\n await updateComment(activity, value, files)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["useFeedContext","useDetailsPanelContext","useTransformActivities","useRef","FEED_NEW_COMMENT","index","entityType","isFilePreviewable","useMemo","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","EmptyPlaceholder","InView","Styled.LoadMore","CommentInput"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const { openSlideOut, highlightedActivities, setHighlightedActivities, onOpenImage } =\n useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesData,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs) =>\n await updateComment(activity, value, files)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["useFeedContext","useDetailsPanelContext","useTransformActivities","useRef","FEED_NEW_COMMENT","index","entityType","isFilePreviewable","useMemo","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Icon","Styled.FeedContent","EmptyPlaceholder","InView","Styled.LoadMore","CommentInput"],"mappings":"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"}
@@ -19,6 +19,7 @@ import { useFeedContext, FEED_NEW_COMMENT } from "./context/FeedContext.es.js";
19
19
  import "../../context/RemoteModulesContext.es.js";
20
20
  import { useDetailsPanelContext } from "../../context/DetailsPanelContext.es.js";
21
21
  import "../../context/ThumbnailUploaderContext.es.js";
22
+ import "../../context/SettingsPanelContext.es.js";
22
23
  import "../../context/pip/PiPProvider.es.js";
23
24
  import "react-dom";
24
25
  import "../../context/pip/PiPWrapper.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const { openSlideOut, highlightedActivities, setHighlightedActivities, onOpenImage } =\n useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesData,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs) =>\n await updateComment(activity, value, files)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["index","entityType","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Styled.FeedContent","Styled.LoadMore"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n isMultiProjects: boolean\n readOnly: boolean\n statuses: Status[]\n}\n\nexport const Feed = ({ isMultiProjects, readOnly, statuses = [] }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const { openSlideOut, highlightedActivities, setHighlightedActivities, onOpenImage } =\n useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesData,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n // only viewing activities from one project\n if (isMultiProjects)\n warningMessage = `You are only viewing activities from one project: ${projectName}.`\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs) =>\n await updateComment(activity, value, files)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={isMultiProjects}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["index","entityType","jsxs","Styled.FeedContainer","Styled.Warning","jsx","Styled.FeedContent","Styled.LoadMore"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("../../../../../../_virtual/jsx-runtime.cjs.js");
4
- const lodash = require("../../../../../../_virtual/lodash.cjs.js");
4
+ const lodash = require("lodash");
5
5
  const ActivityCheckbox = require("../ActivityCheckbox/ActivityCheckbox.cjs.js");
6
6
  const ActivityReference = require("../ActivityReference/ActivityReference.cjs.js");
7
7
  const ActivityComment_styled = require("./ActivityComment.styled.cjs.js");
@@ -76,7 +76,7 @@ const blockquoteTag = ({ children }) => {
76
76
  stringLines.forEach((line, i) => {
77
77
  lines.push(/* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ActivityComment_styled.QuoteLine, { children: line }, i));
78
78
  });
79
- } else if (lodash.lodashExports.isArray(child)) {
79
+ } else if (lodash.isArray(child)) {
80
80
  const splitLines = [];
81
81
  let index = 0;
82
82
  child.forEach((line) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityMarkdownComponents.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.tsx"],"sourcesContent":["import { isArray } from 'lodash'\nimport ActivityCheckbox from '../ActivityCheckbox/ActivityCheckbox'\nimport ActivityReference from '../ActivityReference/ActivityReference'\n\nconst allowedRefTypes = [\n 'user',\n 'task',\n 'folder',\n 'version',\n 'representation',\n 'workfile',\n 'product',\n]\nconst sanitizeURL = (url = '') => {\n // ensure that the url is valid https url\n // or a valid {type}:{id} reference\n if (url.startsWith('https://')) return { url, type: 'url' }\n else if (url.startsWith('/')) return { url, type: 'relative' }\n else if (url.includes(':')) {\n const sections = url.split(':')\n const [type, id] = sections\n if (allowedRefTypes.includes(type) && id && sections.length === 2) return { type, id }\n }\n return {}\n}\n\ninterface ATagProps {\n children: React.ReactNode\n href: string\n}\n\ninterface ATagOptions {\n entityId?: string\n projectName?: string\n onReferenceClick: (data: {\n entityId: string\n entityType: string\n projectName?: string\n activityId: string\n }) => void\n activityId: string\n onReferenceTooltip: (data: {\n type: string\n id: string\n label: string\n name: string\n pos: any\n }) => void\n}\n\nexport const aTag = (\n { children, href }: ATagProps,\n { entityId, projectName, onReferenceClick, activityId, onReferenceTooltip }: ATagOptions,\n): React.ReactNode => {\n const { url, type, id } = sanitizeURL(href)\n\n // link is broken in some way\n if (!url && !type && !id) {\n return children\n }\n\n // return regular url\n // if no reference type, return regular link with no href\n if (url || !type || !id) {\n if (type === 'relative' && url) {\n return <Link to={url}>{children}</Link>\n } else {\n return (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {children}\n </a>\n )\n }\n }\n\n const label = (children && children.toString().replace('@', '')) || ''\n // is this ref the same as the current task id\n const isEntity = id === entityId\n\n return (\n <ActivityReference\n {...{ type, id: id.replaceAll('.', '-') }}\n variant={isEntity ? 'filled' : 'surface'}\n onClick={() =>\n type !== 'user' &&\n onReferenceClick({ entityId: id, entityType: type, projectName, activityId })\n }\n onMouseEnter={(e, pos) => onReferenceTooltip({ type, id, label, name: id, pos })}\n >\n {label}\n </ActivityReference>\n )\n}\n\ninterface InputTagProps extends React.InputHTMLAttributes<HTMLInputElement> {\n type: string\n checked?: boolean\n}\n\ninterface InputTagOptions {\n activity: any\n onCheckChange?: (event: React.ChangeEvent<HTMLInputElement>, activity: any) => void\n}\n\nexport const inputTag = (\n { type, checked, ...props }: InputTagProps,\n { activity, onCheckChange }: InputTagOptions,\n): JSX.Element => {\n if (type === 'checkbox') {\n return (\n <ActivityCheckbox\n checked={!!checked}\n onChange={(e) => onCheckChange && onCheckChange(e, activity)}\n />\n )\n } else {\n return <input type={type} disabled {...props} />\n }\n}\n\nimport { BlockCode, QuoteLine } from './ActivityComment.styled'\nimport { Link } from 'react-router-dom'\n// eslint-disable-next-line\ninterface CodeTagProps {\n node: any\n className?: string\n children: React.ReactNode\n}\n\nexport const codeTag = ({ node, className, children }: CodeTagProps): JSX.Element => {\n return <BlockCode>{children}</BlockCode>\n}\n\ninterface BlockquoteTagProps {\n children: React.ReactNode\n}\n\nexport const blockquoteTag = ({ children }: BlockquoteTagProps): JSX.Element => {\n // get children string\n const child = (children as any).find((item: any) => !!item?.props)?.props?.children\n\n if (!child) return <blockquote>{children}</blockquote>\n\n // now split by new lines\n const lines: JSX.Element[] = []\n if (typeof child === 'string') {\n // split by new lines\n const stringLines = child.split('\\n')\n stringLines.forEach((line, i) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n } else if (isArray(child)) {\n const splitLines: any = []\n let index = 0\n ;(child as any).forEach((line: any) => {\n // check index exists on lines otherwise make a new empty array\n if (!splitLines[index]) splitLines[index] = []\n\n if (typeof line === 'string') {\n // check for \\n\n const stringLines = line.split(/(\\n)/)\n\n stringLines.forEach((split) => {\n if (split === '\\n') {\n index++\n // create new array\n splitLines[index] = []\n } else splitLines[index].push(split)\n })\n } else {\n // now add line\n splitLines[index].push(line)\n }\n })\n\n splitLines.forEach((line: any, i: number) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n }\n\n return <blockquote>{lines}</blockquote>\n}\n"],"names":["jsx","Link","BlockCode","QuoteLine","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"ActivityMarkdownComponents.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.tsx"],"sourcesContent":["import { isArray } from 'lodash'\nimport ActivityCheckbox from '../ActivityCheckbox/ActivityCheckbox'\nimport ActivityReference from '../ActivityReference/ActivityReference'\n\nconst allowedRefTypes = [\n 'user',\n 'task',\n 'folder',\n 'version',\n 'representation',\n 'workfile',\n 'product',\n]\nconst sanitizeURL = (url = '') => {\n // ensure that the url is valid https url\n // or a valid {type}:{id} reference\n if (url.startsWith('https://')) return { url, type: 'url' }\n else if (url.startsWith('/')) return { url, type: 'relative' }\n else if (url.includes(':')) {\n const sections = url.split(':')\n const [type, id] = sections\n if (allowedRefTypes.includes(type) && id && sections.length === 2) return { type, id }\n }\n return {}\n}\n\ninterface ATagProps {\n children: React.ReactNode\n href: string\n}\n\ninterface ATagOptions {\n entityId?: string\n projectName?: string\n onReferenceClick: (data: {\n entityId: string\n entityType: string\n projectName?: string\n activityId: string\n }) => void\n activityId: string\n onReferenceTooltip: (data: {\n type: string\n id: string\n label: string\n name: string\n pos: any\n }) => void\n}\n\nexport const aTag = (\n { children, href }: ATagProps,\n { entityId, projectName, onReferenceClick, activityId, onReferenceTooltip }: ATagOptions,\n): React.ReactNode => {\n const { url, type, id } = sanitizeURL(href)\n\n // link is broken in some way\n if (!url && !type && !id) {\n return children\n }\n\n // return regular url\n // if no reference type, return regular link with no href\n if (url || !type || !id) {\n if (type === 'relative' && url) {\n return <Link to={url}>{children}</Link>\n } else {\n return (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {children}\n </a>\n )\n }\n }\n\n const label = (children && children.toString().replace('@', '')) || ''\n // is this ref the same as the current task id\n const isEntity = id === entityId\n\n return (\n <ActivityReference\n {...{ type, id: id.replaceAll('.', '-') }}\n variant={isEntity ? 'filled' : 'surface'}\n onClick={() =>\n type !== 'user' &&\n onReferenceClick({ entityId: id, entityType: type, projectName, activityId })\n }\n onMouseEnter={(e, pos) => onReferenceTooltip({ type, id, label, name: id, pos })}\n >\n {label}\n </ActivityReference>\n )\n}\n\ninterface InputTagProps extends React.InputHTMLAttributes<HTMLInputElement> {\n type: string\n checked?: boolean\n}\n\ninterface InputTagOptions {\n activity: any\n onCheckChange?: (event: React.ChangeEvent<HTMLInputElement>, activity: any) => void\n}\n\nexport const inputTag = (\n { type, checked, ...props }: InputTagProps,\n { activity, onCheckChange }: InputTagOptions,\n): JSX.Element => {\n if (type === 'checkbox') {\n return (\n <ActivityCheckbox\n checked={!!checked}\n onChange={(e) => onCheckChange && onCheckChange(e, activity)}\n />\n )\n } else {\n return <input type={type} disabled {...props} />\n }\n}\n\nimport { BlockCode, QuoteLine } from './ActivityComment.styled'\nimport { Link } from 'react-router-dom'\n// eslint-disable-next-line\ninterface CodeTagProps {\n node: any\n className?: string\n children: React.ReactNode\n}\n\nexport const codeTag = ({ node, className, children }: CodeTagProps): JSX.Element => {\n return <BlockCode>{children}</BlockCode>\n}\n\ninterface BlockquoteTagProps {\n children: React.ReactNode\n}\n\nexport const blockquoteTag = ({ children }: BlockquoteTagProps): JSX.Element => {\n // get children string\n const child = (children as any).find((item: any) => !!item?.props)?.props?.children\n\n if (!child) return <blockquote>{children}</blockquote>\n\n // now split by new lines\n const lines: JSX.Element[] = []\n if (typeof child === 'string') {\n // split by new lines\n const stringLines = child.split('\\n')\n stringLines.forEach((line, i) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n } else if (isArray(child)) {\n const splitLines: any = []\n let index = 0\n ;(child as any).forEach((line: any) => {\n // check index exists on lines otherwise make a new empty array\n if (!splitLines[index]) splitLines[index] = []\n\n if (typeof line === 'string') {\n // check for \\n\n const stringLines = line.split(/(\\n)/)\n\n stringLines.forEach((split) => {\n if (split === '\\n') {\n index++\n // create new array\n splitLines[index] = []\n } else splitLines[index].push(split)\n })\n } else {\n // now add line\n splitLines[index].push(line)\n }\n })\n\n splitLines.forEach((line: any, i: number) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n }\n\n return <blockquote>{lines}</blockquote>\n}\n"],"names":["jsx","Link","BlockCode","QuoteLine","isArray"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../../../../../../_virtual/jsx-runtime.es.js";
2
- import { l as lodashExports } from "../../../../../../_virtual/lodash.es.js";
2
+ import { isArray } from "lodash";
3
3
  import ActivityCheckbox from "../ActivityCheckbox/ActivityCheckbox.es.js";
4
4
  import ActivityReference from "../ActivityReference/ActivityReference.es.js";
5
5
  import { BlockCode, QuoteLine } from "./ActivityComment.styled.es.js";
@@ -74,7 +74,7 @@ const blockquoteTag = ({ children }) => {
74
74
  stringLines.forEach((line, i) => {
75
75
  lines.push(/* @__PURE__ */ jsxRuntimeExports.jsx(QuoteLine, { children: line }, i));
76
76
  });
77
- } else if (lodashExports.isArray(child)) {
77
+ } else if (isArray(child)) {
78
78
  const splitLines = [];
79
79
  let index = 0;
80
80
  child.forEach((line) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityMarkdownComponents.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.tsx"],"sourcesContent":["import { isArray } from 'lodash'\nimport ActivityCheckbox from '../ActivityCheckbox/ActivityCheckbox'\nimport ActivityReference from '../ActivityReference/ActivityReference'\n\nconst allowedRefTypes = [\n 'user',\n 'task',\n 'folder',\n 'version',\n 'representation',\n 'workfile',\n 'product',\n]\nconst sanitizeURL = (url = '') => {\n // ensure that the url is valid https url\n // or a valid {type}:{id} reference\n if (url.startsWith('https://')) return { url, type: 'url' }\n else if (url.startsWith('/')) return { url, type: 'relative' }\n else if (url.includes(':')) {\n const sections = url.split(':')\n const [type, id] = sections\n if (allowedRefTypes.includes(type) && id && sections.length === 2) return { type, id }\n }\n return {}\n}\n\ninterface ATagProps {\n children: React.ReactNode\n href: string\n}\n\ninterface ATagOptions {\n entityId?: string\n projectName?: string\n onReferenceClick: (data: {\n entityId: string\n entityType: string\n projectName?: string\n activityId: string\n }) => void\n activityId: string\n onReferenceTooltip: (data: {\n type: string\n id: string\n label: string\n name: string\n pos: any\n }) => void\n}\n\nexport const aTag = (\n { children, href }: ATagProps,\n { entityId, projectName, onReferenceClick, activityId, onReferenceTooltip }: ATagOptions,\n): React.ReactNode => {\n const { url, type, id } = sanitizeURL(href)\n\n // link is broken in some way\n if (!url && !type && !id) {\n return children\n }\n\n // return regular url\n // if no reference type, return regular link with no href\n if (url || !type || !id) {\n if (type === 'relative' && url) {\n return <Link to={url}>{children}</Link>\n } else {\n return (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {children}\n </a>\n )\n }\n }\n\n const label = (children && children.toString().replace('@', '')) || ''\n // is this ref the same as the current task id\n const isEntity = id === entityId\n\n return (\n <ActivityReference\n {...{ type, id: id.replaceAll('.', '-') }}\n variant={isEntity ? 'filled' : 'surface'}\n onClick={() =>\n type !== 'user' &&\n onReferenceClick({ entityId: id, entityType: type, projectName, activityId })\n }\n onMouseEnter={(e, pos) => onReferenceTooltip({ type, id, label, name: id, pos })}\n >\n {label}\n </ActivityReference>\n )\n}\n\ninterface InputTagProps extends React.InputHTMLAttributes<HTMLInputElement> {\n type: string\n checked?: boolean\n}\n\ninterface InputTagOptions {\n activity: any\n onCheckChange?: (event: React.ChangeEvent<HTMLInputElement>, activity: any) => void\n}\n\nexport const inputTag = (\n { type, checked, ...props }: InputTagProps,\n { activity, onCheckChange }: InputTagOptions,\n): JSX.Element => {\n if (type === 'checkbox') {\n return (\n <ActivityCheckbox\n checked={!!checked}\n onChange={(e) => onCheckChange && onCheckChange(e, activity)}\n />\n )\n } else {\n return <input type={type} disabled {...props} />\n }\n}\n\nimport { BlockCode, QuoteLine } from './ActivityComment.styled'\nimport { Link } from 'react-router-dom'\n// eslint-disable-next-line\ninterface CodeTagProps {\n node: any\n className?: string\n children: React.ReactNode\n}\n\nexport const codeTag = ({ node, className, children }: CodeTagProps): JSX.Element => {\n return <BlockCode>{children}</BlockCode>\n}\n\ninterface BlockquoteTagProps {\n children: React.ReactNode\n}\n\nexport const blockquoteTag = ({ children }: BlockquoteTagProps): JSX.Element => {\n // get children string\n const child = (children as any).find((item: any) => !!item?.props)?.props?.children\n\n if (!child) return <blockquote>{children}</blockquote>\n\n // now split by new lines\n const lines: JSX.Element[] = []\n if (typeof child === 'string') {\n // split by new lines\n const stringLines = child.split('\\n')\n stringLines.forEach((line, i) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n } else if (isArray(child)) {\n const splitLines: any = []\n let index = 0\n ;(child as any).forEach((line: any) => {\n // check index exists on lines otherwise make a new empty array\n if (!splitLines[index]) splitLines[index] = []\n\n if (typeof line === 'string') {\n // check for \\n\n const stringLines = line.split(/(\\n)/)\n\n stringLines.forEach((split) => {\n if (split === '\\n') {\n index++\n // create new array\n splitLines[index] = []\n } else splitLines[index].push(split)\n })\n } else {\n // now add line\n splitLines[index].push(line)\n }\n })\n\n splitLines.forEach((line: any, i: number) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n }\n\n return <blockquote>{lines}</blockquote>\n}\n"],"names":["jsx","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"ActivityMarkdownComponents.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.tsx"],"sourcesContent":["import { isArray } from 'lodash'\nimport ActivityCheckbox from '../ActivityCheckbox/ActivityCheckbox'\nimport ActivityReference from '../ActivityReference/ActivityReference'\n\nconst allowedRefTypes = [\n 'user',\n 'task',\n 'folder',\n 'version',\n 'representation',\n 'workfile',\n 'product',\n]\nconst sanitizeURL = (url = '') => {\n // ensure that the url is valid https url\n // or a valid {type}:{id} reference\n if (url.startsWith('https://')) return { url, type: 'url' }\n else if (url.startsWith('/')) return { url, type: 'relative' }\n else if (url.includes(':')) {\n const sections = url.split(':')\n const [type, id] = sections\n if (allowedRefTypes.includes(type) && id && sections.length === 2) return { type, id }\n }\n return {}\n}\n\ninterface ATagProps {\n children: React.ReactNode\n href: string\n}\n\ninterface ATagOptions {\n entityId?: string\n projectName?: string\n onReferenceClick: (data: {\n entityId: string\n entityType: string\n projectName?: string\n activityId: string\n }) => void\n activityId: string\n onReferenceTooltip: (data: {\n type: string\n id: string\n label: string\n name: string\n pos: any\n }) => void\n}\n\nexport const aTag = (\n { children, href }: ATagProps,\n { entityId, projectName, onReferenceClick, activityId, onReferenceTooltip }: ATagOptions,\n): React.ReactNode => {\n const { url, type, id } = sanitizeURL(href)\n\n // link is broken in some way\n if (!url && !type && !id) {\n return children\n }\n\n // return regular url\n // if no reference type, return regular link with no href\n if (url || !type || !id) {\n if (type === 'relative' && url) {\n return <Link to={url}>{children}</Link>\n } else {\n return (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {children}\n </a>\n )\n }\n }\n\n const label = (children && children.toString().replace('@', '')) || ''\n // is this ref the same as the current task id\n const isEntity = id === entityId\n\n return (\n <ActivityReference\n {...{ type, id: id.replaceAll('.', '-') }}\n variant={isEntity ? 'filled' : 'surface'}\n onClick={() =>\n type !== 'user' &&\n onReferenceClick({ entityId: id, entityType: type, projectName, activityId })\n }\n onMouseEnter={(e, pos) => onReferenceTooltip({ type, id, label, name: id, pos })}\n >\n {label}\n </ActivityReference>\n )\n}\n\ninterface InputTagProps extends React.InputHTMLAttributes<HTMLInputElement> {\n type: string\n checked?: boolean\n}\n\ninterface InputTagOptions {\n activity: any\n onCheckChange?: (event: React.ChangeEvent<HTMLInputElement>, activity: any) => void\n}\n\nexport const inputTag = (\n { type, checked, ...props }: InputTagProps,\n { activity, onCheckChange }: InputTagOptions,\n): JSX.Element => {\n if (type === 'checkbox') {\n return (\n <ActivityCheckbox\n checked={!!checked}\n onChange={(e) => onCheckChange && onCheckChange(e, activity)}\n />\n )\n } else {\n return <input type={type} disabled {...props} />\n }\n}\n\nimport { BlockCode, QuoteLine } from './ActivityComment.styled'\nimport { Link } from 'react-router-dom'\n// eslint-disable-next-line\ninterface CodeTagProps {\n node: any\n className?: string\n children: React.ReactNode\n}\n\nexport const codeTag = ({ node, className, children }: CodeTagProps): JSX.Element => {\n return <BlockCode>{children}</BlockCode>\n}\n\ninterface BlockquoteTagProps {\n children: React.ReactNode\n}\n\nexport const blockquoteTag = ({ children }: BlockquoteTagProps): JSX.Element => {\n // get children string\n const child = (children as any).find((item: any) => !!item?.props)?.props?.children\n\n if (!child) return <blockquote>{children}</blockquote>\n\n // now split by new lines\n const lines: JSX.Element[] = []\n if (typeof child === 'string') {\n // split by new lines\n const stringLines = child.split('\\n')\n stringLines.forEach((line, i) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n } else if (isArray(child)) {\n const splitLines: any = []\n let index = 0\n ;(child as any).forEach((line: any) => {\n // check index exists on lines otherwise make a new empty array\n if (!splitLines[index]) splitLines[index] = []\n\n if (typeof line === 'string') {\n // check for \\n\n const stringLines = line.split(/(\\n)/)\n\n stringLines.forEach((split) => {\n if (split === '\\n') {\n index++\n // create new array\n splitLines[index] = []\n } else splitLines[index].push(split)\n })\n } else {\n // now add line\n splitLines[index].push(line)\n }\n })\n\n splitLines.forEach((line: any, i: number) => {\n lines.push(<QuoteLine key={i}>{line}</QuoteLine>)\n })\n }\n\n return <blockquote>{lines}</blockquote>\n}\n"],"names":["jsx"],"mappings":"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"}
@@ -4,7 +4,7 @@ const React = require("react");
4
4
  const ActivityReference_styled = require("./ActivityReference.styled.cjs.js");
5
5
  const ayonReactComponents = require("@ynput/ayon-react-components");
6
6
  const clsx = require("clsx");
7
- require("../../../../../../_virtual/lodash.cjs.js");
7
+ require("lodash");
8
8
  require("react-toastify");
9
9
  const getEntityTypeIcon = require("../../../../util/getEntityTypeIcon.cjs.js");
10
10
  require("../../../../util/pubsub.cjs.js");
@@ -3,7 +3,7 @@ import { useRef } from "react";
3
3
  import { Reference } from "./ActivityReference.styled.es.js";
4
4
  import { Icon } from "@ynput/ayon-react-components";
5
5
  import clsx from "clsx";
6
- import "../../../../../../_virtual/lodash.es.js";
6
+ import "lodash";
7
7
  import "react-toastify";
8
8
  import { getEntityTypeIcon } from "../../../../util/getEntityTypeIcon.es.js";
9
9
  import "../../../../util/pubsub.es.js";
@@ -9,6 +9,7 @@ const ActivityDate = require("../ActivityDate.cjs.js");
9
9
  require("../../../../context/RemoteModulesContext.cjs.js");
10
10
  const DetailsPanelContext = require("../../../../context/DetailsPanelContext.cjs.js");
11
11
  require("../../../../context/ThumbnailUploaderContext.cjs.js");
12
+ require("../../../../context/SettingsPanelContext.cjs.js");
12
13
  require("../../../../context/pip/PiPProvider.cjs.js");
13
14
  require("react-dom");
14
15
  require("../../../../context/pip/PiPWrapper.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <span className=\"version\">{name}</span>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["useDetailsPanelContext","useState","jsxs","Styled.Container","jsx","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":";;;;;;;;;;;;;;AA+BA,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIA,2CAAuB;AAChD,MAAI,EAAE,YAAY,gBAAgB,WAAW,WAAW,OAAO;AAE/D,QAAM,CAAC,SAAS,UAAU,IAAIC,MAAAA,SAAS,WAAW,UAAU;AAC5D,QAAM,QAAQ;AAEd,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAS,KAAK;AAE1D,QAAM,cAAc,CAAC,WAAmB,cACtC,6CAAe,EAAE,YAAY,CAAC,SAAS,GAAG,WAAW,YAAA;AAGrD,SAAAC,2BAAA,kBAAA,KAACC,mCAAA,EACC,UAAA;AAAA,IAAAC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IACC,SAAS,QAAQ,CAAC,SAAS,UAAU;AACpC,YAAM,EAAE,MAAM,IAAI,WAAW,aAAa,WAAW,YAAY;AACjE,cACG,QAAQ,SAAS,YAChBF,2BAAA,kBAAA,KAACG,wBAAO,MAAP,EAAY,SAAS,MAAM,YAAY,IAAI,SAAS,GACnD,UAAA;AAAA,QAACH,kDAAAI,wBAAAA,SAAA,EACC,UAAA;AAAA,UAAAJ,kDAAC,OACC,EAAA,UAAA;AAAA,YAACA,kDAAAK,wBAAAA,OAAA,EACC,UAAA;AAAA,cAAAH,2BAAAA,kBAAAA,IAAC,UAAM,UAAY,YAAA,CAAA;AAAA,cAClBA,2BAAA,kBAAA,IAAAI,aAAA,SAAA,EAAa,MAAM,WAAW,SAAO,KAAC,CAAA;AAAA,YAAA,GACzC;AAAA,YACCJ,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,WAAW,UAAK,KAAA,CAAA;AAAA,UAAA,GAClC;AAAA,UACAA,2BAAA,kBAAA;AAAA,YAACK,wBAAO;AAAA,YAAP;AAAA,cACE,GAAG,EAAE,YAAY;AAAA,cAClB,UAAU;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAM,kBAAkB,IAAI;AAAA,cACrC,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACC,WAAWL,2BAAAA,kBAAAA,IAACM,wBAAAA,SAAA,EAAgB,UAAQ,QAAA,CAAA;AAAA,MAAA,EAAA,GAnBsB,EAoB7D;AAAA,IAAA,CAGL;AAAA,IACA,WAAW,cAAc,SAAS,SAAS,SAC1CR,2BAAA,kBAAA,KAACS,2BAAK,EAAA,SAAS,MAAM,WAAW,CAAC,OAAO,GACtC,UAAA;AAAA,MAACP,2BAAAA,kBAAAA,IAAAQ,oBAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBR,2BAAAA,kBAAAA,IAAC,UAAM,UAAU,UAAA,cAAc,QAAQ,SAAS,SAAS,KAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;;"}
1
+ {"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <span className=\"version\">{name}</span>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["useDetailsPanelContext","useState","jsxs","Styled.Container","jsx","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":";;;;;;;;;;;;;;;AA+BA,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIA,2CAAuB;AAChD,MAAI,EAAE,YAAY,gBAAgB,WAAW,WAAW,OAAO;AAE/D,QAAM,CAAC,SAAS,UAAU,IAAIC,MAAAA,SAAS,WAAW,UAAU;AAC5D,QAAM,QAAQ;AAEd,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAS,KAAK;AAE1D,QAAM,cAAc,CAAC,WAAmB,cACtC,6CAAe,EAAE,YAAY,CAAC,SAAS,GAAG,WAAW,YAAA;AAGrD,SAAAC,2BAAA,kBAAA,KAACC,mCAAA,EACC,UAAA;AAAA,IAAAC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IACC,SAAS,QAAQ,CAAC,SAAS,UAAU;AACpC,YAAM,EAAE,MAAM,IAAI,WAAW,aAAa,WAAW,YAAY;AACjE,cACG,QAAQ,SAAS,YAChBF,2BAAA,kBAAA,KAACG,wBAAO,MAAP,EAAY,SAAS,MAAM,YAAY,IAAI,SAAS,GACnD,UAAA;AAAA,QAACH,kDAAAI,wBAAAA,SAAA,EACC,UAAA;AAAA,UAAAJ,kDAAC,OACC,EAAA,UAAA;AAAA,YAACA,kDAAAK,wBAAAA,OAAA,EACC,UAAA;AAAA,cAAAH,2BAAAA,kBAAAA,IAAC,UAAM,UAAY,YAAA,CAAA;AAAA,cAClBA,2BAAA,kBAAA,IAAAI,aAAA,SAAA,EAAa,MAAM,WAAW,SAAO,KAAC,CAAA;AAAA,YAAA,GACzC;AAAA,YACCJ,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,WAAW,UAAK,KAAA,CAAA;AAAA,UAAA,GAClC;AAAA,UACAA,2BAAA,kBAAA;AAAA,YAACK,wBAAO;AAAA,YAAP;AAAA,cACE,GAAG,EAAE,YAAY;AAAA,cAClB,UAAU;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAM,kBAAkB,IAAI;AAAA,cACrC,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACC,WAAWL,2BAAAA,kBAAAA,IAACM,wBAAAA,SAAA,EAAgB,UAAQ,QAAA,CAAA;AAAA,MAAA,EAAA,GAnBsB,EAoB7D;AAAA,IAAA,CAGL;AAAA,IACA,WAAW,cAAc,SAAS,SAAS,SAC1CR,2BAAA,kBAAA,KAACS,2BAAK,EAAA,SAAS,MAAM,WAAW,CAAC,OAAO,GACtC,UAAA;AAAA,MAACP,2BAAAA,kBAAAA,IAAAQ,oBAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBR,2BAAAA,kBAAAA,IAAC,UAAM,UAAU,UAAA,cAAc,QAAQ,SAAS,SAAS,KAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;;"}
@@ -8,6 +8,7 @@ import ActivityDate from "../ActivityDate.es.js";
8
8
  import "../../../../context/RemoteModulesContext.es.js";
9
9
  import { useDetailsPanelContext } from "../../../../context/DetailsPanelContext.es.js";
10
10
  import "../../../../context/ThumbnailUploaderContext.es.js";
11
+ import "../../../../context/SettingsPanelContext.es.js";
11
12
  import "../../../../context/pip/PiPProvider.es.js";
12
13
  import "react-dom";
13
14
  import "../../../../context/pip/PiPWrapper.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityVersions.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <span className=\"version\">{name}</span>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["jsxs","Styled.Container","jsx","Styled.Card","Styled.Content","Styled.Title","Styled.Thumbnail","Styled.Comment"],"mappings":";;;;;;;;;;;;;AA+BA,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAChD,MAAI,EAAE,YAAY,gBAAgB,WAAW,WAAW,OAAO;AAE/D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,WAAW,UAAU;AAC5D,QAAM,QAAQ;AAEd,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D,QAAM,cAAc,CAAC,WAAmB,cACtC,6CAAe,EAAE,YAAY,CAAC,SAAS,GAAG,WAAW,YAAA;AAGrD,SAAAA,kCAAA,KAACC,WAAA,EACC,UAAA;AAAA,IAAAC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IACC,SAAS,QAAQ,CAAC,SAAS,UAAU;AACpC,YAAM,EAAE,MAAM,IAAI,WAAW,aAAa,WAAW,YAAY;AACjE,cACG,QAAQ,SAAS,YAChBF,kCAAA,KAACG,MAAA,EAAY,SAAS,MAAM,YAAY,IAAI,SAAS,GACnD,UAAA;AAAA,QAACH,uCAAAI,SAAA,EACC,UAAA;AAAA,UAAAJ,uCAAC,OACC,EAAA,UAAA;AAAA,YAACA,uCAAAK,OAAA,EACC,UAAA;AAAA,cAAAH,kCAAAA,IAAC,UAAM,UAAY,YAAA,CAAA;AAAA,cAClBA,kCAAA,IAAA,cAAA,EAAa,MAAM,WAAW,SAAO,KAAC,CAAA;AAAA,YAAA,GACzC;AAAA,YACCA,kCAAA,IAAA,QAAA,EAAK,WAAU,WAAW,UAAK,KAAA,CAAA;AAAA,UAAA,GAClC;AAAA,UACAA,kCAAA;AAAA,YAACI;AAAAA,YAAA;AAAA,cACE,GAAG,EAAE,YAAY;AAAA,cAClB,UAAU;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAM,kBAAkB,IAAI;AAAA,cACrC,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACC,WAAWJ,kCAAAA,IAACK,SAAA,EAAgB,UAAQ,QAAA,CAAA;AAAA,MAAA,EAAA,GAnBsB,EAoB7D;AAAA,IAAA,CAGL;AAAA,IACA,WAAW,cAAc,SAAS,SAAS,SAC1CP,kCAAA,KAAC,MAAK,EAAA,SAAS,MAAM,WAAW,CAAC,OAAO,GACtC,UAAA;AAAA,MAACE,kCAAAA,IAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBA,kCAAAA,IAAC,UAAM,UAAU,UAAA,cAAc,QAAQ,SAAS,SAAS,KAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"ActivityVersions.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <span className=\"version\">{name}</span>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["jsxs","Styled.Container","jsx","Styled.Card","Styled.Content","Styled.Title","Styled.Thumbnail","Styled.Comment"],"mappings":";;;;;;;;;;;;;;AA+BA,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAChD,MAAI,EAAE,YAAY,gBAAgB,WAAW,WAAW,OAAO;AAE/D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,WAAW,UAAU;AAC5D,QAAM,QAAQ;AAEd,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D,QAAM,cAAc,CAAC,WAAmB,cACtC,6CAAe,EAAE,YAAY,CAAC,SAAS,GAAG,WAAW,YAAA;AAGrD,SAAAA,kCAAA,KAACC,WAAA,EACC,UAAA;AAAA,IAAAC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IACC,SAAS,QAAQ,CAAC,SAAS,UAAU;AACpC,YAAM,EAAE,MAAM,IAAI,WAAW,aAAa,WAAW,YAAY;AACjE,cACG,QAAQ,SAAS,YAChBF,kCAAA,KAACG,MAAA,EAAY,SAAS,MAAM,YAAY,IAAI,SAAS,GACnD,UAAA;AAAA,QAACH,uCAAAI,SAAA,EACC,UAAA;AAAA,UAAAJ,uCAAC,OACC,EAAA,UAAA;AAAA,YAACA,uCAAAK,OAAA,EACC,UAAA;AAAA,cAAAH,kCAAAA,IAAC,UAAM,UAAY,YAAA,CAAA;AAAA,cAClBA,kCAAA,IAAA,cAAA,EAAa,MAAM,WAAW,SAAO,KAAC,CAAA;AAAA,YAAA,GACzC;AAAA,YACCA,kCAAA,IAAA,QAAA,EAAK,WAAU,WAAW,UAAK,KAAA,CAAA;AAAA,UAAA,GAClC;AAAA,UACAA,kCAAA;AAAA,YAACI;AAAAA,YAAA;AAAA,cACE,GAAG,EAAE,YAAY;AAAA,cAClB,UAAU;AAAA,cACV,YAAW;AAAA,cACX,SAAS,MAAM,kBAAkB,IAAI;AAAA,cACrC,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,GACF;AAAA,QACC,WAAWJ,kCAAAA,IAACK,SAAA,EAAgB,UAAQ,QAAA,CAAA;AAAA,MAAA,EAAA,GAnBsB,EAoB7D;AAAA,IAAA,CAGL;AAAA,IACA,WAAW,cAAc,SAAS,SAAS,SAC1CP,kCAAA,KAAC,MAAK,EAAA,SAAS,MAAM,WAAW,CAAC,OAAO,GACtC,UAAA;AAAA,MAACE,kCAAAA,IAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,MAClBA,kCAAAA,IAAC,UAAM,UAAU,UAAA,cAAc,QAAQ,SAAS,SAAS,KAAK,iBAAiB,CAAA;AAAA,IAAA,EACjF,CAAA;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -5,6 +5,7 @@ const FeedContext = require("../../../context/FeedContext.cjs.js");
5
5
  require("../../../../../context/RemoteModulesContext.cjs.js");
6
6
  const DetailsPanelContext = require("../../../../../context/DetailsPanelContext.cjs.js");
7
7
  require("../../../../../context/ThumbnailUploaderContext.cjs.js");
8
+ require("../../../../../context/SettingsPanelContext.cjs.js");
8
9
  require("../../../../../context/pip/PiPProvider.cjs.js");
9
10
  require("react-dom");
10
11
  require("../../../../../context/pip/PiPWrapper.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"useAnnotationsSync.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { FEED_NEW_COMMENT, useFeedContext } from '../../../context/FeedContext'\nimport { useDetailsPanelContext } from '@shared/context'\n\ntype Props = {\n entityId: string\n filesUploading: File[]\n}\n\nexport type AnnotationPreview = any & {\n isAnnotation: true\n}\n\n// annotations are temporary store\nexport const filterEntityAnnotations = (\n annotations: Record<string, any>,\n entityId: string,\n filesUploading: File[],\n): AnnotationPreview[] => {\n return Object.values(annotations)\n .filter(\n (annotation) =>\n annotation.versionId === entityId &&\n !filesUploading.some((file) => file.name === annotation.name),\n )\n .map((annotation) => ({ ...annotation, isAnnotation: true })) as AnnotationPreview[]\n}\n\nconst useAnnotationsSync = ({ entityId, filesUploading }: Props) => {\n const { editingId, setEditingId, annotations, removeAnnotation } = useFeedContext()\n const { onGoToFrame } = useDetailsPanelContext()\n\n // filter out annotations that are for this entity and are NOT uploading\n const filteredAnnotations = filterEntityAnnotations(annotations || [], entityId, filesUploading)\n\n // when annotations change, update the state\n useEffect(() => {\n // open the comment input if there are annotations and something is not being edited already\n if (filteredAnnotations.length > 0 && !editingId) {\n setEditingId(FEED_NEW_COMMENT)\n }\n }, [filteredAnnotations])\n\n const handleGoToAnnotation = (annotation: AnnotationPreview) => {\n const firstFrame = annotation.range[0]\n onGoToFrame?.(firstFrame)\n }\n\n return {\n annotations: filteredAnnotations,\n goToAnnotation: handleGoToAnnotation,\n removeAnnotation,\n }\n}\n\nexport default useAnnotationsSync\n"],"names":["useFeedContext","useDetailsPanelContext","useEffect","FEED_NEW_COMMENT"],"mappings":";;;;;;;;;;AAcO,MAAM,0BAA0B,CACrC,aACA,UACA,mBACwB;AACjB,SAAA,OAAO,OAAO,WAAW,EAC7B;AAAA,IACC,CAAC,eACC,WAAW,cAAc,YACzB,CAAC,eAAe,KAAK,CAAC,SAAS,KAAK,SAAS,WAAW,IAAI;AAAA,EAAA,EAE/D,IAAI,CAAC,gBAAgB,EAAE,GAAG,YAAY,cAAc,KAAA,EAAO;AAChE;AAEA,MAAM,qBAAqB,CAAC,EAAE,UAAU,qBAA4B;AAClE,QAAM,EAAE,WAAW,cAAc,aAAa,iBAAA,IAAqBA,YAAAA,eAAe;AAC5E,QAAA,EAAE,YAAY,IAAIC,2CAAuB;AAG/C,QAAM,sBAAsB,wBAAwB,eAAe,CAAA,GAAI,UAAU,cAAc;AAG/FC,QAAAA,UAAU,MAAM;AAEd,QAAI,oBAAoB,SAAS,KAAK,CAAC,WAAW;AAChD,mBAAaC,YAAAA,gBAAgB;AAAA,IAAA;AAAA,EAC/B,GACC,CAAC,mBAAmB,CAAC;AAElB,QAAA,uBAAuB,CAAC,eAAkC;AACxD,UAAA,aAAa,WAAW,MAAM,CAAC;AACrC,+CAAc;AAAA,EAChB;AAEO,SAAA;AAAA,IACL,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,EACF;AACF;;;"}
1
+ {"version":3,"file":"useAnnotationsSync.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { FEED_NEW_COMMENT, useFeedContext } from '../../../context/FeedContext'\nimport { useDetailsPanelContext } from '@shared/context'\n\ntype Props = {\n entityId: string\n filesUploading: File[]\n}\n\nexport type AnnotationPreview = any & {\n isAnnotation: true\n}\n\n// annotations are temporary store\nexport const filterEntityAnnotations = (\n annotations: Record<string, any>,\n entityId: string,\n filesUploading: File[],\n): AnnotationPreview[] => {\n return Object.values(annotations)\n .filter(\n (annotation) =>\n annotation.versionId === entityId &&\n !filesUploading.some((file) => file.name === annotation.name),\n )\n .map((annotation) => ({ ...annotation, isAnnotation: true })) as AnnotationPreview[]\n}\n\nconst useAnnotationsSync = ({ entityId, filesUploading }: Props) => {\n const { editingId, setEditingId, annotations, removeAnnotation } = useFeedContext()\n const { onGoToFrame } = useDetailsPanelContext()\n\n // filter out annotations that are for this entity and are NOT uploading\n const filteredAnnotations = filterEntityAnnotations(annotations || [], entityId, filesUploading)\n\n // when annotations change, update the state\n useEffect(() => {\n // open the comment input if there are annotations and something is not being edited already\n if (filteredAnnotations.length > 0 && !editingId) {\n setEditingId(FEED_NEW_COMMENT)\n }\n }, [filteredAnnotations])\n\n const handleGoToAnnotation = (annotation: AnnotationPreview) => {\n const firstFrame = annotation.range[0]\n onGoToFrame?.(firstFrame)\n }\n\n return {\n annotations: filteredAnnotations,\n goToAnnotation: handleGoToAnnotation,\n removeAnnotation,\n }\n}\n\nexport default useAnnotationsSync\n"],"names":["useFeedContext","useDetailsPanelContext","useEffect","FEED_NEW_COMMENT"],"mappings":";;;;;;;;;;;AAcO,MAAM,0BAA0B,CACrC,aACA,UACA,mBACwB;AACjB,SAAA,OAAO,OAAO,WAAW,EAC7B;AAAA,IACC,CAAC,eACC,WAAW,cAAc,YACzB,CAAC,eAAe,KAAK,CAAC,SAAS,KAAK,SAAS,WAAW,IAAI;AAAA,EAAA,EAE/D,IAAI,CAAC,gBAAgB,EAAE,GAAG,YAAY,cAAc,KAAA,EAAO;AAChE;AAEA,MAAM,qBAAqB,CAAC,EAAE,UAAU,qBAA4B;AAClE,QAAM,EAAE,WAAW,cAAc,aAAa,iBAAA,IAAqBA,YAAAA,eAAe;AAC5E,QAAA,EAAE,YAAY,IAAIC,2CAAuB;AAG/C,QAAM,sBAAsB,wBAAwB,eAAe,CAAA,GAAI,UAAU,cAAc;AAG/FC,QAAAA,UAAU,MAAM;AAEd,QAAI,oBAAoB,SAAS,KAAK,CAAC,WAAW;AAChD,mBAAaC,YAAAA,gBAAgB;AAAA,IAAA;AAAA,EAC/B,GACC,CAAC,mBAAmB,CAAC;AAElB,QAAA,uBAAuB,CAAC,eAAkC;AACxD,UAAA,aAAa,WAAW,MAAM,CAAC;AACrC,+CAAc;AAAA,EAChB;AAEO,SAAA;AAAA,IACL,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,EACF;AACF;;;"}
@@ -3,6 +3,7 @@ import { useFeedContext, FEED_NEW_COMMENT } from "../../../context/FeedContext.e
3
3
  import "../../../../../context/RemoteModulesContext.es.js";
4
4
  import { useDetailsPanelContext } from "../../../../../context/DetailsPanelContext.es.js";
5
5
  import "../../../../../context/ThumbnailUploaderContext.es.js";
6
+ import "../../../../../context/SettingsPanelContext.es.js";
6
7
  import "../../../../../context/pip/PiPProvider.es.js";
7
8
  import "react-dom";
8
9
  import "../../../../../context/pip/PiPWrapper.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useAnnotationsSync.es.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { FEED_NEW_COMMENT, useFeedContext } from '../../../context/FeedContext'\nimport { useDetailsPanelContext } from '@shared/context'\n\ntype Props = {\n entityId: string\n filesUploading: File[]\n}\n\nexport type AnnotationPreview = any & {\n isAnnotation: true\n}\n\n// annotations are temporary store\nexport const filterEntityAnnotations = (\n annotations: Record<string, any>,\n entityId: string,\n filesUploading: File[],\n): AnnotationPreview[] => {\n return Object.values(annotations)\n .filter(\n (annotation) =>\n annotation.versionId === entityId &&\n !filesUploading.some((file) => file.name === annotation.name),\n )\n .map((annotation) => ({ ...annotation, isAnnotation: true })) as AnnotationPreview[]\n}\n\nconst useAnnotationsSync = ({ entityId, filesUploading }: Props) => {\n const { editingId, setEditingId, annotations, removeAnnotation } = useFeedContext()\n const { onGoToFrame } = useDetailsPanelContext()\n\n // filter out annotations that are for this entity and are NOT uploading\n const filteredAnnotations = filterEntityAnnotations(annotations || [], entityId, filesUploading)\n\n // when annotations change, update the state\n useEffect(() => {\n // open the comment input if there are annotations and something is not being edited already\n if (filteredAnnotations.length > 0 && !editingId) {\n setEditingId(FEED_NEW_COMMENT)\n }\n }, [filteredAnnotations])\n\n const handleGoToAnnotation = (annotation: AnnotationPreview) => {\n const firstFrame = annotation.range[0]\n onGoToFrame?.(firstFrame)\n }\n\n return {\n annotations: filteredAnnotations,\n goToAnnotation: handleGoToAnnotation,\n removeAnnotation,\n }\n}\n\nexport default useAnnotationsSync\n"],"names":[],"mappings":";;;;;;;;AAcO,MAAM,0BAA0B,CACrC,aACA,UACA,mBACwB;AACjB,SAAA,OAAO,OAAO,WAAW,EAC7B;AAAA,IACC,CAAC,eACC,WAAW,cAAc,YACzB,CAAC,eAAe,KAAK,CAAC,SAAS,KAAK,SAAS,WAAW,IAAI;AAAA,EAAA,EAE/D,IAAI,CAAC,gBAAgB,EAAE,GAAG,YAAY,cAAc,KAAA,EAAO;AAChE;AAEA,MAAM,qBAAqB,CAAC,EAAE,UAAU,qBAA4B;AAClE,QAAM,EAAE,WAAW,cAAc,aAAa,iBAAA,IAAqB,eAAe;AAC5E,QAAA,EAAE,YAAY,IAAI,uBAAuB;AAG/C,QAAM,sBAAsB,wBAAwB,eAAe,CAAA,GAAI,UAAU,cAAc;AAG/F,YAAU,MAAM;AAEd,QAAI,oBAAoB,SAAS,KAAK,CAAC,WAAW;AAChD,mBAAa,gBAAgB;AAAA,IAAA;AAAA,EAC/B,GACC,CAAC,mBAAmB,CAAC;AAElB,QAAA,uBAAuB,CAAC,eAAkC;AACxD,UAAA,aAAa,WAAW,MAAM,CAAC;AACrC,+CAAc;AAAA,EAChB;AAEO,SAAA;AAAA,IACL,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useAnnotationsSync.es.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { FEED_NEW_COMMENT, useFeedContext } from '../../../context/FeedContext'\nimport { useDetailsPanelContext } from '@shared/context'\n\ntype Props = {\n entityId: string\n filesUploading: File[]\n}\n\nexport type AnnotationPreview = any & {\n isAnnotation: true\n}\n\n// annotations are temporary store\nexport const filterEntityAnnotations = (\n annotations: Record<string, any>,\n entityId: string,\n filesUploading: File[],\n): AnnotationPreview[] => {\n return Object.values(annotations)\n .filter(\n (annotation) =>\n annotation.versionId === entityId &&\n !filesUploading.some((file) => file.name === annotation.name),\n )\n .map((annotation) => ({ ...annotation, isAnnotation: true })) as AnnotationPreview[]\n}\n\nconst useAnnotationsSync = ({ entityId, filesUploading }: Props) => {\n const { editingId, setEditingId, annotations, removeAnnotation } = useFeedContext()\n const { onGoToFrame } = useDetailsPanelContext()\n\n // filter out annotations that are for this entity and are NOT uploading\n const filteredAnnotations = filterEntityAnnotations(annotations || [], entityId, filesUploading)\n\n // when annotations change, update the state\n useEffect(() => {\n // open the comment input if there are annotations and something is not being edited already\n if (filteredAnnotations.length > 0 && !editingId) {\n setEditingId(FEED_NEW_COMMENT)\n }\n }, [filteredAnnotations])\n\n const handleGoToAnnotation = (annotation: AnnotationPreview) => {\n const firstFrame = annotation.range[0]\n onGoToFrame?.(firstFrame)\n }\n\n return {\n annotations: filteredAnnotations,\n goToAnnotation: handleGoToAnnotation,\n removeAnnotation,\n }\n}\n\nexport default useAnnotationsSync\n"],"names":[],"mappings":";;;;;;;;;AAcO,MAAM,0BAA0B,CACrC,aACA,UACA,mBACwB;AACjB,SAAA,OAAO,OAAO,WAAW,EAC7B;AAAA,IACC,CAAC,eACC,WAAW,cAAc,YACzB,CAAC,eAAe,KAAK,CAAC,SAAS,KAAK,SAAS,WAAW,IAAI;AAAA,EAAA,EAE/D,IAAI,CAAC,gBAAgB,EAAE,GAAG,YAAY,cAAc,KAAA,EAAO;AAChE;AAEA,MAAM,qBAAqB,CAAC,EAAE,UAAU,qBAA4B;AAClE,QAAM,EAAE,WAAW,cAAc,aAAa,iBAAA,IAAqB,eAAe;AAC5E,QAAA,EAAE,YAAY,IAAI,uBAAuB;AAG/C,QAAM,sBAAsB,wBAAwB,eAAe,CAAA,GAAI,UAAU,cAAc;AAG/F,YAAU,MAAM;AAEd,QAAI,oBAAoB,SAAS,KAAK,CAAC,WAAW;AAChD,mBAAa,gBAAgB;AAAA,IAAA;AAAA,EAC/B,GACC,CAAC,mBAAmB,CAAC;AAElB,QAAA,uBAAuB,CAAC,eAAkC;AACxD,UAAA,aAAa,WAAW,MAAM,CAAC;AACrC,+CAAc;AAAA,EAChB;AAEO,SAAA;AAAA,IACL,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,EACF;AACF;"}
@@ -7,6 +7,7 @@ const useReferenceTooltip = require("../../../hooks/useReferenceTooltip.cjs.js")
7
7
  require("../../../../../context/RemoteModulesContext.cjs.js");
8
8
  const DetailsPanelContext = require("../../../../../context/DetailsPanelContext.cjs.js");
9
9
  require("../../../../../context/ThumbnailUploaderContext.cjs.js");
10
+ require("../../../../../context/SettingsPanelContext.cjs.js");
10
11
  require("../../../../../context/pip/PiPProvider.cjs.js");
11
12
  require("react-dom");
12
13
  require("../../../../../context/pip/PiPWrapper.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"useMentionLink.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useMentionLink.ts"],"sourcesContent":["import { Quill } from 'react-quill-ayon'\nimport useReferenceTooltip from '../../../hooks/useReferenceTooltip'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\nconst Inline = Quill.import('blots/inline')\n\ninterface MentionLinkOptions {\n projectName: string\n}\n\n// custom mention links\nconst useMentionLink = ({ projectName }: MentionLinkOptions) => {\n const { openSlideOut } = useDetailsPanelContext()\n const [, setRefTooltip] = useReferenceTooltip()\n\n // special link for mentions\n // @ts-ignore\n class MentionLink extends Inline {\n static blotName = 'mention'\n static tagName = 'MENTION'\n // @ts-ignore\n static create(value) {\n if (!value || typeof value !== 'string') return document.createElement(MentionLink.tagName)\n\n const node = super.create(value)\n // check if this is a mention url\n const valueMentionType = value.split(':').shift() as string\n const valueMentionId = value.split(':').pop() as string\n\n node.classList.add('mention')\n node.classList.add(valueMentionType)\n // add id=id-ref\n node.setAttribute('id', `ref-${valueMentionId}`)\n // set as not editable\n node.setAttribute('contenteditable', 'false')\n\n // add data-value attribute\n node.setAttribute('data-value', value)\n\n // on mouse click open reference\n node.addEventListener('click', (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault()\n if (valueMentionType === 'user') return\n\n openSlideOut({\n entityId: valueMentionId,\n entityType: valueMentionType as DetailsPanelEntityType,\n projectName,\n })\n })\n\n // add on mouse enter\n node.addEventListener('mouseenter', (e: React.KeyboardEvent<HTMLElement>) => {\n const target = e.target || {}\n const label = (target as HTMLElement).innerText.replace('@', '')\n // get the center of the reference\n const { x, y, width } = (target as HTMLElement).getBoundingClientRect()\n const pos = { left: x + width / 2, top: y }\n\n setRefTooltip({\n id: valueMentionId,\n name: valueMentionId,\n type: valueMentionType,\n label,\n pos,\n })\n })\n\n return node || ''\n }\n\n // Added value method to retrieve the value from the DOM node\n static value(node: any) {\n return node.getAttribute('data-value')\n }\n }\n\n // @ts-ignore\n MentionLink.sanitize = (url) => url\n // @ts-ignore\n Quill.register(MentionLink, true)\n}\n\nexport default useMentionLink\n"],"names":["Quill","useDetailsPanelContext"],"mappings":";;;;;;;;;;;;AAKA,MAAM,SAASA,WAAAA,MAAM,OAAO,cAAc;AAO1C,MAAM,iBAAiB,CAAC,EAAE,kBAAsC;AACxD,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAChD,QAAM,CAAG,EAAA,aAAa,IAAI,oBAAoB;AAI9C,QAAM,eAAN,MAAM,qBAAoB,OAAO;AAAA;AAAA,IAI/B,OAAO,OAAO,OAAO;AACf,UAAA,CAAC,SAAS,OAAO,UAAU,SAAiB,QAAA,SAAS,cAAc,aAAY,OAAO;AAEpF,YAAA,OAAO,MAAM,OAAO,KAAK;AAE/B,YAAM,mBAAmB,MAAM,MAAM,GAAG,EAAE,MAAM;AAChD,YAAM,iBAAiB,MAAM,MAAM,GAAG,EAAE,IAAI;AAEvC,WAAA,UAAU,IAAI,SAAS;AACvB,WAAA,UAAU,IAAI,gBAAgB;AAEnC,WAAK,aAAa,MAAM,OAAO,cAAc,EAAE;AAE1C,WAAA,aAAa,mBAAmB,OAAO;AAGvC,WAAA,aAAa,cAAc,KAAK;AAGhC,WAAA,iBAAiB,SAAS,CAAC,MAAqC;AACnE,UAAE,eAAe;AACjB,YAAI,qBAAqB,OAAQ;AAEpB,qBAAA;AAAA,UACX,UAAU;AAAA,UACV,YAAY;AAAA,UACZ;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAGI,WAAA,iBAAiB,cAAc,CAAC,MAAwC;AACrE,cAAA,SAAS,EAAE,UAAU,CAAC;AAC5B,cAAM,QAAS,OAAuB,UAAU,QAAQ,KAAK,EAAE;AAE/D,cAAM,EAAE,GAAG,GAAG,MAAM,IAAK,OAAuB,sBAAsB;AACtE,cAAM,MAAM,EAAE,MAAM,IAAI,QAAQ,GAAG,KAAK,EAAE;AAE5B,sBAAA;AAAA,UACZ,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAED,aAAO,QAAQ;AAAA,IAAA;AAAA;AAAA,IAIjB,OAAO,MAAM,MAAW;AACf,aAAA,KAAK,aAAa,YAAY;AAAA,IAAA;AAAA,EACvC;AAxDA,gBADI,cACG,YAAW;AAClB,gBAFI,cAEG,WAAU;AAFnB,MAAM,cAAN;AA6DY,cAAA,WAAW,CAAC,QAAQ;AAE1BD,mBAAA,SAAS,aAAa,IAAI;AAClC;;"}
1
+ {"version":3,"file":"useMentionLink.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useMentionLink.ts"],"sourcesContent":["import { Quill } from 'react-quill-ayon'\nimport useReferenceTooltip from '../../../hooks/useReferenceTooltip'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\n\nconst Inline = Quill.import('blots/inline')\n\ninterface MentionLinkOptions {\n projectName: string\n}\n\n// custom mention links\nconst useMentionLink = ({ projectName }: MentionLinkOptions) => {\n const { openSlideOut } = useDetailsPanelContext()\n const [, setRefTooltip] = useReferenceTooltip()\n\n // special link for mentions\n // @ts-ignore\n class MentionLink extends Inline {\n static blotName = 'mention'\n static tagName = 'MENTION'\n // @ts-ignore\n static create(value) {\n if (!value || typeof value !== 'string') return document.createElement(MentionLink.tagName)\n\n const node = super.create(value)\n // check if this is a mention url\n const valueMentionType = value.split(':').shift() as string\n const valueMentionId = value.split(':').pop() as string\n\n node.classList.add('mention')\n node.classList.add(valueMentionType)\n // add id=id-ref\n node.setAttribute('id', `ref-${valueMentionId}`)\n // set as not editable\n node.setAttribute('contenteditable', 'false')\n\n // add data-value attribute\n node.setAttribute('data-value', value)\n\n // on mouse click open reference\n node.addEventListener('click', (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault()\n if (valueMentionType === 'user') return\n\n openSlideOut({\n entityId: valueMentionId,\n entityType: valueMentionType as DetailsPanelEntityType,\n projectName,\n })\n })\n\n // add on mouse enter\n node.addEventListener('mouseenter', (e: React.KeyboardEvent<HTMLElement>) => {\n const target = e.target || {}\n const label = (target as HTMLElement).innerText.replace('@', '')\n // get the center of the reference\n const { x, y, width } = (target as HTMLElement).getBoundingClientRect()\n const pos = { left: x + width / 2, top: y }\n\n setRefTooltip({\n id: valueMentionId,\n name: valueMentionId,\n type: valueMentionType,\n label,\n pos,\n })\n })\n\n return node || ''\n }\n\n // Added value method to retrieve the value from the DOM node\n static value(node: any) {\n return node.getAttribute('data-value')\n }\n }\n\n // @ts-ignore\n MentionLink.sanitize = (url) => url\n // @ts-ignore\n Quill.register(MentionLink, true)\n}\n\nexport default useMentionLink\n"],"names":["Quill","useDetailsPanelContext"],"mappings":";;;;;;;;;;;;;AAKA,MAAM,SAASA,WAAAA,MAAM,OAAO,cAAc;AAO1C,MAAM,iBAAiB,CAAC,EAAE,kBAAsC;AACxD,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAChD,QAAM,CAAG,EAAA,aAAa,IAAI,oBAAoB;AAI9C,QAAM,eAAN,MAAM,qBAAoB,OAAO;AAAA;AAAA,IAI/B,OAAO,OAAO,OAAO;AACf,UAAA,CAAC,SAAS,OAAO,UAAU,SAAiB,QAAA,SAAS,cAAc,aAAY,OAAO;AAEpF,YAAA,OAAO,MAAM,OAAO,KAAK;AAE/B,YAAM,mBAAmB,MAAM,MAAM,GAAG,EAAE,MAAM;AAChD,YAAM,iBAAiB,MAAM,MAAM,GAAG,EAAE,IAAI;AAEvC,WAAA,UAAU,IAAI,SAAS;AACvB,WAAA,UAAU,IAAI,gBAAgB;AAEnC,WAAK,aAAa,MAAM,OAAO,cAAc,EAAE;AAE1C,WAAA,aAAa,mBAAmB,OAAO;AAGvC,WAAA,aAAa,cAAc,KAAK;AAGhC,WAAA,iBAAiB,SAAS,CAAC,MAAqC;AACnE,UAAE,eAAe;AACjB,YAAI,qBAAqB,OAAQ;AAEpB,qBAAA;AAAA,UACX,UAAU;AAAA,UACV,YAAY;AAAA,UACZ;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAGI,WAAA,iBAAiB,cAAc,CAAC,MAAwC;AACrE,cAAA,SAAS,EAAE,UAAU,CAAC;AAC5B,cAAM,QAAS,OAAuB,UAAU,QAAQ,KAAK,EAAE;AAE/D,cAAM,EAAE,GAAG,GAAG,MAAM,IAAK,OAAuB,sBAAsB;AACtE,cAAM,MAAM,EAAE,MAAM,IAAI,QAAQ,GAAG,KAAK,EAAE;AAE5B,sBAAA;AAAA,UACZ,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAED,aAAO,QAAQ;AAAA,IAAA;AAAA;AAAA,IAIjB,OAAO,MAAM,MAAW;AACf,aAAA,KAAK,aAAa,YAAY;AAAA,IAAA;AAAA,EACvC;AAxDA,gBADI,cACG,YAAW;AAClB,gBAFI,cAEG,WAAU;AAFnB,MAAM,cAAN;AA6DY,cAAA,WAAW,CAAC,QAAQ;AAE1BD,mBAAA,SAAS,aAAa,IAAI;AAClC;;"}
@@ -6,6 +6,7 @@ import useReferenceTooltip from "../../../hooks/useReferenceTooltip.es.js";
6
6
  import "../../../../../context/RemoteModulesContext.es.js";
7
7
  import { useDetailsPanelContext } from "../../../../../context/DetailsPanelContext.es.js";
8
8
  import "../../../../../context/ThumbnailUploaderContext.es.js";
9
+ import "../../../../../context/SettingsPanelContext.es.js";
9
10
  import "../../../../../context/pip/PiPProvider.es.js";
10
11
  import "react-dom";
11
12
  import "../../../../../context/pip/PiPWrapper.es.js";