@ynput/ayon-frontend-shared 0.3.15 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Views.cjs.js +1 -1
  5. package/dist/Views.cjs.js.map +1 -1
  6. package/dist/Views.es.js +36 -41
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/_virtual/index.cjs.js +1 -1
  9. package/dist/_virtual/index.cjs2.js +1 -1
  10. package/dist/_virtual/index.cjs3.js +1 -1
  11. package/dist/_virtual/index.cjs4.js +1 -1
  12. package/dist/_virtual/index.cjs5.js +1 -1
  13. package/dist/_virtual/index.cjs6.js +1 -1
  14. package/dist/_virtual/index.cjs8.js +1 -1
  15. package/dist/_virtual/index.es.js +4 -5
  16. package/dist/_virtual/index.es2.js +6 -2
  17. package/dist/_virtual/index.es2.js.map +1 -1
  18. package/dist/_virtual/index.es3.js +2 -5
  19. package/dist/_virtual/index.es3.js.map +1 -1
  20. package/dist/_virtual/index.es4.js +5 -2
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +2 -5
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +5 -2
  25. package/dist/_virtual/index.es6.js.map +1 -1
  26. package/dist/_virtual/index.es7.js +2 -2
  27. package/dist/_virtual/index.es8.js +2 -5
  28. package/dist/_virtual/index.es8.js.map +1 -1
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +15 -11
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  35. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  36. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  37. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js.map +1 -1
  38. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  39. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  40. package/dist/node_modules/remove-accents/index.es.js +1 -1
  41. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  43. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  44. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  45. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  46. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  47. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  48. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  49. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  50. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  51. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/graphql.cjs.js +5 -3
  54. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/graphql.es.js +2 -0
  56. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  59. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  60. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  61. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +99 -90
  62. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  63. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +13 -1
  64. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  65. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +72 -25
  66. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  67. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  68. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +25 -21
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  71. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  72. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +14 -14
  74. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  75. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
  76. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +23 -23
  78. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  80. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  81. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +71 -36
  82. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  83. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  84. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  85. package/dist/shared/src/components/LinksManager/LinksManager.es.js +120 -89
  86. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +52 -12
  88. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  89. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +63 -21
  90. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  91. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  92. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  93. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
  94. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  95. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js +2 -0
  96. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js.map +1 -0
  97. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js +18 -0
  98. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js.map +1 -0
  99. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +8 -4
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  103. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  107. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  109. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +8 -4
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  111. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  112. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  113. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
  114. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  115. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  116. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  117. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +8 -4
  118. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  119. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  120. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  121. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -5
  122. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +139 -128
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +90 -81
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  131. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  132. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -4
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  136. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +9 -5
  138. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  139. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  141. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -4
  142. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  143. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  147. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  148. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
  150. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  151. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  152. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
  154. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  156. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +20 -16
  158. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -4
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -5
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +12 -8
  170. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -18
  174. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -4
  178. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -4
  182. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  183. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  184. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +57 -45
  186. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  187. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  188. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -4
  190. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  191. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  192. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -4
  194. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  195. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -4
  198. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  199. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  201. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js +2 -0
  202. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js.map +1 -0
  203. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js +70 -0
  204. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js.map +1 -0
  205. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  206. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/Feed.es.js +247 -151
  208. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  210. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -4
  212. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  214. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -2
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +1 -0
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +1 -0
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -5
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  226. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -4
  228. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -1
  230. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -3
  232. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  234. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -4
  236. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +59 -55
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +9 -5
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -4
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -2
  252. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -4
  256. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
  260. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +16 -16
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -2
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +9 -5
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +6 -2
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -4
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -4
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +6 -2
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -2
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +6 -2
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -4
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -4
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -2
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -2
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +6 -2
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +17 -13
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +7 -3
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +60 -48
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +6 -2
  332. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  334. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -4
  336. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  337. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  338. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -24
  339. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  340. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -4
  342. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  343. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  344. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
  346. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  347. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  349. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  350. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
  352. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  353. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  354. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +24 -23
  356. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  357. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  358. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +83 -88
  360. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +1 -1
  364. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  365. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  366. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +56 -53
  368. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  369. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  370. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +23 -144
  372. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  373. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -1
  375. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  377. package/dist/shared/src/containers/Views/types.cjs.js +2 -0
  378. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -0
  379. package/dist/shared/src/containers/Views/types.es.js +15 -0
  380. package/dist/shared/src/containers/Views/types.es.js.map +1 -0
  381. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
  383. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js +2 -0
  384. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js.map +1 -0
  385. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js +5 -0
  386. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js.map +1 -0
  387. package/dist/shared/src/containers/Views/utils/portalUtils.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Views/utils/portalUtils.es.js.map +1 -1
  389. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  390. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/DetailsPanelContext.es.js +76 -77
  392. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  393. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  394. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  395. package/dist/shared/src/context/WebsocketContext.es.js +9 -5
  396. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  397. package/dist/types/api/generated/access.d.ts +6 -0
  398. package/dist/types/api/generated/graphql.d.ts +8 -4
  399. package/dist/types/api/generated/users.d.ts +6 -1
  400. package/dist/types/components/AttributeEditor/AttributeEditor.d.ts +1 -0
  401. package/dist/types/components/LinksManager/LinkManagerItem.d.ts +2 -0
  402. package/dist/types/components/LinksManager/LinksManager.styled.d.ts +6 -0
  403. package/dist/types/components/LinksManager/utils/groupLinks.d.ts +14 -0
  404. package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +1 -0
  405. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  406. package/dist/types/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.d.ts +11 -0
  407. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +1 -0
  408. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
  409. package/dist/types/containers/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +2 -2
  410. package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -2
  411. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +1 -1
  412. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -3
  413. package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +2 -1
  414. package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +1 -1
  415. package/dist/types/containers/Views/index.d.ts +1 -7
  416. package/dist/types/containers/Views/types.d.ts +10 -0
  417. package/dist/types/containers/Views/utils/isViewStudioScope.d.ts +2 -0
  418. package/dist/types/containers/Views/utils/portalUtils.d.ts +1 -1
  419. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
