@ynput/ayon-frontend-shared 0.2.13 → 0.2.15

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 (382) hide show
  1. package/dist/DetailsPanel.cjs.js +8 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +8 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +5 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +5 -0
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/Slicer.cjs.js +2 -0
  10. package/dist/Slicer.cjs.js.map +1 -1
  11. package/dist/Slicer.es.js +3 -1
  12. package/dist/Slicer.es.js.map +1 -1
  13. package/dist/_virtual/index.cjs10.js +3 -5
  14. package/dist/_virtual/index.cjs10.js.map +1 -1
  15. package/dist/_virtual/index.cjs7.js +5 -3
  16. package/dist/_virtual/index.cjs7.js.map +1 -1
  17. package/dist/_virtual/index.cjs8.js +4 -4
  18. package/dist/_virtual/index.cjs9.js +4 -4
  19. package/dist/_virtual/index.es10.js +2 -5
  20. package/dist/_virtual/index.es10.js.map +1 -1
  21. package/dist/_virtual/index.es7.js +5 -2
  22. package/dist/_virtual/index.es7.js.map +1 -1
  23. package/dist/_virtual/index.es8.js +4 -4
  24. package/dist/_virtual/index.es9.js +4 -4
  25. package/dist/api.cjs.js +2 -0
  26. package/dist/api.cjs.js.map +1 -1
  27. package/dist/api.es.js +3 -1
  28. package/dist/components.cjs.js +15 -0
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +16 -1
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/context.cjs.js +4 -0
  33. package/dist/context.cjs.js.map +1 -1
  34. package/dist/context.es.js +4 -0
  35. package/dist/context.es.js.map +1 -1
  36. package/dist/index.cjs.js +8 -0
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.es.js +8 -0
  39. package/dist/index.es.js.map +1 -1
  40. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  41. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  47. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  48. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  50. package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/addons.es.js.map +1 -1
  52. package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
  53. package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
  56. package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
  57. package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  59. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/events.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/events.es.js.map +1 -1
  62. package/dist/shared/src/api/generated/files.cjs.js +5 -0
  63. package/dist/shared/src/api/generated/files.cjs.js.map +1 -1
  64. package/dist/shared/src/api/generated/files.es.js +5 -0
  65. package/dist/shared/src/api/generated/files.es.js.map +1 -1
  66. package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
  67. package/dist/shared/src/api/generated/operations.es.js.map +1 -1
  68. package/dist/shared/src/api/generated/projects.cjs.js +16 -0
  69. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  70. package/dist/shared/src/api/generated/projects.es.js +16 -0
  71. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  72. package/dist/shared/src/api/generated/reviewables.cjs.js.map +1 -1
  73. package/dist/shared/src/api/generated/reviewables.es.js.map +1 -1
  74. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  75. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  76. package/dist/shared/src/api/generated/tasks.cjs.js +8 -0
  77. package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
  78. package/dist/shared/src/api/generated/tasks.es.js +8 -0
  79. package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
  80. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  81. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +66 -4
  83. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/overview/getOverview.es.js +66 -4
  85. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  86. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
  87. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  88. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
  89. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  90. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +8 -0
  91. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  92. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +8 -0
  93. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  94. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +69 -0
  95. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -0
  96. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +69 -0
  97. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -0
  98. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +48 -0
  99. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -0
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -0
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -0
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +102 -0
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -0
  104. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +102 -0
  105. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -0
  106. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +13 -0
  107. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -0
  108. package/dist/shared/src/components/Powerpack/PricingLink.es.js +13 -0
  109. package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -0
  110. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +4 -10
  111. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  112. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +1 -7
  113. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  114. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +5 -1
  115. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  116. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -1
  117. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  118. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js +13 -0
  119. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js.map +1 -0
  120. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js +13 -0
  121. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js.map +1 -0
  122. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +50 -0
  123. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -0
  124. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +50 -0
  125. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -0
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +8 -0
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -0
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +8 -0
  131. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +8 -0
  133. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +8 -0
  135. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  136. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -0
  137. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js +167 -0
  139. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js.map +1 -0
  140. package/dist/shared/src/components/SearchFilter/filterDates.es.js +167 -0
  141. package/dist/shared/src/components/SearchFilter/filterDates.es.js.map +1 -0
  142. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +547 -0
  143. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -0
  144. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +547 -0
  145. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -0
  146. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +6 -2
  147. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  148. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -2
  149. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  150. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +19 -3
  151. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  152. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +20 -4
  153. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  154. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
  155. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  156. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
  157. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +8 -0
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -0
  161. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
  163. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
  165. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +8 -0
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -0
  169. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +8 -0
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -0
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +8 -0
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -0
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +8 -0
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +8 -0
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +9 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -0
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +1 -0
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
  191. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
  193. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  194. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
  195. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
  197. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  198. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -1
  199. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -1
  201. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  202. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
  203. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  204. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
  205. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  206. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +5 -1
  207. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +5 -1
  209. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  210. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js.map +1 -1
  212. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
  213. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
  215. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +22 -11
  217. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +22 -11
  219. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js +6 -0
  221. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js +6 -0
  223. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +3 -3
  225. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +3 -3
  227. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -0
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +1 -0
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js +2 -1
  237. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js +2 -1
  239. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +45 -16
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +45 -16
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +45 -7
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +45 -7
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +202 -0
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -0
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +202 -0
  251. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -0
  252. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -6
  253. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -6
  255. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +11 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +11 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +22 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +22 -2
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js +116 -0
  265. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +1 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js +116 -0
  267. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +1 -0
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -0
  269. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -0
  271. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +137 -0
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +137 -0
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.cjs.js → useBuildProjectDataTable.cjs.js} +3 -3
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -0
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.es.js → useBuildProjectDataTable.es.js} +3 -3
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -0
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +39 -19
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +39 -19
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +108 -0
  289. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -0
  290. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +108 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js +29 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js.map +1 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js +30 -0
  295. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js.map +1 -0
  296. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +8 -0
  297. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +8 -0
  299. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  300. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js +37 -0
  301. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +1 -0
  302. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js +37 -0
  303. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +1 -0
  304. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -0
  305. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  306. package/dist/shared/src/context/DetailsPanelContext.es.js +1 -0
  307. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  308. package/dist/shared/src/context/PowerpackContext.cjs.js +65 -0
  309. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -0
  310. package/dist/shared/src/context/PowerpackContext.es.js +65 -0
  311. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -0
  312. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -0
  313. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  314. package/dist/shared/src/hooks/useEntityUpdate.es.js +1 -0
  315. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  316. package/dist/shared/src/util/getAttributeIcon.cjs.js +7 -1
  317. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  318. package/dist/shared/src/util/getAttributeIcon.es.js +7 -1
  319. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  320. package/dist/shared/src/util/getEntityTypeIcon.cjs.js +9 -0
  321. package/dist/shared/src/util/getEntityTypeIcon.cjs.js.map +1 -1
  322. package/dist/shared/src/util/getEntityTypeIcon.es.js +9 -0
  323. package/dist/shared/src/util/getEntityTypeIcon.es.js.map +1 -1
  324. package/dist/types/api/generated/actions.d.ts +3 -2
  325. package/dist/types/api/generated/addons.d.ts +8 -1
  326. package/dist/types/api/generated/anatomy.d.ts +1 -14
  327. package/dist/types/api/generated/attributes.d.ts +4 -2
  328. package/dist/types/api/generated/configuration.d.ts +6 -0
  329. package/dist/types/api/generated/entityLists.d.ts +2 -0
  330. package/dist/types/api/generated/events.d.ts +1 -1
  331. package/dist/types/api/generated/files.d.ts +11 -0
  332. package/dist/types/api/generated/operations.d.ts +1 -1
  333. package/dist/types/api/generated/projects.d.ts +59 -0
  334. package/dist/types/api/generated/reviewables.d.ts +1 -0
  335. package/dist/types/api/generated/system.d.ts +5 -2
  336. package/dist/types/api/generated/tasks.d.ts +48 -9
  337. package/dist/types/api/generated/users.d.ts +1 -4
  338. package/dist/types/api/queries/overview/getOverview.d.ts +350 -482
  339. package/dist/types/api/queries/project/getProject.d.ts +6 -0
  340. package/dist/types/components/Powerpack/PowerpackButton.d.ts +7 -0
  341. package/dist/types/components/Powerpack/PowerpackDialog.d.ts +4 -0
  342. package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +8 -0
  343. package/dist/types/components/Powerpack/PricingLink.d.ts +4 -0
  344. package/dist/types/components/Powerpack/index.d.ts +3 -0
  345. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -1
  346. package/dist/types/components/ProjectTableSettings/TableSettings.styled.d.ts +1 -0
  347. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +10 -0
  348. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  349. package/dist/types/components/SearchFilter/filterDates.d.ts +56 -0
  350. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  351. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +30 -0
  352. package/dist/types/components/index.d.ts +2 -0
  353. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +1 -1
  354. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +1 -1
  355. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +4 -3
  356. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +5 -1
  357. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +3 -1
  358. package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +11 -0
  359. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +7 -0
  360. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +11 -5
  361. package/dist/types/containers/ProjectTreeTable/context/ProjectTableModulesContext.d.ts +12 -0
  362. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +1 -0
  363. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +25 -0
  364. package/dist/types/containers/ProjectTreeTable/hooks/{useOverviewTable.d.ts → useBuildProjectDataTable.d.ts} +3 -1
  365. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +2 -0
  366. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  367. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +13 -5
  368. package/dist/types/containers/ProjectTreeTable/widgets/GroupHeaderWidget.d.ts +13 -0
  369. package/dist/types/containers/ProjectTreeTable/widgets/LoadMoreWidget.d.ts +8 -0
  370. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  371. package/dist/types/containers/Slicer/index.d.ts +1 -0
  372. package/dist/types/containers/Slicer/useFiltersWithHierarchy.d.ts +10 -0
  373. package/dist/types/context/PowerpackContext.d.ts +20 -0
  374. package/dist/types/context/index.d.ts +1 -0
  375. package/dist/types/util/getAttributeIcon.d.ts +1 -1
  376. package/dist/types/util/getEntityTypeIcon.d.ts +1 -0
  377. package/dist/util.cjs.js +1 -0
  378. package/dist/util.cjs.js.map +1 -1
  379. package/dist/util.es.js +2 -1
  380. package/package.json +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +0 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useAnnotationsUpload.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.ts"],"sourcesContent":["import { uploadFile } from '../helpers'\nimport { toast } from 'react-toastify'\nimport { useFeedContext } from '../../../context/FeedContext'\nimport { SavedAnnotationMetadata } from '../../../index'\n\ntype Props = {\n projectName: string\n onSuccess: (data: any) => void\n}\n\nconst useAnnotationsUpload = ({ projectName, onSuccess }: Props) => {\n const { removeAnnotation, exportAnnotationComposite } = useFeedContext()\n\n const uploadAnnotations = async (annotations: any[]) => {\n try {\n const uploadPromises = annotations.map(async (annotation) => {\n const composite = await exportAnnotationComposite?.(annotation.id)\n if (!composite) {\n throw new Error(`Exporting composite image for annotation ${annotation.id} failed`)\n }\n\n const compositeFile = new File([composite], annotation.name, {\n type: 'image/png',\n })\n\n const transparent = await fetch(annotation.annotationData).then(r => r.blob())\n const transparentFile = new File([transparent], `annotation-${annotation.name}`, {\n type: 'image/png',\n })\n\n const uploads = await Promise.all([\n uploadFile(compositeFile, projectName, () => {}),\n uploadFile(transparentFile, projectName, () => {}),\n ])\n\n return { annotation, uploads }\n })\n\n const res = await Promise.allSettled(uploadPromises)\n\n const successfulFiles: any[] = []\n const metadata: SavedAnnotationMetadata[] = []\n\n res.forEach((result) => {\n if (result.status === 'fulfilled') {\n const { uploads, annotation } = result.value\n\n uploads.forEach((upload: any) => {\n successfulFiles.push(onSuccess(upload))\n })\n\n metadata.push({\n range: annotation.range,\n id: annotation.id,\n composite: uploads[0].data.id,\n transparent: uploads[1].data.id,\n })\n\n removeAnnotation?.(annotation.id)\n } else {\n toast.error('Upload failed: ' + result.reason.message)\n }\n })\n\n return { files: successfulFiles, metadata }\n } catch (error: any) {\n toast.error('Upload failed: ' + error.message)\n return { files: [], metadata: [] }\n }\n }\n\n return uploadAnnotations\n}\n\nexport default useAnnotationsUpload\n\nconst base64ToBlob = (base64: string) => {\n const byteString = atob(base64.split(',')[1])\n const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]\n const ab = new ArrayBuffer(byteString.length)\n const ia = new Uint8Array(ab)\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i)\n }\n return new Blob([ab], { type: mimeString })\n}\n"],"names":["useFeedContext","uploadFile","toast"],"mappings":";;;;AAUA,MAAM,uBAAuB,CAAC,EAAE,aAAa,gBAAuB;AAClE,QAAM,EAAE,kBAAkB,0BAA0B,IAAIA,2BAAe;AAEjE,QAAA,oBAAoB,OAAO,gBAAuB;AAClD,QAAA;AACF,YAAM,iBAAiB,YAAY,IAAI,OAAO,eAAe;AAC3D,cAAM,YAAY,OAAM,uEAA4B,WAAW;AAC/D,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,MAAM,4CAA4C,WAAW,EAAE,SAAS;AAAA,QAAA;AAGpF,cAAM,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM;AAAA,UAC3D,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,cAAc,MAAM,MAAM,WAAW,cAAc,EAAE,KAAK,CAAA,MAAK,EAAE,MAAM;AACvE,cAAA,kBAAkB,IAAI,KAAK,CAAC,WAAW,GAAG,cAAc,WAAW,IAAI,IAAI;AAAA,UAC/E,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,UAAU,MAAM,QAAQ,IAAI;AAAA,UAChCC,mBAAW,eAAe,aAAa,MAAM;AAAA,UAAA,CAAE;AAAA,UAC/CA,mBAAW,iBAAiB,aAAa,MAAM;AAAA,UAAE,CAAA;AAAA,QAAA,CAClD;AAEM,eAAA,EAAE,YAAY,QAAQ;AAAA,MAAA,CAC9B;AAED,YAAM,MAAM,MAAM,QAAQ,WAAW,cAAc;AAEnD,YAAM,kBAAyB,CAAC;AAChC,YAAM,WAAsC,CAAC;AAEzC,UAAA,QAAQ,CAAC,WAAW;AAClB,YAAA,OAAO,WAAW,aAAa;AACjC,gBAAM,EAAE,SAAS,WAAW,IAAI,OAAO;AAE/B,kBAAA,QAAQ,CAAC,WAAgB;AACf,4BAAA,KAAK,UAAU,MAAM,CAAC;AAAA,UAAA,CACvC;AAED,mBAAS,KAAK;AAAA,YACZ,OAAO,WAAW;AAAA,YAClB,IAAI,WAAW;AAAA,YACf,WAAW,QAAQ,CAAC,EAAE,KAAK;AAAA,YAC3B,aAAa,QAAQ,CAAC,EAAE,KAAK;AAAA,UAAA,CAC9B;AAED,+DAAmB,WAAW;AAAA,QAAE,OAC3B;AACLC,wBAAAA,MAAM,MAAM,oBAAoB,OAAO,OAAO,OAAO;AAAA,QAAA;AAAA,MACvD,CACD;AAEM,aAAA,EAAE,OAAO,iBAAiB,SAAS;AAAA,aACnC,OAAY;AACbA,oBAAAA,MAAA,MAAM,oBAAoB,MAAM,OAAO;AAC7C,aAAO,EAAE,OAAO,IAAI,UAAU,CAAA,EAAG;AAAA,IAAA;AAAA,EAErC;AAEO,SAAA;AACT;;"}
