@ynput/ayon-frontend-shared 0.3.22 → 0.3.23

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 (381) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/_virtual/index.cjs14.js +1 -1
  5. package/dist/_virtual/index.cjs15.js +1 -1
  6. package/dist/_virtual/index.cjs19.js +1 -1
  7. package/dist/_virtual/index.cjs22.js +1 -1
  8. package/dist/_virtual/index.cjs23.js +1 -1
  9. package/dist/_virtual/index.cjs24.js +1 -1
  10. package/dist/_virtual/index.cjs6.js +1 -1
  11. package/dist/_virtual/index.cjs8.js +1 -1
  12. package/dist/_virtual/index.cjs9.js +1 -1
  13. package/dist/_virtual/index.es10.js +2 -2
  14. package/dist/_virtual/index.es11.js +2 -2
  15. package/dist/_virtual/index.es13.js +2 -2
  16. package/dist/_virtual/index.es14.js +2 -5
  17. package/dist/_virtual/index.es14.js.map +1 -1
  18. package/dist/_virtual/index.es15.js +2 -2
  19. package/dist/_virtual/index.es16.js +2 -2
  20. package/dist/_virtual/index.es17.js +2 -2
  21. package/dist/_virtual/index.es18.js +2 -2
  22. package/dist/_virtual/index.es19.js +2 -2
  23. package/dist/_virtual/index.es22.js +3 -3
  24. package/dist/_virtual/index.es23.js +5 -5
  25. package/dist/_virtual/index.es24.js +5 -5
  26. package/dist/_virtual/index.es6.js +2 -2
  27. package/dist/_virtual/index.es8.js +2 -2
  28. package/dist/_virtual/index.es9.js +5 -2
  29. package/dist/_virtual/index.es9.js.map +1 -1
  30. package/dist/components.cjs.js +1 -1
  31. package/dist/components.es.js +157 -155
  32. package/dist/components.es.js.map +1 -1
  33. package/dist/index.cjs.js +1 -1
  34. package/dist/index.es.js +10 -9
  35. package/dist/index.es.js.map +1 -1
  36. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  37. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  38. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  40. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  41. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  42. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  43. package/dist/node_modules/remove-accents/index.es.js +1 -1
  44. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  45. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  67. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  69. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  70. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  71. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  72. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  73. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  74. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  75. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  76. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  77. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  78. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  79. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  80. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +155 -175
  81. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  82. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +2 -0
  83. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -0
  84. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +77 -0
  85. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -0
  86. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  87. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  88. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  89. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  90. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  91. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  92. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
  93. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  94. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js +1 -1
  95. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  96. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js +27 -27
  97. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  98. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  99. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  100. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  101. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  104. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +3 -2
  105. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  107. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
  109. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  111. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  112. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -2
  113. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  114. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  115. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  116. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +3 -2
  117. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  118. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  119. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  120. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +3 -2
  121. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  122. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  123. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  124. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  125. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  131. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  133. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  135. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  136. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  137. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  138. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +2 -0
  139. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -0
  140. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +307 -0
  141. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -0
  142. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  143. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  144. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +64 -322
  145. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  146. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js +22 -5
  147. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js +27 -9
  149. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js.map +1 -1
  150. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  151. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  152. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
  153. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  154. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  155. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  156. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  157. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  158. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  159. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  160. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  161. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  162. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  163. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  164. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +5 -4
  165. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  167. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  169. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  170. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  171. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  173. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +3 -2
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  181. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +3 -2
  185. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +3 -2
  189. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +17 -16
  193. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  194. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +3 -2
  197. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  198. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +3 -2
  201. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  202. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  203. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  205. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  206. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  213. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  214. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  217. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +3 -2
  221. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  225. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  227. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
  229. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  231. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  233. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  235. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
  237. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  239. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  240. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  241. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +3 -2
  245. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +3 -2
  249. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +3 -2
  253. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  257. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  265. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  269. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +3 -2
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +9 -8
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  321. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +1 -0
  325. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  333. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  334. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  337. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  338. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +3 -2
  341. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  342. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  343. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  345. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  346. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  347. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  349. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  350. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  351. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +3 -2
  353. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  354. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  355. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  357. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  358. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  359. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  360. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +4 -4
  361. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  362. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  363. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -2
  365. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  366. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  367. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  368. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  369. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  370. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  371. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  372. package/dist/shared/src/util/getAttributeIcon.cjs.js +1 -1
  373. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  374. package/dist/shared/src/util/getAttributeIcon.es.js +5 -5
  375. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  376. package/dist/types/components/AttributeEditor/attributeTypeMap.d.ts +13 -0
  377. package/dist/types/components/AttributeEditor/index.d.ts +1 -0
  378. package/dist/types/components/ReviewablesSelector/Card.d.ts +18 -0
  379. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +1 -2
  380. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.styled.d.ts +1 -0
  381. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPanelUploaderDialog.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploaderDialog.tsx"],"sourcesContent":["// A dialog to ask the user to name their new upload uploaded version (naming the product)\n// by default we can take the file name\n\nimport { Dialog, InputText, Button, FormRow } from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { FC, useState, useEffect, useRef } from 'react'\nimport { parseFilename } from '../ReviewablesList'\n\nconst prefix = 'review'\nconst buildDefaultName = (file?: File | null) => {\n // remove file extension\n // convert to camelCase\n // first letter to uppercase\n // prefix with \"review\"\n if (!file) return ''\n const name = parseFilename(file.name).replace(/\\.[^/.]+$/, '') // remove file extension\n const camelCaseName = camelCase(name)\n const pascalCaseName = upperFirst(camelCaseName)\n return `${prefix}${pascalCaseName}`\n}\n\ninterface EntityPanelUploaderDialogProps {\n files: FileList | null // used to determine the default product name\n isOpen: boolean\n defaultProductName?: string\n onCancel?: () => void\n onSubmit?: (productName: string) => void\n}\n\nconst EntityPanelUploaderDialog: FC<EntityPanelUploaderDialogProps> = ({\n files,\n isOpen,\n onCancel,\n onSubmit,\n}) => {\n // Build default product name from the first file\n const defaultProductName = buildDefaultName(files?.[0])\n const inputRef = useRef<HTMLInputElement>(null)\n const hasSelectedRef = useRef(false)\n\n const [product, setProduct] = useState(defaultProductName)\n\n // Update state when defaultProductName changes\n useEffect(() => {\n setProduct(defaultProductName)\n hasSelectedRef.current = false // Reset selection flag when product name changes\n }, [defaultProductName])\n\n // Select the filename part (excluding \"review\" prefix) when dialog opens - only once\n useEffect(() => {\n if (isOpen && inputRef.current && product.startsWith(prefix) && !hasSelectedRef.current) {\n // Focus the input first\n inputRef.current.focus()\n // Then select just the filename part (after \"review\")\n const selectionStart = prefix.length\n const selectionEnd = product.length\n inputRef.current.setSelectionRange(selectionStart, selectionEnd)\n hasSelectedRef.current = true // Mark as selected to prevent re-selection\n } else if (!isOpen) {\n hasSelectedRef.current = false // Reset when dialog closes\n }\n }, [isOpen, product])\n\n const handleSubmit = () => {\n if (product.trim() && onSubmit) {\n onSubmit(product.trim())\n }\n }\n\n const handleCancel = () => {\n setProduct(defaultProductName)\n if (onCancel) {\n onCancel()\n }\n }\n\n const isValidProduct = product.trim().length > 0\n\n const footer = (\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <Button variant=\"text\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button variant=\"filled\" onClick={handleSubmit} disabled={!isValidProduct}>\n Upload\n </Button>\n </div>\n )\n\n return (\n <Dialog isOpen={isOpen} onClose={handleCancel} header=\"Upload Entity\" footer={footer} size=\"sm\">\n <div style={{ padding: '16px 0' }}>\n <FormRow label=\"Product Name\">\n <InputText\n ref={inputRef}\n placeholder=\"Enter product name...\"\n value={product}\n onChange={(e) => setProduct(e.target.value)}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isValidProduct) {\n e.preventDefault()\n handleSubmit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n handleCancel()\n }\n }}\n />\n </FormRow>\n </div>\n </Dialog>\n )\n}\n\nexport default EntityPanelUploaderDialog\n"],"names":["prefix","buildDefaultName","file","name","parseFilename","camelCaseName","camelCase","pascalCaseName","upperFirst","EntityPanelUploaderDialog","files","isOpen","onCancel","onSubmit","defaultProductName","inputRef","useRef","hasSelectedRef","product","setProduct","useState","useEffect","selectionStart","selectionEnd","handleSubmit","handleCancel","isValidProduct","footer","jsxs","jsx","Button","Dialog","FormRow","InputText"],"mappings":"4ueAQMA,EAAS,SACTC,EAAoBC,GAAuB,CAK/C,GAAI,CAACA,EAAM,MAAO,GAClB,MAAMC,EAAOC,EAAAA,cAAcF,EAAK,IAAI,EAAE,QAAQ,YAAa,EAAE,EACvDG,EAAgBC,EAAAA,UAAUH,CAAI,EAC9BI,EAAiBC,EAAAA,WAAWH,CAAa,EAC/C,MAAO,GAAGL,CAAM,GAAGO,CAAc,EACnC,EAUME,EAAgE,CAAC,CACrE,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,SAAAC,CACF,IAAM,CAEJ,MAAMC,EAAqBb,EAAiBS,IAAQ,CAAC,CAAC,EAChDK,EAAWC,EAAAA,OAAyB,IAAI,EACxCC,EAAiBD,EAAAA,OAAO,EAAK,EAE7B,CAACE,EAASC,CAAU,EAAIC,EAAAA,SAASN,CAAkB,EAGzDO,EAAAA,UAAU,IAAM,CACdF,EAAWL,CAAkB,EAC7BG,EAAe,QAAU,EAC3B,EAAG,CAACH,CAAkB,CAAC,EAGvBO,EAAAA,UAAU,IAAM,CACd,GAAIV,GAAUI,EAAS,SAAWG,EAAQ,WAAWlB,CAAM,GAAK,CAACiB,EAAe,QAAS,CAEvFF,EAAS,QAAQ,MAAA,EAEjB,MAAMO,EAAiBtB,EAAO,OACxBuB,EAAeL,EAAQ,OAC7BH,EAAS,QAAQ,kBAAkBO,EAAgBC,CAAY,EAC/DN,EAAe,QAAU,EAC3B,MAAYN,IACVM,EAAe,QAAU,GAE7B,EAAG,CAACN,EAAQO,CAAO,CAAC,EAEpB,MAAMM,EAAe,IAAM,CACrBN,EAAQ,KAAA,GAAUL,GACpBA,EAASK,EAAQ,MAAM,CAE3B,EAEMO,EAAe,IAAM,CACzBN,EAAWL,CAAkB,EACzBF,GACFA,EAAA,CAEJ,EAEMc,EAAiBR,EAAQ,KAAA,EAAO,OAAS,EAEzCS,EACJC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,MAAO,eAAgB,UAAA,EACzD,SAAA,CAAAC,wBAACC,EAAAA,OAAA,CAAO,QAAQ,OAAO,QAASL,EAAc,SAAA,SAE9C,EACAI,EAAAA,kBAAAA,IAACC,EAAAA,QAAO,QAAQ,SAAS,QAASN,EAAc,SAAU,CAACE,EAAgB,SAAA,QAAA,CAE3E,CAAA,EACF,EAGF,OACEG,wBAACE,EAAAA,QAAO,OAAApB,EAAgB,QAASc,EAAc,OAAO,gBAAgB,OAAAE,EAAgB,KAAK,KACzF,iCAAC,MAAA,CAAI,MAAO,CAAE,QAAS,QAAA,EACrB,SAAAE,EAAAA,kBAAAA,IAACG,EAAAA,QAAA,CAAQ,MAAM,eACb,SAAAH,EAAAA,kBAAAA,IAACI,EAAAA,UAAA,CACC,IAAKlB,EACL,YAAY,wBACZ,MAAOG,EACP,SAAW,GAAMC,EAAW,EAAE,OAAO,KAAK,EAC1C,UAAS,GACT,UAAY,GAAM,CACZ,EAAE,MAAQ,SAAWO,GACvB,EAAE,eAAA,EACFF,EAAA,GACS,EAAE,MAAQ,WACnB,EAAE,eAAA,EACFC,EAAA,EAEJ,CAAA,CAAA,CACF,CACF,EACF,EACF,CAEJ"}