- import { j as p } from "../../../../_virtual/jsx-runtime.es.js";
2
- import { toast as a } from "react-toastify";
1
+ import { j as o } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { useMemo as c } from "react";
3
+ import { toast as s } from "react-toastify";
3
4
  import "../../api/base/client.es.js";
4
5
  import "../../api/generated/graphql.es.js";
5
6
  import "../../api/generated/graphqlLinks.es.js";
@@ -53,7 +54,7 @@ import "../../api/queries/authentication/getAuthentication.es.js";
53
54
  import "../../api/queries/cloud/cloud.es.js";
54
55
  import "../../api/queries/config/getConfig.es.js";
55
56
  import "../../api/queries/config/updateConfig.es.js";
56
- import { useGetEntityQuery as d } from "../../api/queries/entities/getEntity.es.js";
57
+ import { useGetEntityQuery as g } from "../../api/queries/entities/getEntity.es.js";
57
58
  import "../../api/queries/entities/getEntityPanel.es.js";
58
59
  import "../../api/queries/entities/updateEntity.es.js";
59
60
  import "../../api/queries/entityLists/getLists.es.js";
@@ -89,40 +90,86 @@ import "../../api/queries/views/getViews.es.js";
89
90
  import "../../api/queries/views/updateViews.es.js";
90
91
  import "../../api/queries/watchers/getWatchers.es.js";
91
92
  import "../../api/queries/uris/getUris.es.js";
92
- import { Dialog as f } from "@ynput/ayon-react-components";
93
- const Zr = ({
94
- projectName: e,
95
- entityType: o,
96
- entityIds: s,
93
+ import { Dialog as u, Icon as y } from "@ynput/ayon-react-components";
94
+ import _ from "../../../../node_modules/@uiw/react-textarea-code-editor/esm/index.es.js";
95
+ import "lodash";
96
+ import { copyToClipboard as x } from "../../util/copyToClipboard.es.js";
97
+ import "uuid";
98
+ import "../../util/pubsub.es.js";
99
+ const nt = ({
100
+ projectName: a,
101
+ entityType: r,
102
+ entityIds: l,
97
103
  visible: i,
98
- onHide: l
104
+ onHide: n
99
105
  }) => {
100
106
  const {
101
- data: m = {},
102
- isLoading: r,
103
- isError: t,
104
- error: n
105
- } = d(
106
- { projectName: e, entityType: o, entityId: s[0] },
107
+ data: t = {},
108
+ isLoading: p,
109
+ isError: m,
110
+ error: d
111
+ } = g(
112
+ { projectName: a, entityType: r, entityId: l?.[0] },
107
113
  { skip: !i }
108
114
  );
109
- return r && t && a.error(`Unable to load detail. ${n}`), !i || m.length < 1 ? null : /* @__PURE__ */ p.jsx(
110
- f,
115
+ m && s.error(`Unable to load detail. ${d}`);
116
+ const e = c(() => {
117
+ try {
118
+ return JSON.stringify(t, null, 2);
119
+ } catch {
120
+ return String(t);
121
+ }
122
+ }, [t]);
123
+ return !i || Array.isArray(t) && t.length < 1 ? null : /* @__PURE__ */ o.jsxs(
124
+ u,
111
125
  {
112
126
  isOpen: !0,
113
- onClose: l,
127
+ onClose: n,
114
128
  size: "lg",
115
129
  style: { width: "50vw" },
116
- header: `${o} detail`,
117
- children: /* @__PURE__ */ p.jsxs("pre", { children: [
118
- !r && !t && JSON.stringify(m, null, 2),
119
- r && "loading...",
120
- t && "error..."
121
- ] })
130
+ header: `${r} detail`,
131
+ children: [
132
+ /* @__PURE__ */ o.jsx("style", { children: `
133
+ .details-dialog__code { position: relative; }
134
+ .details-dialog__copy { position: absolute; right: 12px; top: 24px; z-index: 10; background: rgba(0,0,0,0.5); border-radius: 4px; padding: 6px; cursor: pointer; display: none; align-items: center; justify-content: center; }
135
+ .details-dialog__code:hover .details-dialog__copy, .details-dialog__code:focus-within .details-dialog__copy { display: flex; }
136
+ .w-tc-editor .token.property { color: #c9a5f7 !important; }
137
+ .w-tc-editor .token.string { color: #6bc985 !important; }
138
+ .w-tc-editor .token.number { color: #e5a66b !important; }
139
+ .w-tc-editor .token.boolean { color: #e5a66b !important; }
140
+ .w-tc-editor .token.null { color: #7a8a99 !important; }
141
+ .w-tc-editor .token.punctuation { color: #b0bec5 !important; }
142
+ .w-tc-editor .token.operator { color: #b0bec5 !important; }
143
+ .details-dialog__code .w-tc-editor textarea { display: none !important; }
144
+ ` }),
145
+ /* @__PURE__ */ o.jsx("div", { className: "details-dialog__code", children: p || m ? /* @__PURE__ */ o.jsx("pre", { children: p ? "loading..." : "error..." }) : /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
146
+ /* @__PURE__ */ o.jsx(
147
+ "div",
148
+ {
149
+ role: "button",
150
+ "aria-label": "Copy JSON",
151
+ onClick: () => x(e),
152
+ className: "details-dialog__copy",
153
+ children: /* @__PURE__ */ o.jsx(y, { icon: "content_copy", "data-tooltip": "Copy to clipboard" })
154
+ }
155
+ ),
156
+ /* @__PURE__ */ o.jsx(
157
+ _,
158
+ {
159
+ wrap: "off",
160
+ value: e,
161
+ language: "json",
162
+ placeholder: "Please enter JS code.",
163
+ readOnly: !0,
164
+ "data-color-mode": "dark"
165
+ }
166
+ )
167
+ ] }) })
168
+ ]
122
169
  }
123
170
  );
124
171
  };