1
+ {"version":3,"file":"useAnnotationsUpload.cjs.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.ts"],"sourcesContent":["import { uploadFile } from '../helpers'\nimport { toast } from 'react-toastify'\nimport { useFeedContext } from '../../../context/FeedContext'\nimport { SavedAnnotationMetadata } from '../../../index'\n\ntype Props = {\n projectName: string\n onSuccess: (data: any) => any\n}\n\nconst useAnnotationsUpload = ({ projectName, onSuccess }: Props) => {\n const { removeAnnotation, exportAnnotationComposite } = useFeedContext()\n\n const uploadAnnotations = async (annotations: any[]) => {\n try {\n const uploadPromises = annotations.map(async (annotation) => {\n const composite = await exportAnnotationComposite?.(annotation.id)\n if (!composite) {\n throw new Error(`Exporting composite image for annotation ${annotation.id} failed`)\n }\n\n const compositeFile = new File([composite], annotation.name, {\n type: 'image/png',\n })\n\n const transparent = await fetch(annotation.annotationData).then((r) => r.blob())\n const transparentFile = new File([transparent], `annotation-${annotation.name}`, {\n type: 'image/png',\n })\n\n const uploads = await Promise.all([\n uploadFile(compositeFile, projectName, () => {}),\n uploadFile(transparentFile, projectName, () => {}),\n ])\n\n return { annotation, uploads }\n })\n\n const res = await Promise.allSettled(uploadPromises)\n\n const successfulFiles: any[] = []\n const metadata: SavedAnnotationMetadata[] = []\n\n res.forEach((result) => {\n if (result.status === 'fulfilled') {\n const { uploads, annotation } = result.value\n\n uploads.forEach((upload: any) => {\n successfulFiles.push(onSuccess(upload))\n })\n\n metadata.push({\n range: annotation.range,\n id: annotation.id,\n composite: uploads[0].data.id,\n transparent: uploads[1].data.id,\n })\n\n removeAnnotation?.(annotation.id)\n } else {\n toast.error('Upload failed: ' + result.reason.message)\n }\n })\n\n return { files: successfulFiles, metadata }\n } catch (error: any) {\n toast.error('Upload failed: ' + error.message)\n return { files: [], metadata: [] }\n }\n }\n\n return uploadAnnotations\n}\n\nexport default useAnnotationsUpload\n\nconst base64ToBlob = (base64: string) => {\n const byteString = atob(base64.split(',')[1])\n const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]\n const ab = new ArrayBuffer(byteString.length)\n const ia = new Uint8Array(ab)\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i)\n }\n return new Blob([ab], { type: mimeString })\n}\n"],"names":["useFeedContext","uploadFile","toast"],"mappings":";;;;AAUA,MAAM,uBAAuB,CAAC,EAAE,aAAa,gBAAuB;AAClE,QAAM,EAAE,kBAAkB,0BAA0B,IAAIA,2BAAe;AAEjE,QAAA,oBAAoB,OAAO,gBAAuB;AAClD,QAAA;AACF,YAAM,iBAAiB,YAAY,IAAI,OAAO,eAAe;AAC3D,cAAM,YAAY,OAAM,uEAA4B,WAAW;AAC/D,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,MAAM,4CAA4C,WAAW,EAAE,SAAS;AAAA,QAAA;AAGpF,cAAM,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM;AAAA,UAC3D,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,cAAc,MAAM,MAAM,WAAW,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;AACzE,cAAA,kBAAkB,IAAI,KAAK,CAAC,WAAW,GAAG,cAAc,WAAW,IAAI,IAAI;AAAA,UAC/E,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,UAAU,MAAM,QAAQ,IAAI;AAAA,UAChCC,mBAAW,eAAe,aAAa,MAAM;AAAA,UAAA,CAAE;AAAA,UAC/CA,mBAAW,iBAAiB,aAAa,MAAM;AAAA,UAAE,CAAA;AAAA,QAAA,CAClD;AAEM,eAAA,EAAE,YAAY,QAAQ;AAAA,MAAA,CAC9B;AAED,YAAM,MAAM,MAAM,QAAQ,WAAW,cAAc;AAEnD,YAAM,kBAAyB,CAAC;AAChC,YAAM,WAAsC,CAAC;AAEzC,UAAA,QAAQ,CAAC,WAAW;AAClB,YAAA,OAAO,WAAW,aAAa;AACjC,gBAAM,EAAE,SAAS,WAAW,IAAI,OAAO;AAE/B,kBAAA,QAAQ,CAAC,WAAgB;AACf,4BAAA,KAAK,UAAU,MAAM,CAAC;AAAA,UAAA,CACvC;AAED,mBAAS,KAAK;AAAA,YACZ,OAAO,WAAW;AAAA,YAClB,IAAI,WAAW;AAAA,YACf,WAAW,QAAQ,CAAC,EAAE,KAAK;AAAA,YAC3B,aAAa,QAAQ,CAAC,EAAE,KAAK;AAAA,UAAA,CAC9B;AAED,+DAAmB,WAAW;AAAA,QAAE,OAC3B;AACLC,wBAAAA,MAAM,MAAM,oBAAoB,OAAO,OAAO,OAAO;AAAA,QAAA;AAAA,MACvD,CACD;AAEM,aAAA,EAAE,OAAO,iBAAiB,SAAS;AAAA,aACnC,OAAY;AACbA,oBAAAA,MAAA,MAAM,oBAAoB,MAAM,OAAO;AAC7C,aAAO,EAAE,OAAO,IAAI,UAAU,CAAA,EAAG;AAAA,IAAA;AAAA,EAErC;AAEO,SAAA;AACT;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAnnotationsUpload.es.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.ts"],"sourcesContent":["import { uploadFile } from '../helpers'\nimport { toast } from 'react-toastify'\nimport { useFeedContext } from '../../../context/FeedContext'\nimport { SavedAnnotationMetadata } from '../../../index'\n\ntype Props = {\n projectName: string\n onSuccess: (data: any) => void\n}\n\nconst useAnnotationsUpload = ({ projectName, onSuccess }: Props) => {\n const { removeAnnotation, exportAnnotationComposite } = useFeedContext()\n\n const uploadAnnotations = async (annotations: any[]) => {\n try {\n const uploadPromises = annotations.map(async (annotation) => {\n const composite = await exportAnnotationComposite?.(annotation.id)\n if (!composite) {\n throw new Error(`Exporting composite image for annotation ${annotation.id} failed`)\n }\n\n const compositeFile = new File([composite], annotation.name, {\n type: 'image/png',\n })\n\n const transparent = await fetch(annotation.annotationData).then(r => r.blob())\n const transparentFile = new File([transparent], `annotation-${annotation.name}`, {\n type: 'image/png',\n })\n\n const uploads = await Promise.all([\n uploadFile(compositeFile, projectName, () => {}),\n uploadFile(transparentFile, projectName, () => {}),\n ])\n\n return { annotation, uploads }\n })\n\n const res = await Promise.allSettled(uploadPromises)\n\n const successfulFiles: any[] = []\n const metadata: SavedAnnotationMetadata[] = []\n\n res.forEach((result) => {\n if (result.status === 'fulfilled') {\n const { uploads, annotation } = result.value\n\n uploads.forEach((upload: any) => {\n successfulFiles.push(onSuccess(upload))\n })\n\n metadata.push({\n range: annotation.range,\n id: annotation.id,\n composite: uploads[0].data.id,\n transparent: uploads[1].data.id,\n })\n\n removeAnnotation?.(annotation.id)\n } else {\n toast.error('Upload failed: ' + result.reason.message)\n }\n })\n\n return { files: successfulFiles, metadata }\n } catch (error: any) {\n toast.error('Upload failed: ' + error.message)\n return { files: [], metadata: [] }\n }\n }\n\n return uploadAnnotations\n}\n\nexport default useAnnotationsUpload\n\nconst base64ToBlob = (base64: string) => {\n const byteString = atob(base64.split(',')[1])\n const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]\n const ab = new ArrayBuffer(byteString.length)\n const ia = new Uint8Array(ab)\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i)\n }\n return new Blob([ab], { type: mimeString })\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,uBAAuB,CAAC,EAAE,aAAa,gBAAuB;AAClE,QAAM,EAAE,kBAAkB,0BAA0B,IAAI,eAAe;AAEjE,QAAA,oBAAoB,OAAO,gBAAuB;AAClD,QAAA;AACF,YAAM,iBAAiB,YAAY,IAAI,OAAO,eAAe;AAC3D,cAAM,YAAY,OAAM,uEAA4B,WAAW;AAC/D,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,MAAM,4CAA4C,WAAW,EAAE,SAAS;AAAA,QAAA;AAGpF,cAAM,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM;AAAA,UAC3D,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,cAAc,MAAM,MAAM,WAAW,cAAc,EAAE,KAAK,CAAA,MAAK,EAAE,MAAM;AACvE,cAAA,kBAAkB,IAAI,KAAK,CAAC,WAAW,GAAG,cAAc,WAAW,IAAI,IAAI;AAAA,UAC/E,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,UAAU,MAAM,QAAQ,IAAI;AAAA,UAChC,WAAW,eAAe,aAAa,MAAM;AAAA,UAAA,CAAE;AAAA,UAC/C,WAAW,iBAAiB,aAAa,MAAM;AAAA,UAAE,CAAA;AAAA,QAAA,CAClD;AAEM,eAAA,EAAE,YAAY,QAAQ;AAAA,MAAA,CAC9B;AAED,YAAM,MAAM,MAAM,QAAQ,WAAW,cAAc;AAEnD,YAAM,kBAAyB,CAAC;AAChC,YAAM,WAAsC,CAAC;AAEzC,UAAA,QAAQ,CAAC,WAAW;AAClB,YAAA,OAAO,WAAW,aAAa;AACjC,gBAAM,EAAE,SAAS,WAAW,IAAI,OAAO;AAE/B,kBAAA,QAAQ,CAAC,WAAgB;AACf,4BAAA,KAAK,UAAU,MAAM,CAAC;AAAA,UAAA,CACvC;AAED,mBAAS,KAAK;AAAA,YACZ,OAAO,WAAW;AAAA,YAClB,IAAI,WAAW;AAAA,YACf,WAAW,QAAQ,CAAC,EAAE,KAAK;AAAA,YAC3B,aAAa,QAAQ,CAAC,EAAE,KAAK;AAAA,UAAA,CAC9B;AAED,+DAAmB,WAAW;AAAA,QAAE,OAC3B;AACL,gBAAM,MAAM,oBAAoB,OAAO,OAAO,OAAO;AAAA,QAAA;AAAA,MACvD,CACD;AAEM,aAAA,EAAE,OAAO,iBAAiB,SAAS;AAAA,aACnC,OAAY;AACb,YAAA,MAAM,oBAAoB,MAAM,OAAO;AAC7C,aAAO,EAAE,OAAO,IAAI,UAAU,CAAA,EAAG;AAAA,IAAA;AAAA,EAErC;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"useAnnotationsUpload.es.js","sources":["../../../../../../../../src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.ts"],"sourcesContent":["import { uploadFile } from '../helpers'\nimport { toast } from 'react-toastify'\nimport { useFeedContext } from '../../../context/FeedContext'\nimport { SavedAnnotationMetadata } from '../../../index'\n\ntype Props = {\n projectName: string\n onSuccess: (data: any) => any\n}\n\nconst useAnnotationsUpload = ({ projectName, onSuccess }: Props) => {\n const { removeAnnotation, exportAnnotationComposite } = useFeedContext()\n\n const uploadAnnotations = async (annotations: any[]) => {\n try {\n const uploadPromises = annotations.map(async (annotation) => {\n const composite = await exportAnnotationComposite?.(annotation.id)\n if (!composite) {\n throw new Error(`Exporting composite image for annotation ${annotation.id} failed`)\n }\n\n const compositeFile = new File([composite], annotation.name, {\n type: 'image/png',\n })\n\n const transparent = await fetch(annotation.annotationData).then((r) => r.blob())\n const transparentFile = new File([transparent], `annotation-${annotation.name}`, {\n type: 'image/png',\n })\n\n const uploads = await Promise.all([\n uploadFile(compositeFile, projectName, () => {}),\n uploadFile(transparentFile, projectName, () => {}),\n ])\n\n return { annotation, uploads }\n })\n\n const res = await Promise.allSettled(uploadPromises)\n\n const successfulFiles: any[] = []\n const metadata: SavedAnnotationMetadata[] = []\n\n res.forEach((result) => {\n if (result.status === 'fulfilled') {\n const { uploads, annotation } = result.value\n\n uploads.forEach((upload: any) => {\n successfulFiles.push(onSuccess(upload))\n })\n\n metadata.push({\n range: annotation.range,\n id: annotation.id,\n composite: uploads[0].data.id,\n transparent: uploads[1].data.id,\n })\n\n removeAnnotation?.(annotation.id)\n } else {\n toast.error('Upload failed: ' + result.reason.message)\n }\n })\n\n return { files: successfulFiles, metadata }\n } catch (error: any) {\n toast.error('Upload failed: ' + error.message)\n return { files: [], metadata: [] }\n }\n }\n\n return uploadAnnotations\n}\n\nexport default useAnnotationsUpload\n\nconst base64ToBlob = (base64: string) => {\n const byteString = atob(base64.split(',')[1])\n const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]\n const ab = new ArrayBuffer(byteString.length)\n const ia = new Uint8Array(ab)\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i)\n }\n return new Blob([ab], { type: mimeString })\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,uBAAuB,CAAC,EAAE,aAAa,gBAAuB;AAClE,QAAM,EAAE,kBAAkB,0BAA0B,IAAI,eAAe;AAEjE,QAAA,oBAAoB,OAAO,gBAAuB;AAClD,QAAA;AACF,YAAM,iBAAiB,YAAY,IAAI,OAAO,eAAe;AAC3D,cAAM,YAAY,OAAM,uEAA4B,WAAW;AAC/D,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,MAAM,4CAA4C,WAAW,EAAE,SAAS;AAAA,QAAA;AAGpF,cAAM,gBAAgB,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM;AAAA,UAC3D,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,cAAc,MAAM,MAAM,WAAW,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;AACzE,cAAA,kBAAkB,IAAI,KAAK,CAAC,WAAW,GAAG,cAAc,WAAW,IAAI,IAAI;AAAA,UAC/E,MAAM;AAAA,QAAA,CACP;AAEK,cAAA,UAAU,MAAM,QAAQ,IAAI;AAAA,UAChC,WAAW,eAAe,aAAa,MAAM;AAAA,UAAA,CAAE;AAAA,UAC/C,WAAW,iBAAiB,aAAa,MAAM;AAAA,UAAE,CAAA;AAAA,QAAA,CAClD;AAEM,eAAA,EAAE,YAAY,QAAQ;AAAA,MAAA,CAC9B;AAED,YAAM,MAAM,MAAM,QAAQ,WAAW,cAAc;AAEnD,YAAM,kBAAyB,CAAC;AAChC,YAAM,WAAsC,CAAC;AAEzC,UAAA,QAAQ,CAAC,WAAW;AAClB,YAAA,OAAO,WAAW,aAAa;AACjC,gBAAM,EAAE,SAAS,WAAW,IAAI,OAAO;AAE/B,kBAAA,QAAQ,CAAC,WAAgB;AACf,4BAAA,KAAK,UAAU,MAAM,CAAC;AAAA,UAAA,CACvC;AAED,mBAAS,KAAK;AAAA,YACZ,OAAO,WAAW;AAAA,YAClB,IAAI,WAAW;AAAA,YACf,WAAW,QAAQ,CAAC,EAAE,KAAK;AAAA,YAC3B,aAAa,QAAQ,CAAC,EAAE,KAAK;AAAA,UAAA,CAC9B;AAED,+DAAmB,WAAW;AAAA,QAAE,OAC3B;AACL,gBAAM,MAAM,oBAAoB,OAAO,OAAO,OAAO;AAAA,QAAA;AAAA,MACvD,CACD;AAEM,aAAA,EAAE,OAAO,iBAAiB,SAAS;AAAA,aACnC,OAAY;AACb,YAAA,MAAM,oBAAoB,MAAM,OAAO;AAC7C,aAAO,EAAE,OAAO,IAAI,UAAU,CAAA,EAAG;AAAA,IAAA;AAAA,EAErC;AAEO,SAAA;AACT;"}
@@ -13,6 +13,7 @@ require("react-dom");
13
13
  require("../../../../../context/pip/PiPWrapper.cjs.js");