1
+ {"version":3,"file":"EntityPanelUploaderDialog.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploaderDialog.tsx"],"sourcesContent":["// A dialog to ask the user to name their new upload uploaded version (naming the product)\n// by default we can take the file name\n\nimport { Dialog, InputText, Button, FormRow } from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { FC, useState, useEffect, useRef } from 'react'\nimport { parseFilename } from '../ReviewablesList'\n\nconst prefix = 'review'\nconst buildDefaultName = (file?: File | null) => {\n // remove file extension\n // convert to camelCase\n // first letter to uppercase\n // prefix with \"review\"\n if (!file) return ''\n const name = parseFilename(file.name).replace(/\\.[^/.]+$/, '') // remove file extension\n const camelCaseName = camelCase(name)\n const pascalCaseName = upperFirst(camelCaseName)\n return `${prefix}${pascalCaseName}`\n}\n\ninterface EntityPanelUploaderDialogProps {\n files: FileList | null // used to determine the default product name\n isOpen: boolean\n defaultProductName?: string\n onCancel?: () => void\n onSubmit?: (productName: string) => void\n}\n\nconst EntityPanelUploaderDialog: FC<EntityPanelUploaderDialogProps> = ({\n files,\n isOpen,\n onCancel,\n onSubmit,\n}) => {\n // Build default product name from the first file\n const defaultProductName = buildDefaultName(files?.[0])\n const inputRef = useRef<HTMLInputElement>(null)\n const hasSelectedRef = useRef(false)\n\n const [product, setProduct] = useState(defaultProductName)\n\n // Update state when defaultProductName changes\n useEffect(() => {\n setProduct(defaultProductName)\n hasSelectedRef.current = false // Reset selection flag when product name changes\n }, [defaultProductName])\n\n // Select the filename part (excluding \"review\" prefix) when dialog opens - only once\n useEffect(() => {\n if (isOpen && inputRef.current && product.startsWith(prefix) && !hasSelectedRef.current) {\n // Focus the input first\n inputRef.current.focus()\n // Then select just the filename part (after \"review\")\n const selectionStart = prefix.length\n const selectionEnd = product.length\n inputRef.current.setSelectionRange(selectionStart, selectionEnd)\n hasSelectedRef.current = true // Mark as selected to prevent re-selection\n } else if (!isOpen) {\n hasSelectedRef.current = false // Reset when dialog closes\n }\n }, [isOpen, product])\n\n const handleSubmit = () => {\n if (product.trim() && onSubmit) {\n onSubmit(product.trim())\n }\n }\n\n const handleCancel = () => {\n setProduct(defaultProductName)\n if (onCancel) {\n onCancel()\n }\n }\n\n const isValidProduct = product.trim().length > 0\n\n const footer = (\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <Button variant=\"text\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button variant=\"filled\" onClick={handleSubmit} disabled={!isValidProduct}>\n Upload\n </Button>\n </div>\n )\n\n return (\n <Dialog isOpen={isOpen} onClose={handleCancel} header=\"Upload Entity\" footer={footer} size=\"sm\">\n <div style={{ padding: '16px 0' }}>\n <FormRow label=\"Product Name\">\n <InputText\n ref={inputRef}\n placeholder=\"Enter product name...\"\n value={product}\n onChange={(e) => setProduct(e.target.value)}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isValidProduct) {\n e.preventDefault()\n handleSubmit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n handleCancel()\n }\n }}\n />\n </FormRow>\n </div>\n </Dialog>\n )\n}\n\nexport default EntityPanelUploaderDialog\n"],"names":["prefix","buildDefaultName","file","name","parseFilename","camelCaseName","camelCase","pascalCaseName","upperFirst","EntityPanelUploaderDialog","files","isOpen","onCancel","onSubmit","defaultProductName","inputRef","useRef","hasSelectedRef","product","setProduct","useState","useEffect","selectionStart","selectionEnd","handleSubmit","handleCancel","isValidProduct","footer","jsxs","jsx","Button","Dialog","FormRow","InputText"],"mappings":"kyeAQMA,EAAS,SACTC,EAAoBC,GAAuB,CAK/C,GAAI,CAACA,EAAM,MAAO,GAClB,MAAMC,EAAOC,EAAAA,cAAcF,EAAK,IAAI,EAAE,QAAQ,YAAa,EAAE,EACvDG,EAAgBC,EAAAA,UAAUH,CAAI,EAC9BI,EAAiBC,EAAAA,WAAWH,CAAa,EAC/C,MAAO,GAAGL,CAAM,GAAGO,CAAc,EACnC,EAUME,EAAgE,CAAC,CACrE,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,SAAAC,CACF,IAAM,CAEJ,MAAMC,EAAqBb,EAAiBS,IAAQ,CAAC,CAAC,EAChDK,EAAWC,EAAAA,OAAyB,IAAI,EACxCC,EAAiBD,EAAAA,OAAO,EAAK,EAE7B,CAACE,EAASC,CAAU,EAAIC,EAAAA,SAASN,CAAkB,EAGzDO,EAAAA,UAAU,IAAM,CACdF,EAAWL,CAAkB,EAC7BG,EAAe,QAAU,EAC3B,EAAG,CAACH,CAAkB,CAAC,EAGvBO,EAAAA,UAAU,IAAM,CACd,GAAIV,GAAUI,EAAS,SAAWG,EAAQ,WAAWlB,CAAM,GAAK,CAACiB,EAAe,QAAS,CAEvFF,EAAS,QAAQ,MAAA,EAEjB,MAAMO,EAAiBtB,EAAO,OACxBuB,EAAeL,EAAQ,OAC7BH,EAAS,QAAQ,kBAAkBO,EAAgBC,CAAY,EAC/DN,EAAe,QAAU,EAC3B,MAAYN,IACVM,EAAe,QAAU,GAE7B,EAAG,CAACN,EAAQO,CAAO,CAAC,EAEpB,MAAMM,EAAe,IAAM,CACrBN,EAAQ,KAAA,GAAUL,GACpBA,EAASK,EAAQ,MAAM,CAE3B,EAEMO,EAAe,IAAM,CACzBN,EAAWL,CAAkB,EACzBF,GACFA,EAAA,CAEJ,EAEMc,EAAiBR,EAAQ,KAAA,EAAO,OAAS,EAEzCS,EACJC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,MAAO,eAAgB,UAAA,EACzD,SAAA,CAAAC,wBAACC,EAAAA,OAAA,CAAO,QAAQ,OAAO,QAASL,EAAc,SAAA,SAE9C,EACAI,EAAAA,kBAAAA,IAACC,EAAAA,QAAO,QAAQ,SAAS,QAASN,EAAc,SAAU,CAACE,EAAgB,SAAA,QAAA,CAE3E,CAAA,EACF,EAGF,OACEG,wBAACE,EAAAA,QAAO,OAAApB,EAAgB,QAASc,EAAc,OAAO,gBAAgB,OAAAE,EAAgB,KAAK,KACzF,iCAAC,MAAA,CAAI,MAAO,CAAE,QAAS,QAAA,EACrB,SAAAE,EAAAA,kBAAAA,IAACG,EAAAA,QAAA,CAAQ,MAAM,eACb,SAAAH,EAAAA,kBAAAA,IAACI,EAAAA,UAAA,CACC,IAAKlB,EACL,YAAY,wBACZ,MAAOG,EACP,SAAW,GAAMC,EAAW,EAAE,OAAO,KAAK,EAC1C,UAAS,GACT,UAAY,GAAM,CACZ,EAAE,MAAQ,SAAWO,GACvB,EAAE,eAAA,EACFF,EAAA,GACS,EAAE,MAAQ,WACnB,EAAE,eAAA,EACFC,EAAA,EAEJ,CAAA,CAAA,CACF,CACF,EACF,EACF,CAEJ"}
@@ -103,6 +103,7 @@ import "clsx";
103
103
  import "../AttributeEditor/components/MinMaxField.es.js";
104
104
  import "react-dom";
105
105
  import "../EnumEditor/EnumEditor.styled.es.js";
106
+ import "../AttributeEditor/attributeTypeMap.es.js";
106
107
  import "../Badge/Badge.es.js";
107
108
  import "../Chips/Chips.es.js";
108
109
  import "date-fns";
@@ -271,7 +272,7 @@ const u = "review", k = (m) => {
271
272
  if (!m) return "";
272
273
  const i = P(m.name).replace(/\.[^/.]+$/, ""), p = D(i), e = R(p);
273
274
  return `${u}${e}`;
274
- }, Fm = ({
275
+ }, Sm = ({
275
276
  files: m,
276
277
  isOpen: i,
277
278
  onCancel: p,
@@ -310,6 +311,6 @@ const u = "review", k = (m) => {
310
311
  ) }) }) });
311
312
  };
312
313
  export {
313
- Fm as default
314
+ Sm as default
314
315
  };