125
172
  export {
126
- Zr as DetailsDialog
173
+ nt as DetailsDialog
127
174
  };
128
175
  //# sourceMappingURL=DetailsDialog.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsDialog.es.js","sources":["../../../../../src/components/DetailsDialog/DetailsDialog.tsx"],"sourcesContent":["import { toast } from 'react-toastify'\nimport { useGetEntityQuery } from '@shared/api'\nimport { Dialog } from '@ynput/ayon-react-components'\n\nexport interface DetailsDialogProps {\n projectName?: string\n entityType: string\n entityIds: string[]\n visible: boolean\n onHide: () => void\n}\n\nexport const DetailsDialog = ({\n projectName,\n entityType,\n entityIds,\n visible,\n onHide,\n}: DetailsDialogProps) => {\n const {\n data = {},\n isLoading,\n isError,\n error,\n } = useGetEntityQuery(\n { projectName, entityType: entityType, entityId: entityIds[0] },\n { skip: !visible },\n )\n\n if (isLoading)\n if (isError) {\n toast.error(`Unable to load detail. ${error}`)\n }\n\n if (!visible || data.length < 1) return null\n\n return (\n <Dialog\n isOpen={true}\n onClose={onHide}\n size=\"lg\"\n style={{ width: '50vw' }}\n header={`${entityType} detail`}\n >\n <pre>\n {!isLoading && !isError && JSON.stringify(data, null, 2)}\n {isLoading && 'loading...'}\n {isError && 'error...'}\n </pre>\n </Dialog>\n )\n}\n"],"names":["DetailsDialog","projectName","entityType","entityIds","visible","onHide","data","isLoading","isError","error","useGetEntityQuery","toast","jsx","Dialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAMA,KAAgB,CAAC;AAAA,EAC5B,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACF,MAA0B;AACxB,QAAM;AAAA,IACJ,MAAAC,IAAO,CAAA;AAAA,IACP,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC;AAAA,IACF,EAAE,aAAAT,GAAa,YAAAC,GAAwB,UAAUC,EAAU,CAAC,EAAA;AAAA,IAC5D,EAAE,MAAM,CAACC,EAAA;AAAA,EAAQ;AAQnB,SALIG,KACEC,KACFG,EAAM,MAAM,0BAA0BF,CAAK,EAAE,GAG7C,CAACL,KAAWE,EAAK,SAAS,IAAU,OAGtCM,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR,SAASR;AAAA,MACT,MAAK;AAAA,MACL,OAAO,EAAE,OAAO,OAAA;AAAA,MAChB,QAAQ,GAAGH,CAAU;AAAA,MAErB,iCAAC,OAAA,EACE,UAAA;AAAA,QAAA,CAACK,KAAa,CAACC,KAAW,KAAK,UAAUF,GAAM,MAAM,CAAC;AAAA,QACtDC,KAAa;AAAA,QACbC,KAAW;AAAA,MAAA,EAAA,CACd;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"DetailsDialog.es.js","sources":["../../../../../src/components/DetailsDialog/DetailsDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { useGetEntityQuery } from '@shared/api'\nimport { Dialog, Icon } from '@ynput/ayon-react-components'\nimport CodeEditor from '@uiw/react-textarea-code-editor'\nimport { copyToClipboard } from '@shared/util'\n\nexport interface DetailsDialogProps {\n projectName?: string\n entityType: string\n entityIds: string[]\n visible: boolean\n onHide: () => void\n}\n\nexport const DetailsDialog = ({\n projectName,\n entityType,\n entityIds,\n visible,\n onHide,\n}: DetailsDialogProps) => {\n const {\n data = {},\n isLoading,\n isError,\n error,\n } = useGetEntityQuery(\n { projectName, entityType: entityType, entityId: entityIds?.[0] },\n { skip: !visible },\n )\n\n // Show error toast if the query errored\n if (isError) {\n toast.error(`Unable to load detail. ${error}`)\n }\n\n // Raw pretty JSON for copying and highlighting\n const rawJson = useMemo(() => {\n try {\n return JSON.stringify(data, null, 2)\n } catch {\n return String(data)\n }\n }, [data])\n\n // Keep the early return after hooks to ensure hooks are called on every render in the same order\n if (!visible || (Array.isArray(data) ? data.length < 1 : false)) return null\n\n return (\n <Dialog\n isOpen={true}\n onClose={onHide}\n size=\"lg\"\n style={{ width: '50vw' }}\n header={`${entityType} detail`}\n >\n <style>{`\n .details-dialog__code { position: relative; }\n .details-dialog__copy { position: absolute; right: 12px; top: 24px; z-index: 10; background: rgba(0,0,0,0.5); border-radius: 4px; padding: 6px; cursor: pointer; display: none; align-items: center; justify-content: center; }\n .details-dialog__code:hover .details-dialog__copy, .details-dialog__code:focus-within .details-dialog__copy { display: flex; }\n .w-tc-editor .token.property { color: #c9a5f7 !important; }\n .w-tc-editor .token.string { color: #6bc985 !important; }\n .w-tc-editor .token.number { color: #e5a66b !important; }\n .w-tc-editor .token.boolean { color: #e5a66b !important; }\n .w-tc-editor .token.null { color: #7a8a99 !important; }\n .w-tc-editor .token.punctuation { color: #b0bec5 !important; }\n .w-tc-editor .token.operator { color: #b0bec5 !important; }\n .details-dialog__code .w-tc-editor textarea { display: none !important; }\n `}</style>\n <div className=\"details-dialog__code\">\n {isLoading || isError ? (\n <pre>{isLoading ? 'loading...' : 'error...'}</pre>\n ) : (\n <>\n <div\n role=\"button\"\n aria-label=\"Copy JSON\"\n onClick={() => copyToClipboard(rawJson)}\n className=\"details-dialog__copy\"\n >\n <Icon icon={'content_copy'} data-tooltip=\"Copy to clipboard\" />\n </div>\n <CodeEditor\n wrap={'off'}\n value={rawJson}\n language=\"json\"\n placeholder=\"Please enter JS code.\"\n readOnly\n data-color-mode={'dark'}\n />\n </>\n )}\n </div>\n </Dialog>\n )\n}"],"names":["DetailsDialog","projectName","entityType","entityIds","visible","onHide","data","isLoading","isError","error","useGetEntityQuery","toast","rawJson","useMemo","jsxs","Dialog","jsx","Fragment","copyToClipboard","Icon","CodeEditor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAAgB,CAAC;AAAA,EAC5B,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACF,MAA0B;AACxB,QAAM;AAAA,IACJ,MAAAC,IAAO,CAAA;AAAA,IACP,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC;AAAA,IACF,EAAE,aAAAT,GAAa,YAAAC,GAAwB,UAAUC,IAAY,CAAC,EAAA;AAAA,IAC9D,EAAE,MAAM,CAACC,EAAA;AAAA,EAAQ;AAInB,EAAII,KACFG,EAAM,MAAM,0BAA0BF,CAAK,EAAE;AAI/C,QAAMG,IAAUC,EAAQ,MAAM;AAC5B,QAAI;AACF,aAAO,KAAK,UAAUP,GAAM,MAAM,CAAC;AAAA,IACrC,QAAQ;AACN,aAAO,OAAOA,CAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAACA,CAAI,CAAC;AAGT,SAAI,CAACF,KAAY,MAAM,QAAQE,CAAI,KAAIA,EAAK,SAAS,IAAmB,OAGtEQ,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR,SAASV;AAAA,MACT,MAAK;AAAA,MACL,OAAO,EAAE,OAAO,OAAA;AAAA,MAChB,QAAQ,GAAGH,CAAU;AAAA,MAErB,UAAA;AAAA,QAAAc,gBAAAA,MAAC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAYN;AAAA,QACFA,gBAAAA,MAAC,OAAA,EAAI,WAAU,wBACZ,UAAAT,KAAaC,IACZQ,gBAAAA,MAAC,OAAA,EAAK,UAAAT,IAAY,eAAe,WAAA,CAAW,IAE5CO,gBAAAA,OAAAG,EAAAA,UAAA,EACE,UAAA;AAAA,UAAAD,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,cAAW;AAAA,cACX,SAAS,MAAME,EAAgBN,CAAO;AAAA,cACtC,WAAU;AAAA,cAEV,UAAAI,gBAAAA,EAAAA,IAACG,GAAA,EAAK,MAAM,gBAAgB,gBAAa,oBAAA,CAAoB;AAAA,YAAA;AAAA,UAAA;AAAA,UAE/DH,gBAAAA,EAAAA;AAAAA,YAACI;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,OAAOR;AAAA,cACP,UAAS;AAAA,cACT,aAAY;AAAA,cACZ,UAAQ;AAAA,cACR,mBAAiB;AAAA,YAAA;AAAA,UAAA;AAAA,QACnB,EAAA,CACF,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),se=require("clsx");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("react-dom");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const oe=require("../../context/DetailsPanelContext.cjs.js");require("../../context/SubtasksModulesContext.cjs.js");const qe=require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../Badge/Badge.cjs.js");require("../Chips/Chips.cjs.js");require("date-fns");require("../DateRangePicker/DateRangePicker.styled.cjs.js");require("../LinksManager/CellEditingDialog.cjs.js");const w=require("react-toastify");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const ae=require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");const le=require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");const ce=require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../DoneCheckbox/DoneCheckbox.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const d=require("./EntityPanelUploader.styled.cjs.js"),de=require("./Dropzone.cjs.js"),pe=require("axios");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("uuid");const p=require("../../util/versionUploadHelpers.cjs.js");require("../../util/pubsub.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");const he=require("../ReviewablesList/useReviewablesUpload.cjs.js"),fe=require("./EntityPanelUploaderDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../containers/SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("@tanstack/match-sorter-utils");require("../../containers/SimpleTable/context/SimpleTableContext.cjs.js");require("../../containers/SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../../containers/Slicer/components/SlicerSearch.cjs.js");require("../../containers/Slicer/context/SlicerContext.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../SortingSetting/SortingSetting.styled.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Watchers/Watchers.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("../ReviewablesSelector/ReviewablesSelector.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../containers/Feed/components/ActivityDate.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");const ge=require("../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../containers/Actions/Actions.styled.cjs.js");require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../containers/Actions/ActionIcon.cjs.js");require("../../containers/Views/context/ViewsContext.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const me=[{id:"thumbnail",label:"Upload thumbnail",icon:"add_photo_alternate"},{id:"version",label:"Upload version",icon:"layers"}],xe=({children:H=[],entityType:T,entities:a=[],projectName:y,onUploaded:I,onVersionCreated:_})=>{const{dispatch:k}=oe.useDetailsPanelContext(),[S,h]=o.useState(!1),[b,f]=o.useState(null),c=o.useRef(0),[j,l]=o.useState(null),[B,v]=o.useState(0),[L,g]=o.useState(!1),[D,m]=o.useState(null),n=a.length===1?a[0]:null,C=n?.task?.id,E=n?.folder?.id,W=n?.product?.id,G=n?.id,P=!!(n&&T!=="representation"),{handleFileUpload:J}=he.useReviewablesUpload({projectName:y,versionId:G,taskId:C,folderId:E,productId:W,dispatch:k,onUpload:()=>{l(null),v(0)},onProgress:e=>{v(e)}}),K=me.filter(e=>e.id==="version"?P:!0),s=()=>{l(null),h(!1),f(null),c.current=0,v(0),g(!1),m(null)},Q=async e=>{if(!D||!n){g(!1),m(null);return}const r=p.sanitizeProductName(e);if(!r.trim()){w.toast.error("Product name must contain valid characters (letters, numbers, underscore, or hyphen)");return}try{if(!E)throw new Error("Folder ID is required to create a product");l("version");const i=await p.createProductHelper(z,y,{folderId:E,name:r,productType:"review",productBaseType:"review"});g(!1),await F(D,i.id),m(null)}catch(i){p.handleUploadError(i,"creating product"),s()}},X=()=>{g(!1),m(null),s()},[Y]=ce.useCreateVersionMutation(),[z]=le.useCreateProductMutation(),V=async e=>{if(!P||!n)return w.toast.error("Please select exactly one version to upload reviewables"),s();const r=n.product?.id;if(!r){m(e),g(!0);return}await F(e,r)},F=async(e,r)=>{try{const i=p.getNextVersionNumber(n.product?.latestVersion),t=await p.createVersionHelper(Y,y,{productId:r,taskId:C,version:i});await J(e,t.id),s(),_?.(t.id)}catch(i){p.handleUploadError(i,"uploading version"),s()}},N=async(e=[])=>{if(h(!1),!a.length)return;const r=new Date().toISOString();let i=[];for(const t of e){const q=a.find(R=>R.id===t.id);if(!q)continue;t.thumbnailId;const x=t.users||[];i.push({id:q.id,projectName:q.projectName,data:{updatedAt:r},currentAssignees:x}),q.productId}try{await ee({operations:i,entityType:T}),I&&I(i)}catch(t){console.error("Error uploading thumbnail:",t)}},O=async e=>{if(!e)return s();try{if(!e.type.includes("image"))throw new Error("File is not an image");let r=[];for(const q of a){const{id:x,entityType:R,projectName:U}=q;if(!U)throw new Error("Project name is required");const ne=pe.post(U&&`/api/projects/${U}/${R}s/${x}/thumbnail`,e,{onUploadProgress:M=>{v(Math.round(100*M.loaded/(M.total||e.size)))},headers:{"Content-Type":e.type}});r.push(ne)}const t=(await Promise.all(r)).map((q,x)=>({thumbnailId:q.data.id,id:a[x].id}));N(t),s()}catch(r){console.error(r),w.toast.error(r.message),s()}},[ee]=ae.useUpdateEntitiesMutation(),re=e=>{e.preventDefault(),c.current++,c.current===1&&h(!0)},ie=e=>{e.preventDefault(),c.current--,c.current===0&&(h(!1),f(null))},ue=e=>{e.preventDefault()},te=e=>{if(e.preventDefault(),c.current=0,h(!1),f(null),!(!e.dataTransfer.files||e.dataTransfer.files.length===0)){if(b==="thumbnail"){l("thumbnail");const r=e.dataTransfer.files[0];O(r)}if(b==="version"){l("version");const r=e.dataTransfer.files;V(r)}}},Z=async(e,r)=>{const i=e.target.files;!i||i.length===0||(r==="version"&&(l("version"),V(i)),r==="thumbnail"&&(l("thumbnail"),O(i[0])))},$=o.useRef(null),A=o.useRef(null);return u.jsxRuntimeExports.jsxs(qe.ThumbnailUploadProvider,{entities:a,handleThumbnailUpload:N,thumbnailInputRef:$,versionsInputRef:P?A:void 0,children:[u.jsxRuntimeExports.jsxs(d.DragAndDropWrapper,{className:se({dragging:S}),onDragEnter:re,onDragLeave:ie,onDragOver:ue,onDrop:te,children:[u.jsxRuntimeExports.jsx(ge.ThumbnailWrapper,{children:u.jsxRuntimeExports.jsx("div",{children:H})}),S&&u.jsxRuntimeExports.jsx(d.DropZones,{children:K.map(e=>u.jsxRuntimeExports.jsx(de,{id:e.id,label:e.label,icon:e.icon,isActive:b===e.id,onDragOver:()=>f(e.id),onDragLeave:()=>f(null)},e.id))}),(j==="thumbnail"||j==="version")&&u.jsxRuntimeExports.jsxs(d.DropZones,{children:[u.jsxRuntimeExports.jsxs(d.UploadingProgress,{children:[u.jsxRuntimeExports.jsx(d.Progress,{style:{right:`${100-B}%`}}),u.jsxRuntimeExports.jsx("span",{className:"label",children:`Uploading ${j}...`})]}),u.jsxRuntimeExports.jsx(d.CancelButton,{icon:"close",variant:"text",onClick:s})]}),u.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>Z(e,"thumbnail"),ref:$}),u.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>Z(e,"version"),ref:A})]}),u.jsxRuntimeExports.jsx(fe,{isOpen:L,files:D,onSubmit:Q,onCancel:X})]})};exports.EntityPanelUploader=xe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),se=require("clsx");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("react-dom");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const oe=require("../../context/DetailsPanelContext.cjs.js");require("../../context/SubtasksModulesContext.cjs.js");const qe=require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../Badge/Badge.cjs.js");require("../Chips/Chips.cjs.js");require("date-fns");require("../DateRangePicker/DateRangePicker.styled.cjs.js");require("../LinksManager/CellEditingDialog.cjs.js");const w=require("react-toastify");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const ae=require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");const le=require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");const ce=require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("../../../../_virtual/index.cjs.js");require("../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");const d=require("../../util/versionUploadHelpers.cjs.js");require("../../util/pubsub.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../DoneCheckbox/DoneCheckbox.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const p=require("./EntityPanelUploader.styled.cjs.js"),de=require("./Dropzone.cjs.js"),pe=require("axios");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");const he=require("../ReviewablesList/useReviewablesUpload.cjs.js"),fe=require("./EntityPanelUploaderDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../containers/SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("@tanstack/match-sorter-utils");require("../../containers/SimpleTable/context/SimpleTableContext.cjs.js");require("../../containers/SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../../containers/Slicer/components/SlicerSearch.cjs.js");require("../../containers/Slicer/context/SlicerContext.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../SortingSetting/SortingSetting.styled.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Watchers/Watchers.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("../ReviewablesSelector/ReviewablesSelector.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../containers/Feed/components/ActivityDate.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");const ge=require("../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../containers/Actions/Actions.styled.cjs.js");require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../containers/Actions/ActionIcon.cjs.js");require("../../containers/Views/context/ViewsContext.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const me=[{id:"thumbnail",label:"Upload thumbnail",icon:"add_photo_alternate"},{id:"version",label:"Upload version",icon:"layers"}],xe=({children:H=[],entityType:T,entities:a=[],projectName:y,onUploaded:I,onVersionCreated:_})=>{const{dispatch:k}=oe.useDetailsPanelContext(),[S,h]=o.useState(!1),[b,f]=o.useState(null),c=o.useRef(0),[j,l]=o.useState(null),[B,v]=o.useState(0),[L,g]=o.useState(!1),[D,m]=o.useState(null),n=a.length===1?a[0]:null,C=n?.task?.id,E=n?.folder?.id,W=n?.product?.id,G=n?.id,P=!!(n&&T!=="representation"),{handleFileUpload:J}=he.useReviewablesUpload({projectName:y,versionId:G,taskId:C,folderId:E,productId:W,dispatch:k,onUpload:()=>{l(null),v(0)},onProgress:e=>{v(e)}}),K=me.filter(e=>e.id==="version"?P:!0),s=()=>{l(null),h(!1),f(null),c.current=0,v(0),g(!1),m(null)},Q=async e=>{if(!D||!n){g(!1),m(null);return}const r=d.sanitizeProductName(e);if(!r.trim()){w.toast.error("Product name must contain valid characters (letters, numbers, underscore, or hyphen)");return}try{if(!E)throw new Error("Folder ID is required to create a product");l("version");const i=await d.createProductHelper(z,y,{folderId:E,name:r,productType:"review",productBaseType:"review"});g(!1),await F(D,i.id),m(null)}catch(i){d.handleUploadError(i,"creating product"),s()}},X=()=>{g(!1),m(null),s()},[Y]=ce.useCreateVersionMutation(),[z]=le.useCreateProductMutation(),V=async e=>{if(!P||!n)return w.toast.error("Please select exactly one version to upload reviewables"),s();const r=n.product?.id;if(!r){m(e),g(!0);return}await F(e,r)},F=async(e,r)=>{try{const i=d.getNextVersionNumber(n.product?.latestVersion),t=await d.createVersionHelper(Y,y,{productId:r,taskId:C,version:i});await J(e,t.id),s(),_?.(t.id)}catch(i){d.handleUploadError(i,"uploading version"),s()}},N=async(e=[])=>{if(h(!1),!a.length)return;const r=new Date().toISOString();let i=[];for(const t of e){const q=a.find(R=>R.id===t.id);if(!q)continue;t.thumbnailId;const x=t.users||[];i.push({id:q.id,projectName:q.projectName,data:{updatedAt:r},currentAssignees:x}),q.productId}try{await ee({operations:i,entityType:T}),I&&I(i)}catch(t){console.error("Error uploading thumbnail:",t)}},O=async e=>{if(!e)return s();try{if(!e.type.includes("image"))throw new Error("File is not an image");let r=[];for(const q of a){const{id:x,entityType:R,projectName:U}=q;if(!U)throw new Error("Project name is required");const ne=pe.post(U&&`/api/projects/${U}/${R}s/${x}/thumbnail`,e,{onUploadProgress:M=>{v(Math.round(100*M.loaded/(M.total||e.size)))},headers:{"Content-Type":e.type}});r.push(ne)}const t=(await Promise.all(r)).map((q,x)=>({thumbnailId:q.data.id,id:a[x].id}));N(t),s()}catch(r){console.error(r),w.toast.error(r.message),s()}},[ee]=ae.useUpdateEntitiesMutation(),re=e=>{e.preventDefault(),c.current++,c.current===1&&h(!0)},ie=e=>{e.preventDefault(),c.current--,c.current===0&&(h(!1),f(null))},ue=e=>{e.preventDefault()},te=e=>{if(e.preventDefault(),c.current=0,h(!1),f(null),!(!e.dataTransfer.files||e.dataTransfer.files.length===0)){if(b==="thumbnail"){l("thumbnail");const r=e.dataTransfer.files[0];O(r)}if(b==="version"){l("version");const r=e.dataTransfer.files;V(r)}}},Z=async(e,r)=>{const i=e.target.files;!i||i.length===0||(r==="version"&&(l("version"),V(i)),r==="thumbnail"&&(l("thumbnail"),O(i[0])))},$=o.useRef(null),A=o.useRef(null);return u.jsxRuntimeExports.jsxs(qe.ThumbnailUploadProvider,{entities:a,handleThumbnailUpload:N,thumbnailInputRef:$,versionsInputRef:P?A:void 0,children:[u.jsxRuntimeExports.jsxs(p.DragAndDropWrapper,{className:se({dragging:S}),onDragEnter:re,onDragLeave:ie,onDragOver:ue,onDrop:te,children:[u.jsxRuntimeExports.jsx(ge.ThumbnailWrapper,{children:u.jsxRuntimeExports.jsx("div",{children:H})}),S&&u.jsxRuntimeExports.jsx(p.DropZones,{children:K.map(e=>u.jsxRuntimeExports.jsx(de,{id:e.id,label:e.label,icon:e.icon,isActive:b===e.id,onDragOver:()=>f(e.id),onDragLeave:()=>f(null)},e.id))}),(j==="thumbnail"||j==="version")&&u.jsxRuntimeExports.jsxs(p.DropZones,{children:[u.jsxRuntimeExports.jsxs(p.UploadingProgress,{children:[u.jsxRuntimeExports.jsx(p.Progress,{style:{right:`${100-B}%`}}),u.jsxRuntimeExports.jsx("span",{className:"label",children:`Uploading ${j}...`})]}),u.jsxRuntimeExports.jsx(p.CancelButton,{icon:"close",variant:"text",onClick:s})]}),u.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>Z(e,"thumbnail"),ref:$}),u.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>Z(e,"version"),ref:A})]}),u.jsxRuntimeExports.jsx(fe,{isOpen:L,files:D,onSubmit:Q,onCancel:X})]})};exports.EntityPanelUploader=xe;