14
14
  require("../../../../../context/AddonProjectContext.cjs.js");
15
15
  require("../../../../../context/AddonContext.cjs.js");
16
+ require("../../../../../context/PowerpackContext.cjs.js");
16
17
  const Inline = ReactQuill.Quill.import("blots/inline");
17
18
  const useMentionLink = ({ projectName }) => {
18
19
  const { openSlideOut } = DetailsPanelContext.useDetailsPanelContext();
@@ -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;;"}
@@ -12,6 +12,7 @@ import "react-dom";
12
12
  import "../../../../../context/pip/PiPWrapper.es.js";
13
13
  import "../../../../../context/AddonProjectContext.es.js";
14
14
  import "../../../../../context/AddonContext.es.js";
15
+ import "../../../../../context/PowerpackContext.es.js";
15
16
  const Inline = Quill.import("blots/inline");
16
17
  const useMentionLink = ({ projectName }) => {
17
18
  const { openSlideOut } = useDetailsPanelContext();
@@ -1 +1 @@
1
- {"version":3,"file":"useMentionLink.es.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":[],"mappings":";;;;;;;;;;;;;;AAKA,MAAM,SAAS,MAAM,OAAO,cAAc;AAO1C,MAAM,iBAAiB,CAAC,EAAE,kBAAsC;AACxD,QAAA,EAAE,aAAa,IAAI,uBAAuB;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;AAE1B,QAAA,SAAS,aAAa,IAAI;AAClC;"}
1
+ {"version":3,"file":"useMentionLink.es.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":[],"mappings":";;;;;;;;;;;;;;;AAKA,MAAM,SAAS,MAAM,OAAO,cAAc;AAO1C,MAAM,iBAAiB,CAAC,EAAE,kBAAsC;AACxD,QAAA,EAAE,aAAa,IAAI,uBAAuB;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;AAE1B,QAAA,SAAS,aAAa,IAAI;AAClC;"}
@@ -14,6 +14,7 @@ require("react-dom");
14
14
  require("../../../../context/pip/PiPWrapper.cjs.js");
15
15
  require("../../../../context/AddonProjectContext.cjs.js");
16
16
  require("../../../../context/AddonContext.cjs.js");
17
+ require("../../../../context/PowerpackContext.cjs.js");
17
18
  const fileIcons = {
18
19
  // special cases
19
20
  description: ["doc"],
@@ -69,7 +70,7 @@ const FileUploadCard = ({
69
70
  name,
70
71
  mime,
71
72
  src,
72
- isUnsavedAnnotation,
73
+ unsavedAnnotation,
73
74
  savedAnnotation,
74
75
  size,
75
76
  progress,
@@ -88,11 +89,12 @@ const FileUploadCard = ({
88
89
  const extension = nameParts.pop() || "";
89
90
  const fileName = nameParts.join(".");
90
91
  const isPreviewable = FileUploadPreview.isFilePreviewable(mime || "." + extension);
91
- const isImage = (mime == null ? void 0 : mime.includes("image/")) || isUnsavedAnnotation;
92
+ const isImage = (mime == null ? void 0 : mime.includes("image/")) || Boolean(unsavedAnnotation);
92
93
  const downloadComponent = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [
93
94
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "size", children: ayonReactComponents.getFileSizeString(size) }),
94
95
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "download", className: "download-icon" })
95
96
  ] });
97
+ const someAnnotation = unsavedAnnotation ?? savedAnnotation;
96
98
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
97
99
  FileUploadCard_styled.File,
98
100
  {
@@ -100,14 +102,17 @@ const FileUploadCard = ({
100
102
  compact: isCompact,
101
103
  isDownloadable,
102
104
  isPreviewable,
103
- isUnsavedAnnotation
105
+ isUnsavedAnnotation: Boolean(unsavedAnnotation)
104
106
  }),
105
107
  ...props,
106
108
  children: [
107
109
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
108
110
  FileUploadCard_styled.ContentWrapper,
109
111
  {
110
- className: clsx("content-wrapper", { isPreviewable, isUnsavedAnnotation }),
112
+ className: clsx("content-wrapper", {
113
+ isPreviewable,
114
+ isUnsavedAnnotation: Boolean(unsavedAnnotation)
115
+ }),
111
116
  children: [
112
117
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: getIconForType(mime || "." + extension), className: "type-icon" }),
113
118
  isImage && src && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
@@ -115,7 +120,7 @@ const FileUploadCard = ({
115
120
  {
116
121
  className: clsx({
117
122
  "image-wrapper": true,
118
- isDownloadable: isDownloadable || isPreviewable || isUnsavedAnnotation
123
+ isDownloadable: isDownloadable || isPreviewable || unsavedAnnotation
119
124
  }),
120
125
  children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
121
126
  "img",
@@ -139,7 +144,7 @@ const FileUploadCard = ({
139
144
  onClick: onExpand
140
145
  }
141
146
  ),
142
- (isUnsavedAnnotation || feedAnnotationsEnabled && savedAnnotation) && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
147
+ (unsavedAnnotation || feedAnnotationsEnabled && savedAnnotation) && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
143
148
  FileUploadCard_styled.ExpandButton,
144
149
  {
145
150
  "data-tooltip": "Jump to annotation",
@@ -154,11 +159,17 @@ const FileUploadCard = ({
154
159
  ),
155
160
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(FileUploadCard_styled.Footer, { className: clsx({ inProgress, isPreviewable, isDownloadable }), children: [
156
161
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "progress", style: { right: `${100 - progress}%` } }),
157
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "name-wrapper", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "name", children: fileName }) }),
158
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("span", { className: "extension", children: [
159
- ".",
160
- extension
161
- ] }),
162
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "name-wrapper", children: someAnnotation ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("span", { className: "name", children: [
163
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "draw" }),
164
+ someAnnotation.range[0],
165
+ someAnnotation.range[1] !== someAnnotation.range[0] && ` - ${someAnnotation.range[1]}`
166
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("span", { className: "name", children: [
167
+ fileName,
168
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("span", { className: "extension", children: [
169
+ ".",
170
+ extension
171
+ ] })
172
+ ] }) }),
162
173
  isDownloadable && (!onRemove ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("a", { href: src, download: true, className: "download", children: downloadComponent }) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "download", children: downloadComponent }))
163
174
  ] }),