315
316
  //# sourceMappingURL=EntityPanelUploaderDialog.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPanelUploaderDialog.es.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploaderDialog.tsx"],"sourcesContent":["// A dialog to ask the user to name their new upload uploaded version (naming the product)\n// by default we can take the file name\n\nimport { Dialog, InputText, Button, FormRow } from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { FC, useState, useEffect, useRef } from 'react'\nimport { parseFilename } from '../ReviewablesList'\n\nconst prefix = 'review'\nconst buildDefaultName = (file?: File | null) => {\n // remove file extension\n // convert to camelCase\n // first letter to uppercase\n // prefix with \"review\"\n if (!file) return ''\n const name = parseFilename(file.name).replace(/\\.[^/.]+$/, '') // remove file extension\n const camelCaseName = camelCase(name)\n const pascalCaseName = upperFirst(camelCaseName)\n return `${prefix}${pascalCaseName}`\n}\n\ninterface EntityPanelUploaderDialogProps {\n files: FileList | null // used to determine the default product name\n isOpen: boolean\n defaultProductName?: string\n onCancel?: () => void\n onSubmit?: (productName: string) => void\n}\n\nconst EntityPanelUploaderDialog: FC<EntityPanelUploaderDialogProps> = ({\n files,\n isOpen,\n onCancel,\n onSubmit,\n}) => {\n // Build default product name from the first file\n const defaultProductName = buildDefaultName(files?.[0])\n const inputRef = useRef<HTMLInputElement>(null)\n const hasSelectedRef = useRef(false)\n\n const [product, setProduct] = useState(defaultProductName)\n\n // Update state when defaultProductName changes\n useEffect(() => {\n setProduct(defaultProductName)\n hasSelectedRef.current = false // Reset selection flag when product name changes\n }, [defaultProductName])\n\n // Select the filename part (excluding \"review\" prefix) when dialog opens - only once\n useEffect(() => {\n if (isOpen && inputRef.current && product.startsWith(prefix) && !hasSelectedRef.current) {\n // Focus the input first\n inputRef.current.focus()\n // Then select just the filename part (after \"review\")\n const selectionStart = prefix.length\n const selectionEnd = product.length\n inputRef.current.setSelectionRange(selectionStart, selectionEnd)\n hasSelectedRef.current = true // Mark as selected to prevent re-selection\n } else if (!isOpen) {\n hasSelectedRef.current = false // Reset when dialog closes\n }\n }, [isOpen, product])\n\n const handleSubmit = () => {\n if (product.trim() && onSubmit) {\n onSubmit(product.trim())\n }\n }\n\n const handleCancel = () => {\n setProduct(defaultProductName)\n if (onCancel) {\n onCancel()\n }\n }\n\n const isValidProduct = product.trim().length > 0\n\n const footer = (\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <Button variant=\"text\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button variant=\"filled\" onClick={handleSubmit} disabled={!isValidProduct}>\n Upload\n </Button>\n </div>\n )\n\n return (\n <Dialog isOpen={isOpen} onClose={handleCancel} header=\"Upload Entity\" footer={footer} size=\"sm\">\n <div style={{ padding: '16px 0' }}>\n <FormRow label=\"Product Name\">\n <InputText\n ref={inputRef}\n placeholder=\"Enter product name...\"\n value={product}\n onChange={(e) => setProduct(e.target.value)}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isValidProduct) {\n e.preventDefault()\n handleSubmit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n handleCancel()\n }\n }}\n />\n </FormRow>\n </div>\n </Dialog>\n )\n}\n\nexport default EntityPanelUploaderDialog\n"],"names":["prefix","buildDefaultName","file","name","parseFilename","camelCaseName","camelCase","pascalCaseName","upperFirst","EntityPanelUploaderDialog","files","isOpen","onCancel","onSubmit","defaultProductName","inputRef","useRef","hasSelectedRef","product","setProduct","useState","useEffect","selectionStart","selectionEnd","handleSubmit","handleCancel","isValidProduct","footer","jsxs","jsx","Button","Dialog","FormRow","InputText","e"],"mappings":"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"}
