@ynput/ayon-frontend-shared 0.2.39 → 0.2.41

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 (436) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/api.cjs.js +1 -1
  5. package/dist/api.es.js +256 -248
  6. package/dist/api.es.js.map +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.es.js +11 -9
  9. package/dist/index.es.js.map +1 -1
  10. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  11. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  12. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
  13. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  14. package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
  15. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
  16. package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
  17. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
  18. package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
  19. package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
  20. package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
  21. package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
  22. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  23. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  24. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  25. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  27. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  28. package/dist/shared/src/api/queries/entities/updateEntity.es.js +5 -3
  29. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  31. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  32. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
  33. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  34. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  35. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  36. package/dist/shared/src/api/queries/overview/updateOverview.es.js +68 -66
  37. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  39. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  40. package/dist/shared/src/api/queries/users/getUsers.es.js +34 -32
  41. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  42. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
  43. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
  44. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
  45. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
  46. package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
  47. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  48. package/dist/shared/src/components/Chips/Chips.es.js +44 -38
  49. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  51. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  53. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  54. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  55. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  56. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
  57. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  58. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  59. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  60. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  61. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  62. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  63. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  64. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  65. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  66. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  67. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  68. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  69. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  74. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  75. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
  77. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  78. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  79. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  81. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  82. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  83. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  84. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +28 -25
  85. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  86. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  88. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
  89. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  90. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
  91. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  92. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  93. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  94. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  95. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  96. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  97. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  98. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  99. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
  107. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  109. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  111. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  112. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  113. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  114. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  115. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  116. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  117. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  118. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  119. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  121. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  122. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  129. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  131. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  133. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  135. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  136. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  137. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  139. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  141. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  142. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
  143. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  147. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  148. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  149. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  150. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  151. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  152. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  153. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  154. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  155. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  156. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  157. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  161. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
  163. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  165. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +4 -2
  191. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  194. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  195. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  198. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  199. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  201. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  203. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  215. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  225. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  227. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  237. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  239. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -2
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  255. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
  259. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -2
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +30 -28
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -2
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
  323. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +31 -28
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  332. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  333. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
  335. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  336. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  337. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
  339. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  340. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  341. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  343. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  344. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  345. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
  347. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  348. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  349. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
  351. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  352. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  353. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  355. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  356. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  357. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  359. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  360. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
  363. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  364. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  365. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  367. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  368. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  369. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  370. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  371. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  372. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  373. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  374. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  375. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  376. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  377. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  378. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  379. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  380. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  381. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  382. package/dist/shared/src/context/PowerpackContext.es.js +8 -6
  383. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  384. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  385. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  386. package/dist/shared/src/context/ProjectContext.es.js +44 -38
  387. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  388. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  389. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  390. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  391. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  392. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  393. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  394. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  395. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  396. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  397. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  398. package/dist/shared/src/context/UriContext.es.js +7 -5
  399. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  401. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  402. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  403. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  404. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  405. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  406. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  407. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  408. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  409. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  410. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  411. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  412. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  413. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  414. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  415. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  416. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  417. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  418. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  419. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  420. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  421. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  422. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  423. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  424. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  425. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  426. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  427. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  428. package/dist/types/api/queries/config/getConfig.d.ts +747 -0
  429. package/dist/types/api/queries/config/index.d.ts +2 -0
  430. package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
  431. package/dist/types/api/queries/index.d.ts +1 -0
  432. package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
  433. package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
  434. package/dist/types/components/Chips/Chips.d.ts +1 -0
  435. package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
  436. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LinksManager.es.js","sources":["../../../../../src/components/LinksManager/LinksManager.tsx"],"sourcesContent":["import { FC, useState } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { getEntityId } from '@shared/util'\nimport useUpdateLinks from './hooks/useUpdateLinks'\nimport AddNewLinks, { LinkSearchType } from './AddNewLinks'\nimport { EntityPickerDialog, PickerEntityType } from '@shared/containers/EntityPickerDialog'\nimport { upperFirst } from 'lodash'\nimport { LinkManagerItem } from './LinkManagerItem'\nimport { Button } from '@ynput/ayon-react-components'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n}\n\nexport interface LinksManagerProps {\n linkTypeLabel: string\n direction?: 'in' | 'out'\n links: LinkEntity[] // used to display basic info about the links entity\n projectName: string\n entityId: string // the entity id of the entity that has these links\n linkType: string // full link type e.g. workflow|task|task\n entityType: string // the entity type of the entity that has these links\n targetEntityType: string // the entity type of the out links\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n selectedEntityIds?: string[] // list of selected entity IDs to highlight\n onClose?: () => void\n onEntityClick?: (entityId: string, entityType: string) => void // a click on an linked entity\n}\n\nexport const LinksManager: FC<LinksManagerProps> = ({\n linkTypeLabel,\n direction,\n links = [],\n projectName,\n entityId,\n entityType,\n linkType,\n targetEntityType,\n folderId,\n selectedEntityIds = [],\n onClose,\n onEntityClick,\n}) => {\n const linksUpdater = useUpdateLinks({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n })\n\n const [searchType, setSearchType] = useState<LinkSearchType>(null)\n\n const handleRemove = (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => {\n // prevent clicks higher up\n e.stopPropagation()\n\n linksUpdater.remove([\n {\n id: link.linkId,\n target: { entityId: link.entityId, entityType: link.entityType },\n },\n ])\n }\n\n return (\n <>\n <Styled.Container>\n <Styled.Header>\n {upperFirst(linkTypeLabel)} links ({direction})\n <Button\n icon={'close'}\n variant=\"text\"\n className=\"remove\"\n onClick={onClose}\n data-shortcut={'Escape'}\n data-tooltip-delay={500}\n />\n </Styled.Header>\n <Styled.LinksList>\n {links?.map((link) => (\n <LinkManagerItem\n key={link.linkId}\n link={link}\n isSelected={selectedEntityIds.includes(link.entityId)}\n onEntityClick={onEntityClick}\n onRemove={handleRemove}\n />\n ))}\n {links.length === 0 && <Styled.SubHeader>No links yet</Styled.SubHeader>}\n </Styled.LinksList>\n <AddNewLinks\n targetEntityType={targetEntityType}\n projectName={projectName}\n onClose={onClose}\n onAdd={(id) => linksUpdater.add([{ targetEntityId: id, linkId: getEntityId() }])}\n onSearchTypeChange={setSearchType}\n />\n </Styled.Container>\n {searchType === 'picker' && (\n <EntityPickerDialog\n onClose={() => setSearchType(null)}\n projectName={projectName}\n entityType={targetEntityType as PickerEntityType} // the type of entity to pick\n initialSelection={folderId ? { folder: { [folderId]: true } } : undefined} // preselect current folder\n onSubmit={(s) =>\n linksUpdater.add(s.map((id) => ({ targetEntityId: id, linkId: getEntityId() })))\n }\n isMultiSelect\n />\n )}\n </>\n )\n}\n"],"names":["LinksManager","linkTypeLabel","direction","links","projectName","entityId","entityType","linkType","targetEntityType","folderId","selectedEntityIds","onClose","onEntityClick","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":";;;;;;;;;;;;AAkCO,MAAMA,IAAsC,CAAC;AAAA,EAClD,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ,CAAC;AAAA,EACT,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB,CAAC;AAAA,EACrB,SAAAC;AAAA,EACA,eAAAC;AACF,MAAM;AACJ,QAAMC,IAAeC,EAAe;AAAA,IAClC,aAAAV;AAAA,IACA,WAAAF;AAAA,IACA,UAAAG;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAE;AAAA,IACA,UAAAD;AAAA,EAAA,CACD,GAEK,CAACQ,GAAYC,CAAa,IAAIC,EAAyB,IAAI,GAE3DC,IAAe,CAAC,GAAwCC,MAAqB;AAEjF,MAAE,gBAAgB,GAElBN,EAAa,OAAO;AAAA,MAClB;AAAA,QACE,IAAIM,EAAK;AAAA,QACT,QAAQ,EAAE,UAAUA,EAAK,UAAU,YAAYA,EAAK,WAAW;AAAA,MAAA;AAAA,IACjE,CACD;AAAA,EACH;AAEA,SAEIC,gBAAAA,EAAA,KAAAC,YAAA,EAAA,UAAA;AAAA,IAACD,gBAAAA,OAAAE,GAAA,EACC,UAAA;AAAA,MAACF,gBAAAA,OAAAG,GAAA,EACE,UAAA;AAAA,QAAAC,EAAWvB,CAAa;AAAA,QAAE;AAAA,QAASC;AAAA,QAAU;AAAA,QAC9CuB,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAASf;AAAA,YACT,iBAAe;AAAA,YACf,sBAAoB;AAAA,UAAA;AAAA,QAAA;AAAA,MACtB,GACF;AAAA,MACAS,gBAAAA,OAACO,GAAA,EACE,UAAA;AAAA,QAAOxB,KAAA,gBAAAA,EAAA,IAAI,CAACgB,MACXM,gBAAAA,EAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YAEC,MAAAT;AAAA,YACA,YAAYT,EAAkB,SAASS,EAAK,QAAQ;AAAA,YACpD,eAAAP;AAAA,YACA,UAAUM;AAAA,UAAA;AAAA,UAJLC,EAAK;AAAA,QAAA;AAAA,QAObhB,EAAM,WAAW,2BAAM0B,GAAA,EAAiB,UAAY,eAAA,CAAA;AAAA,MAAA,GACvD;AAAA,MACAJ,gBAAAA,EAAA;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,kBAAAtB;AAAA,UACA,aAAAJ;AAAA,UACA,SAAAO;AAAA,UACA,OAAO,CAACoB,MAAOlB,EAAa,IAAI,CAAC,EAAE,gBAAgBkB,GAAI,QAAQC,EAAY,EAAG,CAAA,CAAC;AAAA,UAC/E,oBAAoBhB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACCD,MAAe,YACdU,gBAAAA,EAAA;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,SAAS,MAAMjB,EAAc,IAAI;AAAA,QACjC,aAAAZ;AAAA,QACA,YAAYI;AAAA,QACZ,kBAAkBC,IAAW,EAAE,QAAQ,EAAE,CAACA,CAAQ,GAAG,GAAK,EAAA,IAAM;AAAA,QAChE,UAAU,CAACyB,MACTrB,EAAa,IAAIqB,EAAE,IAAI,CAACH,OAAQ,EAAE,gBAAgBA,GAAI,QAAQC,EAAY,EAAA,EAAI,CAAC;AAAA,QAEjF,eAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EACf,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"LinksManager.es.js","sources":["../../../../../src/components/LinksManager/LinksManager.tsx"],"sourcesContent":["import { FC, useState } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { getEntityId } from '@shared/util'\nimport useUpdateLinks from './hooks/useUpdateLinks'\nimport AddNewLinks, { LinkSearchType } from './AddNewLinks'\nimport { EntityPickerDialog, PickerEntityType } from '@shared/containers/EntityPickerDialog'\nimport { upperFirst } from 'lodash'\nimport { LinkManagerItem } from './LinkManagerItem'\nimport { Button } from '@ynput/ayon-react-components'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n isRestricted?: boolean // flag to indicate if this link is restricted (node is null from API)\n}\n\nexport interface LinksManagerProps {\n linkTypeLabel: string\n direction?: 'in' | 'out'\n links: LinkEntity[] // used to display basic info about the links entity\n projectName: string\n entityId: string // the entity id of the entity that has these links\n linkType: string // full link type e.g. workflow|task|task\n entityType: string // the entity type of the entity that has these links\n targetEntityType: string // the entity type of the out links\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n selectedEntityIds?: string[] // list of selected entity IDs to highlight\n onClose?: () => void\n onEntityClick?: (entityId: string, entityType: string) => void // a click on an linked entity\n}\n\nexport const LinksManager: FC<LinksManagerProps> = ({\n linkTypeLabel,\n direction,\n links = [],\n projectName,\n entityId,\n entityType,\n linkType,\n targetEntityType,\n folderId,\n selectedEntityIds = [],\n onClose,\n onEntityClick,\n}) => {\n const linksUpdater = useUpdateLinks({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n })\n\n const [searchType, setSearchType] = useState<LinkSearchType>(null)\n\n const handleRemove = (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => {\n // prevent clicks higher up\n e.stopPropagation()\n\n linksUpdater.remove([\n {\n id: link.linkId,\n target: { entityId: link.entityId, entityType: link.entityType },\n },\n ])\n }\n\n return (\n <>\n <Styled.Container>\n <Styled.Header>\n {upperFirst(linkTypeLabel)} links ({direction})\n <Button\n icon={'close'}\n variant=\"text\"\n className=\"remove\"\n onClick={onClose}\n data-shortcut={'Escape'}\n data-tooltip-delay={500}\n />\n </Styled.Header>\n <Styled.LinksList>\n {links?.map((link) => (\n <LinkManagerItem\n key={link.linkId}\n link={link}\n isSelected={selectedEntityIds.includes(link.entityId)}\n onEntityClick={onEntityClick}\n onRemove={handleRemove}\n />\n ))}\n {links.length === 0 && <Styled.SubHeader>No links yet</Styled.SubHeader>}\n </Styled.LinksList>\n <AddNewLinks\n targetEntityType={targetEntityType}\n projectName={projectName}\n onClose={onClose}\n onAdd={(id) => linksUpdater.add([{ targetEntityId: id, linkId: getEntityId() }])}\n onSearchTypeChange={setSearchType}\n />\n </Styled.Container>\n {searchType === 'picker' && (\n <EntityPickerDialog\n onClose={() => setSearchType(null)}\n projectName={projectName}\n entityType={targetEntityType as PickerEntityType} // the type of entity to pick\n initialSelection={folderId ? { folder: { [folderId]: true } } : undefined} // preselect current folder\n onSubmit={(s) =>\n linksUpdater.add(s.map((id) => ({ targetEntityId: id, linkId: getEntityId() })))\n }\n isMultiSelect\n />\n )}\n </>\n )\n}\n"],"names":["LinksManager","linkTypeLabel","direction","links","projectName","entityId","entityType","linkType","targetEntityType","folderId","selectedEntityIds","onClose","onEntityClick","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":";;;;;;;;;;;;AAmCO,MAAMA,IAAsC,CAAC;AAAA,EAClD,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ,CAAC;AAAA,EACT,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB,CAAC;AAAA,EACrB,SAAAC;AAAA,EACA,eAAAC;AACF,MAAM;AACJ,QAAMC,IAAeC,EAAe;AAAA,IAClC,aAAAV;AAAA,IACA,WAAAF;AAAA,IACA,UAAAG;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAE;AAAA,IACA,UAAAD;AAAA,EAAA,CACD,GAEK,CAACQ,GAAYC,CAAa,IAAIC,EAAyB,IAAI,GAE3DC,IAAe,CAAC,GAAwCC,MAAqB;AAEjF,MAAE,gBAAgB,GAElBN,EAAa,OAAO;AAAA,MAClB;AAAA,QACE,IAAIM,EAAK;AAAA,QACT,QAAQ,EAAE,UAAUA,EAAK,UAAU,YAAYA,EAAK,WAAW;AAAA,MAAA;AAAA,IACjE,CACD;AAAA,EACH;AAEA,SAEIC,gBAAAA,EAAA,KAAAC,YAAA,EAAA,UAAA;AAAA,IAACD,gBAAAA,OAAAE,GAAA,EACC,UAAA;AAAA,MAACF,gBAAAA,OAAAG,GAAA,EACE,UAAA;AAAA,QAAAC,EAAWvB,CAAa;AAAA,QAAE;AAAA,QAASC;AAAA,QAAU;AAAA,QAC9CuB,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAASf;AAAA,YACT,iBAAe;AAAA,YACf,sBAAoB;AAAA,UAAA;AAAA,QAAA;AAAA,MACtB,GACF;AAAA,MACAS,gBAAAA,OAACO,GAAA,EACE,UAAA;AAAA,QAAOxB,KAAA,gBAAAA,EAAA,IAAI,CAACgB,MACXM,gBAAAA,EAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YAEC,MAAAT;AAAA,YACA,YAAYT,EAAkB,SAASS,EAAK,QAAQ;AAAA,YACpD,eAAAP;AAAA,YACA,UAAUM;AAAA,UAAA;AAAA,UAJLC,EAAK;AAAA,QAAA;AAAA,QAObhB,EAAM,WAAW,2BAAM0B,GAAA,EAAiB,UAAY,eAAA,CAAA;AAAA,MAAA,GACvD;AAAA,MACAJ,gBAAAA,EAAA;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,kBAAAtB;AAAA,UACA,aAAAJ;AAAA,UACA,SAAAO;AAAA,UACA,OAAO,CAACoB,MAAOlB,EAAa,IAAI,CAAC,EAAE,gBAAgBkB,GAAI,QAAQC,EAAY,EAAG,CAAA,CAAC;AAAA,UAC/E,oBAAoBhB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACCD,MAAe,YACdU,gBAAAA,EAAA;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,SAAS,MAAMjB,EAAc,IAAI;AAAA,QACjC,aAAAZ;AAAA,QACA,YAAYI;AAAA,QACZ,kBAAkBC,IAAW,EAAE,QAAQ,EAAE,CAACA,CAAQ,GAAG,GAAK,EAAA,IAAM;AAAA,QAChE,UAAU,CAACyB,MACTrB,EAAa,IAAIqB,EAAE,IAAI,CAACH,OAAQ,EAAE,gBAAgBA,GAAI,QAAQC,EAAY,EAAA,EAAI,CAAC;AAAA,QAEjF,eAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EACf,GAEJ;AAEJ;"}
@@ -64,6 +64,11 @@
64
64
  }