164
175
  onRemove && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Button, { className: "remove", onClick: onRemove, icon: "close" })
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadCard.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.tsx"],"sourcesContent":["import { Button, getFileSizeString, Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './FileUploadCard.styled'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n mime?: string\n src?: string\n isUnsavedAnnotation?: boolean\n savedAnnotation: SavedAnnotationMetadata\n size: number\n progress: number\n onRemove?: () => void\n isCompact?: boolean\n isDownloadable?: boolean\n onExpand?: () => void\n onJumpTo?: () => void\n}\n\nconst fileIcons: { [key: string]: string[] } = {\n // special cases\n description: ['doc'],\n folder_zip: ['zip'],\n code_blocks: [\n 'json',\n 'javascript',\n 'python',\n 'html',\n 'css',\n '.py',\n '.js',\n '.html',\n '.css',\n '.json',\n '.ts',\n ],\n brush: ['.psd', '.ai', '.xd', '.sketch'],\n '3d_rotation': [\n '.mb',\n '.ma',\n '.c4d',\n '.blend',\n '.max',\n '.3ds',\n '.lwo',\n '.lws',\n '.lxo',\n '.hip',\n '.hda',\n ],\n theaters: ['.aep', '.tpl', '.clip', '.nk', '.fusion', '.prproj', '.spsm', '.drp'],\n picture_as_pdf: ['pdf', '.pdf'],\n // default\n image: ['image', '.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp'],\n videocam: ['video', '.mp4', '.mov', '.avi', '.mkv', '.webm', '.mxf'],\n business_center: ['application'],\n audio_file: ['audio'],\n text_snippet: ['text'],\n filter_none: ['sequence'],\n font_download: ['font'],\n deployed_code: ['model', '.obj', '.abc', '.stl', '.fbx', '.gltf', '.glb', '.usd'],\n}\n\nconst getIconForType = (type: string): string => {\n for (const [icon, keywords] of Object.entries(fileIcons)) {\n if (keywords.some((keyword) => type.includes(keyword))) {\n return icon\n }\n }\n return 'draft'\n}\n\nconst FileUploadCard = ({\n name,\n mime,\n src,\n isUnsavedAnnotation,\n savedAnnotation,\n size,\n progress,\n onRemove,\n isCompact,\n isDownloadable = false,\n onExpand,\n onJumpTo,\n className,\n ...props\n}: FileUploadCardProps) => {\n const inProgress = progress && progress < 100\n\n const [imageError, setImageError] = useState(false)\n const { feedAnnotationsEnabled } = useDetailsPanelContext()\n\n // split name and file extension\n const nameParts = name.split('.')\n const extension = nameParts.pop() || ''\n const fileName = nameParts.join('.')\n\n const isPreviewable = isFilePreviewable(mime || '.' + extension)\n const isImage = mime?.includes('image/') || isUnsavedAnnotation\n\n const downloadComponent = (\n <>\n <span className=\"size\">{getFileSizeString(size)}</span>\n <Icon icon=\"download\" className=\"download-icon\" />\n </>\n )\n\n return (\n <Styled.File\n className={clsx(className, {\n compact: isCompact,\n isDownloadable,\n isPreviewable,\n isUnsavedAnnotation,\n })}\n {...props}\n >\n <Styled.ContentWrapper\n className={clsx('content-wrapper', { isPreviewable, isUnsavedAnnotation })}\n >\n <Icon icon={getIconForType(mime || '.' + extension)} className=\"type-icon\" />\n {isImage && src && (\n <Styled.ImageWrapper\n className={clsx({\n 'image-wrapper': true,\n isDownloadable: isDownloadable || isPreviewable || isUnsavedAnnotation,\n })}\n >\n <img\n src={src}\n onError={() => setImageError(true)}\n style={{\n display: imageError ? 'none' : 'block',\n }}\n />\n </Styled.ImageWrapper>\n )}\n <Styled.Buttons className=\"expand-buttons\">\n {isPreviewable && (\n <Styled.ExpandButton\n data-tooltip=\"Open preview\"\n icon=\"open_in_full\"\n variant=\"nav\"\n onClick={onExpand}\n />\n )}\n {(isUnsavedAnnotation || (feedAnnotationsEnabled && savedAnnotation)) && (\n <Styled.ExpandButton\n data-tooltip=\"Jump to annotation\"\n icon=\"play_circle\"\n variant=\"nav\"\n onClick={onJumpTo}\n />\n )}\n </Styled.Buttons>\n </Styled.ContentWrapper>\n <Styled.Footer className={clsx({ inProgress, isPreviewable, isDownloadable })}>\n <span className=\"progress\" style={{ right: `${100 - progress}%` }} />\n <div className=\"name-wrapper\">\n <span className=\"name\">{fileName}</span>\n </div>\n <span className=\"extension\">.{extension}</span>\n {isDownloadable &&\n (!onRemove ? (\n <a href={src} download className=\"download\">\n {downloadComponent}\n </a>\n ) : (\n <div className=\"download\">{downloadComponent}</div>\n ))}\n </Styled.Footer>\n {onRemove && <Button className=\"remove\" onClick={onRemove} icon=\"close\" />}\n </Styled.File>\n )\n}\n\nexport default FileUploadCard\n"],"names":["useState","useDetailsPanelContext","isFilePreviewable","jsxs","Fragment","jsx","getFileSizeString","Icon","Styled.File","Styled.ContentWrapper","Styled.ImageWrapper","Styled.Buttons","Styled.ExpandButton","Styled.Footer","Button"],"mappings":"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"}
1
+ {"version":3,"file":"FileUploadCard.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.tsx"],"sourcesContent":["import { Button, getFileSizeString, Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './FileUploadCard.styled'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { AnnotationPreview } from '../CommentInput/hooks/useAnnotationsSync'\n\nexport interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n mime?: string\n src?: string\n unsavedAnnotation?: AnnotationPreview\n savedAnnotation?: SavedAnnotationMetadata\n size: number\n progress: number\n onRemove?: () => void\n isCompact?: boolean\n isDownloadable?: boolean\n onExpand?: () => void\n onJumpTo?: () => void\n}\n\nconst fileIcons: { [key: string]: string[] } = {\n // special cases\n description: ['doc'],\n folder_zip: ['zip'],\n code_blocks: [\n 'json',\n 'javascript',\n 'python',\n 'html',\n 'css',\n '.py',\n '.js',\n '.html',\n '.css',\n '.json',\n '.ts',\n ],\n brush: ['.psd', '.ai', '.xd', '.sketch'],\n '3d_rotation': [\n '.mb',\n '.ma',\n '.c4d',\n '.blend',\n '.max',\n '.3ds',\n '.lwo',\n '.lws',\n '.lxo',\n '.hip',\n '.hda',\n ],\n theaters: ['.aep', '.tpl', '.clip', '.nk', '.fusion', '.prproj', '.spsm', '.drp'],\n picture_as_pdf: ['pdf', '.pdf'],\n // default\n image: ['image', '.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp'],\n videocam: ['video', '.mp4', '.mov', '.avi', '.mkv', '.webm', '.mxf'],\n business_center: ['application'],\n audio_file: ['audio'],\n text_snippet: ['text'],\n filter_none: ['sequence'],\n font_download: ['font'],\n deployed_code: ['model', '.obj', '.abc', '.stl', '.fbx', '.gltf', '.glb', '.usd'],\n}\n\nconst getIconForType = (type: string): string => {\n for (const [icon, keywords] of Object.entries(fileIcons)) {\n if (keywords.some((keyword) => type.includes(keyword))) {\n return icon\n }\n }\n return 'draft'\n}\n\nconst FileUploadCard = ({\n name,\n mime,\n src,\n unsavedAnnotation,\n savedAnnotation,\n size,\n progress,\n onRemove,\n isCompact,\n isDownloadable = false,\n onExpand,\n onJumpTo,\n className,\n ...props\n}: FileUploadCardProps) => {\n const inProgress = progress && progress < 100\n\n const [imageError, setImageError] = useState(false)\n const { feedAnnotationsEnabled } = useDetailsPanelContext()\n\n // split name and file extension\n const nameParts = name.split('.')\n const extension = nameParts.pop() || ''\n const fileName = nameParts.join('.')\n\n const isPreviewable = isFilePreviewable(mime || '.' + extension)\n const isImage = mime?.includes('image/') || Boolean(unsavedAnnotation)\n\n const downloadComponent = (\n <>\n <span className=\"size\">{getFileSizeString(size)}</span>\n <Icon icon=\"download\" className=\"download-icon\" />\n </>\n )\n\n const someAnnotation = unsavedAnnotation ?? savedAnnotation\n\n return (\n <Styled.File\n className={clsx(className, {\n compact: isCompact,\n isDownloadable,\n isPreviewable,\n isUnsavedAnnotation: Boolean(unsavedAnnotation),\n })}\n {...props}\n >\n <Styled.ContentWrapper\n className={clsx('content-wrapper', {\n isPreviewable,\n isUnsavedAnnotation: Boolean(unsavedAnnotation),\n })}\n >\n <Icon icon={getIconForType(mime || '.' + extension)} className=\"type-icon\" />\n {isImage && src && (\n <Styled.ImageWrapper\n className={clsx({\n 'image-wrapper': true,\n isDownloadable: isDownloadable || isPreviewable || unsavedAnnotation,\n })}\n >\n <img\n src={src}\n onError={() => setImageError(true)}\n style={{\n display: imageError ? 'none' : 'block',\n }}\n />\n </Styled.ImageWrapper>\n )}\n <Styled.Buttons className=\"expand-buttons\">\n {isPreviewable && (\n <Styled.ExpandButton\n data-tooltip=\"Open preview\"\n icon=\"open_in_full\"\n variant=\"nav\"\n onClick={onExpand}\n />\n )}\n {(unsavedAnnotation || (feedAnnotationsEnabled && savedAnnotation)) && (\n <Styled.ExpandButton\n data-tooltip=\"Jump to annotation\"\n icon=\"play_circle\"\n variant=\"nav\"\n onClick={onJumpTo}\n />\n )}\n </Styled.Buttons>\n </Styled.ContentWrapper>\n <Styled.Footer className={clsx({ inProgress, isPreviewable, isDownloadable })}>\n <span className=\"progress\" style={{ right: `${100 - progress}%` }} />\n <div className=\"name-wrapper\">\n {someAnnotation ? (\n <span className=\"name\">\n <Icon icon=\"draw\" />\n {someAnnotation.range[0]}\n {someAnnotation.range[1] !== someAnnotation.range[0] &&\n ` - ${someAnnotation.range[1]}`}\n </span>\n ) : (\n <span className=\"name\">\n {fileName}\n <span className=\"extension\">.{extension}</span>\n </span>\n )}\n </div>\n\n {isDownloadable &&\n (!onRemove ? (\n <a href={src} download className=\"download\">\n {downloadComponent}\n </a>\n ) : (\n <div className=\"download\">{downloadComponent}</div>\n ))}\n </Styled.Footer>\n {onRemove && <Button className=\"remove\" onClick={onRemove} icon=\"close\" />}\n </Styled.File>\n )\n}\n\nexport default FileUploadCard\n"],"names":["useState","useDetailsPanelContext","isFilePreviewable","jsxs","Fragment","jsx","getFileSizeString","Icon","Styled.File","Styled.ContentWrapper","Styled.ImageWrapper","Styled.Buttons","Styled.ExpandButton","Styled.Footer","Button"],"mappings":"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"}
@@ -13,6 +13,7 @@ import "react-dom";
13
13
  import "../../../../context/pip/PiPWrapper.es.js";