2
2
  //# sourceMappingURL=EntityPanelUploader.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPanelUploader.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n} from '@shared/util'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n productBaseType: 'review',\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["dropZones","EntityPanelUploader","children","entityType","entities","projectName","onUploaded","onVersionCreated","dispatch","useDetailsPanelContext","isDraggingFile","setIsDraggingFile","useState","draggingZone","setDraggingZone","dragCounterRef","useRef","uploadingType","setUploadingType","progress","setProgress","showProductDialog","setShowProductDialog","pendingFiles","setPendingFiles","singleEntity","taskId","folderId","productId","versionId","canUploadVersions","uploadReviewableFiles","useReviewablesUpload","availableDropZones","zone","resetState","handleDialogSubmit","productName","sanitizedName","sanitizeProductName","toast","productRes","createProductHelper","createProduct","uploadVersionWithProduct","error","handleUploadError","handleDialogCancel","createVersion","useCreateVersionMutation","useCreateProductMutation","handleVersionUpload","files","nextVersion","getNextVersionNumber","versionRes","createVersionHelper","handleThumbnailFileUploaded","thumbnails","newUpdatedAt","operations","entity","entityToPatch","e","currentAssignees","updateEntities","handleUploadThumbnail","file","promises","id","promise","axios","updatedEntities","res","i","useUpdateEntitiesMutation","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","handleInputUpload","event","type","thumbnailInputRef","versionsInputRef","jsxs","ThumbnailUploadProvider","Styled.DragAndDropWrapper","clsx","jsx","ThumbnailWrapper","Styled.DropZones","Dropzone","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton","EntityPanelUploaderDialog"],"mappings":"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"}