65
65
  }
66
66
 
67
+ &.restricted {
68
+ opacity: 0.5;
69
+ font-style: italic;
70
+ }
71
+
67
72
  &.selected {
68
73
  background-color: var(--md-sys-color-primary-container);
69
74
  &,
@@ -1 +1 @@
1
- {"version":3,"file":"LinksManager.styled.cjs.js","sources":["../../../../../src/components/LinksManager/LinksManager.styled.ts"],"sourcesContent":["import { Button, InputText } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: var(--padding-m);\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-l);\n display: flex;\n flex-direction: column;\n height: 100%; /* Use height instead of max-height to enforce constraints */\n overflow: hidden;\n flex-grow: 1;\n min-height: 0; /* Allow flex child to shrink below content size */\n`\n\nexport const Header = styled.h4`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n .remove {\n padding: 2px;\n background: none;\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest);\n }\n }\n`\n\nexport const SubHeader = styled.h5`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n\n color: var(--md-sys-color-outline);\n`\n\nexport const LinksList = styled.ul`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n`\n\nexport const LinkItem = styled.li`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n\n /* card styling */\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-m);\n padding: 4px 4px;\n\n &.clickable {\n cursor: pointer;\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n &,\n .icon {\n color: var(--md-sys-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n\n .remove {\n /* show remove icon when selected */\n visibility: visible;\n /* use selected hover */\n &:hover {\n background-color: var(--md-sys-color-on-primary);\n color: var(--md-sys-color-primary);\n }\n }\n }\n\n .title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--base-gap-small);\n flex: 1;\n }\n\n .path {\n color: var(--md-sys-color-outline);\n }\n\n .label {\n font-weight: bold;\n }\n\n /* show remove icon when hovering item */\n &:hover {\n .remove {\n visibility: visible;\n }\n }\n\n .remove {\n padding: 2px;\n visibility: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n }\n`\n\nexport const AddLinksContainer = styled.div`\n display: flex;\n flex-direction: column;\n /* hack for search border cutoff */\n padding: 2px;\n margin: -2px;\n padding-top: var(--padding-m);\n flex-shrink: 0; /* Don't shrink this section */\n min-height: 0; /* Allow internal scrolling */\n overflow: hidden; /* Prevent this section from expanding beyond bounds */\n\n /* Set a reasonable max-height that allows for search functionality */\n max-height: 250px;\n`\n\n// wraps the picker and search input\nexport const SearchButtons = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--base-gap-small);\n`\n\nexport const Search = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n padding-top: var(--padding-s);\n\n .input-search {\n position: absolute;\n left: 4px;\n }\n`\n\nexport const PickerButton = styled(Button)`\n min-width: 110px;\n flex: 1;\n width: 100%;\n`\n\nexport const SearchInput = styled(InputText)`\n flex: 1;\n border: none;\n background-color: var(--md-sys-color-surface-container);\n padding-left: 28px;\n width: 100%;\n min-width: 224px;\n`\n\nexport const Error = styled.div`\n color: var(--md-sys-color-error);\n margin-top: var(--base-gap-small);\n`\n\nexport const SearchItems = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n padding: var(--padding-m) 0;\n flex: 1; /* Take available space instead of height: 100% */\n min-height: 0; /* Allow shrinking */\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n`\n\nexport const SearchItem = styled.li`\n padding: var(--padding-s);\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n min-height: min-content;\n\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.loading {\n cursor: default;\n opacity: 0.6;\n\n .icon,\n .label,\n .type {\n background-color: var(--md-sys-color-outline);\n color: transparent;\n border-radius: var(--border-radius-s);\n animation: shimmer 1.5s infinite;\n }\n\n .icon {\n width: 16px;\n height: 16px;\n }\n\n .label {\n height: 16px;\n flex: 1;\n }\n\n .type {\n width: 60px;\n height: 14px;\n }\n }\n\n @keyframes shimmer {\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0.6;\n }\n }\n\n .icon {\n flex-shrink: 0;\n }\n\n .label {\n flex: 1;\n display: flex;\n column-gap: var(--base-gap-small);\n flex-wrap: wrap;\n\n & > * {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .type {\n margin-left: 8px;\n color: var(--md-sys-color-outline);\n }\n`\n"],"names":["Container","styled","Header","SubHeader","LinksList","LinkItem","AddLinksContainer","SearchButtons","Search","PickerButton","Button","SearchInput","InputText","Error","SearchItems","SearchItem"],"mappings":"+JAGaA,EAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYnBC,EAASD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBhBE,EAAYF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASnBG,EAAYH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcnBI,EAAWJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6ElBK,EAAoBL,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB3BM,EAAgBN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvBO,EAASP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAchBQ,EAAeR,EAAOS,QAAM;AAAA;AAAA;AAAA;AAAA,EAM5BC,EAAcV,EAAOW,WAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS9BC,EAAQZ,EAAO;AAAA;AAAA;AAAA,EAKfa,EAAcb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAarBc,EAAad,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA"}
1
+ {"version":3,"file":"LinksManager.styled.cjs.js","sources":["../../../../../src/components/LinksManager/LinksManager.styled.ts"],"sourcesContent":["import { Button, InputText } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: var(--padding-m);\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-l);\n display: flex;\n flex-direction: column;\n height: 100%; /* Use height instead of max-height to enforce constraints */\n overflow: hidden;\n flex-grow: 1;\n min-height: 0; /* Allow flex child to shrink below content size */\n`\n\nexport const Header = styled.h4`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n .remove {\n padding: 2px;\n background: none;\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest);\n }\n }\n`\n\nexport const SubHeader = styled.h5`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n\n color: var(--md-sys-color-outline);\n`\n\nexport const LinksList = styled.ul`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n`\n\nexport const LinkItem = styled.li`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n\n /* card styling */\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-m);\n padding: 4px 4px;\n\n &.clickable {\n cursor: pointer;\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n }\n\n &.restricted {\n opacity: 0.5;\n font-style: italic;\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n &,\n .icon {\n color: var(--md-sys-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n\n .remove {\n /* show remove icon when selected */\n visibility: visible;\n /* use selected hover */\n &:hover {\n background-color: var(--md-sys-color-on-primary);\n color: var(--md-sys-color-primary);\n }\n }\n }\n\n .title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--base-gap-small);\n flex: 1;\n }\n\n .path {\n color: var(--md-sys-color-outline);\n }\n\n .label {\n font-weight: bold;\n }\n\n /* show remove icon when hovering item */\n &:hover {\n .remove {\n visibility: visible;\n }\n }\n\n .remove {\n padding: 2px;\n visibility: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n }\n`\n\nexport const AddLinksContainer = styled.div`\n display: flex;\n flex-direction: column;\n /* hack for search border cutoff */\n padding: 2px;\n margin: -2px;\n padding-top: var(--padding-m);\n flex-shrink: 0; /* Don't shrink this section */\n min-height: 0; /* Allow internal scrolling */\n overflow: hidden; /* Prevent this section from expanding beyond bounds */\n\n /* Set a reasonable max-height that allows for search functionality */\n max-height: 250px;\n`\n\n// wraps the picker and search input\nexport const SearchButtons = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--base-gap-small);\n`\n\nexport const Search = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n padding-top: var(--padding-s);\n\n .input-search {\n position: absolute;\n left: 4px;\n }\n`\n\nexport const PickerButton = styled(Button)`\n min-width: 110px;\n flex: 1;\n width: 100%;\n`\n\nexport const SearchInput = styled(InputText)`\n flex: 1;\n border: none;\n background-color: var(--md-sys-color-surface-container);\n padding-left: 28px;\n width: 100%;\n min-width: 224px;\n`\n\nexport const Error = styled.div`\n color: var(--md-sys-color-error);\n margin-top: var(--base-gap-small);\n`\n\nexport const SearchItems = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n padding: var(--padding-m) 0;\n flex: 1; /* Take available space instead of height: 100% */\n min-height: 0; /* Allow shrinking */\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n`\n\nexport const SearchItem = styled.li`\n padding: var(--padding-s);\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n min-height: min-content;\n\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.loading {\n cursor: default;\n opacity: 0.6;\n\n .icon,\n .label,\n .type {\n background-color: var(--md-sys-color-outline);\n color: transparent;\n border-radius: var(--border-radius-s);\n animation: shimmer 1.5s infinite;\n }\n\n .icon {\n width: 16px;\n height: 16px;\n }\n\n .label {\n height: 16px;\n flex: 1;\n }\n\n .type {\n width: 60px;\n height: 14px;\n }\n }\n\n @keyframes shimmer {\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0.6;\n }\n }\n\n .icon {\n flex-shrink: 0;\n }\n\n .label {\n flex: 1;\n display: flex;\n column-gap: var(--base-gap-small);\n flex-wrap: wrap;\n\n & > * {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .type {\n margin-left: 8px;\n color: var(--md-sys-color-outline);\n }\n`\n"],"names":["Container","styled","Header","SubHeader","LinksList","LinkItem","AddLinksContainer","SearchButtons","Search","PickerButton","Button","SearchInput","InputText","Error","SearchItems","SearchItem"],"mappings":"+JAGaA,EAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYnBC,EAASD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBhBE,EAAYF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASnBG,EAAYH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcnBI,EAAWJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkFlBK,EAAoBL,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB3BM,EAAgBN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvBO,EAASP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAchBQ,EAAeR,EAAOS,QAAM;AAAA;AAAA;AAAA;AAAA,EAM5BC,EAAcV,EAAOW,WAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS9BC,EAAQZ,EAAO;AAAA;AAAA;AAAA,EAKfa,EAAcb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAarBc,EAAad,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA"}
@@ -66,6 +66,11 @@ const n = e.div`
66
66
  }
67
67
  }
68
68
 
69
+ &.restricted {
70
+ opacity: 0.5;
71
+ font-style: italic;
72
+ }
73
+
69
74
  &.selected {
70
75
  background-color: var(--md-sys-color-primary-container);
71
76
  &,
@@ -1 +1 @@
1
- {"version":3,"file":"LinksManager.styled.es.js","sources":["../../../../../src/components/LinksManager/LinksManager.styled.ts"],"sourcesContent":["import { Button, InputText } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: var(--padding-m);\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-l);\n display: flex;\n flex-direction: column;\n height: 100%; /* Use height instead of max-height to enforce constraints */\n overflow: hidden;\n flex-grow: 1;\n min-height: 0; /* Allow flex child to shrink below content size */\n`\n\nexport const Header = styled.h4`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n .remove {\n padding: 2px;\n background: none;\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest);\n }\n }\n`\n\nexport const SubHeader = styled.h5`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n\n color: var(--md-sys-color-outline);\n`\n\nexport const LinksList = styled.ul`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n`\n\nexport const LinkItem = styled.li`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n\n /* card styling */\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-m);\n padding: 4px 4px;\n\n &.clickable {\n cursor: pointer;\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n &,\n .icon {\n color: var(--md-sys-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n\n .remove {\n /* show remove icon when selected */\n visibility: visible;\n /* use selected hover */\n &:hover {\n background-color: var(--md-sys-color-on-primary);\n color: var(--md-sys-color-primary);\n }\n }\n }\n\n .title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--base-gap-small);\n flex: 1;\n }\n\n .path {\n color: var(--md-sys-color-outline);\n }\n\n .label {\n font-weight: bold;\n }\n\n /* show remove icon when hovering item */\n &:hover {\n .remove {\n visibility: visible;\n }\n }\n\n .remove {\n padding: 2px;\n visibility: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n }\n`\n\nexport const AddLinksContainer = styled.div`\n display: flex;\n flex-direction: column;\n /* hack for search border cutoff */\n padding: 2px;\n margin: -2px;\n padding-top: var(--padding-m);\n flex-shrink: 0; /* Don't shrink this section */\n min-height: 0; /* Allow internal scrolling */\n overflow: hidden; /* Prevent this section from expanding beyond bounds */\n\n /* Set a reasonable max-height that allows for search functionality */\n max-height: 250px;\n`\n\n// wraps the picker and search input\nexport const SearchButtons = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--base-gap-small);\n`\n\nexport const Search = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n padding-top: var(--padding-s);\n\n .input-search {\n position: absolute;\n left: 4px;\n }\n`\n\nexport const PickerButton = styled(Button)`\n min-width: 110px;\n flex: 1;\n width: 100%;\n`\n\nexport const SearchInput = styled(InputText)`\n flex: 1;\n border: none;\n background-color: var(--md-sys-color-surface-container);\n padding-left: 28px;\n width: 100%;\n min-width: 224px;\n`\n\nexport const Error = styled.div`\n color: var(--md-sys-color-error);\n margin-top: var(--base-gap-small);\n`\n\nexport const SearchItems = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n padding: var(--padding-m) 0;\n flex: 1; /* Take available space instead of height: 100% */\n min-height: 0; /* Allow shrinking */\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n`\n\nexport const SearchItem = styled.li`\n padding: var(--padding-s);\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n min-height: min-content;\n\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.loading {\n cursor: default;\n opacity: 0.6;\n\n .icon,\n .label,\n .type {\n background-color: var(--md-sys-color-outline);\n color: transparent;\n border-radius: var(--border-radius-s);\n animation: shimmer 1.5s infinite;\n }\n\n .icon {\n width: 16px;\n height: 16px;\n }\n\n .label {\n height: 16px;\n flex: 1;\n }\n\n .type {\n width: 60px;\n height: 14px;\n }\n }\n\n @keyframes shimmer {\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0.6;\n }\n }\n\n .icon {\n flex-shrink: 0;\n }\n\n .label {\n flex: 1;\n display: flex;\n column-gap: var(--base-gap-small);\n flex-wrap: wrap;\n\n & > * {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .type {\n margin-left: 8px;\n color: var(--md-sys-color-outline);\n }\n`\n"],"names":["Container","styled","Header","SubHeader","LinksList","LinkItem","AddLinksContainer","SearchButtons","Search","PickerButton","Button","SearchInput","InputText","Error","SearchItems","SearchItem"],"mappings":";;AAGO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYnBC,IAASD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiBhBE,IAAYF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASnBG,IAAYH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcnBI,IAAWJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA6ElBK,IAAoBL,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgB3BM,IAAgBN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBO,IAASP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAchBQ,IAAeR,EAAOS,CAAM;AAAA;AAAA;AAAA;AAAA,GAM5BC,IAAcV,EAAOW,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS9BC,IAAQZ,EAAO;AAAA;AAAA;AAAA,GAKfa,IAAcb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAarBc,IAAad,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"LinksManager.styled.es.js","sources":["../../../../../src/components/LinksManager/LinksManager.styled.ts"],"sourcesContent":["import { Button, InputText } from '@ynput/ayon-react-components'\nimport styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: var(--padding-m);\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-l);\n display: flex;\n flex-direction: column;\n height: 100%; /* Use height instead of max-height to enforce constraints */\n overflow: hidden;\n flex-grow: 1;\n min-height: 0; /* Allow flex child to shrink below content size */\n`\n\nexport const Header = styled.h4`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n .remove {\n padding: 2px;\n background: none;\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest);\n }\n }\n`\n\nexport const SubHeader = styled.h5`\n margin: 0;\n padding: 0;\n padding-bottom: var(--padding-s);\n flex-shrink: 0;\n\n color: var(--md-sys-color-outline);\n`\n\nexport const LinksList = styled.ul`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n`\n\nexport const LinkItem = styled.li`\n /* reset any defaults */\n list-style: none;\n padding: 0;\n margin: 0;\n\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n\n /* card styling */\n background-color: var(--md-sys-color-surface-container-high);\n border-radius: var(--border-radius-m);\n padding: 4px 4px;\n\n &.clickable {\n cursor: pointer;\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n }\n\n &.restricted {\n opacity: 0.5;\n font-style: italic;\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n &,\n .icon {\n color: var(--md-sys-color-on-primary-container);\n }\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n\n .remove {\n /* show remove icon when selected */\n visibility: visible;\n /* use selected hover */\n &:hover {\n background-color: var(--md-sys-color-on-primary);\n color: var(--md-sys-color-primary);\n }\n }\n }\n\n .title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--base-gap-small);\n flex: 1;\n }\n\n .path {\n color: var(--md-sys-color-outline);\n }\n\n .label {\n font-weight: bold;\n }\n\n /* show remove icon when hovering item */\n &:hover {\n .remove {\n visibility: visible;\n }\n }\n\n .remove {\n padding: 2px;\n visibility: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n }\n`\n\nexport const AddLinksContainer = styled.div`\n display: flex;\n flex-direction: column;\n /* hack for search border cutoff */\n padding: 2px;\n margin: -2px;\n padding-top: var(--padding-m);\n flex-shrink: 0; /* Don't shrink this section */\n min-height: 0; /* Allow internal scrolling */\n overflow: hidden; /* Prevent this section from expanding beyond bounds */\n\n /* Set a reasonable max-height that allows for search functionality */\n max-height: 250px;\n`\n\n// wraps the picker and search input\nexport const SearchButtons = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--base-gap-small);\n`\n\nexport const Search = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n padding-top: var(--padding-s);\n\n .input-search {\n position: absolute;\n left: 4px;\n }\n`\n\nexport const PickerButton = styled(Button)`\n min-width: 110px;\n flex: 1;\n width: 100%;\n`\n\nexport const SearchInput = styled(InputText)`\n flex: 1;\n border: none;\n background-color: var(--md-sys-color-surface-container);\n padding-left: 28px;\n width: 100%;\n min-width: 224px;\n`\n\nexport const Error = styled.div`\n color: var(--md-sys-color-error);\n margin-top: var(--base-gap-small);\n`\n\nexport const SearchItems = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n padding: var(--padding-m) 0;\n flex: 1; /* Take available space instead of height: 100% */\n min-height: 0; /* Allow shrinking */\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-small);\n`\n\nexport const SearchItem = styled.li`\n padding: var(--padding-s);\n display: flex;\n align-items: center;\n gap: var(--base-gap-small);\n border-radius: var(--border-radius-m);\n cursor: pointer;\n overflow: hidden;\n min-height: min-content;\n\n &:hover,\n &:focus,\n &.selected {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n &.loading {\n cursor: default;\n opacity: 0.6;\n\n .icon,\n .label,\n .type {\n background-color: var(--md-sys-color-outline);\n color: transparent;\n border-radius: var(--border-radius-s);\n animation: shimmer 1.5s infinite;\n }\n\n .icon {\n width: 16px;\n height: 16px;\n }\n\n .label {\n height: 16px;\n flex: 1;\n }\n\n .type {\n width: 60px;\n height: 14px;\n }\n }\n\n @keyframes shimmer {\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0.6;\n }\n }\n\n .icon {\n flex-shrink: 0;\n }\n\n .label {\n flex: 1;\n display: flex;\n column-gap: var(--base-gap-small);\n flex-wrap: wrap;\n\n & > * {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .type {\n margin-left: 8px;\n color: var(--md-sys-color-outline);\n }\n`\n"],"names":["Container","styled","Header","SubHeader","LinksList","LinkItem","AddLinksContainer","SearchButtons","Search","PickerButton","Button","SearchInput","InputText","Error","SearchItems","SearchItem"],"mappings":";;AAGO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYnBC,IAASD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiBhBE,IAAYF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASnBG,IAAYH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcnBI,IAAWJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAkFlBK,IAAoBL,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgB3BM,IAAgBN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBO,IAASP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAchBQ,IAAeR,EAAOS,CAAM;AAAA;AAAA;AAAA;AAAA,GAM5BC,IAAcV,EAAOW,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS9BC,IAAQZ,EAAO;AAAA;AAAA;AAAA,GAKfa,IAAcb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAarBc,IAAad,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -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/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/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/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");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/UserTooltip/UserTooltip.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/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("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");const E=require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Badge/Badge.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../Chips/Chips.cjs.js");require("../LinksManager.styled.cjs.js");const I=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("date-fns");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../SortingSetting/SortingSetting.styled.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");const m=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../CellEditingDialog.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const 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/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/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");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/UserTooltip/UserTooltip.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/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("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");const E=require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/PricingLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../AttributeEditor/components/MinMaxField.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Badge/Badge.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContext.cjs.js");require("../../Feedback/FeedbackContext.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../Chips/Chips.cjs.js");require("../LinksManager.styled.cjs.js");const I=require("../utils/linkUpdates.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("date-fns");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../SortingSetting/SortingSetting.styled.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");const m=require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../CellEditingDialog.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/context/ViewsContext.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const 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":"47cA6BA,MAAMA,EAAiB,CAAC,CACtB,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,SAAAC,CACF,IAAa,CACL,KAAA,CAAE,QAAAC,CAAQ,EAAIC,iBAAe,EAE7B,CAACC,CAAU,EAAIC,8BAA4B,EAC3C,CAACC,CAAO,EAAIC,8BAA4B,EAGxCC,EAAWC,EAAA,YACf,MAAOC,EAAOC,EAAe,KAAS,CAChC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,iBAAmBd,CAAQ,EAClD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,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,EAEI,MAAAoB,EAAA,iBAAiBF,EAAYR,CAAO,EAGtCK,GAAgBT,GAClBA,EAAQ,YAAY,CAClB,IACEe,EACEP,EAAM,IAAKK,IAAU,CACnB,GAAIA,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYf,CAAiB,CAAA,EACtE,EACF,EAAA,CACF,CACH,OAEgB,CAAA,CAGvB,EACA,CAACM,EAASV,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAC7F,EAGMe,EAAcR,EAAA,YAClB,MACEC,EACAC,EAAwB,KACrB,CACC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,OAAO,WAAad,CAAQ,EACnD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,MAAMK,EAAgCR,EAAM,IAAKK,IAAU,CACzD,GAAIA,EAAK,GACT,OAAQA,EAAK,OACb,OAAQ,CAAE,WAAAhB,EAAY,SAAAD,CAAS,EAC/B,SAAAG,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEI,MAAAuB,EAAA,oBAAoBD,EAAed,CAAU,EAI/CO,GAAgBT,GACVA,EAAA,YACNQ,EAAM,IACHK,GAAS,IACRP,EAAS,CAAC,CAAE,eAAgBO,EAAK,OAAO,SAAU,OAAQA,EAAK,EAAG,CAAC,EAAG,EAAK,CAAA,CAEjF,OAEiB,CAAA,CAGvB,EACA,CAACX,EAAYR,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAChG,EAEA,MAAO,CAAE,OAAQe,EAAa,IAAKT,CAAS,CAC9C"}
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":"+idA6BA,MAAMA,EAAiB,CAAC,CACtB,YAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,SAAAC,CACF,IAAa,CACL,KAAA,CAAE,QAAAC,CAAQ,EAAIC,iBAAe,EAE7B,CAACC,CAAU,EAAIC,8BAA4B,EAC3C,CAACC,CAAO,EAAIC,8BAA4B,EAGxCC,EAAWC,EAAA,YACf,MAAOC,EAAOC,EAAe,KAAS,CAChC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,iBAAmBd,CAAQ,EAClD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,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,EAEI,MAAAoB,EAAA,iBAAiBF,EAAYR,CAAO,EAGtCK,GAAgBT,GAClBA,EAAQ,YAAY,CAClB,IACEe,EACEP,EAAM,IAAKK,IAAU,CACnB,GAAIA,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYf,CAAiB,CAAA,EACtE,EACF,EAAA,CACF,CACH,OAEgB,CAAA,CAGvB,EACA,CAACM,EAASV,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAC7F,EAGMe,EAAcR,EAAA,YAClB,MACEC,EACAC,EAAwB,KACrB,CACC,GAAA,CAGF,GADgBD,EAAM,KAAME,GAAMA,EAAE,OAAO,WAAad,CAAQ,EACnD,CACXe,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CAGF,MAAMK,EAAgCR,EAAM,IAAKK,IAAU,CACzD,GAAIA,EAAK,GACT,OAAQA,EAAK,OACb,OAAQ,CAAE,WAAAhB,EAAY,SAAAD,CAAS,EAC/B,SAAAG,EACA,UAAAJ,EACA,YAAAD,CAAA,EACA,EAEI,MAAAuB,EAAA,oBAAoBD,EAAed,CAAU,EAI/CO,GAAgBT,GACVA,EAAA,YACNQ,EAAM,IACHK,GAAS,IACRP,EAAS,CAAC,CAAE,eAAgBO,EAAK,OAAO,SAAU,OAAQA,EAAK,EAAG,CAAC,EAAG,EAAK,CAAA,CAEjF,OAEiB,CAAA,CAGvB,EACA,CAACX,EAAYR,EAAaE,EAAUC,EAAYC,EAAkBC,EAAUJ,EAAWK,CAAO,CAChG,EAEA,MAAO,CAAE,OAAQe,EAAa,IAAKT,CAAS,CAC9C"}
@@ -48,6 +48,8 @@ import "../../../api/queries/attributes/getAttributes.es.js";
48
48
  import "../../../api/queries/attributes/updateAttributes.es.js";
49
49
  import "../../../api/queries/authentication/getAuthentication.es.js";
50
50
  import "../../../api/queries/cloud/cloud.es.js";
51
+ import "../../../api/queries/config/getConfig.es.js";
52
+ import "../../../api/queries/config/updateConfig.es.js";
51
53
  import "../../../api/queries/entities/getEntity.es.js";
52
54
  import "../../../api/queries/entities/getEntityPanel.es.js";
53
55
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -244,7 +246,7 @@ import "../../../containers/Views/context/ViewsContext.es.js";
244
246
  import "../../../containers/Views/Views.styled.es.js";
245
247
  import "../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
246
248
  import "../../../containers/Views/ViewsMenu/ViewsMenu.es.js";
247
- const tm = ({
249
+ const om = ({
248
250
  projectName: m,
249
251
  direction: p,
250
252
  entityId: o,
@@ -310,6 +312,6 @@ const tm = ({
310
312
  return { remove: h, add: l };
311
313
  };
312
314
  export {
313
- tm as default
315
+ om as default
314
316
  };
315
317
  //# sourceMappingURL=useUpdateLinks.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateLinks.es.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,KAAiB,CAAC;AAAA,EACtB,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AACF,MAAa;AACL,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAe,GAE7B,CAACC,CAAU,IAAIC,EAA4B,GAC3C,CAACC,CAAO,IAAIC,EAA4B,GAGxCC,IAAWC;AAAA,IACf,OAAOC,GAAOC,IAAe,OAAS;AAChC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,mBAAmBd,CAAQ,GAClD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMC,IAA0BJ,EAAM,IAAI,CAACK,OAAU;AAAA,UACnD,gBAAgBA,EAAK;AAAA,UACrB,QAAQA,EAAK;AAAA,UACb,gBAAgBjB;AAAA,UAChB,kBAAkBC;AAAA,UAClB,kBAAAC;AAAA,UACA,UAAAC;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAoB,EAAiBF,GAAYR,CAAO,GAGtCK,KAAgBT,KAClBA,EAAQ,YAAY;AAAA,UAClB,MACEe;AAAA,YACEP,EAAM,IAAI,CAACK,OAAU;AAAA,cACnB,IAAIA,EAAK;AAAA,cACT,QAAQ,EAAE,UAAUA,EAAK,gBAAgB,YAAYf,EAAiB;AAAA,YAAA,EACtE;AAAA,YACF;AAAA,UAAA;AAAA,QACF,CACH;AAAA,cAEgB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACM,GAASV,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAC7F,GAGMe,IAAcR;AAAA,IAClB,OACEC,GACAC,IAAwB,OACrB;AACC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,OAAO,aAAad,CAAQ,GACnD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMK,IAAgCR,EAAM,IAAI,CAACK,OAAU;AAAA,UACzD,IAAIA,EAAK;AAAA,UACT,QAAQA,EAAK;AAAA,UACb,QAAQ,EAAE,YAAAhB,GAAY,UAAAD,EAAS;AAAA,UAC/B,UAAAG;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAuB,EAAoBD,GAAed,CAAU,GAI/CO,KAAgBT,KACVA,EAAA;AAAA,UACNQ,EAAM;AAAA,YACJ,CAACK,MAAS,MACRP,EAAS,CAAC,EAAE,gBAAgBO,EAAK,OAAO,UAAU,QAAQA,EAAK,GAAG,CAAC,GAAG,EAAK;AAAA,UAAA;AAAA,QAEjF;AAAA,cAEiB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACX,GAAYR,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAChG;AAEA,SAAO,EAAE,QAAQe,GAAa,KAAKT,EAAS;AAC9C;"}
1
+ {"version":3,"file":"useUpdateLinks.es.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,KAAiB,CAAC;AAAA,EACtB,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AACF,MAAa;AACL,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAe,GAE7B,CAACC,CAAU,IAAIC,EAA4B,GAC3C,CAACC,CAAO,IAAIC,EAA4B,GAGxCC,IAAWC;AAAA,IACf,OAAOC,GAAOC,IAAe,OAAS;AAChC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,mBAAmBd,CAAQ,GAClD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMC,IAA0BJ,EAAM,IAAI,CAACK,OAAU;AAAA,UACnD,gBAAgBA,EAAK;AAAA,UACrB,QAAQA,EAAK;AAAA,UACb,gBAAgBjB;AAAA,UAChB,kBAAkBC;AAAA,UAClB,kBAAAC;AAAA,UACA,UAAAC;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAoB,EAAiBF,GAAYR,CAAO,GAGtCK,KAAgBT,KAClBA,EAAQ,YAAY;AAAA,UAClB,MACEe;AAAA,YACEP,EAAM,IAAI,CAACK,OAAU;AAAA,cACnB,IAAIA,EAAK;AAAA,cACT,QAAQ,EAAE,UAAUA,EAAK,gBAAgB,YAAYf,EAAiB;AAAA,YAAA,EACtE;AAAA,YACF;AAAA,UAAA;AAAA,QACF,CACH;AAAA,cAEgB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACM,GAASV,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAC7F,GAGMe,IAAcR;AAAA,IAClB,OACEC,GACAC,IAAwB,OACrB;AACC,UAAA;AAGF,YADgBD,EAAM,KAAK,CAACE,MAAMA,EAAE,OAAO,aAAad,CAAQ,GACnD;AACX,UAAAe,EAAM,MAAM,oCAAoC;AAChD;AAAA,QAAA;AAGF,cAAMK,IAAgCR,EAAM,IAAI,CAACK,OAAU;AAAA,UACzD,IAAIA,EAAK;AAAA,UACT,QAAQA,EAAK;AAAA,UACb,QAAQ,EAAE,YAAAhB,GAAY,UAAAD,EAAS;AAAA,UAC/B,UAAAG;AAAA,UACA,WAAAJ;AAAA,UACA,aAAAD;AAAA,QAAA,EACA;AAEI,cAAAuB,EAAoBD,GAAed,CAAU,GAI/CO,KAAgBT,KACVA,EAAA;AAAA,UACNQ,EAAM;AAAA,YACJ,CAACK,MAAS,MACRP,EAAS,CAAC,EAAE,gBAAgBO,EAAK,OAAO,UAAU,QAAQA,EAAK,GAAG,CAAC,GAAG,EAAK;AAAA,UAAA;AAAA,QAEjF;AAAA,cAEiB;AAAA,MAAA;AAAA,IAGvB;AAAA,IACA,CAACX,GAAYR,GAAaE,GAAUC,GAAYC,GAAkBC,GAAUJ,GAAWK,CAAO;AAAA,EAChG;AAEA,SAAO,EAAE,QAAQe,GAAa,KAAKT,EAAS;AAC9C;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),E=require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");const P=require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");const S=require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");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");const h=require("react-toastify");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");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");const v=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const x=({projectName:d,list:e,isLoading:m,attributes:t=[]})=>{const[f,s]=o.useState({label:"",tags:[],active:!1}),g=((e==null?void 0:e.accessLevel)||0)>=30,{tags:c}=v.useProjectContext(),{data:b=[]}=P.useGetAttributeListQuery(),q=o.useMemo(()=>b.filter(r=>{var i;return(i=r.scope)==null?void 0:i.includes("list")}).map(r=>({name:r.name,data:r.data})),[b]),p=o.useMemo(()=>[{name:"label",data:{type:"string",title:"Label"}},{name:"tags",data:{type:"list_of_strings",title:"Tags",enum:c==null?void 0:c.map(r=>({value:r.name,label:r.name,color:r.color})),enableCustomValues:!0,enableSearch:!0}},...q,{name:"active",data:{type:"boolean",title:"Active"}},...t],[c,q,t]);o.useEffect(()=>{if(e){const r=e.attrib||{},a=[...q,...t].reduce((u,{name:n})=>{const L=r[n];return u[n]=L||"",u},{});s({label:(e==null?void 0:e.label)||"",tags:(e==null?void 0:e.tags)||[],active:(e==null?void 0:e.active)??!1,...a})}},[e,JSON.stringify(t),JSON.stringify(q)]);const[l]=S.useUpdateEntityListMutation(),A=r=>t.some(i=>i.name===r)||q.some(i=>i.name===r),y=o.useCallback(async(r,i)=>{if(!(e!=null&&e.id))return console.warn("No list ID provided");let a;if(A(r)){const u=e.attrib||{};i===""&&r==="category"?a={attrib:{...u,[r]:null}}:a={attrib:{...u,[r]:i}},s(n=>({...n,[r]:i}))}else{const u={[r]:i};a=u,s(n=>({...n,...u}))}try{await l({listId:e.id,projectName:d,entityListPatchModel:a})}catch(u){console.error(u),h.toast.error("Failed to update list attribute: ",u.attrib.detail)}},[e==null?void 0:e.id,e==null?void 0:e.attrib,d,l,q,t]);return F.jsxRuntimeExports.jsx(E.DetailsPanelAttributesEditor,{enableEditing:g,fields:p,form:f,isLoading:m,onChange:y,title:"Attributes"})};exports.ListAttributeForm=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),E=require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");const P=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");const S=require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");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");const h=require("react-toastify");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");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");const v=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const x=({projectName:d,list:e,isLoading:m,attributes:t=[]})=>{const[f,s]=o.useState({label:"",tags:[],active:!1}),g=((e==null?void 0:e.accessLevel)||0)>=30,{tags:c}=v.useProjectContext(),{data:b=[]}=P.useGetAttributeListQuery(),q=o.useMemo(()=>b.filter(r=>{var i;return(i=r.scope)==null?void 0:i.includes("list")}).map(r=>({name:r.name,data:r.data})),[b]),p=o.useMemo(()=>[{name:"label",data:{type:"string",title:"Label"}},{name:"tags",data:{type:"list_of_strings",title:"Tags",enum:c==null?void 0:c.map(r=>({value:r.name,label:r.name,color:r.color})),enableCustomValues:!0,enableSearch:!0}},...q,{name:"active",data:{type:"boolean",title:"Active"}},...t],[c,q,t]);o.useEffect(()=>{if(e){const r=e.attrib||{},a=[...q,...t].reduce((u,{name:n})=>{const L=r[n];return u[n]=L||"",u},{});s({label:(e==null?void 0:e.label)||"",tags:(e==null?void 0:e.tags)||[],active:(e==null?void 0:e.active)??!1,...a})}},[e,JSON.stringify(t),JSON.stringify(q)]);const[l]=S.useUpdateEntityListMutation(),A=r=>t.some(i=>i.name===r)||q.some(i=>i.name===r),y=o.useCallback(async(r,i)=>{if(!(e!=null&&e.id))return console.warn("No list ID provided");let a;if(A(r)){const u=e.attrib||{};i===""&&r==="category"?a={attrib:{...u,[r]:null}}:a={attrib:{...u,[r]:i}},s(n=>({...n,[r]:i}))}else{const u={[r]:i};a=u,s(n=>({...n,...u}))}try{await l({listId:e.id,projectName:d,entityListPatchModel:a})}catch(u){console.error(u),h.toast.error("Failed to update list attribute: ",u.attrib.detail)}},[e==null?void 0:e.id,e==null?void 0:e.attrib,d,l,q,t]);return F.jsxRuntimeExports.jsx(E.DetailsPanelAttributesEditor,{enableEditing:g,fields:p,form:f,isLoading:m,onChange:y,title:"Attributes"})};exports.ListAttributeForm=x;
2
2
  //# sourceMappingURL=ListAttributeForm.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListAttributeForm.cjs.js","sources":["../../../../../src/components/ListAttributeForm/ListAttributeForm.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useState, useMemo } from 'react'\nimport { AttributeField, DetailsPanelAttributesEditor } from '../DetailsPanelAttributes'\nimport { EntityListModel, useUpdateEntityListMutation, useGetAttributeListQuery } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\ninterface ListAttributeFormProps {\n projectName: string\n list?: EntityListModel\n isLoading?: boolean\n attributes?: AttributeField[]\n}\n\n// explicit type for the form state\ntype FormValue = string | number | boolean | any[] | Record<string, any> | Date | null | undefined\n\ninterface ListFormData {\n label: string\n tags: string[]\n active: boolean\n // index signature so the object is compatible with DetailsPanelAttributesEditor expected form shape\n [key: string]: FormValue\n}\n\nexport const ListAttributeForm: FC<ListAttributeFormProps> = ({\n projectName,\n list,\n isLoading,\n attributes = [],\n}) => {\n const [form, setForm] = useState<ListFormData>({\n label: '',\n tags: [],\n active: false,\n })\n\n // You must be an admin to edit the list itself\n const canEdit = (list?.accessLevel || 0) >= 30\n const { tags } = useProjectContext()\n\n // Fetch list-scoped attributes\n const { data: allAttributes = [] } = useGetAttributeListQuery()\n const listScopedAttributes = useMemo(\n () =>\n allAttributes\n .filter((attr) => attr.scope?.includes('list'))\n .map((attr) => ({\n name: attr.name,\n data: attr.data,\n })),\n [allAttributes],\n )\n\n const fields: AttributeField[] = useMemo(\n () => [\n { name: 'label', data: { type: 'string', title: 'Label' } },\n {\n name: 'tags',\n data: {\n type: 'list_of_strings',\n title: 'Tags',\n enum: tags?.map((t) => ({ value: t.name, label: t.name, color: t.color })),\n enableCustomValues: true,\n enableSearch: true,\n },\n },\n ...listScopedAttributes,\n { name: 'active', data: { type: 'boolean', title: 'Active' } },\n ...attributes,\n ],\n [tags, listScopedAttributes, attributes],\n )\n\n useEffect(() => {\n if (list) {\n const parsedAttrib = list.attrib || {}\n\n // get the data for all attrib fields (list-scoped and passed attributes)\n const allAttribFields = [...listScopedAttributes, ...attributes]\n const attribFieldValues = allAttribFields.reduce((acc, { name }) => {\n const fieldValue = (parsedAttrib as Record<string, any>)[name]\n // Default to empty string for all attrib fields\n acc[name] = fieldValue || ''\n return acc\n }, {} as Record<string, any>)\n\n setForm({\n label: list?.label || '',\n tags: list?.tags || [],\n active: list?.active ?? false,\n ...attribFieldValues,\n })\n }\n }, [list, JSON.stringify(attributes), JSON.stringify(listScopedAttributes)])\n\n const [updateList] = useUpdateEntityListMutation()\n\n const isAttribField = (fieldName: string): boolean => {\n return (\n attributes.some((attr) => attr.name === fieldName) ||\n listScopedAttributes.some((attr) => attr.name === fieldName)\n )\n }\n\n const handleChange = useCallback(\n async (key: string, value: any) => {\n if (!list?.id) return console.warn('No list ID provided')\n\n let updatePayload: any\n\n if (isAttribField(key)) {\n const currentAttrib = list.attrib || {}\n\n // If the value is empty string for category, set it to null to clear it\n if (value === '' && key === 'category') {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: null,\n },\n }\n } else {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: value,\n },\n }\n }\n\n // Update local form state\n setForm((prev) => ({ ...prev, [key]: value }))\n } else {\n // For other fields, update normally\n const newValue = { [key]: value }\n updatePayload = newValue\n // Update local form state\n setForm((prev) => ({ ...prev, ...newValue }))\n }\n\n // update the list in the database in the background\n try {\n await updateList({\n listId: list.id,\n projectName,\n entityListPatchModel: updatePayload,\n })\n } catch (error: any) {\n console.error(error)\n toast.error('Failed to update list attribute: ', error.attrib.detail)\n }\n },\n [list?.id, list?.attrib, projectName, updateList, listScopedAttributes, attributes],\n )\n\n return (\n <DetailsPanelAttributesEditor\n enableEditing={canEdit}\n fields={fields}\n form={form}\n isLoading={isLoading}\n onChange={handleChange}\n title=\"Attributes\"\n />\n )\n}\n"],"names":["ListAttributeForm","projectName","list","isLoading","attributes","form","setForm","useState","canEdit","tags","useProjectContext","allAttributes","useGetAttributeListQuery","listScopedAttributes","useMemo","attr","_a","fields","t","useEffect","parsedAttrib","attribFieldValues","acc","name","fieldValue","updateList","useUpdateEntityListMutation","isAttribField","fieldName","handleChange","useCallback","key","value","updatePayload","currentAttrib","prev","newValue","error","toast","jsx","DetailsPanelAttributesEditor"],"mappings":"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"}
1
+ {"version":3,"file":"ListAttributeForm.cjs.js","sources":["../../../../../src/components/ListAttributeForm/ListAttributeForm.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useState, useMemo } from 'react'\nimport { AttributeField, DetailsPanelAttributesEditor } from '../DetailsPanelAttributes'\nimport { EntityListModel, useUpdateEntityListMutation, useGetAttributeListQuery } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\ninterface ListAttributeFormProps {\n projectName: string\n list?: EntityListModel\n isLoading?: boolean\n attributes?: AttributeField[]\n}\n\n// explicit type for the form state\ntype FormValue = string | number | boolean | any[] | Record<string, any> | Date | null | undefined\n\ninterface ListFormData {\n label: string\n tags: string[]\n active: boolean\n // index signature so the object is compatible with DetailsPanelAttributesEditor expected form shape\n [key: string]: FormValue\n}\n\nexport const ListAttributeForm: FC<ListAttributeFormProps> = ({\n projectName,\n list,\n isLoading,\n attributes = [],\n}) => {\n const [form, setForm] = useState<ListFormData>({\n label: '',\n tags: [],\n active: false,\n })\n\n // You must be an admin to edit the list itself\n const canEdit = (list?.accessLevel || 0) >= 30\n const { tags } = useProjectContext()\n\n // Fetch list-scoped attributes\n const { data: allAttributes = [] } = useGetAttributeListQuery()\n const listScopedAttributes = useMemo(\n () =>\n allAttributes\n .filter((attr) => attr.scope?.includes('list'))\n .map((attr) => ({\n name: attr.name,\n data: attr.data,\n })),\n [allAttributes],\n )\n\n const fields: AttributeField[] = useMemo(\n () => [\n { name: 'label', data: { type: 'string', title: 'Label' } },\n {\n name: 'tags',\n data: {\n type: 'list_of_strings',\n title: 'Tags',\n enum: tags?.map((t) => ({ value: t.name, label: t.name, color: t.color })),\n enableCustomValues: true,\n enableSearch: true,\n },\n },\n ...listScopedAttributes,\n { name: 'active', data: { type: 'boolean', title: 'Active' } },\n ...attributes,\n ],\n [tags, listScopedAttributes, attributes],\n )\n\n useEffect(() => {\n if (list) {\n const parsedAttrib = list.attrib || {}\n\n // get the data for all attrib fields (list-scoped and passed attributes)\n const allAttribFields = [...listScopedAttributes, ...attributes]\n const attribFieldValues = allAttribFields.reduce((acc, { name }) => {\n const fieldValue = (parsedAttrib as Record<string, any>)[name]\n // Default to empty string for all attrib fields\n acc[name] = fieldValue || ''\n return acc\n }, {} as Record<string, any>)\n\n setForm({\n label: list?.label || '',\n tags: list?.tags || [],\n active: list?.active ?? false,\n ...attribFieldValues,\n })\n }\n }, [list, JSON.stringify(attributes), JSON.stringify(listScopedAttributes)])\n\n const [updateList] = useUpdateEntityListMutation()\n\n const isAttribField = (fieldName: string): boolean => {\n return (\n attributes.some((attr) => attr.name === fieldName) ||\n listScopedAttributes.some((attr) => attr.name === fieldName)\n )\n }\n\n const handleChange = useCallback(\n async (key: string, value: any) => {\n if (!list?.id) return console.warn('No list ID provided')\n\n let updatePayload: any\n\n if (isAttribField(key)) {\n const currentAttrib = list.attrib || {}\n\n // If the value is empty string for category, set it to null to clear it\n if (value === '' && key === 'category') {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: null,\n },\n }\n } else {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: value,\n },\n }\n }\n\n // Update local form state\n setForm((prev) => ({ ...prev, [key]: value }))\n } else {\n // For other fields, update normally\n const newValue = { [key]: value }\n updatePayload = newValue\n // Update local form state\n setForm((prev) => ({ ...prev, ...newValue }))\n }\n\n // update the list in the database in the background\n try {\n await updateList({\n listId: list.id,\n projectName,\n entityListPatchModel: updatePayload,\n })\n } catch (error: any) {\n console.error(error)\n toast.error('Failed to update list attribute: ', error.attrib.detail)\n }\n },\n [list?.id, list?.attrib, projectName, updateList, listScopedAttributes, attributes],\n )\n\n return (\n <DetailsPanelAttributesEditor\n enableEditing={canEdit}\n fields={fields}\n form={form}\n isLoading={isLoading}\n onChange={handleChange}\n title=\"Attributes\"\n />\n )\n}\n"],"names":["ListAttributeForm","projectName","list","isLoading","attributes","form","setForm","useState","canEdit","tags","useProjectContext","allAttributes","useGetAttributeListQuery","listScopedAttributes","useMemo","attr","_a","fields","t","useEffect","parsedAttrib","attribFieldValues","acc","name","fieldValue","updateList","useUpdateEntityListMutation","isAttribField","fieldName","handleChange","useCallback","key","value","updatePayload","currentAttrib","prev","newValue","error","toast","jsx","DetailsPanelAttributesEditor"],"mappings":"i9KAwBO,MAAMA,EAAgD,CAAC,CAC5D,YAAAC,EACA,KAAAC,EACA,UAAAC,EACA,WAAAC,EAAa,CAAA,CACf,IAAM,CACJ,KAAM,CAACC,EAAMC,CAAO,EAAIC,WAAuB,CAC7C,MAAO,GACP,KAAM,CAAC,EACP,OAAQ,EAAA,CACT,EAGKC,IAAWN,GAAA,YAAAA,EAAM,cAAe,IAAM,GACtC,CAAE,KAAAO,CAAK,EAAIC,oBAAkB,EAG7B,CAAE,KAAMC,EAAgB,CAAC,CAAA,EAAMC,EAAAA,yBAAyB,EACxDC,EAAuBC,EAAA,QAC3B,IACEH,EACG,OAAQI,GAAS,OAAA,OAAAC,EAAAD,EAAK,QAAL,YAAAC,EAAY,SAAS,QAAO,EAC7C,IAAKD,IAAU,CACd,KAAMA,EAAK,KACX,KAAMA,EAAK,IAAA,EACX,EACN,CAACJ,CAAa,CAChB,EAEMM,EAA2BH,EAAA,QAC/B,IAAM,CACJ,CAAE,KAAM,QAAS,KAAM,CAAE,KAAM,SAAU,MAAO,QAAU,EAC1D,CACE,KAAM,OACN,KAAM,CACJ,KAAM,kBACN,MAAO,OACP,KAAML,GAAA,YAAAA,EAAM,IAAKS,IAAO,CAAE,MAAOA,EAAE,KAAM,MAAOA,EAAE,KAAM,MAAOA,EAAE,SACjE,mBAAoB,GACpB,aAAc,EAAA,CAElB,EACA,GAAGL,EACH,CAAE,KAAM,SAAU,KAAM,CAAE,KAAM,UAAW,MAAO,SAAW,EAC7D,GAAGT,CACL,EACA,CAACK,EAAMI,EAAsBT,CAAU,CACzC,EAEAe,EAAAA,UAAU,IAAM,CACd,GAAIjB,EAAM,CACF,MAAAkB,EAAelB,EAAK,QAAU,CAAC,EAI/BmB,EADkB,CAAC,GAAGR,EAAsB,GAAGT,CAAU,EACrB,OAAO,CAACkB,EAAK,CAAE,KAAAC,KAAW,CAC5D,MAAAC,EAAcJ,EAAqCG,CAAI,EAEzD,OAAAD,EAAAC,CAAI,EAAIC,GAAc,GACnBF,CACT,EAAG,EAAyB,EAEpBhB,EAAA,CACN,OAAOJ,GAAA,YAAAA,EAAM,QAAS,GACtB,MAAMA,GAAA,YAAAA,EAAM,OAAQ,CAAC,EACrB,QAAQA,GAAA,YAAAA,EAAM,SAAU,GACxB,GAAGmB,CAAA,CACJ,CAAA,CACH,EACC,CAACnB,EAAM,KAAK,UAAUE,CAAU,EAAG,KAAK,UAAUS,CAAoB,CAAC,CAAC,EAErE,KAAA,CAACY,CAAU,EAAIC,8BAA4B,EAE3CC,EAAiBC,GAEnBxB,EAAW,KAAMW,GAASA,EAAK,OAASa,CAAS,GACjDf,EAAqB,KAAME,GAASA,EAAK,OAASa,CAAS,EAIzDC,EAAeC,EAAA,YACnB,MAAOC,EAAaC,IAAe,CACjC,GAAI,EAAC9B,GAAA,MAAAA,EAAM,IAAW,OAAA,QAAQ,KAAK,qBAAqB,EAEpD,IAAA+B,EAEA,GAAAN,EAAcI,CAAG,EAAG,CAChB,MAAAG,EAAgBhC,EAAK,QAAU,CAAC,EAGlC8B,IAAU,IAAMD,IAAQ,WACVE,EAAA,CACd,OAAQ,CACN,GAAGC,EACH,CAACH,CAAG,EAAG,IAAA,CAEX,EAEgBE,EAAA,CACd,OAAQ,CACN,GAAGC,EACH,CAACH,CAAG,EAAGC,CAAA,CAEX,EAIM1B,EAAC6B,IAAU,CAAE,GAAGA,EAAM,CAACJ,CAAG,EAAGC,CAAA,EAAQ,CAAA,KACxC,CAEL,MAAMI,EAAW,CAAE,CAACL,CAAG,EAAGC,CAAM,EAChBC,EAAAG,EAEhB9B,EAAS6B,IAAU,CAAE,GAAGA,EAAM,GAAGC,GAAW,CAAA,CAI1C,GAAA,CACF,MAAMX,EAAW,CACf,OAAQvB,EAAK,GACb,YAAAD,EACA,qBAAsBgC,CAAA,CACvB,QACMI,EAAY,CACnB,QAAQ,MAAMA,CAAK,EACnBC,EAAAA,MAAM,MAAM,oCAAqCD,EAAM,OAAO,MAAM,CAAA,CAExE,EACA,CAACnC,GAAA,YAAAA,EAAM,GAAIA,GAAA,YAAAA,EAAM,OAAQD,EAAawB,EAAYZ,EAAsBT,CAAU,CACpF,EAGE,OAAAmC,EAAA,kBAAA,IAACC,EAAA,6BAAA,CACC,cAAehC,EACf,OAAAS,EACA,KAAAZ,EACA,UAAAF,EACA,SAAU0B,EACV,MAAM,YAAA,CACR,CAEJ"}
@@ -51,6 +51,8 @@ import { useGetAttributeListQuery as S } from "../../api/queries/attributes/getA
51
51
  import "../../api/queries/attributes/updateAttributes.es.js";
52
52
  import "../../api/queries/authentication/getAuthentication.es.js";
53
53
  import "../../api/queries/cloud/cloud.es.js";
54
+ import "../../api/queries/config/getConfig.es.js";
55
+ import "../../api/queries/config/updateConfig.es.js";
54
56
  import "../../api/queries/entities/getEntity.es.js";
55
57
  import "../../api/queries/entities/getEntityPanel.es.js";
56
58
  import "../../api/queries/entities/updateEntity.es.js";
@@ -102,7 +104,7 @@ import "../../context/GlobalContext.es.js";
102
104
  import { useProjectContext as j } from "../../context/ProjectContext.es.js";
103
105
  import "../../context/ProjectFoldersContext.es.js";
104
106
  import "../../context/UriContext.es.js";
105
- const Sr = ({
107
+ const Vr = ({
106
108
  projectName: d,
107
109
  list: t,
108
110
  isLoading: l,
@@ -200,6 +202,6 @@ const Sr = ({
200
202
  );
201
203
  };
202
204
  export {
203
- Sr as ListAttributeForm
205
+ Vr as ListAttributeForm
204
206
  };
205
207
  //# sourceMappingURL=ListAttributeForm.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListAttributeForm.es.js","sources":["../../../../../src/components/ListAttributeForm/ListAttributeForm.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useState, useMemo } from 'react'\nimport { AttributeField, DetailsPanelAttributesEditor } from '../DetailsPanelAttributes'\nimport { EntityListModel, useUpdateEntityListMutation, useGetAttributeListQuery } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\ninterface ListAttributeFormProps {\n projectName: string\n list?: EntityListModel\n isLoading?: boolean\n attributes?: AttributeField[]\n}\n\n// explicit type for the form state\ntype FormValue = string | number | boolean | any[] | Record<string, any> | Date | null | undefined\n\ninterface ListFormData {\n label: string\n tags: string[]\n active: boolean\n // index signature so the object is compatible with DetailsPanelAttributesEditor expected form shape\n [key: string]: FormValue\n}\n\nexport const ListAttributeForm: FC<ListAttributeFormProps> = ({\n projectName,\n list,\n isLoading,\n attributes = [],\n}) => {\n const [form, setForm] = useState<ListFormData>({\n label: '',\n tags: [],\n active: false,\n })\n\n // You must be an admin to edit the list itself\n const canEdit = (list?.accessLevel || 0) >= 30\n const { tags } = useProjectContext()\n\n // Fetch list-scoped attributes\n const { data: allAttributes = [] } = useGetAttributeListQuery()\n const listScopedAttributes = useMemo(\n () =>\n allAttributes\n .filter((attr) => attr.scope?.includes('list'))\n .map((attr) => ({\n name: attr.name,\n data: attr.data,\n })),\n [allAttributes],\n )\n\n const fields: AttributeField[] = useMemo(\n () => [\n { name: 'label', data: { type: 'string', title: 'Label' } },\n {\n name: 'tags',\n data: {\n type: 'list_of_strings',\n title: 'Tags',\n enum: tags?.map((t) => ({ value: t.name, label: t.name, color: t.color })),\n enableCustomValues: true,\n enableSearch: true,\n },\n },\n ...listScopedAttributes,\n { name: 'active', data: { type: 'boolean', title: 'Active' } },\n ...attributes,\n ],\n [tags, listScopedAttributes, attributes],\n )\n\n useEffect(() => {\n if (list) {\n const parsedAttrib = list.attrib || {}\n\n // get the data for all attrib fields (list-scoped and passed attributes)\n const allAttribFields = [...listScopedAttributes, ...attributes]\n const attribFieldValues = allAttribFields.reduce((acc, { name }) => {\n const fieldValue = (parsedAttrib as Record<string, any>)[name]\n // Default to empty string for all attrib fields\n acc[name] = fieldValue || ''\n return acc\n }, {} as Record<string, any>)\n\n setForm({\n label: list?.label || '',\n tags: list?.tags || [],\n active: list?.active ?? false,\n ...attribFieldValues,\n })\n }\n }, [list, JSON.stringify(attributes), JSON.stringify(listScopedAttributes)])\n\n const [updateList] = useUpdateEntityListMutation()\n\n const isAttribField = (fieldName: string): boolean => {\n return (\n attributes.some((attr) => attr.name === fieldName) ||\n listScopedAttributes.some((attr) => attr.name === fieldName)\n )\n }\n\n const handleChange = useCallback(\n async (key: string, value: any) => {\n if (!list?.id) return console.warn('No list ID provided')\n\n let updatePayload: any\n\n if (isAttribField(key)) {\n const currentAttrib = list.attrib || {}\n\n // If the value is empty string for category, set it to null to clear it\n if (value === '' && key === 'category') {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: null,\n },\n }\n } else {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: value,\n },\n }\n }\n\n // Update local form state\n setForm((prev) => ({ ...prev, [key]: value }))\n } else {\n // For other fields, update normally\n const newValue = { [key]: value }\n updatePayload = newValue\n // Update local form state\n setForm((prev) => ({ ...prev, ...newValue }))\n }\n\n // update the list in the database in the background\n try {\n await updateList({\n listId: list.id,\n projectName,\n entityListPatchModel: updatePayload,\n })\n } catch (error: any) {\n console.error(error)\n toast.error('Failed to update list attribute: ', error.attrib.detail)\n }\n },\n [list?.id, list?.attrib, projectName, updateList, listScopedAttributes, attributes],\n )\n\n return (\n <DetailsPanelAttributesEditor\n enableEditing={canEdit}\n fields={fields}\n form={form}\n isLoading={isLoading}\n onChange={handleChange}\n title=\"Attributes\"\n />\n )\n}\n"],"names":["ListAttributeForm","projectName","list","isLoading","attributes","form","setForm","useState","canEdit","tags","useProjectContext","allAttributes","useGetAttributeListQuery","listScopedAttributes","useMemo","attr","_a","fields","t","useEffect","parsedAttrib","attribFieldValues","acc","name","fieldValue","updateList","useUpdateEntityListMutation","isAttribField","fieldName","handleChange","useCallback","key","value","updatePayload","currentAttrib","prev","newValue","error","toast","jsx","DetailsPanelAttributesEditor"],"mappings":"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"}
1
+ {"version":3,"file":"ListAttributeForm.es.js","sources":["../../../../../src/components/ListAttributeForm/ListAttributeForm.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useState, useMemo } from 'react'\nimport { AttributeField, DetailsPanelAttributesEditor } from '../DetailsPanelAttributes'\nimport { EntityListModel, useUpdateEntityListMutation, useGetAttributeListQuery } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\ninterface ListAttributeFormProps {\n projectName: string\n list?: EntityListModel\n isLoading?: boolean\n attributes?: AttributeField[]\n}\n\n// explicit type for the form state\ntype FormValue = string | number | boolean | any[] | Record<string, any> | Date | null | undefined\n\ninterface ListFormData {\n label: string\n tags: string[]\n active: boolean\n // index signature so the object is compatible with DetailsPanelAttributesEditor expected form shape\n [key: string]: FormValue\n}\n\nexport const ListAttributeForm: FC<ListAttributeFormProps> = ({\n projectName,\n list,\n isLoading,\n attributes = [],\n}) => {\n const [form, setForm] = useState<ListFormData>({\n label: '',\n tags: [],\n active: false,\n })\n\n // You must be an admin to edit the list itself\n const canEdit = (list?.accessLevel || 0) >= 30\n const { tags } = useProjectContext()\n\n // Fetch list-scoped attributes\n const { data: allAttributes = [] } = useGetAttributeListQuery()\n const listScopedAttributes = useMemo(\n () =>\n allAttributes\n .filter((attr) => attr.scope?.includes('list'))\n .map((attr) => ({\n name: attr.name,\n data: attr.data,\n })),\n [allAttributes],\n )\n\n const fields: AttributeField[] = useMemo(\n () => [\n { name: 'label', data: { type: 'string', title: 'Label' } },\n {\n name: 'tags',\n data: {\n type: 'list_of_strings',\n title: 'Tags',\n enum: tags?.map((t) => ({ value: t.name, label: t.name, color: t.color })),\n enableCustomValues: true,\n enableSearch: true,\n },\n },\n ...listScopedAttributes,\n { name: 'active', data: { type: 'boolean', title: 'Active' } },\n ...attributes,\n ],\n [tags, listScopedAttributes, attributes],\n )\n\n useEffect(() => {\n if (list) {\n const parsedAttrib = list.attrib || {}\n\n // get the data for all attrib fields (list-scoped and passed attributes)\n const allAttribFields = [...listScopedAttributes, ...attributes]\n const attribFieldValues = allAttribFields.reduce((acc, { name }) => {\n const fieldValue = (parsedAttrib as Record<string, any>)[name]\n // Default to empty string for all attrib fields\n acc[name] = fieldValue || ''\n return acc\n }, {} as Record<string, any>)\n\n setForm({\n label: list?.label || '',\n tags: list?.tags || [],\n active: list?.active ?? false,\n ...attribFieldValues,\n })\n }\n }, [list, JSON.stringify(attributes), JSON.stringify(listScopedAttributes)])\n\n const [updateList] = useUpdateEntityListMutation()\n\n const isAttribField = (fieldName: string): boolean => {\n return (\n attributes.some((attr) => attr.name === fieldName) ||\n listScopedAttributes.some((attr) => attr.name === fieldName)\n )\n }\n\n const handleChange = useCallback(\n async (key: string, value: any) => {\n if (!list?.id) return console.warn('No list ID provided')\n\n let updatePayload: any\n\n if (isAttribField(key)) {\n const currentAttrib = list.attrib || {}\n\n // If the value is empty string for category, set it to null to clear it\n if (value === '' && key === 'category') {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: null,\n },\n }\n } else {\n updatePayload = {\n attrib: {\n ...currentAttrib,\n [key]: value,\n },\n }\n }\n\n // Update local form state\n setForm((prev) => ({ ...prev, [key]: value }))\n } else {\n // For other fields, update normally\n const newValue = { [key]: value }\n updatePayload = newValue\n // Update local form state\n setForm((prev) => ({ ...prev, ...newValue }))\n }\n\n // update the list in the database in the background\n try {\n await updateList({\n listId: list.id,\n projectName,\n entityListPatchModel: updatePayload,\n })\n } catch (error: any) {\n console.error(error)\n toast.error('Failed to update list attribute: ', error.attrib.detail)\n }\n },\n [list?.id, list?.attrib, projectName, updateList, listScopedAttributes, attributes],\n )\n\n return (\n <DetailsPanelAttributesEditor\n enableEditing={canEdit}\n fields={fields}\n form={form}\n isLoading={isLoading}\n onChange={handleChange}\n title=\"Attributes\"\n />\n )\n}\n"],"names":["ListAttributeForm","projectName","list","isLoading","attributes","form","setForm","useState","canEdit","tags","useProjectContext","allAttributes","useGetAttributeListQuery","listScopedAttributes","useMemo","attr","_a","fields","t","useEffect","parsedAttrib","attribFieldValues","acc","name","fieldValue","updateList","useUpdateEntityListMutation","isAttribField","fieldName","handleChange","useCallback","key","value","updatePayload","currentAttrib","prev","newValue","error","toast","jsx","DetailsPanelAttributesEditor"],"mappings":"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"}