14
14
  import "../../../../context/AddonProjectContext.es.js";
15
15
  import "../../../../context/AddonContext.es.js";
16
+ import "../../../../context/PowerpackContext.es.js";
16
17
  const fileIcons = {
17
18
  // special cases
18
19
  description: ["doc"],
@@ -68,7 +69,7 @@ const FileUploadCard = ({
68
69
  name,
69
70
  mime,
70
71
  src,
71
- isUnsavedAnnotation,
72
+ unsavedAnnotation,
72
73
  savedAnnotation,
73
74
  size,
74
75
  progress,
@@ -87,11 +88,12 @@ const FileUploadCard = ({
87
88
  const extension = nameParts.pop() || "";
88
89
  const fileName = nameParts.join(".");
89
90
  const isPreviewable = isFilePreviewable(mime || "." + extension);
90
- const isImage = (mime == null ? void 0 : mime.includes("image/")) || isUnsavedAnnotation;
91
+ const isImage = (mime == null ? void 0 : mime.includes("image/")) || Boolean(unsavedAnnotation);
91
92
  const downloadComponent = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
92
93
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "size", children: getFileSizeString(size) }),
93
94
  /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { icon: "download", className: "download-icon" })
94
95
  ] });
96
+ const someAnnotation = unsavedAnnotation ?? savedAnnotation;
95
97
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
96
98
  File,
97
99
  {
@@ -99,14 +101,17 @@ const FileUploadCard = ({
99
101
  compact: isCompact,
100
102
  isDownloadable,
101
103
  isPreviewable,
102
- isUnsavedAnnotation
104
+ isUnsavedAnnotation: Boolean(unsavedAnnotation)
103
105
  }),
104
106
  ...props,
105
107
  children: [
106
108
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
107
109
  ContentWrapper,
108
110
  {
109
- className: clsx("content-wrapper", { isPreviewable, isUnsavedAnnotation }),
111
+ className: clsx("content-wrapper", {
112
+ isPreviewable,
113
+ isUnsavedAnnotation: Boolean(unsavedAnnotation)
114
+ }),
110
115
  children: [
111
116
  /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { icon: getIconForType(mime || "." + extension), className: "type-icon" }),
112
117
  isImage && src && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -114,7 +119,7 @@ const FileUploadCard = ({
114
119
  {
115
120
  className: clsx({
116
121
  "image-wrapper": true,
117
- isDownloadable: isDownloadable || isPreviewable || isUnsavedAnnotation
122
+ isDownloadable: isDownloadable || isPreviewable || unsavedAnnotation
118
123
  }),
119
124
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
120
125
  "img",
@@ -138,7 +143,7 @@ const FileUploadCard = ({
138
143
  onClick: onExpand
139
144
  }
140
145
  ),
141
- (isUnsavedAnnotation || feedAnnotationsEnabled && savedAnnotation) && /* @__PURE__ */ jsxRuntimeExports.jsx(
146
+ (unsavedAnnotation || feedAnnotationsEnabled && savedAnnotation) && /* @__PURE__ */ jsxRuntimeExports.jsx(
142
147
  ExpandButton,
143
148
  {
144
149
  "data-tooltip": "Jump to annotation",
@@ -153,11 +158,17 @@ const FileUploadCard = ({
153
158
  ),
154
159
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Footer, { className: clsx({ inProgress, isPreviewable, isDownloadable }), children: [
155
160
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "progress", style: { right: `${100 - progress}%` } }),
156
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "name-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "name", children: fileName }) }),
157
- /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "extension", children: [
158
- ".",
159
- extension
160
- ] }),
161
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "name-wrapper", children: someAnnotation ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "name", children: [
162
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { icon: "draw" }),
163
+ someAnnotation.range[0],
164
+ someAnnotation.range[1] !== someAnnotation.range[0] && ` - ${someAnnotation.range[1]}`
165
+ ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "name", children: [
166
+ fileName,
167
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "extension", children: [
168
+ ".",
169
+ extension
170
+ ] })
171
+ ] }) }),
161
172
  isDownloadable && (!onRemove ? /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: src, download: true, className: "download", children: downloadComponent }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "download", children: downloadComponent }))
162
173
  ] }),