1
+ {"version":3,"file":"EntityPanelUploader.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n} from '@shared/util'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n productBaseType: 'review',\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["dropZones","EntityPanelUploader","children","entityType","entities","projectName","onUploaded","onVersionCreated","dispatch","useDetailsPanelContext","isDraggingFile","setIsDraggingFile","useState","draggingZone","setDraggingZone","dragCounterRef","useRef","uploadingType","setUploadingType","progress","setProgress","showProductDialog","setShowProductDialog","pendingFiles","setPendingFiles","singleEntity","taskId","folderId","productId","versionId","canUploadVersions","uploadReviewableFiles","useReviewablesUpload","availableDropZones","zone","resetState","handleDialogSubmit","productName","sanitizedName","sanitizeProductName","toast","productRes","createProductHelper","createProduct","uploadVersionWithProduct","error","handleUploadError","handleDialogCancel","createVersion","useCreateVersionMutation","useCreateProductMutation","handleVersionUpload","files","nextVersion","getNextVersionNumber","versionRes","createVersionHelper","handleThumbnailFileUploaded","thumbnails","newUpdatedAt","operations","entity","entityToPatch","e","currentAssignees","updateEntities","handleUploadThumbnail","file","promises","id","promise","axios","updatedEntities","res","i","useUpdateEntitiesMutation","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","handleInputUpload","event","type","thumbnailInputRef","versionsInputRef","jsxs","ThumbnailUploadProvider","Styled.DragAndDropWrapper","clsx","jsx","ThumbnailWrapper","Styled.DropZones","Dropzone","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton","EntityPanelUploaderDialog"],"mappings":"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"}
@@ -143,6 +143,13 @@ import "../../api/queries/views/getViews.es.js";
143
143
  import "../../api/queries/views/updateViews.es.js";
144
144
  import "../../api/queries/watchers/getWatchers.es.js";
145
145
  import "../../api/queries/uris/getUris.es.js";
146
+ import "../../../../_virtual/index.es.js";
147
+ import "../../../../node_modules/refractor/lib/common.es.js";
148
+ import "../../../../node_modules/refractor/lib/all.es.js";
149
+ /* empty css */
150
+ import "uuid";
151
+ import { sanitizeProductName as ur, createProductHelper as fr, handleUploadError as k, getNextVersionNumber as hr, createVersionHelper as gr } from "../../util/versionUploadHelpers.es.js";
152
+ import "../../util/pubsub.es.js";
146
153
  import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
147
154
  import "../DetailsPanelDetails/DetailsPanelDetails.es.js";
148
155
  import "../DetailsPanelDetails/DetailsSection.es.js";
@@ -151,13 +158,10 @@ import "../DoneCheckbox/DoneCheckbox.es.js";
151
158
  import "../EarlyPreview/EarlyPreview.es.js";
152
159
  import "../EmptyPlaceholder/EmptyPlaceholder.es.js";
153
160
  import "../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
154
- import { DragAndDropWrapper as ur, DropZones as k, UploadingProgress as fr, Progress as hr, CancelButton as gr } from "./EntityPanelUploader.styled.es.js";
155
- import vr from "./Dropzone.es.js";
156
- import br from "axios";
161
+ import { DragAndDropWrapper as vr, DropZones as B, UploadingProgress as br, Progress as yr, CancelButton as Dr } from "./EntityPanelUploader.styled.es.js";
162
+ import xr from "./Dropzone.es.js";
163
+ import wr from "axios";
157
164
  import "../ReviewablesList/ReviewablesList.styled.es.js";
158
- import "uuid";
159
- import { sanitizeProductName as yr, createProductHelper as Dr, handleUploadError as B, getNextVersionNumber as xr, createVersionHelper as wr } from "../../util/versionUploadHelpers.es.js";
160
- import "../../util/pubsub.es.js";
161
165
  import "../ReviewablesList/ReviewablesUpload.styled.es.js";
162
166
  import { useReviewablesUpload as Pr } from "../ReviewablesList/useReviewablesUpload.es.js";
163
167
  import jr from "./EntityPanelUploaderDialog.es.js";
@@ -268,7 +272,7 @@ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
268
272
  const Ir = [
269
273
  { id: "thumbnail", label: "Upload thumbnail", icon: "add_photo_alternate" },
270
274
  { id: "version", label: "Upload version", icon: "layers" }
271
- ], Um = ({
275
+ ], Cm = ({
272
276
  children: L = [],
273
277
  entityType: E,
274
278
  entities: a = [],
@@ -296,7 +300,7 @@ const Ir = [
296
300
  f(!1), h(null);
297
301
  return;
298
302
  }
299
- const t = yr(r);
303
+ const t = ur(r);
300
304
  if (!t.trim()) {
301
305
  T.error(
302
306
  "Product name must contain valid characters (letters, numbers, underscore, or hyphen)"
@@ -307,7 +311,7 @@ const Ir = [
307
311
  if (!w)
308
312
  throw new Error("Folder ID is required to create a product");
309
313
  s("version");
310
- const o = await Dr(rr, b, {
314
+ const o = await fr(rr, b, {
311
315
  folderId: w,
312
316
  name: t,
313
317
  productType: "review",
@@ -316,7 +320,7 @@ const Ir = [
316
320
  });
317
321
  f(!1), await N(x, o.id), h(null);
318
322
  } catch (o) {
319
- B(o, "creating product"), e();
323
+ k(o, "creating product"), e();
320
324
  }
321
325
  }, Y = () => {
322
326
  f(!1), h(null), e();
@@ -331,7 +335,7 @@ const Ir = [
331
335
  await N(r, t);
332
336
  }, N = async (r, t) => {
333
337
  try {
334
- const o = xr(m.product?.latestVersion), p = await wr(z, b, {
338
+ const o = hr(m.product?.latestVersion), p = await gr(z, b, {
335
339
  productId: t,
336
340
  taskId: F,
337
341
  // previous version could have a taskId or we are uploading on a task
@@ -339,7 +343,7 @@ const Ir = [
339
343
  });
340
344
  await K(r, p.id), e(), W?.(p.id);
341
345
  } catch (o) {
342
- B(o, "uploading version"), e();
346
+ k(o, "uploading version"), e();
343
347
  }
344
348
  }, S = async (r = []) => {
345
349
  if (c(!1), !a.length)
@@ -372,7 +376,7 @@ const Ir = [
372
376
  for (const n of a) {
373
377
  const { id: g, entityType: j, projectName: U } = n;
374
378
  if (!U) throw new Error("Project name is required");
375
- const er = br.post(
379
+ const er = wr.post(
376
380
  U && `/api/projects/${U}/${j}s/${g}/thumbnail`,
377
381
  r,
378
382
  {
@@ -426,7 +430,7 @@ const Ir = [
426
430
  versionsInputRef: P ? $ : void 0,
427
431
  children: [
428
432
  /* @__PURE__ */ i.jsxs(
429
- ur,
433
+ vr,
430
434
  {
431
435
  className: nr({ dragging: R }),
432
436
  onDragEnter: or,
@@ -435,8 +439,8 @@ const Ir = [
435
439
  onDrop: mr,
436
440
  children: [
437
441
  /* @__PURE__ */ i.jsx(Ur, { children: /* @__PURE__ */ i.jsx("div", { children: L }) }),
438
- R && /* @__PURE__ */ i.jsx(k, { children: Q.map((r) => /* @__PURE__ */ i.jsx(
439
- vr,
442
+ R && /* @__PURE__ */ i.jsx(B, { children: Q.map((r) => /* @__PURE__ */ i.jsx(
443
+ xr,
440
444
  {
441
445
  id: r.id,
442
446
  label: r.label,
@@ -447,10 +451,10 @@ const Ir = [
447
451
  },
448
452
  r.id
449
453
  )) }),
450
- (D === "thumbnail" || D === "version") && /* @__PURE__ */ i.jsxs(k, { children: [
451
- /* @__PURE__ */ i.jsxs(fr, { children: [
454
+ (D === "thumbnail" || D === "version") && /* @__PURE__ */ i.jsxs(B, { children: [
455
+ /* @__PURE__ */ i.jsxs(br, { children: [
452
456
  /* @__PURE__ */ i.jsx(
453
- hr,
457
+ yr,
454
458
  {
455
459
  style: {
456
460
  right: `${100 - H}%`
@@ -459,7 +463,7 @@ const Ir = [
459
463
  ),
460
464
  /* @__PURE__ */ i.jsx("span", { className: "label", children: `Uploading ${D}...` })
461
465
  ] }),
462
- /* @__PURE__ */ i.jsx(gr, { icon: "close", variant: "text", onClick: e })
466
+ /* @__PURE__ */ i.jsx(Dr, { icon: "close", variant: "text", onClick: e })
463
467
  ] }),
464
468
  /* @__PURE__ */ i.jsx(
465
469
  "input",
@@ -494,6 +498,6 @@ const Ir = [
494
498
  );
495
499
  };
496
500
  export {
497
- Um as EntityPanelUploader
501
+ Cm as EntityPanelUploader
498
502
  };
499
503
  //# sourceMappingURL=EntityPanelUploader.es.js.map