1
+ {"version":3,"file":"EntityPanelUploaderDialog.es.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploaderDialog.tsx"],"sourcesContent":["// A dialog to ask the user to name their new upload uploaded version (naming the product)\n// by default we can take the file name\n\nimport { Dialog, InputText, Button, FormRow } from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { FC, useState, useEffect, useRef } from 'react'\nimport { parseFilename } from '../ReviewablesList'\n\nconst prefix = 'review'\nconst buildDefaultName = (file?: File | null) => {\n // remove file extension\n // convert to camelCase\n // first letter to uppercase\n // prefix with \"review\"\n if (!file) return ''\n const name = parseFilename(file.name).replace(/\\.[^/.]+$/, '') // remove file extension\n const camelCaseName = camelCase(name)\n const pascalCaseName = upperFirst(camelCaseName)\n return `${prefix}${pascalCaseName}`\n}\n\ninterface EntityPanelUploaderDialogProps {\n files: FileList | null // used to determine the default product name\n isOpen: boolean\n defaultProductName?: string\n onCancel?: () => void\n onSubmit?: (productName: string) => void\n}\n\nconst EntityPanelUploaderDialog: FC<EntityPanelUploaderDialogProps> = ({\n files,\n isOpen,\n onCancel,\n onSubmit,\n}) => {\n // Build default product name from the first file\n const defaultProductName = buildDefaultName(files?.[0])\n const inputRef = useRef<HTMLInputElement>(null)\n const hasSelectedRef = useRef(false)\n\n const [product, setProduct] = useState(defaultProductName)\n\n // Update state when defaultProductName changes\n useEffect(() => {\n setProduct(defaultProductName)\n hasSelectedRef.current = false // Reset selection flag when product name changes\n }, [defaultProductName])\n\n // Select the filename part (excluding \"review\" prefix) when dialog opens - only once\n useEffect(() => {\n if (isOpen && inputRef.current && product.startsWith(prefix) && !hasSelectedRef.current) {\n // Focus the input first\n inputRef.current.focus()\n // Then select just the filename part (after \"review\")\n const selectionStart = prefix.length\n const selectionEnd = product.length\n inputRef.current.setSelectionRange(selectionStart, selectionEnd)\n hasSelectedRef.current = true // Mark as selected to prevent re-selection\n } else if (!isOpen) {\n hasSelectedRef.current = false // Reset when dialog closes\n }\n }, [isOpen, product])\n\n const handleSubmit = () => {\n if (product.trim() && onSubmit) {\n onSubmit(product.trim())\n }\n }\n\n const handleCancel = () => {\n setProduct(defaultProductName)\n if (onCancel) {\n onCancel()\n }\n }\n\n const isValidProduct = product.trim().length > 0\n\n const footer = (\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <Button variant=\"text\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button variant=\"filled\" onClick={handleSubmit} disabled={!isValidProduct}>\n Upload\n </Button>\n </div>\n )\n\n return (\n <Dialog isOpen={isOpen} onClose={handleCancel} header=\"Upload Entity\" footer={footer} size=\"sm\">\n <div style={{ padding: '16px 0' }}>\n <FormRow label=\"Product Name\">\n <InputText\n ref={inputRef}\n placeholder=\"Enter product name...\"\n value={product}\n onChange={(e) => setProduct(e.target.value)}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isValidProduct) {\n e.preventDefault()\n handleSubmit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n handleCancel()\n }\n }}\n />\n </FormRow>\n </div>\n </Dialog>\n )\n}\n\nexport default EntityPanelUploaderDialog\n"],"names":["prefix","buildDefaultName","file","name","parseFilename","camelCaseName","camelCase","pascalCaseName","upperFirst","EntityPanelUploaderDialog","files","isOpen","onCancel","onSubmit","defaultProductName","inputRef","useRef","hasSelectedRef","product","setProduct","useState","useEffect","selectionStart","selectionEnd","handleSubmit","handleCancel","isValidProduct","footer","jsxs","jsx","Button","Dialog","FormRow","InputText","e"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const l=require("../../../../_virtual/jsx-runtime.cjs.js"),i=require("react"),R=require("lodash"),r=require("./EnumEditor.styled.cjs.js"),c=require("clsx"),A=({item:u,onChange:a,onCommit:t,onRemove:N,onDuplicate:w,showRemoveButton:d=!0,showDuplicateButton:E=!0,autoFocus:o=!1,isExpanded:j=!0,className:y,pt:s,...h})=>{const{label:m,value:g,icon:n,color:x,isNewAttribute:p}=u,v=i.useRef(null),b=i.useRef(null),f=i.useRef(null),k=i.useRef(null);return i.useEffect(()=>{(o||u.isNewAttribute)&&v.current?.select()},[o,u.isNewAttribute]),i.useEffect(()=>{j&&!o&&!u.isNewAttribute&&setTimeout(()=>v.current?.focus(),250)},[j,o,u.isNewAttribute]),l.jsxRuntimeExports.jsxs(r.EnumItemBody,{...s?.wrapper,...h,className:c(y,s?.wrapper?.className,{expanded:j,collapsed:!j}),children:[l.jsxRuntimeExports.jsxs(r.Row,{...s?.label?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.label?.label,children:"Label"}),l.jsxRuntimeExports.jsx(r.InputText,{ref:v,value:m,autoFocus:o||p,...s?.label?.input,className:c(s?.label?.input?.className),onChange:e=>{if(!p)return a&&a(["label"],[e.target.value]);b.current&&(b.current.value=R.kebabCase(e.target.value)),a&&a(["label","value"],[e.target.value,R.kebabCase(e.target.value)])},onBlur:e=>{p?t&&t(["label","value"],[e.target.value,R.kebabCase(e.target.value)]):t&&t(["label"],[e.target.value])},onKeyDown:e=>{e.key==="Enter"&&(p?t&&t(["label","value"],[e.target.value,R.kebabCase(e.target.value)]):t&&t(["label"],[e.target.value]))},placeholder:"Enter label"})]},"label"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.value?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.value?.label,children:"Value"}),l.jsxRuntimeExports.jsx(r.InputText,{ref:b,value:b.current?.value||g,...s?.value?.input,className:c(s?.value?.input?.className),onChange:e=>a&&a(["value"],[e.target.value]),onBlur:e=>t&&t(["value"],[e.target.value]),onKeyDown:e=>{e.key==="Enter"&&t&&t(["value"],[e.target.value])},placeholder:"Enter value"})]},"value"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.icon?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.icon?.label,children:"Icon"}),l.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[l.jsxRuntimeExports.jsx(r.Placeholder,{style:{display:n?"none":"flex"},onClick:()=>{k.current?.open()},children:"Pick an icon..."}),l.jsxRuntimeExports.jsx(r.IconSelect,{ref:k,value:[n||"question_mark"],widthExpand:!0,...s?.icon?.input,className:c(s?.icon?.input?.className),style:{position:n?"relative":"absolute",visibility:n?"visible":"hidden",...s?.icon?.input?.style},onChange:e=>{a&&a(["icon"],[e[0]]),t&&t(["icon"],[e[0]])}}),n&&l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{a&&a(["icon"],[void 0])}})]})]},"icon"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.color?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.color?.label,children:"Color"}),l.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[l.jsxRuntimeExports.jsxs(r.ColorPicker,{className:x?"active":"",style:{backgroundColor:x||void 0},onClick:()=>f.current?.click(),children:[x?"":"Pick a color...",l.jsxRuntimeExports.jsx("input",{type:"color",ref:f,value:x||"#000000",...s?.color?.input,className:c(s?.color?.input?.className),onChange:e=>{a&&a(["color"],[e?.target.value.toString()]),t&&t(["color"],[e?.target.value.toString()])}})]}),x&&l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{a&&a(["color"],[void 0])}})]})]},"color"),(d||E)&&l.jsxRuntimeExports.jsxs(r.Row,{...s?.footer,className:c("footer",s?.footer?.className),children:[d&&l.jsxRuntimeExports.jsx(r.ActionWrapper,{children:l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:N,children:"Remove"})}),E&&l.jsxRuntimeExports.jsx(r.ActionWrapper,{children:l.jsxRuntimeExports.jsx(r.Button,{icon:"content_copy",variant:"text",onClick:w,children:"Duplicate"})})]})]})};module.exports=A;
1
+ "use strict";const l=require("../../../../_virtual/jsx-runtime.cjs.js"),i=require("react"),R=require("lodash"),r=require("./EnumEditor.styled.cjs.js"),c=require("clsx"),P=({item:u,onChange:a,onCommit:t,onRemove:N,onDuplicate:w,showRemoveButton:d=!0,showDuplicateButton:E=!0,autoFocus:o=!1,isExpanded:p=!0,className:y,pt:s,...h})=>{const{label:g,value:m,icon:n,color:x,isNewAttribute:j}=u,v=i.useRef(null),b=i.useRef(null),f=i.useRef(null),k=i.useRef(null);return i.useEffect(()=>{(o||u.isNewAttribute)&&v.current?.select()},[o,u.isNewAttribute]),i.useEffect(()=>{p&&!o&&!u.isNewAttribute&&setTimeout(()=>v.current?.focus(),250)},[p,o,u.isNewAttribute]),l.jsxRuntimeExports.jsxs(r.EnumItemBody,{...s?.wrapper,...h,className:c(y,s?.wrapper?.className,{expanded:p,collapsed:!p}),children:[l.jsxRuntimeExports.jsxs(r.Row,{...s?.label?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.label?.label,children:"Label"}),l.jsxRuntimeExports.jsx(r.InputText,{ref:v,value:g,autoFocus:o||j,...s?.label?.input,className:c(s?.label?.input?.className),onChange:e=>{if(!j)return a&&a(["label"],[e.target.value]);b.current&&(b.current.value=R.kebabCase(e.target.value)),a&&a(["label","value"],[e.target.value,R.kebabCase(e.target.value)])},onBlur:e=>{j?t&&t(["label","value"],[e.target.value,R.kebabCase(e.target.value)]):t&&t(["label"],[e.target.value])},onKeyDown:e=>{e.key==="Enter"&&(e.stopPropagation(),j?t&&t(["label","value"],[e.target.value,R.kebabCase(e.target.value)]):t&&t(["label"],[e.target.value]))},placeholder:"Enter label"})]},"label"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.value?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.value?.label,children:"Value"}),l.jsxRuntimeExports.jsx(r.InputText,{ref:b,value:b.current?.value||m,...s?.value?.input,className:c(s?.value?.input?.className),onChange:e=>a&&a(["value"],[e.target.value]),onBlur:e=>t&&t(["value"],[e.target.value]),onKeyDown:e=>{e.key==="Enter"&&(e.stopPropagation(),t&&t(["value"],[e.target.value]))},placeholder:"Enter value"})]},"value"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.icon?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.icon?.label,children:"Icon"}),l.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[l.jsxRuntimeExports.jsx(r.Placeholder,{style:{display:n?"none":"flex"},onClick:()=>{k.current?.open()},children:"Pick an icon..."}),l.jsxRuntimeExports.jsx(r.IconSelect,{ref:k,value:[n||"question_mark"],widthExpand:!0,...s?.icon?.input,className:c(s?.icon?.input?.className),style:{position:n?"relative":"absolute",visibility:n?"visible":"hidden",...s?.icon?.input?.style},onChange:e=>{a&&a(["icon"],[e[0]]),t&&t(["icon"],[e[0]])}}),n&&l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{a&&a(["icon"],[void 0])}})]})]},"icon"),l.jsxRuntimeExports.jsxs(r.Row,{...s?.color?.wrapper,children:[l.jsxRuntimeExports.jsx(r.Label,{...s?.color?.label,children:"Color"}),l.jsxRuntimeExports.jsxs(r.PlaceholderWrapper,{style:{position:"relative"},children:[l.jsxRuntimeExports.jsxs(r.ColorPicker,{className:x?"active":"",style:{backgroundColor:x||void 0},onClick:()=>f.current?.click(),children:[x?"":"Pick a color...",l.jsxRuntimeExports.jsx("input",{type:"color",ref:f,value:x||"#000000",...s?.color?.input,className:c(s?.color?.input?.className),onChange:e=>{a&&a(["color"],[e?.target.value.toString()]),t&&t(["color"],[e?.target.value.toString()])}})]}),x&&l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:()=>{a&&a(["color"],[void 0])}})]})]},"color"),(d||E)&&l.jsxRuntimeExports.jsxs(r.Row,{...s?.footer,className:c("footer",s?.footer?.className),children:[d&&l.jsxRuntimeExports.jsx(r.ActionWrapper,{children:l.jsxRuntimeExports.jsx(r.Button,{icon:"close",variant:"text",onClick:N,children:"Remove"})}),E&&l.jsxRuntimeExports.jsx(r.ActionWrapper,{children:l.jsxRuntimeExports.jsx(r.Button,{icon:"content_copy",variant:"text",onClick:w,children:"Duplicate"})})]})]})};module.exports=P;
2
2
  //# sourceMappingURL=EnumEditorItem.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumEditorItem.cjs.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\nimport clsx from 'clsx'\n\ntype DivPt = Partial<React.HTMLAttributes<HTMLDivElement>>\n\ntype TextInputPt = Partial<React.ComponentProps<typeof Styled.InputText>>\ntype IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect>>\ntype ColorInputPt = Partial<React.InputHTMLAttributes<HTMLInputElement>>\n\nexport interface EnumEditorFieldPt<TInput> {\n wrapper?: DivPt\n label?: DivPt\n input?: Partial<TInput>\n}\n\nexport interface EnumEditorItemPt {\n wrapper?: DivPt\n label?: EnumEditorFieldPt<TextInputPt>\n value?: EnumEditorFieldPt<TextInputPt>\n icon?: EnumEditorFieldPt<IconInputPt>\n color?: EnumEditorFieldPt<ColorInputPt>\n footer?: DivPt\n}\n\nexport interface EnumEditorItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onCommit?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n pt?: EnumEditorItemPt\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onCommit,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n className,\n pt,\n ...props\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody\n {...pt?.wrapper}\n {...props}\n className={clsx(className, pt?.wrapper?.className, {\n expanded: isExpanded,\n collapsed: !isExpanded,\n })}\n >\n <Styled.Row key=\"label\" {...pt?.label?.wrapper}>\n <Styled.Label {...pt?.label?.label}>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n {...pt?.label?.input}\n className={clsx(pt?.label?.input?.className)}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n onBlur={(event) => {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [event.target.value])\n } else {\n onCommit &&\n onCommit(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [(event.target as HTMLInputElement).value])\n } else {\n onCommit &&\n onCommit(\n ['label', 'value'],\n [\n (event.target as HTMLInputElement).value,\n kebabCase((event.target as HTMLInputElement).value),\n ],\n )\n }\n }\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\" {...pt?.value?.wrapper}>\n <Styled.Label {...pt?.value?.label}>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n {...pt?.value?.input}\n className={clsx(pt?.value?.input?.className)}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n onBlur={(event) => onCommit && onCommit(['value'], [event.target.value])}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCommit && onCommit(['value'], [(event.target as HTMLInputElement).value])\n }\n }}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\" {...pt?.icon?.wrapper}>\n <Styled.Label {...pt?.icon?.label}>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n {...pt?.icon?.input}\n className={clsx(pt?.icon?.input?.className)}\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n ...pt?.icon?.input?.style,\n }}\n onChange={(value) => {\n onChange && onChange(['icon'], [value[0]])\n onCommit && onCommit(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\" {...pt?.color?.wrapper}>\n <Styled.Label {...pt?.color?.label}>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n {...pt?.color?.input}\n className={clsx(pt?.color?.input?.className)}\n onChange={(event) => {\n onChange && onChange(['color'], [event?.target.value.toString()])\n onCommit && onCommit(['color'], [event?.target.value.toString()])\n }}\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row {...pt?.footer} className={clsx('footer', pt?.footer?.className)}>\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onCommit","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","className","pt","props","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","jsxs","Styled.EnumItemBody","clsx","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"EnumEditorItem.cjs.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\nimport clsx from 'clsx'\n\ntype DivPt = Partial<React.HTMLAttributes<HTMLDivElement>>\n\ntype TextInputPt = Partial<React.ComponentProps<typeof Styled.InputText>>\ntype IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect>>\ntype ColorInputPt = Partial<React.InputHTMLAttributes<HTMLInputElement>>\n\nexport interface EnumEditorFieldPt<TInput> {\n wrapper?: DivPt\n label?: DivPt\n input?: Partial<TInput>\n}\n\nexport interface EnumEditorItemPt {\n wrapper?: DivPt\n label?: EnumEditorFieldPt<TextInputPt>\n value?: EnumEditorFieldPt<TextInputPt>\n icon?: EnumEditorFieldPt<IconInputPt>\n color?: EnumEditorFieldPt<ColorInputPt>\n footer?: DivPt\n}\n\nexport interface EnumEditorItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onCommit?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n pt?: EnumEditorItemPt\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onCommit,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n className,\n pt,\n ...props\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody\n {...pt?.wrapper}\n {...props}\n className={clsx(className, pt?.wrapper?.className, {\n expanded: isExpanded,\n collapsed: !isExpanded,\n })}\n >\n <Styled.Row key=\"label\" {...pt?.label?.wrapper}>\n <Styled.Label {...pt?.label?.label}>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n {...pt?.label?.input}\n className={clsx(pt?.label?.input?.className)}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n onBlur={(event) => {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [event.target.value])\n } else {\n onCommit &&\n onCommit(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation()\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [(event.target as HTMLInputElement).value])\n } else {\n onCommit &&\n onCommit(\n ['label', 'value'],\n [\n (event.target as HTMLInputElement).value,\n kebabCase((event.target as HTMLInputElement).value),\n ],\n )\n }\n }\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\" {...pt?.value?.wrapper}>\n <Styled.Label {...pt?.value?.label}>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n {...pt?.value?.input}\n className={clsx(pt?.value?.input?.className)}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n onBlur={(event) => onCommit && onCommit(['value'], [event.target.value])}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation()\n onCommit && onCommit(['value'], [(event.target as HTMLInputElement).value])\n }\n }}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\" {...pt?.icon?.wrapper}>\n <Styled.Label {...pt?.icon?.label}>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n {...pt?.icon?.input}\n className={clsx(pt?.icon?.input?.className)}\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n ...pt?.icon?.input?.style,\n }}\n onChange={(value) => {\n onChange && onChange(['icon'], [value[0]])\n onCommit && onCommit(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\" {...pt?.color?.wrapper}>\n <Styled.Label {...pt?.color?.label}>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n {...pt?.color?.input}\n className={clsx(pt?.color?.input?.className)}\n onChange={(event) => {\n onChange && onChange(['color'], [event?.target.value.toString()])\n onCommit && onCommit(['color'], [event?.target.value.toString()])\n }}\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row {...pt?.footer} className={clsx('footer', pt?.footer?.className)}>\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onCommit","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","className","pt","props","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","jsxs","Styled.EnumItemBody","clsx","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { j as l } from "../../../../_virtual/jsx-runtime.es.js";