163
174
  onRemove && /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { className: "remove", onClick: onRemove, icon: "close" })
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadCard.es.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.tsx"],"sourcesContent":["import { Button, getFileSizeString, Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './FileUploadCard.styled'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n mime?: string\n src?: string\n isUnsavedAnnotation?: boolean\n savedAnnotation: SavedAnnotationMetadata\n size: number\n progress: number\n onRemove?: () => void\n isCompact?: boolean\n isDownloadable?: boolean\n onExpand?: () => void\n onJumpTo?: () => void\n}\n\nconst fileIcons: { [key: string]: string[] } = {\n // special cases\n description: ['doc'],\n folder_zip: ['zip'],\n code_blocks: [\n 'json',\n 'javascript',\n 'python',\n 'html',\n 'css',\n '.py',\n '.js',\n '.html',\n '.css',\n '.json',\n '.ts',\n ],\n brush: ['.psd', '.ai', '.xd', '.sketch'],\n '3d_rotation': [\n '.mb',\n '.ma',\n '.c4d',\n '.blend',\n '.max',\n '.3ds',\n '.lwo',\n '.lws',\n '.lxo',\n '.hip',\n '.hda',\n ],\n theaters: ['.aep', '.tpl', '.clip', '.nk', '.fusion', '.prproj', '.spsm', '.drp'],\n picture_as_pdf: ['pdf', '.pdf'],\n // default\n image: ['image', '.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp'],\n videocam: ['video', '.mp4', '.mov', '.avi', '.mkv', '.webm', '.mxf'],\n business_center: ['application'],\n audio_file: ['audio'],\n text_snippet: ['text'],\n filter_none: ['sequence'],\n font_download: ['font'],\n deployed_code: ['model', '.obj', '.abc', '.stl', '.fbx', '.gltf', '.glb', '.usd'],\n}\n\nconst getIconForType = (type: string): string => {\n for (const [icon, keywords] of Object.entries(fileIcons)) {\n if (keywords.some((keyword) => type.includes(keyword))) {\n return icon\n }\n }\n return 'draft'\n}\n\nconst FileUploadCard = ({\n name,\n mime,\n src,\n isUnsavedAnnotation,\n savedAnnotation,\n size,\n progress,\n onRemove,\n isCompact,\n isDownloadable = false,\n onExpand,\n onJumpTo,\n className,\n ...props\n}: FileUploadCardProps) => {\n const inProgress = progress && progress < 100\n\n const [imageError, setImageError] = useState(false)\n const { feedAnnotationsEnabled } = useDetailsPanelContext()\n\n // split name and file extension\n const nameParts = name.split('.')\n const extension = nameParts.pop() || ''\n const fileName = nameParts.join('.')\n\n const isPreviewable = isFilePreviewable(mime || '.' + extension)\n const isImage = mime?.includes('image/') || isUnsavedAnnotation\n\n const downloadComponent = (\n <>\n <span className=\"size\">{getFileSizeString(size)}</span>\n <Icon icon=\"download\" className=\"download-icon\" />\n </>\n )\n\n return (\n <Styled.File\n className={clsx(className, {\n compact: isCompact,\n isDownloadable,\n isPreviewable,\n isUnsavedAnnotation,\n })}\n {...props}\n >\n <Styled.ContentWrapper\n className={clsx('content-wrapper', { isPreviewable, isUnsavedAnnotation })}\n >\n <Icon icon={getIconForType(mime || '.' + extension)} className=\"type-icon\" />\n {isImage && src && (\n <Styled.ImageWrapper\n className={clsx({\n 'image-wrapper': true,\n isDownloadable: isDownloadable || isPreviewable || isUnsavedAnnotation,\n })}\n >\n <img\n src={src}\n onError={() => setImageError(true)}\n style={{\n display: imageError ? 'none' : 'block',\n }}\n />\n </Styled.ImageWrapper>\n )}\n <Styled.Buttons className=\"expand-buttons\">\n {isPreviewable && (\n <Styled.ExpandButton\n data-tooltip=\"Open preview\"\n icon=\"open_in_full\"\n variant=\"nav\"\n onClick={onExpand}\n />\n )}\n {(isUnsavedAnnotation || (feedAnnotationsEnabled && savedAnnotation)) && (\n <Styled.ExpandButton\n data-tooltip=\"Jump to annotation\"\n icon=\"play_circle\"\n variant=\"nav\"\n onClick={onJumpTo}\n />\n )}\n </Styled.Buttons>\n </Styled.ContentWrapper>\n <Styled.Footer className={clsx({ inProgress, isPreviewable, isDownloadable })}>\n <span className=\"progress\" style={{ right: `${100 - progress}%` }} />\n <div className=\"name-wrapper\">\n <span className=\"name\">{fileName}</span>\n </div>\n <span className=\"extension\">.{extension}</span>\n {isDownloadable &&\n (!onRemove ? (\n <a href={src} download className=\"download\">\n {downloadComponent}\n </a>\n ) : (\n <div className=\"download\">{downloadComponent}</div>\n ))}\n </Styled.Footer>\n {onRemove && <Button className=\"remove\" onClick={onRemove} icon=\"close\" />}\n </Styled.File>\n )\n}\n\nexport default FileUploadCard\n"],"names":["jsxs","Fragment","jsx","Styled.File","Styled.ContentWrapper","Styled.ImageWrapper","Styled.Buttons","Styled.ExpandButton","Styled.Footer"],"mappings":"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"}
1
+ {"version":3,"file":"FileUploadCard.es.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.tsx"],"sourcesContent":["import { Button, getFileSizeString, Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './FileUploadCard.styled'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { AnnotationPreview } from '../CommentInput/hooks/useAnnotationsSync'\n\nexport interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n mime?: string\n src?: string\n unsavedAnnotation?: AnnotationPreview\n savedAnnotation?: SavedAnnotationMetadata\n size: number\n progress: number\n onRemove?: () => void\n isCompact?: boolean\n isDownloadable?: boolean\n onExpand?: () => void\n onJumpTo?: () => void\n}\n\nconst fileIcons: { [key: string]: string[] } = {\n // special cases\n description: ['doc'],\n folder_zip: ['zip'],\n code_blocks: [\n 'json',\n 'javascript',\n 'python',\n 'html',\n 'css',\n '.py',\n '.js',\n '.html',\n '.css',\n '.json',\n '.ts',\n ],\n brush: ['.psd', '.ai', '.xd', '.sketch'],\n '3d_rotation': [\n '.mb',\n '.ma',\n '.c4d',\n '.blend',\n '.max',\n '.3ds',\n '.lwo',\n '.lws',\n '.lxo',\n '.hip',\n '.hda',\n ],\n theaters: ['.aep', '.tpl', '.clip', '.nk', '.fusion', '.prproj', '.spsm', '.drp'],\n picture_as_pdf: ['pdf', '.pdf'],\n // default\n image: ['image', '.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp'],\n videocam: ['video', '.mp4', '.mov', '.avi', '.mkv', '.webm', '.mxf'],\n business_center: ['application'],\n audio_file: ['audio'],\n text_snippet: ['text'],\n filter_none: ['sequence'],\n font_download: ['font'],\n deployed_code: ['model', '.obj', '.abc', '.stl', '.fbx', '.gltf', '.glb', '.usd'],\n}\n\nconst getIconForType = (type: string): string => {\n for (const [icon, keywords] of Object.entries(fileIcons)) {\n if (keywords.some((keyword) => type.includes(keyword))) {\n return icon\n }\n }\n return 'draft'\n}\n\nconst FileUploadCard = ({\n name,\n mime,\n src,\n unsavedAnnotation,\n savedAnnotation,\n size,\n progress,\n onRemove,\n isCompact,\n isDownloadable = false,\n onExpand,\n onJumpTo,\n className,\n ...props\n}: FileUploadCardProps) => {\n const inProgress = progress && progress < 100\n\n const [imageError, setImageError] = useState(false)\n const { feedAnnotationsEnabled } = useDetailsPanelContext()\n\n // split name and file extension\n const nameParts = name.split('.')\n const extension = nameParts.pop() || ''\n const fileName = nameParts.join('.')\n\n const isPreviewable = isFilePreviewable(mime || '.' + extension)\n const isImage = mime?.includes('image/') || Boolean(unsavedAnnotation)\n\n const downloadComponent = (\n <>\n <span className=\"size\">{getFileSizeString(size)}</span>\n <Icon icon=\"download\" className=\"download-icon\" />\n </>\n )\n\n const someAnnotation = unsavedAnnotation ?? savedAnnotation\n\n return (\n <Styled.File\n className={clsx(className, {\n compact: isCompact,\n isDownloadable,\n isPreviewable,\n isUnsavedAnnotation: Boolean(unsavedAnnotation),\n })}\n {...props}\n >\n <Styled.ContentWrapper\n className={clsx('content-wrapper', {\n isPreviewable,\n isUnsavedAnnotation: Boolean(unsavedAnnotation),\n })}\n >\n <Icon icon={getIconForType(mime || '.' + extension)} className=\"type-icon\" />\n {isImage && src && (\n <Styled.ImageWrapper\n className={clsx({\n 'image-wrapper': true,\n isDownloadable: isDownloadable || isPreviewable || unsavedAnnotation,\n })}\n >\n <img\n src={src}\n onError={() => setImageError(true)}\n style={{\n display: imageError ? 'none' : 'block',\n }}\n />\n </Styled.ImageWrapper>\n )}\n <Styled.Buttons className=\"expand-buttons\">\n {isPreviewable && (\n <Styled.ExpandButton\n data-tooltip=\"Open preview\"\n icon=\"open_in_full\"\n variant=\"nav\"\n onClick={onExpand}\n />\n )}\n {(unsavedAnnotation || (feedAnnotationsEnabled && savedAnnotation)) && (\n <Styled.ExpandButton\n data-tooltip=\"Jump to annotation\"\n icon=\"play_circle\"\n variant=\"nav\"\n onClick={onJumpTo}\n />\n )}\n </Styled.Buttons>\n </Styled.ContentWrapper>\n <Styled.Footer className={clsx({ inProgress, isPreviewable, isDownloadable })}>\n <span className=\"progress\" style={{ right: `${100 - progress}%` }} />\n <div className=\"name-wrapper\">\n {someAnnotation ? (\n <span className=\"name\">\n <Icon icon=\"draw\" />\n {someAnnotation.range[0]}\n {someAnnotation.range[1] !== someAnnotation.range[0] &&\n ` - ${someAnnotation.range[1]}`}\n </span>\n ) : (\n <span className=\"name\">\n {fileName}\n <span className=\"extension\">.{extension}</span>\n </span>\n )}\n </div>\n\n {isDownloadable &&\n (!onRemove ? (\n <a href={src} download className=\"download\">\n {downloadComponent}\n </a>\n ) : (\n <div className=\"download\">{downloadComponent}</div>\n ))}\n </Styled.Footer>\n {onRemove && <Button className=\"remove\" onClick={onRemove} icon=\"close\" />}\n </Styled.File>\n )\n}\n\nexport default FileUploadCard\n"],"names":["jsxs","Fragment","jsx","Styled.File","Styled.ContentWrapper","Styled.ImageWrapper","Styled.Buttons","Styled.ExpandButton","Styled.Footer"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAM,YAAyC;AAAA;AAAA,EAE7C,aAAa,CAAC,KAAK;AAAA,EACnB,YAAY,CAAC,KAAK;AAAA,EAClB,aAAa;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO,CAAC,QAAQ,OAAO,OAAO,SAAS;AAAA,EACvC,eAAe;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU,CAAC,QAAQ,QAAQ,SAAS,OAAO,WAAW,WAAW,SAAS,MAAM;AAAA,EAChF,gBAAgB,CAAC,OAAO,MAAM;AAAA;AAAA,EAE9B,OAAO,CAAC,SAAS,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,OAAO;AAAA,EACjE,UAAU,CAAC,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,MAAM;AAAA,EACnE,iBAAiB,CAAC,aAAa;AAAA,EAC/B,YAAY,CAAC,OAAO;AAAA,EACpB,cAAc,CAAC,MAAM;AAAA,EACrB,aAAa,CAAC,UAAU;AAAA,EACxB,eAAe,CAAC,MAAM;AAAA,EACtB,eAAe,CAAC,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,MAAM;AAClF;AAEA,MAAM,iBAAiB,CAAC,SAAyB;AAC/C,aAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,QAAA,SAAS,KAAK,CAAC,YAAY,KAAK,SAAS,OAAO,CAAC,GAAG;AAC/C,aAAA;AAAA,IAAA;AAAA,EACT;AAEK,SAAA;AACT;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA2B;AACnB,QAAA,aAAa,YAAY,WAAW;AAE1C,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAC5C,QAAA,EAAE,uBAAuB,IAAI,uBAAuB;AAGpD,QAAA,YAAY,KAAK,MAAM,GAAG;AAC1B,QAAA,YAAY,UAAU,IAAA,KAAS;AAC/B,QAAA,WAAW,UAAU,KAAK,GAAG;AAEnC,QAAM,gBAAgB,kBAAkB,QAAQ,MAAM,SAAS;AAC/D,QAAM,WAAU,6BAAM,SAAS,cAAa,QAAQ,iBAAiB;AAErE,QAAM,oBAEFA,kCAAAA,KAAAC,kBAAA,UAAA,EAAA,UAAA;AAAA,IAAAC,sCAAC,QAAK,EAAA,WAAU,QAAQ,UAAA,kBAAkB,IAAI,GAAE;AAAA,IAC/CA,kCAAA,IAAA,MAAA,EAAK,MAAK,YAAW,WAAU,gBAAgB,CAAA;AAAA,EAAA,GAClD;AAGF,QAAM,iBAAiB,qBAAqB;AAG1C,SAAAF,kCAAA;AAAA,IAACG;AAAAA,IAAA;AAAA,MACC,WAAW,KAAK,WAAW;AAAA,QACzB,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,qBAAqB,QAAQ,iBAAiB;AAAA,MAAA,CAC/C;AAAA,MACA,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAH,kCAAA;AAAA,UAACI;AAAAA,UAAA;AAAA,YACC,WAAW,KAAK,mBAAmB;AAAA,cACjC;AAAA,cACA,qBAAqB,QAAQ,iBAAiB;AAAA,YAAA,CAC/C;AAAA,YAED,UAAA;AAAA,cAACF,kCAAAA,IAAA,MAAA,EAAK,MAAM,eAAe,QAAQ,MAAM,SAAS,GAAG,WAAU,aAAY;AAAA,cAC1E,WAAW,OACVA,kCAAA;AAAA,gBAACG;AAAAA,gBAAA;AAAA,kBACC,WAAW,KAAK;AAAA,oBACd,iBAAiB;AAAA,oBACjB,gBAAgB,kBAAkB,iBAAiB;AAAA,kBAAA,CACpD;AAAA,kBAED,UAAAH,kCAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC;AAAA,sBACA,SAAS,MAAM,cAAc,IAAI;AAAA,sBACjC,OAAO;AAAA,wBACL,SAAS,aAAa,SAAS;AAAA,sBAAA;AAAA,oBACjC;AAAA,kBAAA;AAAA,gBACF;AAAA,cACF;AAAA,cAEDF,kCAAAA,KAAAM,SAAA,EAAe,WAAU,kBACvB,UAAA;AAAA,gBACC,iBAAAJ,kCAAA;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,gBAAa;AAAA,oBACb,MAAK;AAAA,oBACL,SAAQ;AAAA,oBACR,SAAS;AAAA,kBAAA;AAAA,gBACX;AAAA,iBAEA,qBAAsB,0BAA0B,oBAChDL,kCAAA;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,gBAAa;AAAA,oBACb,MAAK;AAAA,oBACL,SAAQ;AAAA,oBACR,SAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX,EAEJ,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,QACAP,uCAACQ,QAAA,EAAc,WAAW,KAAK,EAAE,YAAY,eAAe,gBAAgB,GAC1E,UAAA;AAAA,UAACN,kCAAAA,IAAA,QAAA,EAAK,WAAU,YAAW,OAAO,EAAE,OAAO,GAAG,MAAM,QAAQ,IAAO,EAAA,CAAA;AAAA,UACnEA,kCAAAA,IAAC,SAAI,WAAU,gBACZ,2BACEF,kCAAAA,KAAA,QAAA,EAAK,WAAU,QACd,UAAA;AAAA,YAACE,kCAAAA,IAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,YACjB,eAAe,MAAM,CAAC;AAAA,YACtB,eAAe,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,KACjD,MAAM,eAAe,MAAM,CAAC,CAAC;AAAA,UAAA,EACjC,CAAA,IAEAF,kCAAAA,KAAC,QAAK,EAAA,WAAU,QACb,UAAA;AAAA,YAAA;AAAA,YACDA,kCAAAA,KAAC,QAAK,EAAA,WAAU,aAAY,UAAA;AAAA,cAAA;AAAA,cAAE;AAAA,YAAA,EAAU,CAAA;AAAA,UAAA,EAAA,CAC1C,EAEJ,CAAA;AAAA,UAEC,mBACE,CAAC,WACCE,kCAAAA,IAAA,KAAA,EAAE,MAAM,KAAK,UAAQ,MAAC,WAAU,YAC9B,UACH,mBAAA,0CAEC,OAAI,EAAA,WAAU,YAAY,UAAkB,mBAAA;AAAA,QAAA,GAEnD;AAAA,QACC,kDAAa,QAAO,EAAA,WAAU,UAAS,SAAS,UAAU,MAAK,QAAQ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC1E;AAEJ;"}
@@ -90,6 +90,12 @@ const Footer = styled.footer`
90
90
  white-space: nowrap;
91
91
  z-index: 20;
92
92
  display: inherit;
93
+
94
+ .icon {
95
+ font-size: inherit;
96
+ margin-right: var(--padding-s);
97
+ vertical-align: text-top;
98
+ }
93
99
  }
94
100
 
95
101
  .extension {
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadCard.styled.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.ts"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const File = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--border-radius-m);\n overflow: hidden;\n background-color: var(--md-sys-color-surface-container-low);\n z-index: 0;\n user-select: none;\n\n height: 105px;\n\n &.compact {\n height: 75px;\n }\n\n .icon {\n font-size: 30px;\n }\n\n .remove {\n position: absolute;\n top: 2px;\n right: 2px;\n padding: 2px;\n\n &:hover {\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n }\n\n .icon {\n font-size: 20px;\n }\n }\n\n /* move icon up slightly to center it */\n .type-icon {\n margin-top: -20px;\n }\n\n /* set download default color outline */\n .download,\n .download-icon {\n color: var(--md-sys-color-outline);\n }\n`\n\nexport const Footer = styled.footer`\n background-color: var(--md-sys-color-surface-container-low);\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--padding-s);\n overflow: hidden;\n color: var(--md-sys-color-on-surface);\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n\n transition: padding 0.2s ease;\n\n span {\n font-size: 12px;\n }\n\n .name-wrapper {\n overflow: hidden;\n }\n\n .download {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n display: none;\n color: var(--md-sys-color-on-surface);\n }\n\n .name {\n position: relative;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n z-index: 20;\n display: inherit;\n }\n\n .extension {\n z-index: 20;\n min-width: fit-content;\n overflow: hidden;\n }\n\n .progress {\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-primary-container);\n z-index: 10;\n\n transition: right 0.3s;\n\n display: none;\n }\n\n &.inProgress {\n .progress {\n display: block;\n }\n }\n\n .download-icon {\n font-size: 20px;\n }\n\n &.isDownloadable {\n &:hover {\n cursor: pointer;\n\n padding: var(--padding-m) var(--padding-s);\n\n background-color: var(--md-sys-color-surface-container-low-hover);\n\n .download,\n .download-icon {\n color: var(--md-sys-color-on-surface);\n }\n\n /* reveal size and download */\n .download {\n display: flex;\n }\n .name-wrapper,\n .extension {\n display: none;\n }\n }\n }\n`\n\nexport const ContentWrapper = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n\n flex: 1;\n\n .icon {\n user-select: none;\n }\n\n .download-icon {\n display: none;\n }\n\n /* previewable styles (it can be expanded) */\n /* on hover it shows the expand buttons */\n &.isPreviewable,\n &.isUnsavedAnnotation {\n cursor: pointer;\n\n &:hover {\n .expand-buttons {\n display: flex;\n }\n .type-icon {\n display: none;\n }\n }\n }\n\n &:hover .image-wrapper::after {\n opacity: 0.8;\n }\n`\n\nexport const ImageWrapper = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n img {\n position: absolute;\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n height: calc(100% - 20px);\n\n transition: scale 0.2s ease;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-surface-container-lowest);\n opacity: 0;\n transition: opacity 0.1s ease;\n }\n\n &.isDownloadable {\n &:hover {\n .icon {\n display: block;\n z-index: 10;\n }\n }\n }\n`\n\nexport const Buttons = styled.div`\n display: none;\n position: absolute;\n left: 0;\n top: 0;\n transform: none;\n height: calc(100% - 20px);\n width: 100%;\n gap: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n height: 100%;\n width: 100%;\n border: none;\n opacity: 0.5;\n transition: opacity 250ms;\n\n &:hover {\n background: none;\n opacity: 1;\n }\n`\n"],"names":["Button"],"mappings":";;;;AAGO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDpB,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+FtB,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsC9B,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmC5B,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWjB,MAAA,eAAe,OAAOA,0BAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"FileUploadCard.styled.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.ts"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const File = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--border-radius-m);\n overflow: hidden;\n background-color: var(--md-sys-color-surface-container-low);\n z-index: 0;\n user-select: none;\n\n height: 105px;\n\n &.compact {\n height: 75px;\n }\n\n .icon {\n font-size: 30px;\n }\n\n .remove {\n position: absolute;\n top: 2px;\n right: 2px;\n padding: 2px;\n\n &:hover {\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n }\n\n .icon {\n font-size: 20px;\n }\n }\n\n /* move icon up slightly to center it */\n .type-icon {\n margin-top: -20px;\n }\n\n /* set download default color outline */\n .download,\n .download-icon {\n color: var(--md-sys-color-outline);\n }\n`\n\nexport const Footer = styled.footer`\n background-color: var(--md-sys-color-surface-container-low);\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--padding-s);\n overflow: hidden;\n color: var(--md-sys-color-on-surface);\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n\n transition: padding 0.2s ease;\n\n span {\n font-size: 12px;\n }\n\n .name-wrapper {\n overflow: hidden;\n }\n\n .download {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n display: none;\n color: var(--md-sys-color-on-surface);\n }\n\n .name {\n position: relative;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n z-index: 20;\n display: inherit;\n\n .icon {\n font-size: inherit;\n margin-right: var(--padding-s);\n vertical-align: text-top;\n }\n }\n\n .extension {\n z-index: 20;\n min-width: fit-content;\n overflow: hidden;\n }\n\n .progress {\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-primary-container);\n z-index: 10;\n\n transition: right 0.3s;\n\n display: none;\n }\n\n &.inProgress {\n .progress {\n display: block;\n }\n }\n\n .download-icon {\n font-size: 20px;\n }\n\n &.isDownloadable {\n &:hover {\n cursor: pointer;\n\n padding: var(--padding-m) var(--padding-s);\n\n background-color: var(--md-sys-color-surface-container-low-hover);\n\n .download,\n .download-icon {\n color: var(--md-sys-color-on-surface);\n }\n\n /* reveal size and download */\n .download {\n display: flex;\n }\n .name-wrapper,\n .extension {\n display: none;\n }\n }\n }\n`\n\nexport const ContentWrapper = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n\n flex: 1;\n\n .icon {\n user-select: none;\n }\n\n .download-icon {\n display: none;\n }\n\n /* previewable styles (it can be expanded) */\n /* on hover it shows the expand buttons */\n &.isPreviewable,\n &.isUnsavedAnnotation {\n cursor: pointer;\n\n &:hover {\n .expand-buttons {\n display: flex;\n }\n .type-icon {\n display: none;\n }\n }\n }\n\n &:hover .image-wrapper::after {\n opacity: 0.8;\n }\n`\n\nexport const ImageWrapper = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n img {\n position: absolute;\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n height: calc(100% - 20px);\n\n transition: scale 0.2s ease;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-surface-container-lowest);\n opacity: 0;\n transition: opacity 0.1s ease;\n }\n\n &.isDownloadable {\n &:hover {\n .icon {\n display: block;\n z-index: 10;\n }\n }\n }\n`\n\nexport const Buttons = styled.div`\n display: none;\n position: absolute;\n left: 0;\n top: 0;\n transform: none;\n height: calc(100% - 20px);\n width: 100%;\n gap: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n height: 100%;\n width: 100%;\n border: none;\n opacity: 0.5;\n transition: opacity 250ms;\n\n &:hover {\n background: none;\n opacity: 1;\n }\n`\n"],"names":["Button"],"mappings":";;;;AAGO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDpB,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqGtB,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsC9B,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmC5B,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWjB,MAAA,eAAe,OAAOA,0BAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;"}
@@ -88,6 +88,12 @@ const Footer = styled.footer`
88
88
  white-space: nowrap;
