@ynput/ayon-frontend-shared 0.2.26 → 0.2.28

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 (367) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -22
  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 +13 -11
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/api.cjs.js +1 -1
  9. package/dist/api.es.js +153 -151
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +62 -51
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.es.js +12 -6
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  17. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  18. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  19. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  20. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  22. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  23. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  24. package/dist/shared/src/api/queries/entityLists/getLists.es.js +142 -117
  25. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  27. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  28. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +110 -95
  29. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  31. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  32. package/dist/shared/src/api/queries/users/getUsers.es.js +21 -17
  33. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  34. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
  35. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
  36. package/dist/shared/src/components/AccessUser/AccessUser.es.js +33 -0
  37. package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
  38. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +42 -0
  39. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
  40. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +46 -0
  41. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
  42. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js +34 -0
  43. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js.map +1 -0
  44. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js +46 -0
  45. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js.map +1 -0
  46. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +20 -10
  47. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  48. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +81 -67
  49. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  51. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +59 -52
  53. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  54. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  55. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  56. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  57. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  58. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  59. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  60. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +5 -2
  61. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  62. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  63. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  64. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  65. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  66. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +2 -0
  67. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -0
  68. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +205 -0
  69. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -0
  70. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +2 -0
  71. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -0
  72. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +25 -0
  73. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -0
  74. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +3 -3
  75. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +5 -5
  77. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  78. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  79. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  80. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -2
  81. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  82. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +9 -0
  83. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +1 -0
  84. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +25 -0
  85. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +1 -0
  86. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -4
  89. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  90. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  91. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  92. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +18 -21
  93. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  94. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  95. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  96. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -2
  97. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  98. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  99. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  100. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -3
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  102. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  103. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  104. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -2
  105. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  106. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +2 -0
  107. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
  108. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +17 -0
  109. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
  110. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  111. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  112. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -2
  113. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  114. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  115. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  116. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -2
  117. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  118. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  119. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  120. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -2
  121. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  122. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  123. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  124. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -2
  125. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  126. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  127. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  128. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +146 -157
  129. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  130. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +7 -1
  131. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
  132. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -6
  133. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js.map +1 -1
  134. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  135. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  136. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -2
  137. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  138. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  139. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  140. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  141. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  142. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  143. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  144. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
  145. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  146. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  147. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  148. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +5 -2
  149. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  150. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  151. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  152. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -2
  153. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  154. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  155. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  156. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -2
  157. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  158. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  159. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -2
  161. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  162. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +413 -396
  165. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  166. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +104 -25
  167. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +131 -52
  169. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  170. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +136 -129
  173. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  174. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +16 -53
  175. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +100 -120
  177. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  178. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -2
  181. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  182. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +7 -3
  183. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +12 -8
  185. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  186. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +5 -2
  189. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  190. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  191. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +250 -235
  193. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  194. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +24 -21
  197. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  198. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +5 -2
  201. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  202. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  204. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +10 -10
  207. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  208. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -9
  211. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  212. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +65 -60
  215. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  216. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +5 -2
  219. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  220. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +5 -2
  223. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  224. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +5 -2
  227. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  228. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  231. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  232. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  235. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  236. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +5 -2
  239. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +16 -13
  243. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js +41 -14
  247. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
  251. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  253. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +110 -104
  255. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +2 -2
  257. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +8 -8
  259. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +44 -43
  263. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -4
  267. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  268. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  269. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -2
  271. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  272. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  273. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +118 -103
  275. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  276. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +16 -4
  277. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +13 -1
  279. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  280. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  281. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +62 -50
  283. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  284. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  286. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js +2 -0
  287. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js.map +1 -0
  288. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js +64 -0
  289. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js.map +1 -0
  290. package/dist/shared/src/context/MenuContext.cjs.js +2 -0
  291. package/dist/shared/src/context/MenuContext.cjs.js.map +1 -0
  292. package/dist/shared/src/context/MenuContext.es.js +28 -0
  293. package/dist/shared/src/context/MenuContext.es.js.map +1 -0
  294. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  295. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  296. package/dist/shared/src/context/PowerpackContext.es.js +20 -15
  297. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  298. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  299. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  300. package/dist/shared/src/context/RemoteModulesContext.es.js +19 -19
  301. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  302. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  303. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  304. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +2 -0
  305. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -0
  306. package/dist/src/components/Menu/MenuComponents/Menu.es.js +55 -0
  307. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -0
  308. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +254 -0
  309. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -0
  310. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +265 -0
  311. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -0
  312. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js +2 -0
  313. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js.map +1 -0
  314. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js +80 -0
  315. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js.map +1 -0
  316. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +2 -0
  317. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -0
  318. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +59 -0
  319. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -0
  320. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +2 -0
  321. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -0
  322. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +112 -0
  323. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -0
  324. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js +2 -0
  325. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js.map +1 -0
  326. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js +35 -0
  327. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js.map +1 -0
  328. package/dist/types/api/generated/entityLists.d.ts +8 -8
  329. package/dist/types/api/generated/users.d.ts +18 -14
  330. package/dist/types/api/generated/views.d.ts +47 -9
  331. package/dist/types/api/queries/entityLists/getLists.d.ts +133 -0
  332. package/dist/types/api/queries/entityLists/types.d.ts +2 -1
  333. package/dist/types/api/queries/permissions/getPermissions.d.ts +22 -22
  334. package/dist/types/api/queries/users/getUsers.d.ts +132 -0
  335. package/dist/types/api/queries/users/updateUsers.d.ts +3 -3
  336. package/dist/types/components/AccessUser/AccessUser.d.ts +22 -0
  337. package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
  338. package/dist/types/components/AccessUser/index.d.ts +1 -0
  339. package/dist/types/components/DetailsMetaData/DetailsMetaData.d.ts +8 -0
  340. package/dist/types/components/DetailsMetaData/index.d.ts +1 -0
  341. package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +4 -0
  342. package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +13 -0
  343. package/dist/types/components/ListAttributeForm/index.d.ts +1 -0
  344. package/dist/types/components/ListMetaData/ListMetaData.d.ts +8 -0
  345. package/dist/types/components/ListMetaData/index.d.ts +1 -0
  346. package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +5 -0
  347. package/dist/types/components/Powerpack/index.d.ts +1 -0
  348. package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +10 -0
  349. package/dist/types/components/ShareOptionIcon/index.d.ts +2 -0
  350. package/dist/types/components/index.d.ts +4 -0
  351. package/dist/types/containers/DetailsPanel/DetailsPanel.styled.d.ts +7 -0
  352. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +3 -1
  353. package/dist/types/containers/ProjectTreeTable/components/ColumnHeaderMenu.d.ts +4 -1
  354. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +1 -0
  355. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +3 -1
  356. package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +1 -0
  357. package/dist/types/containers/ProjectTreeTable/utils/getReadOnlyLists.d.ts +1 -1
  358. package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +1 -0
  359. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +2 -2
  360. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +3 -0
  361. package/dist/types/containers/SimpleTable/SimpleTableRowTemplate.d.ts +5 -1
  362. package/dist/types/containers/Views/hooks/pages/useReportsViewSettings.d.ts +11 -0
  363. package/dist/types/containers/Views/index.d.ts +6 -2
  364. package/dist/types/context/MenuContext.d.ts +12 -0
  365. package/dist/types/context/PowerpackContext.d.ts +1 -1
  366. package/dist/types/index.d.ts +1 -0
  367. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- "use strict";const n=require("../../../../../_virtual/jsx-runtime.cjs.js"),m=require("styled-components"),h=require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js"),j=require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js"),W=require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js"),v=require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js"),y=m.div`
1
+ "use strict";const a=require("../../../../../_virtual/jsx-runtime.cjs.js"),x=require("styled-components"),p=require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js"),j=require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js"),W=require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js"),v=require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js"),y=x.div`
2
2
  width: 100%;