2
2
  import { useRef as d, useEffect as g } from "react";
3
3
  import { kebabCase as f } from "lodash";
4
- import { EnumItemBody as L, Row as n, Label as j, InputText as E, PlaceholderWrapper as R, Placeholder as T, IconSelect as W, Button as p, ColorPicker as _, ActionWrapper as A } from "./EnumEditor.styled.es.js";
4
+ import { EnumItemBody as L, Row as n, Label as p, InputText as P, PlaceholderWrapper as E, Placeholder as T, IconSelect as W, Button as j, ColorPicker as _, ActionWrapper as R } from "./EnumEditor.styled.es.js";
5
5
  import s from "clsx";
6
6
  const J = ({
7
7
  item: i,
8
8
  onChange: c,
9
9
  onCommit: a,
10
- onRemove: P,
10
+ onRemove: A,
11
11
  onDuplicate: I,
12
12
  showRemoveButton: k = !0,
13
13
  showDuplicateButton: y = !0,
@@ -17,7 +17,7 @@ const J = ({
17
17
  pt: r,
18
18
  ...B
19
19
  }) => {
20
- const { label: D, value: K, icon: u, color: o, isNewAttribute: x } = i, N = d(null), b = d(null), h = d(null), w = d(null);
20
+ const { label: D, value: K, icon: o, color: u, isNewAttribute: x } = i, N = d(null), b = d(null), h = d(null), w = d(null);
21
21
  return g(() => {
22
22
  (t || i.isNewAttribute) && N.current?.select();
23
23
  }, [t, i.isNewAttribute]), g(() => {
@@ -33,9 +33,9 @@ const J = ({
33
33
  }),
34
34
  children: [
35
35
  /* @__PURE__ */ l.jsxs(n, { ...r?.label?.wrapper, children: [
36
- /* @__PURE__ */ l.jsx(j, { ...r?.label?.label, children: "Label" }),
36
+ /* @__PURE__ */ l.jsx(p, { ...r?.label?.label, children: "Label" }),
37
37
  /* @__PURE__ */ l.jsx(
38
- E,
38
+ P,
39
39
  {
40
40
  ref: N,
41
41
  value: D,
@@ -51,7 +51,7 @@ const J = ({
51
51
  x ? a && a(["label", "value"], [e.target.value, f(e.target.value)]) : a && a(["label"], [e.target.value]);
52
52
  },
53
53
  onKeyDown: (e) => {
54
- e.key === "Enter" && (x ? a && a(
54
+ e.key === "Enter" && (e.stopPropagation(), x ? a && a(
55
55
  ["label", "value"],
56
56
  [
57
57
  e.target.value,
@@ -64,9 +64,9 @@ const J = ({
64
64
  )
65
65
  ] }, "label"),
66
66
  /* @__PURE__ */ l.jsxs(n, { ...r?.value?.wrapper, children: [
67
- /* @__PURE__ */ l.jsx(j, { ...r?.value?.label, children: "Value" }),
67
+ /* @__PURE__ */ l.jsx(p, { ...r?.value?.label, children: "Value" }),
68
68
  /* @__PURE__ */ l.jsx(
69
- E,
69
+ P,
70
70
  {
71
71
  ref: b,
72
72
  value: b.current?.value || K,
@@ -75,19 +75,19 @@ const J = ({
75
75
  onChange: (e) => c && c(["value"], [e.target.value]),
76
76
  onBlur: (e) => a && a(["value"], [e.target.value]),
77
77
  onKeyDown: (e) => {
78
- e.key === "Enter" && a && a(["value"], [e.target.value]);
78
+ e.key === "Enter" && (e.stopPropagation(), a && a(["value"], [e.target.value]));
79
79
  },
80
80
  placeholder: "Enter value"
81
81
  }
82
82
  )
83
83
  ] }, "value"),
84
84
  /* @__PURE__ */ l.jsxs(n, { ...r?.icon?.wrapper, children: [
85
- /* @__PURE__ */ l.jsx(j, { ...r?.icon?.label, children: "Icon" }),
86
- /* @__PURE__ */ l.jsxs(R, { style: { position: "relative" }, children: [
85
+ /* @__PURE__ */ l.jsx(p, { ...r?.icon?.label, children: "Icon" }),
86
+ /* @__PURE__ */ l.jsxs(E, { style: { position: "relative" }, children: [
87
87
  /* @__PURE__ */ l.jsx(
88
88
  T,
89
89
  {
90
- style: { display: u ? "none" : "flex" },
90
+ style: { display: o ? "none" : "flex" },
91
91
  onClick: () => {
92
92
  w.current?.open();
93
93
  },
@@ -98,13 +98,13 @@ const J = ({
98
98
  W,
99
99
  {
100
100
  ref: w,
101
- value: [u || "question_mark"],
101
+ value: [o || "question_mark"],
102
102
  widthExpand: !0,
103
103
  ...r?.icon?.input,
104
104
  className: s(r?.icon?.input?.className),
105
105
  style: {
106
- position: u ? "relative" : "absolute",
107
- visibility: u ? "visible" : "hidden",
106
+ position: o ? "relative" : "absolute",
107
+ visibility: o ? "visible" : "hidden",
108
108
  ...r?.icon?.input?.style
109
109
  },
110
110
  onChange: (e) => {
@@ -112,8 +112,8 @@ const J = ({
112
112
  }
113
113
  }
114
114
  ),
115
- u && /* @__PURE__ */ l.jsx(
116
- p,
115
+ o && /* @__PURE__ */ l.jsx(
116
+ j,
117
117
  {
118
118
  icon: "close",
119
119
  variant: "text",
@@ -125,22 +125,22 @@ const J = ({
125
125
  ] })
126
126
  ] }, "icon"),
127
127
  /* @__PURE__ */ l.jsxs(n, { ...r?.color?.wrapper, children: [
128
- /* @__PURE__ */ l.jsx(j, { ...r?.color?.label, children: "Color" }),
129
- /* @__PURE__ */ l.jsxs(R, { style: { position: "relative" }, children: [
128
+ /* @__PURE__ */ l.jsx(p, { ...r?.color?.label, children: "Color" }),
129
+ /* @__PURE__ */ l.jsxs(E, { style: { position: "relative" }, children: [
130
130
  /* @__PURE__ */ l.jsxs(
131
131
  _,
132
132
  {
133
- className: o ? "active" : "",
134
- style: { backgroundColor: o || void 0 },
133
+ className: u ? "active" : "",
134
+ style: { backgroundColor: u || void 0 },
135
135
  onClick: () => h.current?.click(),
136
136
  children: [
137
- o ? "" : "Pick a color...",
137
+ u ? "" : "Pick a color...",
138
138
  /* @__PURE__ */ l.jsx(
139
139
  "input",
140
140
  {
141
141
  type: "color",
142
142
  ref: h,
143
- value: o || "#000000",
143
+ value: u || "#000000",
144
144
  ...r?.color?.input,
145
145
  className: s(r?.color?.input?.className),
146
146
  onChange: (e) => {
@@ -151,8 +151,8 @@ const J = ({
151
151
  ]
152
152
  }
153
153
  ),
154
- o && /* @__PURE__ */ l.jsx(
155
- p,
154
+ u && /* @__PURE__ */ l.jsx(
155
+ j,
156
156
  {
157
157
  icon: "close",
158
158
  variant: "text",
@@ -164,8 +164,8 @@ const J = ({
164
164
  ] })
165
165
  ] }, "color"),
166
166
  (k || y) && /* @__PURE__ */ l.jsxs(n, { ...r?.footer, className: s("footer", r?.footer?.className), children: [
167
- k && /* @__PURE__ */ l.jsx(A, { children: /* @__PURE__ */ l.jsx(p, { icon: "close", variant: "text", onClick: P, children: "Remove" }) }),
168
- y && /* @__PURE__ */ l.jsx(A, { children: /* @__PURE__ */ l.jsx(p, { icon: "content_copy", variant: "text", onClick: I, children: "Duplicate" }) })
167
+ k && /* @__PURE__ */ l.jsx(R, { children: /* @__PURE__ */ l.jsx(j, { icon: "close", variant: "text", onClick: A, children: "Remove" }) }),
168
+ y && /* @__PURE__ */ l.jsx(R, { children: /* @__PURE__ */ l.jsx(j, { icon: "content_copy", variant: "text", onClick: I, children: "Duplicate" }) })
169
169
  ] })
170
170
  ]
171
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnumEditorItem.es.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\nimport clsx from 'clsx'\n\ntype DivPt = Partial<React.HTMLAttributes<HTMLDivElement>>\n\ntype TextInputPt = Partial<React.ComponentProps<typeof Styled.InputText>>\ntype IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect>>\ntype ColorInputPt = Partial<React.InputHTMLAttributes<HTMLInputElement>>\n\nexport interface EnumEditorFieldPt<TInput> {\n wrapper?: DivPt\n label?: DivPt\n input?: Partial<TInput>\n}\n\nexport interface EnumEditorItemPt {\n wrapper?: DivPt\n label?: EnumEditorFieldPt<TextInputPt>\n value?: EnumEditorFieldPt<TextInputPt>\n icon?: EnumEditorFieldPt<IconInputPt>\n color?: EnumEditorFieldPt<ColorInputPt>\n footer?: DivPt\n}\n\nexport interface EnumEditorItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onCommit?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n pt?: EnumEditorItemPt\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onCommit,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n className,\n pt,\n ...props\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody\n {...pt?.wrapper}\n {...props}\n className={clsx(className, pt?.wrapper?.className, {\n expanded: isExpanded,\n collapsed: !isExpanded,\n })}\n >\n <Styled.Row key=\"label\" {...pt?.label?.wrapper}>\n <Styled.Label {...pt?.label?.label}>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n {...pt?.label?.input}\n className={clsx(pt?.label?.input?.className)}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n onBlur={(event) => {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [event.target.value])\n } else {\n onCommit &&\n onCommit(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [(event.target as HTMLInputElement).value])\n } else {\n onCommit &&\n onCommit(\n ['label', 'value'],\n [\n (event.target as HTMLInputElement).value,\n kebabCase((event.target as HTMLInputElement).value),\n ],\n )\n }\n }\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\" {...pt?.value?.wrapper}>\n <Styled.Label {...pt?.value?.label}>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n {...pt?.value?.input}\n className={clsx(pt?.value?.input?.className)}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n onBlur={(event) => onCommit && onCommit(['value'], [event.target.value])}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCommit && onCommit(['value'], [(event.target as HTMLInputElement).value])\n }\n }}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\" {...pt?.icon?.wrapper}>\n <Styled.Label {...pt?.icon?.label}>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n {...pt?.icon?.input}\n className={clsx(pt?.icon?.input?.className)}\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n ...pt?.icon?.input?.style,\n }}\n onChange={(value) => {\n onChange && onChange(['icon'], [value[0]])\n onCommit && onCommit(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\" {...pt?.color?.wrapper}>\n <Styled.Label {...pt?.color?.label}>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n {...pt?.color?.input}\n className={clsx(pt?.color?.input?.className)}\n onChange={(event) => {\n onChange && onChange(['color'], [event?.target.value.toString()])\n onCommit && onCommit(['color'], [event?.target.value.toString()])\n }}\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row {...pt?.footer} className={clsx('footer', pt?.footer?.className)}>\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onCommit","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","className","pt","props","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","jsxs","Styled.EnumItemBody","clsx","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":";;;;;AA4CA,MAAMA,IAAiB,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,qBAAAC,IAAsB;AAAA,EACtB,WAAAC,IAAY;AAAA,EACZ,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,IAAAC;AAAA,EACA,GAAGC;AACL,MAA2B;AACzB,QAAM,EAAE,OAAAC,GAAO,OAAAC,GAAO,MAAAC,GAAM,OAAAC,GAAO,gBAAAC,MAAmBhB,GAChDiB,IAAWC,EAAyB,IAAI,GACxCC,IAAWD,EAAyB,IAAI,GACxCE,IAAiBF,EAAyB,IAAI,GAC9CG,IAAgBH,EAAoB,IAAI;AAE9C,SAAAI,EAAU,MAAM;AACd,KAAIf,KAAaP,EAAK,mBACpBiB,EAAS,SAAS,OAAA;AAAA,EAEtB,GAAG,CAACV,GAAWP,EAAK,cAAc,CAAC,GAGnCsB,EAAU,MAAM;AACd,IAAId,KAAc,CAACD,KAAa,CAACP,EAAK,kBAEpC,WAAW,MAAMiB,EAAS,SAAS,MAAA,GAAS,GAAG;AAAA,EAEnD,GAAG,CAACT,GAAYD,GAAWP,EAAK,cAAc,CAAC,GAG7CuB,gBAAAA,EAAAA;AAAAA,IAACC;AAAAA,IAAA;AAAA,MACE,GAAGd,GAAI;AAAA,MACP,GAAGC;AAAA,MACJ,WAAWc,EAAKhB,GAAWC,GAAI,SAAS,WAAW;AAAA,QACjD,UAAUF;AAAA,QACV,WAAW,CAACA;AAAA,MAAA,CACb;AAAA,MAED,UAAA;AAAA,QAAAe,gBAAAA,EAAAA,KAACG,GAAA,EAAwB,GAAGhB,GAAI,OAAO,SACrC,UAAA;AAAA,UAAAiB,gBAAAA,MAACC,GAAA,EAAc,GAAGlB,GAAI,OAAO,OAAO,UAAA,SAAK;AAAA,UACzCiB,gBAAAA,EAAAA;AAAAA,YAACE;AAAAA,YAAA;AAAA,cACC,KAAKZ;AAAA,cACL,OAAOL;AAAA,cACP,WAAWL,KAAaS;AAAA,cACvB,GAAGN,GAAI,OAAO;AAAA,cACf,WAAWe,EAAKf,GAAI,OAAO,OAAO,SAAS;AAAA,cAC3C,UAAU,CAACoB,MAAU;AACnB,oBAAI,CAACd;AACH,yBAAOf,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC6B,EAAM,OAAO,KAAK,CAAC;AAE7D,gBAAIX,EAAS,YACXA,EAAS,QAAQ,QAAQY,EAAUD,EAAM,OAAO,KAAK,IAEvD7B,KACEA,EAAS,CAAC,SAAS,OAAO,GAAG,CAAC6B,EAAM,OAAO,OAAOC,EAAUD,EAAM,OAAO,KAAK,CAAC,CAAC;AAAA,cACpF;AAAA,cACA,QAAQ,CAACA,MAAU;AACjB,gBAAKd,IAGHd,KACEA,EAAS,CAAC,SAAS,OAAO,GAAG,CAAC4B,EAAM,OAAO,OAAOC,EAAUD,EAAM,OAAO,KAAK,CAAC,CAAC,IAHlF5B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC4B,EAAM,OAAO,KAAK,CAAC;AAAA,cAKxD;AAAA,cACA,WAAW,CAACA,MAAU;AACpB,gBAAIA,EAAM,QAAQ,YACXd,IAGHd,KACEA;AAAA,kBACE,CAAC,SAAS,OAAO;AAAA,kBACjB;AAAA,oBACG4B,EAAM,OAA4B;AAAA,oBACnCC,EAAWD,EAAM,OAA4B,KAAK;AAAA,kBAAA;AAAA,gBACpD,IARJ5B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAE4B,EAAM,OAA4B,KAAK,CAAC;AAAA,cAYhF;AAAA,cACA,aAAY;AAAA,YAAA;AAAA,UAAA;AAAA,QACd,EAAA,GA3Cc,OA4ChB;AAAA,+BAECJ,GAAA,EAAwB,GAAGhB,GAAI,OAAO,SACrC,UAAA;AAAA,UAAAiB,gBAAAA,MAACC,GAAA,EAAc,GAAGlB,GAAI,OAAO,OAAO,UAAA,SAAK;AAAA,UACzCiB,gBAAAA,EAAAA;AAAAA,YAACE;AAAAA,YAAA;AAAA,cACC,KAAKV;AAAA,cACL,OAAOA,EAAS,SAAS,SAASN;AAAA,cACjC,GAAGH,GAAI,OAAO;AAAA,cACf,WAAWe,EAAKf,GAAI,OAAO,OAAO,SAAS;AAAA,cAC3C,UAAU,CAACoB,MAAU7B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC6B,EAAM,OAAO,KAAK,CAAC;AAAA,cACzE,QAAQ,CAACA,MAAU5B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC4B,EAAM,OAAO,KAAK,CAAC;AAAA,cACvE,WAAW,CAACA,MAAU;AACpB,gBAAIA,EAAM,QAAQ,WAChB5B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAE4B,EAAM,OAA4B,KAAK,CAAC;AAAA,cAE9E;AAAA,cACA,aAAY;AAAA,YAAA;AAAA,UAAA;AAAA,QACd,EAAA,GAfc,OAgBhB;AAAA,+BAECJ,GAAA,EAAuB,GAAGhB,GAAI,MAAM,SACnC,UAAA;AAAA,UAAAiB,gBAAAA,MAACC,GAAA,EAAc,GAAGlB,GAAI,MAAM,OAAO,UAAA,QAAI;AAAA,UAEvCa,gBAAAA,EAAAA,KAACS,GAAA,EAA0B,OAAO,EAAE,UAAU,cAC5C,UAAA;AAAA,YAAAL,gBAAAA,EAAAA;AAAAA,cAACM;AAAAA,cAAA;AAAA,gBACC,OAAO,EAAE,SAASnB,IAAO,SAAS,OAAA;AAAA,gBAClC,SAAS,MAAM;AACb,kBAAAO,EAAc,SAAS,KAAA;AAAA,gBACzB;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAIDM,gBAAAA,EAAAA;AAAAA,cAACO;AAAAA,cAAA;AAAA,gBACC,KAAKb;AAAA,gBACL,OAAO,CAACP,KAAQ,eAAe;AAAA,gBAC/B,aAAW;AAAA,gBACV,GAAGJ,GAAI,MAAM;AAAA,gBACd,WAAWe,EAAKf,GAAI,MAAM,OAAO,SAAS;AAAA,gBAC1C,OAAO;AAAA,kBACL,UAAUI,IAAO,aAAa;AAAA,kBAC9B,YAAYA,IAAO,YAAY;AAAA,kBAC/B,GAAGJ,GAAI,MAAM,OAAO;AAAA,gBAAA;AAAA,gBAEtB,UAAU,CAACG,MAAU;AACnB,kBAAAZ,KAAYA,EAAS,CAAC,MAAM,GAAG,CAACY,EAAM,CAAC,CAAC,CAAC,GACzCX,KAAYA,EAAS,CAAC,MAAM,GAAG,CAACW,EAAM,CAAC,CAAC,CAAC;AAAA,gBAC3C;AAAA,cAAA;AAAA,YAAA;AAAA,YAEDC,KACCa,gBAAAA,EAAAA;AAAAA,cAACQ;AAAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,SAAS,MAAM;AACb,kBAAAlC,KAAYA,EAAS,CAAC,MAAM,GAAG,CAAC,MAAS,CAAC;AAAA,gBAC5C;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CAEJ;AAAA,QAAA,EAAA,GAtCc,MAuChB;AAAA,+BAECyB,GAAA,EAAwB,GAAGhB,GAAI,OAAO,SACrC,UAAA;AAAA,UAAAiB,gBAAAA,MAACC,GAAA,EAAc,GAAGlB,GAAI,OAAO,OAAO,UAAA,SAAK;AAAA,UAEzCa,gBAAAA,EAAAA,KAACS,GAAA,EAA0B,OAAO,EAAE,UAAU,cAC5C,UAAA;AAAA,YAAAT,gBAAAA,EAAAA;AAAAA,cAACa;AAAAA,cAAA;AAAA,gBACC,WAAWrB,IAAQ,WAAW;AAAA,gBAC9B,OAAO,EAAE,iBAAiBA,KAAS,OAAA;AAAA,gBACnC,SAAS,MAAMK,EAAe,SAAS,MAAA;AAAA,gBAEtC,UAAA;AAAA,kBAACL,IAA4B,KAApB;AAAA,kBACVY,gBAAAA,EAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,KAAKP;AAAA,sBACL,OAAOL,KAAS;AAAA,sBACf,GAAGL,GAAI,OAAO;AAAA,sBACf,WAAWe,EAAKf,GAAI,OAAO,OAAO,SAAS;AAAA,sBAC3C,UAAU,CAACoB,MAAU;AACnB,wBAAA7B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC6B,GAAO,OAAO,MAAM,SAAA,CAAU,CAAC,GAChE5B,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC4B,GAAO,OAAO,MAAM,SAAA,CAAU,CAAC;AAAA,sBAClE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YAAA;AAAA,YAEDf,KACCY,gBAAAA,EAAAA;AAAAA,cAACQ;AAAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,SAAS,MAAM;AACb,kBAAAlC,KAAYA,EAAS,CAAC,OAAO,GAAG,CAAC,MAAS,CAAC;AAAA,gBAC7C;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CAEJ;AAAA,QAAA,EAAA,GA/Bc,OAgChB;AAAA,SAEEI,KAAoBC,MACpBiB,gBAAAA,EAAAA,KAACG,GAAA,EAAY,GAAGhB,GAAI,QAAQ,WAAWe,EAAK,UAAUf,GAAI,QAAQ,SAAS,GACxE,UAAA;AAAA,UAAAL,KACCsB,gBAAAA,EAAAA,IAACU,GAAA,EACC,gCAACF,GAAA,EAAc,MAAK,SAAQ,SAAQ,QAAO,SAAShC,GAAU,oBAE9D,GACF;AAAA,UAEDG,KACCqB,gBAAAA,EAAAA,IAACU,GAAA,EACC,gCAACF,GAAA,EAAc,MAAK,gBAAe,SAAQ,QAAO,SAAS/B,GAAa,uBAExE,EAAA,CACF;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"EnumEditorItem.es.js","sources":["../../../../../src/components/EnumEditor/EnumEditorItem.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { kebabCase } from 'lodash'\n\nimport { DropdownRef, Icon } from '@ynput/ayon-react-components'\n\nimport * as Styled from './EnumEditor.styled'\nimport { AttributeData } from './EnumEditor'\nimport clsx from 'clsx'\n\ntype DivPt = Partial<React.HTMLAttributes<HTMLDivElement>>\n\ntype TextInputPt = Partial<React.ComponentProps<typeof Styled.InputText>>\ntype IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect>>\ntype ColorInputPt = Partial<React.InputHTMLAttributes<HTMLInputElement>>\n\nexport interface EnumEditorFieldPt<TInput> {\n wrapper?: DivPt\n label?: DivPt\n input?: Partial<TInput>\n}\n\nexport interface EnumEditorItemPt {\n wrapper?: DivPt\n label?: EnumEditorFieldPt<TextInputPt>\n value?: EnumEditorFieldPt<TextInputPt>\n icon?: EnumEditorFieldPt<IconInputPt>\n color?: EnumEditorFieldPt<ColorInputPt>\n footer?: DivPt\n}\n\nexport interface EnumEditorItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n item: AttributeData\n onChange?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onCommit?: (attr: (keyof AttributeData)[], value: (boolean | string | undefined)[]) => void\n onRemove?: () => void\n onDuplicate?: () => void\n showRemoveButton?: boolean\n showDuplicateButton?: boolean\n autoFocus?: boolean\n isExpanded?: boolean\n pt?: EnumEditorItemPt\n}\n\nconst EnumEditorItem = ({\n item,\n onChange,\n onCommit,\n onRemove,\n onDuplicate,\n showRemoveButton = true,\n showDuplicateButton = true,\n autoFocus = false,\n isExpanded = true,\n className,\n pt,\n ...props\n}: EnumEditorItemProps) => {\n const { label, value, icon, color, isNewAttribute } = item\n const labelRef = useRef<HTMLInputElement>(null)\n const valueRef = useRef<HTMLInputElement>(null)\n const colorPickerRef = useRef<HTMLInputElement>(null)\n const iconSelectRef = useRef<DropdownRef>(null)\n\n useEffect(() => {\n if (autoFocus || item.isNewAttribute) {\n labelRef.current?.select()\n }\n }, [autoFocus, item.isNewAttribute])\n\n // Handle focus when item becomes expanded\n useEffect(() => {\n if (isExpanded && !autoFocus && !item.isNewAttribute) {\n // Avoids jittery expand animation\n setTimeout(() => labelRef.current?.focus(), 250)\n }\n }, [isExpanded, autoFocus, item.isNewAttribute])\n\n return (\n <Styled.EnumItemBody\n {...pt?.wrapper}\n {...props}\n className={clsx(className, pt?.wrapper?.className, {\n expanded: isExpanded,\n collapsed: !isExpanded,\n })}\n >\n <Styled.Row key=\"label\" {...pt?.label?.wrapper}>\n <Styled.Label {...pt?.label?.label}>Label</Styled.Label>\n <Styled.InputText\n ref={labelRef}\n value={label}\n autoFocus={autoFocus || isNewAttribute}\n {...pt?.label?.input}\n className={clsx(pt?.label?.input?.className)}\n onChange={(event) => {\n if (!isNewAttribute) {\n return onChange && onChange(['label'], [event.target.value])\n }\n if (valueRef.current) {\n valueRef.current.value = kebabCase(event.target.value)\n }\n onChange &&\n onChange(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }}\n onBlur={(event) => {\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [event.target.value])\n } else {\n onCommit &&\n onCommit(['label', 'value'], [event.target.value, kebabCase(event.target.value)])\n }\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation()\n if (!isNewAttribute) {\n onCommit && onCommit(['label'], [(event.target as HTMLInputElement).value])\n } else {\n onCommit &&\n onCommit(\n ['label', 'value'],\n [\n (event.target as HTMLInputElement).value,\n kebabCase((event.target as HTMLInputElement).value),\n ],\n )\n }\n }\n }}\n placeholder=\"Enter label\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"value\" {...pt?.value?.wrapper}>\n <Styled.Label {...pt?.value?.label}>Value</Styled.Label>\n <Styled.InputText\n ref={valueRef}\n value={valueRef.current?.value || value}\n {...pt?.value?.input}\n className={clsx(pt?.value?.input?.className)}\n onChange={(event) => onChange && onChange(['value'], [event.target.value])}\n onBlur={(event) => onCommit && onCommit(['value'], [event.target.value])}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.stopPropagation()\n onCommit && onCommit(['value'], [(event.target as HTMLInputElement).value])\n }\n }}\n placeholder=\"Enter value\"\n />\n </Styled.Row>\n\n <Styled.Row key=\"icon\" {...pt?.icon?.wrapper}>\n <Styled.Label {...pt?.icon?.label}>Icon</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.Placeholder\n style={{ display: icon ? 'none' : 'flex' }}\n onClick={() => {\n iconSelectRef.current?.open()\n }}\n >\n Pick an icon...\n </Styled.Placeholder>\n\n <Styled.IconSelect\n ref={iconSelectRef}\n value={[icon || 'question_mark']}\n widthExpand\n {...pt?.icon?.input}\n className={clsx(pt?.icon?.input?.className)}\n style={{\n position: icon ? 'relative' : 'absolute',\n visibility: icon ? 'visible' : 'hidden',\n ...pt?.icon?.input?.style,\n }}\n onChange={(value) => {\n onChange && onChange(['icon'], [value[0]])\n onCommit && onCommit(['icon'], [value[0]])\n }}\n />\n {icon && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['icon'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n <Styled.Row key=\"color\" {...pt?.color?.wrapper}>\n <Styled.Label {...pt?.color?.label}>Color</Styled.Label>\n\n <Styled.PlaceholderWrapper style={{ position: 'relative' }}>\n <Styled.ColorPicker\n className={color ? 'active' : ''}\n style={{ backgroundColor: color || undefined }}\n onClick={() => colorPickerRef.current?.click()}\n >\n {!color ? 'Pick a color...' : ''}\n <input\n type=\"color\"\n ref={colorPickerRef}\n value={color || '#000000'}\n {...pt?.color?.input}\n className={clsx(pt?.color?.input?.className)}\n onChange={(event) => {\n onChange && onChange(['color'], [event?.target.value.toString()])\n onCommit && onCommit(['color'], [event?.target.value.toString()])\n }}\n />\n </Styled.ColorPicker>\n {color && (\n <Styled.Button\n icon=\"close\"\n variant=\"text\"\n onClick={() => {\n onChange && onChange(['color'], [undefined])\n }}\n />\n )}\n </Styled.PlaceholderWrapper>\n </Styled.Row>\n\n {(showRemoveButton || showDuplicateButton) && (\n <Styled.Row {...pt?.footer} className={clsx('footer', pt?.footer?.className)}>\n {showRemoveButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"close\" variant=\"text\" onClick={onRemove}>\n Remove\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n {showDuplicateButton && (\n <Styled.ActionWrapper>\n <Styled.Button icon=\"content_copy\" variant=\"text\" onClick={onDuplicate}>\n Duplicate\n </Styled.Button>\n </Styled.ActionWrapper>\n )}\n </Styled.Row>\n )}\n </Styled.EnumItemBody>\n )\n}\n\nexport default EnumEditorItem\n"],"names":["EnumEditorItem","item","onChange","onCommit","onRemove","onDuplicate","showRemoveButton","showDuplicateButton","autoFocus","isExpanded","className","pt","props","label","value","icon","color","isNewAttribute","labelRef","useRef","valueRef","colorPickerRef","iconSelectRef","useEffect","jsxs","Styled.EnumItemBody","clsx","Styled.Row","jsx","Styled.Label","Styled.InputText","event","kebabCase","Styled.PlaceholderWrapper","Styled.Placeholder","Styled.IconSelect","Styled.Button","Styled.ColorPicker","Styled.ActionWrapper"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const g=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");const h=require("react");require("react-dom");require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../Badge/Badge.cjs.js");require("../../Chips/Chips.cjs.js");require("date-fns");require("../../DateRangePicker/DateRangePicker.styled.cjs.js");require("../CellEditingDialog.cjs.js");const E=require("react-toastify");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");require("../../../util/pubsub.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../DoneCheckbox/DoneCheckbox.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../LinksManager.styled.cjs.js");const I=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../../containers/Slicer/components/Slicer.cjs.js");require("../../../containers/Slicer/context/SlicerContext.cjs.js");require("../../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../ReviewablesSelector/ReviewablesSelector.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("rehype-raw");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");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/EnumCellValue.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");const m=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const C=({projectName:q,direction:t,entityId:i,entityType:s,targetEntityType:a,linkType:n})=>{const{history:u}=m.useCellEditing(),[l]=g.useDeleteEntityLinkMutation(),[f]=g.useCreateEntityLinkMutation(),k=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.targetEntityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({targetEntityId:e.targetEntityId,linkId:e.linkId,sourceEntityId:i,sourceEntityType:s,targetEntityType:a,linkType:n,direction:t,projectName:q}));await I.addMultipleLinks(d,f),o&&u&&u.pushHistory([()=>L(r.map(e=>({id:e.linkId,target:{entityId:e.targetEntityId,entityType:a}})),!1)])}catch{}},[f,q,i,s,a,n,t,u]),L=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.target.entityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({id:e.id,target:e.target,source:{entityType:s,entityId:i},linkType:n,direction:t,projectName:q}));await I.removeMultipleLinks(d,l),o&&u&&u.pushHistory(r.map(e=>()=>k([{targetEntityId:e.target.entityId,linkId:e.id}],!1)))}catch{}},[l,q,i,s,a,n,t,u]);return{remove:L,add:k}};module.exports=C;
1
+ "use strict";require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const g=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");const h=require("react");require("react-dom");require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../AttributeEditor/attributeTypeMap.cjs.js");require("../../Badge/Badge.cjs.js");require("../../Chips/Chips.cjs.js");require("date-fns");require("../../DateRangePicker/DateRangePicker.styled.cjs.js");require("../CellEditingDialog.cjs.js");const E=require("react-toastify");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");require("../../../util/pubsub.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../DoneCheckbox/DoneCheckbox.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../LinksManager.styled.cjs.js");const I=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../../containers/Slicer/components/Slicer.cjs.js");require("../../../containers/Slicer/context/SlicerContext.cjs.js");require("../../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../ReviewablesSelector/ReviewablesSelector.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("rehype-raw");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");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/EnumCellValue.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");const m=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const C=({projectName:q,direction:t,entityId:i,entityType:s,targetEntityType:a,linkType:n})=>{const{history:u}=m.useCellEditing(),[l]=g.useDeleteEntityLinkMutation(),[f]=g.useCreateEntityLinkMutation(),k=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.targetEntityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({targetEntityId:e.targetEntityId,linkId:e.linkId,sourceEntityId:i,sourceEntityType:s,targetEntityType:a,linkType:n,direction:t,projectName:q}));await I.addMultipleLinks(d,f),o&&u&&u.pushHistory([()=>L(r.map(e=>({id:e.linkId,target:{entityId:e.targetEntityId,entityType:a}})),!1)])}catch{}},[f,q,i,s,a,n,t,u]),L=h.useCallback(async(r,o=!0)=>{try{if(r.some(e=>e.target.entityId===i)){E.toast.error("You can't link an entity to itself");return}const d=r.map(e=>({id:e.id,target:e.target,source:{entityType:s,entityId:i},linkType:n,direction:t,projectName:q}));await I.removeMultipleLinks(d,l),o&&u&&u.pushHistory(r.map(e=>()=>k([{targetEntityId:e.target.entityId,linkId:e.id}],!1)))}catch{}},[l,q,i,s,a,n,t,u]);return{remove:L,add:k}};module.exports=C;
2
2
  //# sourceMappingURL=useUpdateLinks.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateLinks.cjs.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n // prevent self-referential links\n const hasSelf = links.some((l) => l.targetEntityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n // prevent removing if any link is self-referential (shouldn't happen, but guard)\n const hasSelf = links.some((l) => l.target.entityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","l","toast","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":"+7fA6BA,MAAMA,EAAiB,CAAC,CACtB,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,SAAAC,CACF,IAAa,CACX,KAAM,CAAE,QAAAC,CAAA,EAAYC,iBAAA,EAEd,CAACC,CAAU,EAAIC,8BAAA,EACf,CAACC,CAAO,EAAIC,8BAAA,EAGZC,EAAWC,EAAAA,YACf,MAAOC,EAAOC,EAAe,KAAS,CACpC,GAAI,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,iBAAmBd,CAAQ,EAClD,CACXe,EAAAA,MAAM,MAAM,oCAAoC,EAChD,MACF,CAEA,MAAMC,EAA0BJ,EAAM,IAAKK,IAAU,CACnD,eAAgBA,EAAK,eACrB,OAAQA,EAAK,OACb,eAAgBjB,EAChB,iBAAkBC,EAClB,iBAAAC,EACA,SAAAC,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEF,MAAMoB,EAAAA,iBAAiBF,EAAYR,CAAO,EAGtCK,GAAgBT,GAClBA,EAAQ,YAAY,CAClB,IACEe,EACEP,EAAM,IAAKK,IAAU,CACnB,GAAIA,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYf,CAAA,CAAiB,EACtE,EACF,EAAA,CACF,CACH,CAEL,MAAqB,CAErB,CACF,EACA,CAACM,EAASV,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAAA,EAIvFe,EAAcR,EAAAA,YAClB,MACEC,EACAC,EAAwB,KACrB,CACH,GAAI,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,OAAO,WAAad,CAAQ,EACnD,CACXe,EAAAA,MAAM,MAAM,oCAAoC,EAChD,MACF,CAEA,MAAMK,EAAgCR,EAAM,IAAKK,IAAU,CACzD,GAAIA,EAAK,GACT,OAAQA,EAAK,OACb,OAAQ,CAAE,WAAAhB,EAAY,SAAAD,CAAA,EACtB,SAAAG,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEF,MAAMuB,EAAAA,oBAAoBD,EAAed,CAAU,EAI/CO,GAAgBT,GAClBA,EAAQ,YACNQ,EAAM,IACHK,GAAS,IACRP,EAAS,CAAC,CAAE,eAAgBO,EAAK,OAAO,SAAU,OAAQA,EAAK,EAAA,CAAI,EAAG,EAAK,CAAA,CAC/E,CAGN,MAAqB,CAErB,CACF,EACA,CAACX,EAAYR,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAAA,EAGhG,MAAO,CAAE,OAAQe,EAAa,IAAKT,CAAA,CACrC"}
1
+ {"version":3,"file":"useUpdateLinks.cjs.js","sources":["../../../../../../src/components/LinksManager/hooks/useUpdateLinks.ts"],"sourcesContent":["import { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport { useCellEditing } from '@shared/containers'\nimport { useCallback } from 'react'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '../utils/linkUpdates'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n projectName: string\n entityId: string\n entityType: string\n targetEntityType: string // the entity type of the out links\n linkType: string\n direction?: 'in' | 'out'\n}\n\ntype RemoveLinks = (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory?: boolean,\n) => Promise<void>\ntype AddLinks = (\n links: { targetEntityId: string; linkId: string }[],\n addToHistory?: boolean,\n) => Promise<void>\n\nconst useUpdateLinks = ({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n}: Props) => {\n const { history } = useCellEditing()\n\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // create new links between this entity and another entity\n const addLinks = useCallback<AddLinks>(\n async (links, addToHistory = true) => {\n try {\n // prevent self-referential links\n const hasSelf = links.some((l) => l.targetEntityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToAdd: LinkToAdd[] = links.map((link) => ({\n targetEntityId: link.targetEntityId,\n linkId: link.linkId,\n sourceEntityId: entityId,\n sourceEntityType: entityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n }))\n\n await addMultipleLinks(linksToAdd, addLink)\n\n // add to history stack\n if (addToHistory && history) {\n history.pushHistory([\n () =>\n removeLinks(\n links.map((link) => ({\n id: link.linkId,\n target: { entityId: link.targetEntityId, entityType: targetEntityType },\n })),\n false,\n ),\n ])\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [addLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n // Internal function to avoid circular dependency\n const removeLinks = useCallback<RemoveLinks>(\n async (\n links: { id: string; target: { entityId: string; entityType: string } }[],\n addToHistory: boolean = true,\n ) => {\n try {\n // prevent removing if any link is self-referential (shouldn't happen, but guard)\n const hasSelf = links.some((l) => l.target.entityId === entityId)\n if (hasSelf) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n\n const linksToRemove: LinkToRemove[] = links.map((link) => ({\n id: link.id,\n target: link.target,\n source: { entityType, entityId },\n linkType,\n direction,\n projectName,\n }))\n\n await removeMultipleLinks(linksToRemove, deleteLink)\n\n // add to history stack\n // if there is a history, push it\n if (addToHistory && history) {\n history.pushHistory(\n links.map(\n (link) => () =>\n addLinks([{ targetEntityId: link.target.entityId, linkId: link.id }], false),\n ),\n )\n }\n } catch (error: any) {\n // Error handling is done in the utility function\n }\n },\n [deleteLink, projectName, entityId, entityType, targetEntityType, linkType, direction, history],\n )\n\n return { remove: removeLinks, add: addLinks }\n}\n\nexport default useUpdateLinks\n"],"names":["useUpdateLinks","projectName","direction","entityId","entityType","targetEntityType","linkType","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","addLinks","useCallback","links","addToHistory","l","toast","linksToAdd","link","addMultipleLinks","removeLinks","linksToRemove","removeMultipleLinks"],"mappings":"w/fA6BA,MAAMA,EAAiB,CAAC,CACtB,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,SAAAC,CACF,IAAa,CACX,KAAM,CAAE,QAAAC,CAAA,EAAYC,iBAAA,EAEd,CAACC,CAAU,EAAIC,8BAAA,EACf,CAACC,CAAO,EAAIC,8BAAA,EAGZC,EAAWC,EAAAA,YACf,MAAOC,EAAOC,EAAe,KAAS,CACpC,GAAI,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,iBAAmBd,CAAQ,EAClD,CACXe,EAAAA,MAAM,MAAM,oCAAoC,EAChD,MACF,CAEA,MAAMC,EAA0BJ,EAAM,IAAKK,IAAU,CACnD,eAAgBA,EAAK,eACrB,OAAQA,EAAK,OACb,eAAgBjB,EAChB,iBAAkBC,EAClB,iBAAAC,EACA,SAAAC,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEF,MAAMoB,EAAAA,iBAAiBF,EAAYR,CAAO,EAGtCK,GAAgBT,GAClBA,EAAQ,YAAY,CAClB,IACEe,EACEP,EAAM,IAAKK,IAAU,CACnB,GAAIA,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYf,CAAA,CAAiB,EACtE,EACF,EAAA,CACF,CACH,CAEL,MAAqB,CAErB,CACF,EACA,CAACM,EAASV,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAAA,EAIvFe,EAAcR,EAAAA,YAClB,MACEC,EACAC,EAAwB,KACrB,CACH,GAAI,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,OAAO,WAAad,CAAQ,EACnD,CACXe,EAAAA,MAAM,MAAM,oCAAoC,EAChD,MACF,CAEA,MAAMK,EAAgCR,EAAM,IAAKK,IAAU,CACzD,GAAIA,EAAK,GACT,OAAQA,EAAK,OACb,OAAQ,CAAE,WAAAhB,EAAY,SAAAD,CAAA,EACtB,SAAAG,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEF,MAAMuB,EAAAA,oBAAoBD,EAAed,CAAU,EAI/CO,GAAgBT,GAClBA,EAAQ,YACNQ,EAAM,IACHK,GAAS,IACRP,EAAS,CAAC,CAAE,eAAgBO,EAAK,OAAO,SAAU,OAAQA,EAAK,EAAA,CAAI,EAAG,EAAK,CAAA,CAC/E,CAGN,MAAqB,CAErB,CACF,EACA,CAACX,EAAYR,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAAA,EAGhG,MAAO,CAAE,OAAQe,EAAa,IAAKT,CAAA,CACrC"}