89
89
  z-index: 20;
90
90
  display: inherit;
91
+
92
+ .icon {
93
+ font-size: inherit;
94
+ margin-right: var(--padding-s);
95
+ vertical-align: text-top;
96
+ }
91
97
  }
92
98
 
93
99
  .extension {
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadCard.styled.es.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.ts"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const File = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--border-radius-m);\n overflow: hidden;\n background-color: var(--md-sys-color-surface-container-low);\n z-index: 0;\n user-select: none;\n\n height: 105px;\n\n &.compact {\n height: 75px;\n }\n\n .icon {\n font-size: 30px;\n }\n\n .remove {\n position: absolute;\n top: 2px;\n right: 2px;\n padding: 2px;\n\n &:hover {\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n }\n\n .icon {\n font-size: 20px;\n }\n }\n\n /* move icon up slightly to center it */\n .type-icon {\n margin-top: -20px;\n }\n\n /* set download default color outline */\n .download,\n .download-icon {\n color: var(--md-sys-color-outline);\n }\n`\n\nexport const Footer = styled.footer`\n background-color: var(--md-sys-color-surface-container-low);\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--padding-s);\n overflow: hidden;\n color: var(--md-sys-color-on-surface);\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n\n transition: padding 0.2s ease;\n\n span {\n font-size: 12px;\n }\n\n .name-wrapper {\n overflow: hidden;\n }\n\n .download {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n display: none;\n color: var(--md-sys-color-on-surface);\n }\n\n .name {\n position: relative;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n z-index: 20;\n display: inherit;\n }\n\n .extension {\n z-index: 20;\n min-width: fit-content;\n overflow: hidden;\n }\n\n .progress {\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-primary-container);\n z-index: 10;\n\n transition: right 0.3s;\n\n display: none;\n }\n\n &.inProgress {\n .progress {\n display: block;\n }\n }\n\n .download-icon {\n font-size: 20px;\n }\n\n &.isDownloadable {\n &:hover {\n cursor: pointer;\n\n padding: var(--padding-m) var(--padding-s);\n\n background-color: var(--md-sys-color-surface-container-low-hover);\n\n .download,\n .download-icon {\n color: var(--md-sys-color-on-surface);\n }\n\n /* reveal size and download */\n .download {\n display: flex;\n }\n .name-wrapper,\n .extension {\n display: none;\n }\n }\n }\n`\n\nexport const ContentWrapper = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n\n flex: 1;\n\n .icon {\n user-select: none;\n }\n\n .download-icon {\n display: none;\n }\n\n /* previewable styles (it can be expanded) */\n /* on hover it shows the expand buttons */\n &.isPreviewable,\n &.isUnsavedAnnotation {\n cursor: pointer;\n\n &:hover {\n .expand-buttons {\n display: flex;\n }\n .type-icon {\n display: none;\n }\n }\n }\n\n &:hover .image-wrapper::after {\n opacity: 0.8;\n }\n`\n\nexport const ImageWrapper = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n img {\n position: absolute;\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n height: calc(100% - 20px);\n\n transition: scale 0.2s ease;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-surface-container-lowest);\n opacity: 0;\n transition: opacity 0.1s ease;\n }\n\n &.isDownloadable {\n &:hover {\n .icon {\n display: block;\n z-index: 10;\n }\n }\n }\n`\n\nexport const Buttons = styled.div`\n display: none;\n position: absolute;\n left: 0;\n top: 0;\n transform: none;\n height: calc(100% - 20px);\n width: 100%;\n gap: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n height: 100%;\n width: 100%;\n border: none;\n opacity: 0.5;\n transition: opacity 250ms;\n\n &:hover {\n background: none;\n opacity: 1;\n }\n`\n"],"names":[],"mappings":";;AAGO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDpB,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+FtB,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsC9B,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmC5B,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWjB,MAAA,eAAe,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"FileUploadCard.styled.es.js","sources":["../../../../../../../src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.ts"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const File = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--border-radius-m);\n overflow: hidden;\n background-color: var(--md-sys-color-surface-container-low);\n z-index: 0;\n user-select: none;\n\n height: 105px;\n\n &.compact {\n height: 75px;\n }\n\n .icon {\n font-size: 30px;\n }\n\n .remove {\n position: absolute;\n top: 2px;\n right: 2px;\n padding: 2px;\n\n &:hover {\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n }\n\n .icon {\n font-size: 20px;\n }\n }\n\n /* move icon up slightly to center it */\n .type-icon {\n margin-top: -20px;\n }\n\n /* set download default color outline */\n .download,\n .download-icon {\n color: var(--md-sys-color-outline);\n }\n`\n\nexport const Footer = styled.footer`\n background-color: var(--md-sys-color-surface-container-low);\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--padding-s);\n overflow: hidden;\n color: var(--md-sys-color-on-surface);\n\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n\n transition: padding 0.2s ease;\n\n span {\n font-size: 12px;\n }\n\n .name-wrapper {\n overflow: hidden;\n }\n\n .download {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n display: none;\n color: var(--md-sys-color-on-surface);\n }\n\n .name {\n position: relative;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n z-index: 20;\n display: inherit;\n\n .icon {\n font-size: inherit;\n margin-right: var(--padding-s);\n vertical-align: text-top;\n }\n }\n\n .extension {\n z-index: 20;\n min-width: fit-content;\n overflow: hidden;\n }\n\n .progress {\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-primary-container);\n z-index: 10;\n\n transition: right 0.3s;\n\n display: none;\n }\n\n &.inProgress {\n .progress {\n display: block;\n }\n }\n\n .download-icon {\n font-size: 20px;\n }\n\n &.isDownloadable {\n &:hover {\n cursor: pointer;\n\n padding: var(--padding-m) var(--padding-s);\n\n background-color: var(--md-sys-color-surface-container-low-hover);\n\n .download,\n .download-icon {\n color: var(--md-sys-color-on-surface);\n }\n\n /* reveal size and download */\n .download {\n display: flex;\n }\n .name-wrapper,\n .extension {\n display: none;\n }\n }\n }\n`\n\nexport const ContentWrapper = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n\n flex: 1;\n\n .icon {\n user-select: none;\n }\n\n .download-icon {\n display: none;\n }\n\n /* previewable styles (it can be expanded) */\n /* on hover it shows the expand buttons */\n &.isPreviewable,\n &.isUnsavedAnnotation {\n cursor: pointer;\n\n &:hover {\n .expand-buttons {\n display: flex;\n }\n .type-icon {\n display: none;\n }\n }\n }\n\n &:hover .image-wrapper::after {\n opacity: 0.8;\n }\n`\n\nexport const ImageWrapper = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n background-color: var(--md-sys-color-surface-container-lowest);\n img {\n position: absolute;\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n height: calc(100% - 20px);\n\n transition: scale 0.2s ease;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background-color: var(--md-sys-color-surface-container-lowest);\n opacity: 0;\n transition: opacity 0.1s ease;\n }\n\n &.isDownloadable {\n &:hover {\n .icon {\n display: block;\n z-index: 10;\n }\n }\n }\n`\n\nexport const Buttons = styled.div`\n display: none;\n position: absolute;\n left: 0;\n top: 0;\n transform: none;\n height: calc(100% - 20px);\n width: 100%;\n gap: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n height: 100%;\n width: 100%;\n border: none;\n opacity: 0.5;\n transition: opacity 250ms;\n\n &:hover {\n background: none;\n opacity: 1;\n }\n`\n"],"names":[],"mappings":";;AAGO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDpB,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqGtB,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsC9B,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmC5B,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWjB,MAAA,eAAe,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -32,11 +32,11 @@ const FilesGrid = ({
32
32
  name: file.name,