3
3
  overflow: hidden;
4
4
  text-overflow: ellipsis;
@@ -8,7 +8,7 @@
8
8
  input {
9
9
  text-align: right;
10
10
  }
11
- `,w=m(v.EnumWidget)`
11
+ `,w=x(v.EnumWidget)`
12
12
  .enum {
13
13
  &:hover {
14
14
  background-color: unset;
@@ -17,5 +17,5 @@
17
17
  &:hover {
18
18
  background-color: unset;
19
19
  }
20
- `,E=({field:e,value:o,isEditing:p,isReadOnly:a,isMixed:c,onChange:d,onCancelEdit:l})=>{var x;const{type:t}=e.data,i={isEditing:p&&!a,isInherited:!1,onChange:u=>d(e.name,u)};let s=o??"";const g=e.data.title||e.name;switch(!0){case t==="boolean":return n.jsxRuntimeExports.jsx(j.BooleanWidget,{value:!!s,...i,style:{margin:0},onClick:()=>d(e.name,!s),isReadOnly:a});case t==="datetime":return n.jsxRuntimeExports.jsx(W.DateWidget,{value:s,...i,isEditing:!0,onCancelEdit:l,style:{width:"fit-content"},autoFocus:!1});case!!((x=e.data.enum)!=null&&x.length):{const u=t.includes("list");let r=[];return u?r=Array.isArray(s)?s:[]:c?r=[]:r=[s],n.jsxRuntimeExports.jsx(w,{value:r,options:e.data.enum||[],type:t,pt:{template:{style:{height:32},className:"enum"}},placeholder:c?`Mixed ${g}`:`Select ${g}...`,onClose:l,align:"right",isReadOnly:a,...i})}case(t==="string"||t==="integer"||t==="float"):default:return n.jsxRuntimeExports.jsx(y,{children:n.jsxRuntimeExports.jsx(h.TextWidget,{value:s.toString(),onCancelEdit:l,...i})})}};module.exports=E;
20
+ `,b=({field:e,value:l,isEditing:h,isReadOnly:u,isMixed:g,onChange:m,onCancelEdit:c})=>{const{type:s}=e.data,o={isEditing:h&&!u,isInherited:!1,onChange:r=>m(e.name,r)};let t=l??"";const d=e.data.title||e.name;switch(!0){case s==="boolean":return a.jsxRuntimeExports.jsx(j.BooleanWidget,{value:!!t,...o,style:{margin:0},onClick:()=>m(e.name,!t),isReadOnly:u});case s==="datetime":return a.jsxRuntimeExports.jsx(W.DateWidget,{value:t,...o,isEditing:!0,onCancelEdit:c,style:{width:"fit-content"},autoFocus:!1});case!!e.data.enum:{const r=s.includes("list");let n=[];r?n=Array.isArray(t)?t:[]:g?n=[]:n=[t];let i=e.data.enum||[];return e.allowNone&&n.length&&!r&&t&&t!==""&&(i=[{value:"",label:`No ${e.data.title||e.name}`},...i]),a.jsxRuntimeExports.jsx(w,{value:n,options:i,type:s,pt:{template:{style:{height:32},className:"enum"}},placeholder:g?`Mixed ${d}`:`Select ${d}...`,onClose:c,align:"right",isReadOnly:u,enableCustomValues:e.enableCustomValues??!1,search:e.enableSearch??!1,sortBySelected:!i,...o})}case(s==="string"||s==="integer"||s==="float"):default:return a.jsxRuntimeExports.jsx(y,{children:a.jsxRuntimeExports.jsx(p.TextWidget,{value:t.toString(),onCancelEdit:c,...o})})}};module.exports=b;
21
21
  //# sourceMappingURL=RenderFieldWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFieldWidget.cjs.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport { TextWidget } from '@shared/containers/ProjectTreeTable/widgets/TextWidget'\nimport { BooleanWidget } from '@shared/containers/ProjectTreeTable/widgets/BooleanWidget'\nimport { DateWidget } from '@shared/containers/ProjectTreeTable/widgets/DateWidget'\nimport { EnumWidget } from '@shared/containers/ProjectTreeTable/widgets/EnumWidget'\nimport { AttributeField } from '../DetailsPanelAttributesEditor'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: right;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n}) => {\n const { type } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget\n value={Boolean(displayValue)}\n {...widgetCommonProps}\n style={{ margin: 0 }}\n onClick={() => onChange(field.name, !Boolean(displayValue))}\n isReadOnly={isReadOnly}\n />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum?.length: {\n const isListType = type.includes('list')\n // Determine the value array based on type and state\n let valueArray = []\n\n if (isListType) {\n // If it's a list type attribute\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n // If this field has mixed values (multiple selection)\n valueArray = []\n } else {\n // For single values, wrap in array for EnumWidget\n valueArray = [displayValue]\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={field.data.enum || []}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onClose={onCancelEdit}\n align=\"right\"\n isReadOnly={isReadOnly}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","type","widgetCommonProps","newValue","displayValue","labelValue","jsx","BooleanWidget","DateWidget","_a","isListType","valueArray","TextWidget"],"mappings":"6ZASMA,EAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYxBC,EAAmBD,EAAOE,YAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBpCC,EAAgD,CAAC,CACrD,MAAAC,EACA,MAAAC,EACA,UAAAC,EACA,WAAAC,EACA,QAAAC,EACA,SAAAC,EACA,aAAAC,CACF,IAAM,OACE,KAAA,CAAE,KAAAC,GAASP,EAAM,KACjBQ,EAAoB,CACxB,UAAWN,GAAa,CAACC,EACzB,YAAa,GACb,SAAWM,GAAsCJ,EAASL,EAAM,KAAMS,CAAQ,CAChF,EAGA,IAAIC,EAAeT,GAAwC,GAC3D,MAAMU,EAAaX,EAAM,KAAK,OAASA,EAAM,KAG7C,OAAQ,GAAM,CACZ,KAAKO,IAAS,UAEV,OAAAK,EAAA,kBAAA,IAACC,EAAA,cAAA,CACC,MAAO,EAAQH,EACd,GAAGF,EACJ,MAAO,CAAE,OAAQ,CAAE,EACnB,QAAS,IAAMH,EAASL,EAAM,KAAM,CAASU,CAAa,EAC1D,WAAAP,CAAA,CACF,EAGJ,KAAKI,IAAS,WAEV,OAAAK,EAAA,kBAAA,IAACE,EAAA,WAAA,CACC,MAAOJ,EACN,GAAGF,EACJ,UAAS,GACT,aAAAF,EACA,MAAO,CAAE,MAAO,aAAc,EAC9B,UAAW,EAAA,CACb,EAGJ,IAAK,CAAC,GAACS,EAAAf,EAAM,KAAK,OAAX,MAAAe,EAAiB,QAAQ,CACxB,MAAAC,EAAaT,EAAK,SAAS,MAAM,EAEvC,IAAIU,EAAa,CAAC,EAElB,OAAID,EAEFC,EAAa,MAAM,QAAQP,CAAY,EAAIA,EAAe,CAAC,EAClDN,EAETa,EAAa,CAAC,EAGdA,EAAa,CAACP,CAAY,EAI1BE,EAAA,kBAAA,IAACf,EAAA,CACC,MAAOoB,EACP,QAASjB,EAAM,KAAK,MAAQ,CAAC,EAC7B,KAAAO,EACA,GAAI,CACF,SAAU,CACR,MAAO,CAAE,OAAQ,EAAG,EACpB,UAAW,MAAA,CAEf,EACA,YAAaH,EAAU,SAASO,CAAU,GAAK,UAAUA,CAAU,MACnE,QAASL,EACT,MAAM,QACN,WAAAH,EACC,GAAGK,CAAA,CACN,CAAA,CAIJ,KAAKD,IAAS,UAAYA,IAAS,WAAaA,IAAS,SACzD,QACE,+BACGZ,EACC,CAAA,SAAAiB,EAAA,kBAAA,IAACM,EAAA,WAAA,CACC,MAAOR,EAAa,SAAS,EAC7B,aAAAJ,EACC,GAAGE,CAAA,CAAA,EAER,CAAA,CAGR"}
1
+ {"version":3,"file":"RenderFieldWidget.cjs.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport { TextWidget } from '@shared/containers/ProjectTreeTable/widgets/TextWidget'\nimport { BooleanWidget } from '@shared/containers/ProjectTreeTable/widgets/BooleanWidget'\nimport { DateWidget } from '@shared/containers/ProjectTreeTable/widgets/DateWidget'\nimport { EnumWidget } from '@shared/containers/ProjectTreeTable/widgets/EnumWidget'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: right;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n}) => {\n const { type } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget\n value={Boolean(displayValue)}\n {...widgetCommonProps}\n style={{ margin: 0 }}\n onClick={() => onChange(field.name, !Boolean(displayValue))}\n isReadOnly={isReadOnly}\n />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type.includes('list')\n // Determine the value array based on type and state\n let valueArray = []\n\n if (isListType) {\n // If it's a list type attribute\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n // If this field has mixed values (multiple selection)\n valueArray = []\n } else {\n // For single values, wrap in array for EnumWidget\n valueArray = [displayValue]\n }\n\n // Add \"None\" option if allowNone is enabled and current value exists\n let optionsWithNone = field.data.enum || []\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n optionsWithNone = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...optionsWithNone,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={optionsWithNone}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onClose={onCancelEdit}\n align=\"right\"\n isReadOnly={isReadOnly}\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? false}\n sortBySelected={!optionsWithNone}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","type","widgetCommonProps","newValue","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","optionsWithNone","TextWidget"],"mappings":"6ZAUMA,EAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYxBC,EAAmBD,EAAOE,YAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBpCC,EAAgD,CAAC,CACrD,MAAAC,EACA,MAAAC,EACA,UAAAC,EACA,WAAAC,EACA,QAAAC,EACA,SAAAC,EACA,aAAAC,CACF,IAAM,CACE,KAAA,CAAE,KAAAC,GAASP,EAAM,KACjBQ,EAAoB,CACxB,UAAWN,GAAa,CAACC,EACzB,YAAa,GACb,SAAWM,GAAsCJ,EAASL,EAAM,KAAMS,CAAQ,CAChF,EAGA,IAAIC,EAAeT,GAAwC,GAC3D,MAAMU,EAAaX,EAAM,KAAK,OAASA,EAAM,KAG7C,OAAQ,GAAM,CACZ,KAAKO,IAAS,UAEV,OAAAK,EAAA,kBAAA,IAACC,EAAA,cAAA,CACC,MAAO,EAAQH,EACd,GAAGF,EACJ,MAAO,CAAE,OAAQ,CAAE,EACnB,QAAS,IAAMH,EAASL,EAAM,KAAM,CAASU,CAAa,EAC1D,WAAAP,CAAA,CACF,EAGJ,KAAKI,IAAS,WAEV,OAAAK,EAAA,kBAAA,IAACE,EAAA,WAAA,CACC,MAAOJ,EACN,GAAGF,EACJ,UAAS,GACT,aAAAF,EACA,MAAO,CAAE,MAAO,aAAc,EAC9B,UAAW,EAAA,CACb,EAGJ,IAAK,CAAC,CAACN,EAAM,KAAK,KAAM,CAChB,MAAAe,EAAaR,EAAK,SAAS,MAAM,EAEvC,IAAIS,EAAa,CAAC,EAEdD,EAEFC,EAAa,MAAM,QAAQN,CAAY,EAAIA,EAAe,CAAC,EAClDN,EAETY,EAAa,CAAC,EAGdA,EAAa,CAACN,CAAY,EAI5B,IAAIO,EAAkBjB,EAAM,KAAK,MAAQ,CAAC,EAC1C,OAAIA,EAAM,WAAegB,EAAW,QAAU,CAACD,GAErBL,GAAgBA,IAAiB,KAErCO,EAAA,CAChB,CAAE,MAAO,GAAI,MAAO,MAAMjB,EAAM,KAAK,OAASA,EAAM,IAAI,EAAG,EAC3D,GAAGiB,CACL,GAKFL,EAAA,kBAAA,IAACf,EAAA,CACC,MAAOmB,EACP,QAASC,EACT,KAAAV,EACA,GAAI,CACF,SAAU,CACR,MAAO,CAAE,OAAQ,EAAG,EACpB,UAAW,MAAA,CAEf,EACA,YAAaH,EAAU,SAASO,CAAU,GAAK,UAAUA,CAAU,MACnE,QAASL,EACT,MAAM,QACN,WAAAH,EACA,mBAAoBH,EAAM,oBAAsB,GAChD,OAAQA,EAAM,cAAgB,GAC9B,eAAgB,CAACiB,EAChB,GAAGT,CAAA,CACN,CAAA,CAIJ,KAAKD,IAAS,UAAYA,IAAS,WAAaA,IAAS,SACzD,QACE,+BACGZ,EACC,CAAA,SAAAiB,EAAA,kBAAA,IAACM,EAAA,WAAA,CACC,MAAOR,EAAa,SAAS,EAC7B,aAAAJ,EACC,GAAGE,CAAA,CAAA,EAER,CAAA,CAGR"}
@@ -1,10 +1,10 @@
1
- import { j as r } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import p from "styled-components";
1
+ import { j as s } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import h from "styled-components";
3
3
  import { TextWidget as x } from "../../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
4
- import { BooleanWidget as f } from "../../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
5
- import { DateWidget as v } from "../../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
6
- import { EnumWidget as y } from "../../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
7
- const w = p.div`
4
+ import { BooleanWidget as v } from "../../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
5
+ import { DateWidget as y } from "../../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
6
+ import { EnumWidget as f } from "../../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
7
+ const w = h.div`
8
8
  width: 100%;
9
9
  overflow: hidden;
10
10
  text-overflow: ellipsis;
@@ -14,7 +14,7 @@ const w = p.div`
14
14
  input {
15
15
  text-align: right;
16
16
  }
17
- `, j = p(y)`
17
+ `, b = h(f)`
18
18
  .enum {
19
19
  &:hover {
20
20
  background-color: unset;
@@ -23,83 +23,90 @@ const w = p.div`
23
23
  &:hover {
24
24
  background-color: unset;
25
25
  }
26
- `, F = ({
27
- field: t,
28
- value: n,
29
- isEditing: h,
30
- isReadOnly: s,
31
- isMixed: m,
32
- onChange: d,
33
- onCancelEdit: l
26
+ `, k = ({
27
+ field: e,
28
+ value: i,
29
+ isEditing: p,
30
+ isReadOnly: u,
31
+ isMixed: c,
32
+ onChange: g,
33
+ onCancelEdit: m
34
34
  }) => {
35
- var g;
36
- const { type: e } = t.data, a = {
37
- isEditing: h && !s,
35
+ const { type: a } = e.data, r = {
36
+ isEditing: p && !u,
38
37
  isInherited: !1,
39
- onChange: (u) => d(t.name, u)
38
+ onChange: (n) => g(e.name, n)
40
39
  };
41
- let o = n ?? "";
42
- const c = t.data.title || t.name;
40
+ let t = i ?? "";
41
+ const d = e.data.title || e.name;
43
42
  switch (!0) {
44
- case e === "boolean":
45
- return /* @__PURE__ */ r.jsx(
46
- f,
43
+ case a === "boolean":
44
+ return /* @__PURE__ */ s.jsx(
45
+ v,
47
46
  {
48
- value: !!o,
49
- ...a,
47
+ value: !!t,
48
+ ...r,
50
49
  style: { margin: 0 },
51
- onClick: () => d(t.name, !o),
52
- isReadOnly: s
50
+ onClick: () => g(e.name, !t),
51
+ isReadOnly: u
53
52
  }
54
53
  );
55
- case e === "datetime":
56
- return /* @__PURE__ */ r.jsx(
57
- v,
54
+ case a === "datetime":
55
+ return /* @__PURE__ */ s.jsx(
56
+ y,
58
57
  {
59
- value: o,
60
- ...a,
58
+ value: t,
59
+ ...r,
61
60
  isEditing: !0,
62
- onCancelEdit: l,
61
+ onCancelEdit: m,
63
62
  style: { width: "fit-content" },
64
63
  autoFocus: !1
65
64
  }
66
65
  );
67
- case !!((g = t.data.enum) != null && g.length): {
68
- const u = e.includes("list");
69
- let i = [];
70
- return u ? i = Array.isArray(o) ? o : [] : m ? i = [] : i = [o], /* @__PURE__ */ r.jsx(
71
- j,
66
+ case !!e.data.enum: {
67
+ const n = a.includes("list");
68
+ let o = [];
69
+ n ? o = Array.isArray(t) ? t : [] : c ? o = [] : o = [t];
70
+ let l = e.data.enum || [];
71
+ return e.allowNone && o.length && !n && t && t !== "" && (l = [
72
+ { value: "", label: `No ${e.data.title || e.name}` },
73
+ ...l
74
+ ]), /* @__PURE__ */ s.jsx(
75
+ b,
72
76
  {
73
- value: i,
74
- options: t.data.enum || [],
75
- type: e,
77
+ value: o,
78
+ options: l,
79
+ type: a,
76
80
  pt: {
77
81
  template: {
78
82
  style: { height: 32 },
79
83
  className: "enum"
80
84
  }
81
85
  },
82
- placeholder: m ? `Mixed ${c}` : `Select ${c}...`,
83
- onClose: l,
86
+ placeholder: c ? `Mixed ${d}` : `Select ${d}...`,
87
+ onClose: m,
84
88
  align: "right",
85
- isReadOnly: s,
86
- ...a
89
+ isReadOnly: u,
90
+ enableCustomValues: e.enableCustomValues ?? !1,
91
+ search: e.enableSearch ?? !1,
92
+ sortBySelected: !l,
93
+ ...r
87
94
  }
88
95
  );
89
96
  }
90
- case (e === "string" || e === "integer" || e === "float"):
97
+ case (a === "string" || a === "integer" || a === "float"):
91
98
  default:
92
- return /* @__PURE__ */ r.jsx(w, { children: /* @__PURE__ */ r.jsx(
99
+ return /* @__PURE__ */ s.jsx(w, { children: /* @__PURE__ */ s.jsx(
93
100
  x,
94
101
  {
95
- value: o.toString(),
96
- onCancelEdit: l,
97
- ...a
102
+ value: t.toString(),
103
+ onCancelEdit: m,
104
+ ...r
98
105
  }
99
106
  ) });
100
107
  }
101
108
  };
102
109
  export {
103
- F as default
110
+ k as default
104
111
  };
105
112
  //# sourceMappingURL=RenderFieldWidget.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFieldWidget.es.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport { TextWidget } from '@shared/containers/ProjectTreeTable/widgets/TextWidget'\nimport { BooleanWidget } from '@shared/containers/ProjectTreeTable/widgets/BooleanWidget'\nimport { DateWidget } from '@shared/containers/ProjectTreeTable/widgets/DateWidget'\nimport { EnumWidget } from '@shared/containers/ProjectTreeTable/widgets/EnumWidget'\nimport { AttributeField } from '../DetailsPanelAttributesEditor'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: right;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n}) => {\n const { type } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget\n value={Boolean(displayValue)}\n {...widgetCommonProps}\n style={{ margin: 0 }}\n onClick={() => onChange(field.name, !Boolean(displayValue))}\n isReadOnly={isReadOnly}\n />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum?.length: {\n const isListType = type.includes('list')\n // Determine the value array based on type and state\n let valueArray = []\n\n if (isListType) {\n // If it's a list type attribute\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n // If this field has mixed values (multiple selection)\n valueArray = []\n } else {\n // For single values, wrap in array for EnumWidget\n valueArray = [displayValue]\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={field.data.enum || []}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onClose={onCancelEdit}\n align=\"right\"\n isReadOnly={isReadOnly}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","type","widgetCommonProps","newValue","displayValue","labelValue","jsx","BooleanWidget","DateWidget","_a","isListType","valueArray","TextWidget"],"mappings":";;;;;;AASA,MAAMA,IAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYxBC,IAAmBD,EAAOE,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAqBpCC,IAAgD,CAAC;AAAA,EACrD,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,MAAM;;AACE,QAAA,EAAE,MAAAC,MAASP,EAAM,MACjBQ,IAAoB;AAAA,IACxB,WAAWN,KAAa,CAACC;AAAA,IACzB,aAAa;AAAA,IACb,UAAU,CAACM,MAAsCJ,EAASL,EAAM,MAAMS,CAAQ;AAAA,EAChF;AAGA,MAAIC,IAAeT,KAAwC;AAC3D,QAAMU,IAAaX,EAAM,KAAK,SAASA,EAAM;AAG7C,UAAQ,IAAM;AAAA,IACZ,KAAKO,MAAS;AAEV,aAAAK,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAO,EAAQH;AAAA,UACd,GAAGF;AAAA,UACJ,OAAO,EAAE,QAAQ,EAAE;AAAA,UACnB,SAAS,MAAMH,EAASL,EAAM,MAAM,CAASU,CAAa;AAAA,UAC1D,YAAAP;AAAA,QAAA;AAAA,MACF;AAAA,IAGJ,KAAKI,MAAS;AAEV,aAAAK,gBAAAA,EAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOJ;AAAA,UACN,GAAGF;AAAA,UACJ,WAAS;AAAA,UACT,cAAAF;AAAA,UACA,OAAO,EAAE,OAAO,cAAc;AAAA,UAC9B,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IAGJ,KAAK,CAAC,GAACS,IAAAf,EAAM,KAAK,SAAX,QAAAe,EAAiB,SAAQ;AACxB,YAAAC,IAAaT,EAAK,SAAS,MAAM;AAEvC,UAAIU,IAAa,CAAC;AAElB,aAAID,IAEFC,IAAa,MAAM,QAAQP,CAAY,IAAIA,IAAe,CAAC,IAClDN,IAETa,IAAa,CAAC,IAGdA,IAAa,CAACP,CAAY,GAI1BE,gBAAAA,EAAA;AAAA,QAACf;AAAA,QAAA;AAAA,UACC,OAAOoB;AAAA,UACP,SAASjB,EAAM,KAAK,QAAQ,CAAC;AAAA,UAC7B,MAAAO;AAAA,UACA,IAAI;AAAA,YACF,UAAU;AAAA,cACR,OAAO,EAAE,QAAQ,GAAG;AAAA,cACpB,WAAW;AAAA,YAAA;AAAA,UAEf;AAAA,UACA,aAAaH,IAAU,SAASO,CAAU,KAAK,UAAUA,CAAU;AAAA,UACnE,SAASL;AAAA,UACT,OAAM;AAAA,UACN,YAAAH;AAAA,UACC,GAAGK;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAAA,IAIJ,MAAKD,MAAS,YAAYA,MAAS,aAAaA,MAAS;AAAA,IACzD;AACE,mCACGZ,GACC,EAAA,UAAAiB,gBAAAA,EAAA;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,OAAOR,EAAa,SAAS;AAAA,UAC7B,cAAAJ;AAAA,UACC,GAAGE;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,EAAA;AAGR;"}
1
+ {"version":3,"file":"RenderFieldWidget.es.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport { TextWidget } from '@shared/containers/ProjectTreeTable/widgets/TextWidget'\nimport { BooleanWidget } from '@shared/containers/ProjectTreeTable/widgets/BooleanWidget'\nimport { DateWidget } from '@shared/containers/ProjectTreeTable/widgets/DateWidget'\nimport { EnumWidget } from '@shared/containers/ProjectTreeTable/widgets/EnumWidget'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: right;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n}) => {\n const { type } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget\n value={Boolean(displayValue)}\n {...widgetCommonProps}\n style={{ margin: 0 }}\n onClick={() => onChange(field.name, !Boolean(displayValue))}\n isReadOnly={isReadOnly}\n />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type.includes('list')\n // Determine the value array based on type and state\n let valueArray = []\n\n if (isListType) {\n // If it's a list type attribute\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n // If this field has mixed values (multiple selection)\n valueArray = []\n } else {\n // For single values, wrap in array for EnumWidget\n valueArray = [displayValue]\n }\n\n // Add \"None\" option if allowNone is enabled and current value exists\n let optionsWithNone = field.data.enum || []\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n optionsWithNone = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...optionsWithNone,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={optionsWithNone}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onClose={onCancelEdit}\n align=\"right\"\n isReadOnly={isReadOnly}\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? false}\n sortBySelected={!optionsWithNone}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","type","widgetCommonProps","newValue","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","optionsWithNone","TextWidget"],"mappings":";;;;;;AAUA,MAAMA,IAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYxBC,IAAmBD,EAAOE,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAqBpCC,IAAgD,CAAC;AAAA,EACrD,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,MAAM;AACE,QAAA,EAAE,MAAAC,MAASP,EAAM,MACjBQ,IAAoB;AAAA,IACxB,WAAWN,KAAa,CAACC;AAAA,IACzB,aAAa;AAAA,IACb,UAAU,CAACM,MAAsCJ,EAASL,EAAM,MAAMS,CAAQ;AAAA,EAChF;AAGA,MAAIC,IAAeT,KAAwC;AAC3D,QAAMU,IAAaX,EAAM,KAAK,SAASA,EAAM;AAG7C,UAAQ,IAAM;AAAA,IACZ,KAAKO,MAAS;AAEV,aAAAK,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAO,EAAQH;AAAA,UACd,GAAGF;AAAA,UACJ,OAAO,EAAE,QAAQ,EAAE;AAAA,UACnB,SAAS,MAAMH,EAASL,EAAM,MAAM,CAASU,CAAa;AAAA,UAC1D,YAAAP;AAAA,QAAA;AAAA,MACF;AAAA,IAGJ,KAAKI,MAAS;AAEV,aAAAK,gBAAAA,EAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOJ;AAAA,UACN,GAAGF;AAAA,UACJ,WAAS;AAAA,UACT,cAAAF;AAAA,UACA,OAAO,EAAE,OAAO,cAAc;AAAA,UAC9B,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IAGJ,KAAK,CAAC,CAACN,EAAM,KAAK,MAAM;AAChB,YAAAe,IAAaR,EAAK,SAAS,MAAM;AAEvC,UAAIS,IAAa,CAAC;AAElB,MAAID,IAEFC,IAAa,MAAM,QAAQN,CAAY,IAAIA,IAAe,CAAC,IAClDN,IAETY,IAAa,CAAC,IAGdA,IAAa,CAACN,CAAY;AAI5B,UAAIO,IAAkBjB,EAAM,KAAK,QAAQ,CAAC;AAC1C,aAAIA,EAAM,aAAegB,EAAW,UAAU,CAACD,KAErBL,KAAgBA,MAAiB,OAErCO,IAAA;AAAA,QAChB,EAAE,OAAO,IAAI,OAAO,MAAMjB,EAAM,KAAK,SAASA,EAAM,IAAI,GAAG;AAAA,QAC3D,GAAGiB;AAAA,MACL,IAKFL,gBAAAA,EAAA;AAAA,QAACf;AAAA,QAAA;AAAA,UACC,OAAOmB;AAAA,UACP,SAASC;AAAA,UACT,MAAAV;AAAA,UACA,IAAI;AAAA,YACF,UAAU;AAAA,cACR,OAAO,EAAE,QAAQ,GAAG;AAAA,cACpB,WAAW;AAAA,YAAA;AAAA,UAEf;AAAA,UACA,aAAaH,IAAU,SAASO,CAAU,KAAK,UAAUA,CAAU;AAAA,UACnE,SAASL;AAAA,UACT,OAAM;AAAA,UACN,YAAAH;AAAA,UACA,oBAAoBH,EAAM,sBAAsB;AAAA,UAChD,QAAQA,EAAM,gBAAgB;AAAA,UAC9B,gBAAgB,CAACiB;AAAA,UAChB,GAAGT;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAAA,IAIJ,MAAKD,MAAS,YAAYA,MAAS,aAAaA,MAAS;AAAA,IACzD;AACE,mCACGZ,GACC,EAAA,UAAAiB,gBAAAA,EAAA;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,OAAOR,EAAa,SAAS;AAAA,UAC7B,cAAAJ;AAAA,UACC,GAAGE;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,EAAA;AAGR;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),a=require("react"),qe=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("lodash");const T=require("react-toastify");require("uuid");const d=require("../../util/versionUploadHelpers.cjs.js");require("../../util/pubsub.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("../../context/RemoteModulesContext.cjs.js");const le=require("../../context/DetailsPanelContext.cjs.js"),ce=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("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");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/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("date-fns");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("@tanstack/react-table");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("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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/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/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/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const de=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/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/permissions/getPermissions.cjs.js");const pe=require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.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/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");const he=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("@dnd-kit/core");require("@dnd-kit/sortable");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");const fe=require("../ReviewablesList/useReviewablesUpload.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");const p=require("./EntityPanelUploader.styled.cjs.js"),me=require("./Dropzone.cjs.js"),ge=require("axios"),xe=require("./EntityPanelUploaderDialog.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../Watchers/Watchers.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../Badge/Badge.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../Chips/Chips.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../LinksManager/LinksManagerDialog.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.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/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.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/FeedFilters/FeedFilters.styled.cjs.js");const ve=require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/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 be=[{id:"thumbnail",label:"Upload thumbnail",icon:"add_photo_alternate"},{id:"version",label:"Upload version",icon:"layers"}],je=({children:W=[],entityType:I,entities:q=[],projectName:b,onUploaded:S,onVersionCreated:j})=>{var H,_,k;const{dispatch:B}=le.useDetailsPanelContext(),[C,h]=a.useState(!1),[D,f]=a.useState(null),c=a.useRef(0),[y,l]=a.useState(null),[G,v]=a.useState(0),[J,m]=a.useState(!1),[P,g]=a.useState(null),u=q.length===1?q[0]:null,F=(H=u==null?void 0:u.task)==null?void 0:H.id,R=(_=u==null?void 0:u.folder)==null?void 0:_.id,K=(k=u==null?void 0:u.product)==null?void 0:k.id,Q=u==null?void 0:u.id,U=!!(u&&I!=="representation"),{handleFileUpload:X}=fe.useReviewablesUpload({projectName:b,versionId:Q,taskId:F,folderId:R,productId:K,dispatch:B,onUpload:()=>{l(null),v(0)},onProgress:e=>{v(e)}}),Y=be.filter(e=>e.id==="version"?U:!0),o=()=>{l(null),h(!1),f(null),c.current=0,v(0),m(!1),g(null)},z=async e=>{if(!P||!u){m(!1),g(null);return}const r=d.sanitizeProductName(e);if(!r.trim()){T.toast.error("Product name must contain valid characters (letters, numbers, underscore, or hyphen)");return}try{if(!R)throw new Error("Folder ID is required to create a product");l("version");const i=await d.createProductHelper(ie,b,{folderId:R,name:r,productType:"review"});m(!1),await O(P,i.id),g(null)}catch(i){d.handleUploadError(i,"creating product"),o()}},ee=()=>{m(!1),g(null),o()},[re]=he.useCreateVersionMutation(),[ie]=pe.useCreateProductMutation(),N=async e=>{var i;if(!U||!u)return T.toast.error("Please select exactly one version to upload reviewables"),o();const r=(i=u.product)==null?void 0:i.id;if(!r){g(e),m(!0);return}await O(e,r)},O=async(e,r)=>{var i;try{const n=d.getNextVersionNumber((i=u.product)==null?void 0:i.latestVersion),s=await d.createVersionHelper(re,b,{productId:r,taskId:F,version:n});await X(e,s.id),o(),j==null||j(s.id)}catch(n){d.handleUploadError(n,"uploading version"),o()}},V=async(e=[])=>{if(h(!1),!q.length)return;const r=new Date().toISOString();let i=[];for(const n of e){const s=q.find(E=>E.id===n.id);if(!s)continue;n.thumbnailId;const x=n.users||[];i.push({id:s.id,projectName:s.projectName,data:{updatedAt:r},currentAssignees:x}),s.productId}try{await ue({operations:i,entityType:I}),S&&S(i)}catch(n){console.error("Error uploading thumbnail:",n)}},Z=async e=>{if(!e)return o();try{if(!e.type.includes("image"))throw new Error("File is not an image");let r=[];for(const s of q){const{id:x,entityType:E,projectName:w}=s;if(!w)throw new Error("Project name is required");const ae=ge.post(w&&`/api/projects/${w}/${E}s/${x}/thumbnail`,e,{onUploadProgress:L=>{v(Math.round(100*L.loaded/(L.total||e.size)))},headers:{"Content-Type":e.type}});r.push(ae)}const n=(await Promise.all(r)).map((s,x)=>({thumbnailId:s.data.id,id:q[x].id}));V(n),o()}catch(r){console.error(r),T.toast.error(r.message),o()}},[ue]=de.useUpdateEntitiesMutation(),te=e=>{e.preventDefault(),c.current++,c.current===1&&h(!0)},ne=e=>{e.preventDefault(),c.current--,c.current===0&&(h(!1),f(null))},se=e=>{e.preventDefault()},oe=e=>{if(e.preventDefault(),c.current=0,h(!1),f(null),!(!e.dataTransfer.files||e.dataTransfer.files.length===0)){if(D==="thumbnail"){l("thumbnail");const r=e.dataTransfer.files[0];Z(r)}if(D==="version"){l("version");const r=e.dataTransfer.files;N(r)}}},$=async(e,r)=>{const i=e.target.files;!i||i.length===0||(r==="version"&&(l("version"),N(i)),r==="thumbnail"&&(l("thumbnail"),Z(i[0])))},A=a.useRef(null),M=a.useRef(null);return t.jsxRuntimeExports.jsxs(ce.ThumbnailUploadProvider,{entities:q,handleThumbnailUpload:V,thumbnailInputRef:A,versionsInputRef:U?M:void 0,children:[t.jsxRuntimeExports.jsxs(p.DragAndDropWrapper,{className:qe({dragging:C}),onDragEnter:te,onDragLeave:ne,onDragOver:se,onDrop:oe,children:[t.jsxRuntimeExports.jsx(ve.ThumbnailWrapper,{children:t.jsxRuntimeExports.jsx("div",{children:W})}),C&&t.jsxRuntimeExports.jsx(p.DropZones,{children:Y.map(e=>t.jsxRuntimeExports.jsx(me,{id:e.id,label:e.label,icon:e.icon,isActive:D===e.id,onDragOver:()=>f(e.id),onDragLeave:()=>f(null)},e.id))}),(y==="thumbnail"||y==="version")&&t.jsxRuntimeExports.jsxs(p.DropZones,{children:[t.jsxRuntimeExports.jsxs(p.UploadingProgress,{children:[t.jsxRuntimeExports.jsx(p.Progress,{style:{right:`${100-G}%`}}),t.jsxRuntimeExports.jsx("span",{className:"label",children:`Uploading ${y}...`})]}),t.jsxRuntimeExports.jsx(p.CancelButton,{icon:"close",variant:"text",onClick:o})]}),t.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>$(e,"thumbnail"),ref:A}),t.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>$(e,"version"),ref:M})]}),t.jsxRuntimeExports.jsx(xe,{isOpen:J,files:P,onSubmit:z,onCancel:ee})]})};exports.EntityPanelUploader=je;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),a=require("react"),qe=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("lodash");const T=require("react-toastify");require("uuid");const d=require("../../util/versionUploadHelpers.cjs.js");require("../../util/pubsub.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("../../context/RemoteModulesContext.cjs.js");const le=require("../../context/DetailsPanelContext.cjs.js"),ce=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("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");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/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("date-fns");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("@tanstack/react-table");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("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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/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/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/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const de=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/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/permissions/getPermissions.cjs.js");const pe=require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.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/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");const he=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("@dnd-kit/core");require("@dnd-kit/sortable");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");const fe=require("../ReviewablesList/useReviewablesUpload.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");const p=require("./EntityPanelUploader.styled.cjs.js"),me=require("./Dropzone.cjs.js"),ge=require("axios"),xe=require("./EntityPanelUploaderDialog.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../Watchers/Watchers.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.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/RequiredPowerpackVersion.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../Badge/Badge.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../Chips/Chips.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../DetailsMetaData/DetailsMetaData.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../LinksManager/LinksManagerDialog.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.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/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.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/FeedFilters/FeedFilters.styled.cjs.js");const ve=require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/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 be=[{id:"thumbnail",label:"Upload thumbnail",icon:"add_photo_alternate"},{id:"version",label:"Upload version",icon:"layers"}],je=({children:W=[],entityType:I,entities:q=[],projectName:b,onUploaded:S,onVersionCreated:j})=>{var H,_,k;const{dispatch:B}=le.useDetailsPanelContext(),[C,h]=a.useState(!1),[D,f]=a.useState(null),c=a.useRef(0),[y,l]=a.useState(null),[G,v]=a.useState(0),[J,m]=a.useState(!1),[P,g]=a.useState(null),u=q.length===1?q[0]:null,F=(H=u==null?void 0:u.task)==null?void 0:H.id,R=(_=u==null?void 0:u.folder)==null?void 0:_.id,K=(k=u==null?void 0:u.product)==null?void 0:k.id,Q=u==null?void 0:u.id,U=!!(u&&I!=="representation"),{handleFileUpload:X}=fe.useReviewablesUpload({projectName:b,versionId:Q,taskId:F,folderId:R,productId:K,dispatch:B,onUpload:()=>{l(null),v(0)},onProgress:e=>{v(e)}}),Y=be.filter(e=>e.id==="version"?U:!0),o=()=>{l(null),h(!1),f(null),c.current=0,v(0),m(!1),g(null)},z=async e=>{if(!P||!u){m(!1),g(null);return}const r=d.sanitizeProductName(e);if(!r.trim()){T.toast.error("Product name must contain valid characters (letters, numbers, underscore, or hyphen)");return}try{if(!R)throw new Error("Folder ID is required to create a product");l("version");const i=await d.createProductHelper(ie,b,{folderId:R,name:r,productType:"review"});m(!1),await O(P,i.id),g(null)}catch(i){d.handleUploadError(i,"creating product"),o()}},ee=()=>{m(!1),g(null),o()},[re]=he.useCreateVersionMutation(),[ie]=pe.useCreateProductMutation(),N=async e=>{var i;if(!U||!u)return T.toast.error("Please select exactly one version to upload reviewables"),o();const r=(i=u.product)==null?void 0:i.id;if(!r){g(e),m(!0);return}await O(e,r)},O=async(e,r)=>{var i;try{const n=d.getNextVersionNumber((i=u.product)==null?void 0:i.latestVersion),s=await d.createVersionHelper(re,b,{productId:r,taskId:F,version:n});await X(e,s.id),o(),j==null||j(s.id)}catch(n){d.handleUploadError(n,"uploading version"),o()}},V=async(e=[])=>{if(h(!1),!q.length)return;const r=new Date().toISOString();let i=[];for(const n of e){const s=q.find(E=>E.id===n.id);if(!s)continue;n.thumbnailId;const x=n.users||[];i.push({id:s.id,projectName:s.projectName,data:{updatedAt:r},currentAssignees:x}),s.productId}try{await ue({operations:i,entityType:I}),S&&S(i)}catch(n){console.error("Error uploading thumbnail:",n)}},Z=async e=>{if(!e)return o();try{if(!e.type.includes("image"))throw new Error("File is not an image");let r=[];for(const s of q){const{id:x,entityType:E,projectName:w}=s;if(!w)throw new Error("Project name is required");const ae=ge.post(w&&`/api/projects/${w}/${E}s/${x}/thumbnail`,e,{onUploadProgress:L=>{v(Math.round(100*L.loaded/(L.total||e.size)))},headers:{"Content-Type":e.type}});r.push(ae)}const n=(await Promise.all(r)).map((s,x)=>({thumbnailId:s.data.id,id:q[x].id}));V(n),o()}catch(r){console.error(r),T.toast.error(r.message),o()}},[ue]=de.useUpdateEntitiesMutation(),te=e=>{e.preventDefault(),c.current++,c.current===1&&h(!0)},ne=e=>{e.preventDefault(),c.current--,c.current===0&&(h(!1),f(null))},se=e=>{e.preventDefault()},oe=e=>{if(e.preventDefault(),c.current=0,h(!1),f(null),!(!e.dataTransfer.files||e.dataTransfer.files.length===0)){if(D==="thumbnail"){l("thumbnail");const r=e.dataTransfer.files[0];Z(r)}if(D==="version"){l("version");const r=e.dataTransfer.files;N(r)}}},$=async(e,r)=>{const i=e.target.files;!i||i.length===0||(r==="version"&&(l("version"),N(i)),r==="thumbnail"&&(l("thumbnail"),Z(i[0])))},A=a.useRef(null),M=a.useRef(null);return t.jsxRuntimeExports.jsxs(ce.ThumbnailUploadProvider,{entities:q,handleThumbnailUpload:V,thumbnailInputRef:A,versionsInputRef:U?M:void 0,children:[t.jsxRuntimeExports.jsxs(p.DragAndDropWrapper,{className:qe({dragging:C}),onDragEnter:te,onDragLeave:ne,onDragOver:se,onDrop:oe,children:[t.jsxRuntimeExports.jsx(ve.ThumbnailWrapper,{children:t.jsxRuntimeExports.jsx("div",{children:W})}),C&&t.jsxRuntimeExports.jsx(p.DropZones,{children:Y.map(e=>t.jsxRuntimeExports.jsx(me,{id:e.id,label:e.label,icon:e.icon,isActive:D===e.id,onDragOver:()=>f(e.id),onDragLeave:()=>f(null)},e.id))}),(y==="thumbnail"||y==="version")&&t.jsxRuntimeExports.jsxs(p.DropZones,{children:[t.jsxRuntimeExports.jsxs(p.UploadingProgress,{children:[t.jsxRuntimeExports.jsx(p.Progress,{style:{right:`${100-G}%`}}),t.jsxRuntimeExports.jsx("span",{className:"label",children:`Uploading ${y}...`})]}),t.jsxRuntimeExports.jsx(p.CancelButton,{icon:"close",variant:"text",onClick:o})]}),t.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>$(e,"thumbnail"),ref:A}),t.jsxRuntimeExports.jsx("input",{type:"file",onChange:e=>$(e,"version"),ref:M})]}),t.jsxRuntimeExports.jsx(xe,{isOpen:J,files:P,onSubmit:z,onCancel:ee})]})};exports.EntityPanelUploader=je;
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 })\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","_a","folderId","_b","productId","_c","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 })\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","_a","folderId","_b","productId","_c","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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"}
@@ -169,6 +169,7 @@ import "../Powerpack/PowerpackButton.es.js";
169
169
  import "../Powerpack/PricingLink.es.js";