33
33
  mime: file.mime || file.type,
34
34
  size: file.size,
35
- src: file.isUnsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
36
- isUnsavedAnnotation: file.isUnsavedAnnotation,
35
+ src: file.unsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
36
+ unsavedAnnotation: file.unsavedAnnotation,
37
37
  savedAnnotation: file.annotation,
38
38
  progress: file.progress,
39
- onRemove: onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : void 0,
39
+ onRemove: onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : void 0,
40
40
  isCompact,
41
41
  isDownloadable,
42
42
  onExpand: () => handleExpand(index),
@@ -1 +1 @@
1
- {"version":3,"file":"FilesGrid.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.isUnsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n isUnsavedAnnotation={file.isUnsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["useCallback","isFilePreviewable","Styled.Grid","jsx"],"mappings":";;;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAeA,MAAA;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAASC,oCAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,0DACGC,iBAAAA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,sBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,qBAAqB,KAAK;AAAA,MAC1B,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK,mBAAmB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;;"}
1
+ {"version":3,"file":"FilesGrid.cjs.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.unsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n unsavedAnnotation={file.unsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["useCallback","isFilePreviewable","Styled.Grid","jsx"],"mappings":";;;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAeA,MAAA;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAASC,oCAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,0DACGC,iBAAAA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,oBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,mBAAmB,KAAK;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,iBAAiB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;;"}
@@ -31,11 +31,11 @@ const FilesGrid = ({
31
31
  name: file.name,
32
32
  mime: file.mime || file.type,
33
33
  size: file.size,
34
- src: file.isUnsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
35
- isUnsavedAnnotation: file.isUnsavedAnnotation,
34
+ src: file.unsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
35
+ unsavedAnnotation: file.unsavedAnnotation,
36
36
  savedAnnotation: file.annotation,
37
37
  progress: file.progress,
38
- onRemove: onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : void 0,
38
+ onRemove: onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : void 0,
39
39
  isCompact,
40
40
  isDownloadable,
41
41
  onExpand: () => handleExpand(index),
@@ -1 +1 @@
1
- {"version":3,"file":"FilesGrid.es.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.isUnsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n isUnsavedAnnotation={file.isUnsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["Styled.Grid","jsx"],"mappings":";;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAe;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAAS,kBAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,+CACGA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,sBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,qBAAqB,KAAK;AAAA,MAC1B,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK,mBAAmB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"FilesGrid.es.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.unsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n unsavedAnnotation={file.unsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["Styled.Grid","jsx"],"mappings":";;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAe;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAAS,kBAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,+CACGA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,oBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,mBAAmB,KAAK;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,iBAAiB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;"}
@@ -30,6 +30,7 @@ require("../../../../../context/pip/PiPProvider.cjs.js");
30
30
  require("../../../../../context/pip/PiPWrapper.cjs.js");
31
31
  require("../../../../../context/AddonProjectContext.cjs.js");
32
32
  require("../../../../../context/AddonContext.cjs.js");
33
+ require("../../../../../context/PowerpackContext.cjs.js");
33
34
  require("../../CommentInput/quillToMarkdown.cjs.js");
34
35
  require("../../ActivityComment/ActivityComment.styled.cjs.js");
35
36
  require("../../ActivityCheckbox/ActivityCheckbox.styled.cjs.js");