170
170
  import "../Powerpack/PowerpackDialog.styled.es.js";
171
171
  import "../Powerpack/CTAButton.es.js";
172
+ import "../Powerpack/RequiredPowerpackVersion.es.js";
172
173
  import "../SettingsPanel/SettingsPanel.es.js";
173
174
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
174
175
  import "../AttributeEditor/components/MinMaxField.es.js";
@@ -182,6 +183,8 @@ import "../Feedback/SupportBubble.es.js";
182
183
  import "../Chips/Chips.es.js";
183
184
  import "../LinksManager/LinksManager.styled.es.js";
184
185
  import "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
186
+ import "../DetailsMetaData/DetailsMetaData.es.js";
187
+ import "../AccessUser/AccessUser.es.js";
185
188
  import "../LinksManager/LinksManagerDialog.es.js";
186
189
  import "../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js";
187
190
  import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
@@ -215,7 +218,7 @@ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
215
218
  const Fr = [
216
219
  { id: "thumbnail", label: "Upload thumbnail", icon: "add_photo_alternate" },
217
220
  { id: "version", label: "Upload version", icon: "layers" }
218
- ], Fp = ({
221
+ ], Sp = ({
219
222
  children: _ = [],
220
223
  entityType: F,
221
224
  entities: a = [],
@@ -443,6 +446,6 @@ const Fr = [
443
446
  );
444
447
  };
445
448
  export {
446
- Fp as EntityPanelUploader
449
+ Sp as EntityPanelUploader
447
450
  };
448
451
  //# sourceMappingURL=EntityPanelUploader.es.js.map