@ynput/ayon-frontend-shared 0.3.15 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Views.cjs.js +1 -1
  5. package/dist/Views.cjs.js.map +1 -1
  6. package/dist/Views.es.js +36 -41
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/_virtual/index.cjs.js +1 -1
  9. package/dist/_virtual/index.cjs2.js +1 -1
  10. package/dist/_virtual/index.cjs3.js +1 -1
  11. package/dist/_virtual/index.cjs4.js +1 -1
  12. package/dist/_virtual/index.cjs5.js +1 -1
  13. package/dist/_virtual/index.cjs6.js +1 -1
  14. package/dist/_virtual/index.cjs8.js +1 -1
  15. package/dist/_virtual/index.es.js +4 -5
  16. package/dist/_virtual/index.es2.js +6 -2
  17. package/dist/_virtual/index.es2.js.map +1 -1
  18. package/dist/_virtual/index.es3.js +2 -5
  19. package/dist/_virtual/index.es3.js.map +1 -1
  20. package/dist/_virtual/index.es4.js +5 -2
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +2 -5
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +5 -2
  25. package/dist/_virtual/index.es6.js.map +1 -1
  26. package/dist/_virtual/index.es7.js +2 -2
  27. package/dist/_virtual/index.es8.js +2 -5
  28. package/dist/_virtual/index.es8.js.map +1 -1
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +15 -11
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  35. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  36. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  37. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js.map +1 -1
  38. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  39. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  40. package/dist/node_modules/remove-accents/index.es.js +1 -1
  41. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  43. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  44. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  45. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  46. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  47. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  48. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  49. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  50. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  51. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/graphql.cjs.js +5 -3
  54. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/graphql.es.js +2 -0
  56. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  59. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  60. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  61. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +99 -90
  62. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  63. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +13 -1
  64. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  65. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +72 -25
  66. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  67. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  68. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +25 -21
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  71. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  72. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +14 -14
  74. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  75. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
  76. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +23 -23
  78. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  80. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  81. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +71 -36
  82. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  83. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  84. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  85. package/dist/shared/src/components/LinksManager/LinksManager.es.js +120 -89
  86. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +52 -12
  88. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  89. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +63 -21
  90. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  91. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  92. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  93. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
  94. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  95. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js +2 -0
  96. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js.map +1 -0
  97. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js +18 -0
  98. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js.map +1 -0
  99. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +8 -4
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  103. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  107. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  109. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +8 -4
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  111. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  112. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  113. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
  114. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  115. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  116. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  117. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +8 -4
  118. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  119. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  120. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  121. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -5
  122. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +139 -128
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +90 -81
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  131. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  132. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -4
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  136. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +9 -5
  138. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  139. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  141. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -4
  142. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  143. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  147. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  148. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
  150. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  151. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  152. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
  154. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  156. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +20 -16
  158. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -4
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -5
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +12 -8
  170. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -18
  174. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -4
  178. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -4
  182. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  183. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  184. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +57 -45
  186. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  187. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  188. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -4
  190. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  191. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  192. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -4
  194. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  195. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -4
  198. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  199. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  201. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js +2 -0
  202. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js.map +1 -0
  203. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js +70 -0
  204. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js.map +1 -0
  205. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  206. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/Feed.es.js +247 -151
  208. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  210. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -4
  212. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  214. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -2
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +1 -0
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +1 -0
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -5
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  226. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -4
  228. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -1
  230. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -3
  232. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  234. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -4
  236. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +59 -55
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +9 -5
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -4
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -2
  252. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -4
  256. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
  260. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +16 -16
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -2
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +9 -5
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +6 -2
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -4
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -4
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +6 -2
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -2
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +6 -2
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -4
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -4
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -2
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -2
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +6 -2
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +17 -13
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +7 -3
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +60 -48
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +6 -2
  332. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  334. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -4
  336. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  337. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  338. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -24
  339. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  340. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -4
  342. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  343. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  344. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
  346. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  347. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  349. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  350. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
  352. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  353. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  354. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +24 -23
  356. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  357. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  358. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +83 -88
  360. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +1 -1
  364. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  365. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  366. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +56 -53
  368. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  369. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  370. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +23 -144
  372. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  373. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -1
  375. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  377. package/dist/shared/src/containers/Views/types.cjs.js +2 -0
  378. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -0
  379. package/dist/shared/src/containers/Views/types.es.js +15 -0
  380. package/dist/shared/src/containers/Views/types.es.js.map +1 -0
  381. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
  383. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js +2 -0
  384. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js.map +1 -0
  385. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js +5 -0
  386. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js.map +1 -0
  387. package/dist/shared/src/containers/Views/utils/portalUtils.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Views/utils/portalUtils.es.js.map +1 -1
  389. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  390. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/DetailsPanelContext.es.js +76 -77
  392. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  393. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  394. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  395. package/dist/shared/src/context/WebsocketContext.es.js +9 -5
  396. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  397. package/dist/types/api/generated/access.d.ts +6 -0
  398. package/dist/types/api/generated/graphql.d.ts +8 -4
  399. package/dist/types/api/generated/users.d.ts +6 -1
  400. package/dist/types/components/AttributeEditor/AttributeEditor.d.ts +1 -0
  401. package/dist/types/components/LinksManager/LinkManagerItem.d.ts +2 -0
  402. package/dist/types/components/LinksManager/LinksManager.styled.d.ts +6 -0
  403. package/dist/types/components/LinksManager/utils/groupLinks.d.ts +14 -0
  404. package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +1 -0
  405. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  406. package/dist/types/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.d.ts +11 -0
  407. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +1 -0
  408. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
  409. package/dist/types/containers/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +2 -2
  410. package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -2
  411. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +1 -1
  412. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -3
  413. package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +2 -1
  414. package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +1 -1
  415. package/dist/types/containers/Views/index.d.ts +1 -7
  416. package/dist/types/containers/Views/types.d.ts +10 -0
  417. package/dist/types/containers/Views/utils/isViewStudioScope.d.ts +2 -0
  418. package/dist/types/containers/Views/utils/portalUtils.d.ts +1 -1
  419. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../_virtual/jsx-runtime.cjs.js"),c=require("react"),a=require("@ynput/ayon-react-components");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const p=require("../../api/queries/entities/transformDetailsPanelData.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");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/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");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 x=require("./LinksManager.styled.cjs.js"),l=require("clsx"),m=require("../EntityIcon/EntityIcon.cjs.js"),d=({link:e,isSelected:q=!1,onEntityClick:n,onRemove:o,isManager:i=!1})=>{const s=p.detailsPanelEntityTypes.includes(e.entityType)&&!e.isRestricted;return r.jsxRuntimeExports.jsxs(x.LinkItem,{onClick:()=>s&&n?.(e.entityId,e.entityType),"data-tooltip":e.isRestricted?i?"Unknown Link - Entity not found":"Access Restricted - Insufficient Permissions to Entity":e.parents.join("/")+"/"+e.label,className:l({clickable:s,selected:q,restricted:e.isRestricted&&!i,unknown:e.isRestricted&&i}),children:[r.jsxRuntimeExports.jsx(m.EntityIcon,{entity:{entityType:e.entityType},icon:e?.icon,color:e.color}),r.jsxRuntimeExports.jsx("span",{className:"title",children:e.isRestricted?r.jsxRuntimeExports.jsx("span",{className:"label",children:i?"Unknown":"Access Restricted"}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[e.parents?.map((t,u)=>r.jsxRuntimeExports.jsxs(c.Fragment,{children:[r.jsxRuntimeExports.jsx("span",{children:t},u+"-path"),r.jsxRuntimeExports.jsx("span",{children:"/"},u+"-separator")]},u)),r.jsxRuntimeExports.jsx("span",{className:"label",children:e.label})]})}),(!e.isRestricted||i)&&r.jsxRuntimeExports.jsx(a.Button,{icon:"link_off",variant:"text",className:"remove",onClick:t=>o(t,e),"data-tooltip":"Remove link"})]},e.linkId)};exports.LinkManagerItem=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../_virtual/jsx-runtime.cjs.js"),q=require("react"),h=require("@ynput/ayon-react-components");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const g=require("../../api/queries/entities/transformDetailsPanelData.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");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/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");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 a=require("./LinksManager.styled.cjs.js"),C=require("clsx"),b=require("../EntityIcon/EntityIcon.cjs.js"),I=({link:e,count:t,isSelected:d=!1,onEntityClick:x,onRemove:m,onCountChange:y,isManager:s=!1})=>{const[c,u]=q.useState(!1),[l,n]=q.useState(t),j=r=>{r.stopPropagation(),!e.isRestricted&&(n(t),u(!0))},R=()=>{const r=Math.max(1,l);r!==t&&y?.(r),u(!1)},E=()=>{n(t),u(!1)},f=r=>{r.stopPropagation(),r.key==="Enter"?r.currentTarget.blur():r.key==="Escape"&&E()},p=g.detailsPanelEntityTypes.includes(e.entityType)&&!e.isRestricted;return i.jsxRuntimeExports.jsxs(a.LinkItem,{onClick:()=>!c&&p&&x?.(e.entityId,e.entityType),"data-tooltip":e.isRestricted?s?"Unknown Link - Entity not found":"Access Restricted - Insufficient Permissions to Entity":e.parents.join("/")+"/"+e.label,className:C({clickable:p,selected:d,restricted:e.isRestricted&&!s,unknown:e.isRestricted&&s}),children:[i.jsxRuntimeExports.jsx(b.EntityIcon,{entity:{entityType:e.entityType},icon:e?.icon,color:e.color}),i.jsxRuntimeExports.jsx("span",{className:"title",children:e.isRestricted?i.jsxRuntimeExports.jsx("span",{className:"label",children:s?"Unknown":"Access Restricted"}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[e.parents?.map((r,o)=>i.jsxRuntimeExports.jsxs(q.Fragment,{children:[i.jsxRuntimeExports.jsx("span",{children:r},o+"-path"),i.jsxRuntimeExports.jsx("span",{children:"/"},o+"-separator")]},o)),i.jsxRuntimeExports.jsx("span",{className:"label",children:e.label})]})}),!e.isRestricted&&(c?i.jsxRuntimeExports.jsx(a.CountInput,{value:l,min:1,autoFocus:!0,onChange:r=>n(parseInt(r.target.value)||1),onFocus:r=>r.target.select(),onBlur:R,onKeyDown:f,onClick:r=>r.stopPropagation(),"data-tooltip":"Number of links to this entity."}):i.jsxRuntimeExports.jsxs(a.CountBadge,{onClick:j,tabIndex:0,"data-tooltip":"Number of links to this entity.",children:["x",t]})),(!e.isRestricted||s)&&i.jsxRuntimeExports.jsx(h.Button,{icon:"link_off",variant:"text",className:"remove",onClick:r=>m(r,e),"data-tooltip":t>1?`Remove all ${t} links`:"Remove link"})]})};exports.LinkManagerItem=I;
2
2
  //# sourceMappingURL=LinkManagerItem.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkManagerItem.cjs.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button } from '@ynput/ayon-react-components'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\nimport { EntityIcon } from '@shared/components/EntityIcon'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n isManager?: boolean\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n isManager = false,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() => isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? isManager\n ? 'Unknown Link - Entity not found'\n : 'Access Restricted - Insufficient Permissions to Entity'\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted && !isManager,\n unknown: link.isRestricted && isManager,\n })}\n >\n <EntityIcon entity={{entityType: link.entityType}} icon={link?.icon} color={link.color} />\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">{isManager ? 'Unknown' : 'Access Restricted'}</span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n {(!link.isRestricted || isManager) && (\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={'Remove link'}\n />\n )}\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","isSelected","onEntityClick","onRemove","isManager","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","EntityIcon","Fragment","part","index","Button","e"],"mappings":"0+JAgBaA,EAA4C,CAAC,CACxD,KAAAC,EACA,WAAAC,EAAa,GACb,cAAAC,EACA,SAAAC,EACA,UAAAC,EAAY,EACd,IAAM,CAEJ,MAAMC,EADsBC,EAAAA,wBAAwB,SAASN,EAAK,UAAiB,GACxC,CAACA,EAAK,aACjD,OACEO,EAAAA,kBAAAA,KAACC,EAAAA,SAAA,CAEC,QAAS,IAAMH,GAAeH,IAAgBF,EAAK,SAAUA,EAAK,UAAU,EAC5E,eACEA,EAAK,aACDI,EACE,kCACA,yDACFJ,EAAK,QAAQ,KAAK,GAAG,EAAI,IAAMA,EAAK,MAE1C,UAAWS,EAAK,CACd,UAAWJ,EACX,SAAUJ,EACV,WAAYD,EAAK,cAAgB,CAACI,EAClC,QAASJ,EAAK,cAAgBI,CAAA,CAC/B,EAED,SAAA,CAAAM,EAAAA,kBAAAA,IAACC,EAAAA,WAAA,CAAW,OAAQ,CAAC,WAAYX,EAAK,UAAA,EAAa,KAAMA,GAAM,KAAM,MAAOA,EAAK,KAAA,CAAO,EACxFU,wBAAC,OAAA,CAAK,UAAU,QACb,WAAK,aACJA,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,QAAS,SAAAN,EAAY,UAAY,mBAAA,CAAoB,EAErEG,EAAAA,kBAAAA,KAAAK,6BAAA,CACG,SAAA,CAAAZ,EAAK,SAAS,IAAI,CAACa,EAAMC,IACxBP,EAAAA,kBAAAA,KAACK,WAAA,CACC,SAAA,CAAAF,EAAAA,kBAAAA,IAAC,OAAA,CAA4B,SAAAG,CAAA,EAAlBC,EAAQ,OAAe,EAClCJ,EAAAA,kBAAAA,IAAC,OAAA,CAAgC,SAAA,GAAA,EAAtBI,EAAQ,YAAe,CAAA,CAAA,EAFrBA,CAGf,CACD,EACDJ,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,QAAS,WAAK,KAAA,CAAM,CAAA,CAAA,CACtC,CAAA,CAEJ,GACE,CAACV,EAAK,cAAgBI,IACtBM,EAAAA,kBAAAA,IAACK,EAAAA,OAAA,CACC,KAAM,WACN,QAAQ,OACR,UAAU,SACV,QAAUC,GAAMb,EAASa,EAAGhB,CAAI,EAChC,eAAc,aAAA,CAAA,CAChB,CAAA,EAvCGA,EAAK,MAAA,CA2ChB"}
1
+ {"version":3,"file":"LinkManagerItem.cjs.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment, useState } from 'react'\nimport { Button } from '@ynput/ayon-react-components'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\nimport { EntityIcon } from '@shared/components/EntityIcon'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n count: number\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n onCountChange?: (newCount: number) => void\n isManager?: boolean\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n count,\n isSelected = false,\n onEntityClick,\n onRemove,\n onCountChange,\n isManager = false,\n}) => {\n const [isEditingCount, setIsEditingCount] = useState(false)\n const [editValue, setEditValue] = useState(count)\n\n const handleBadgeClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (link.isRestricted) return\n setEditValue(count)\n setIsEditingCount(true)\n }\n\n const commitCount = () => {\n const newCount = Math.max(1, editValue)\n if (newCount !== count) {\n onCountChange?.(newCount)\n }\n setIsEditingCount(false)\n }\n\n const cancelEdit = () => {\n setEditValue(count)\n setIsEditingCount(false)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n e.stopPropagation()\n if (e.key === 'Enter') {\n e.currentTarget.blur()\n } else if (e.key === 'Escape') {\n cancelEdit()\n }\n }\n\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n return (\n <Styled.LinkItem\n onClick={() => !isEditingCount && isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? isManager\n ? 'Unknown Link - Entity not found'\n : 'Access Restricted - Insufficient Permissions to Entity'\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted && !isManager,\n unknown: link.isRestricted && isManager,\n })}\n >\n <EntityIcon entity={{entityType: link.entityType}} icon={link?.icon} color={link.color} />\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">{isManager ? 'Unknown' : 'Access Restricted'}</span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n {!link.isRestricted && (\n isEditingCount ? (\n <Styled.CountInput\n value={editValue}\n min={1}\n autoFocus\n onChange={(e) => setEditValue(parseInt(e.target.value) || 1)}\n onFocus={(e) => e.target.select()}\n onBlur={commitCount}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n data-tooltip=\"Number of links to this entity.\"\n />\n ) : (\n <Styled.CountBadge\n onClick={handleBadgeClick}\n tabIndex={0}\n data-tooltip=\"Number of links to this entity.\"\n >\n x{count}\n </Styled.CountBadge>\n )\n )}\n {(!link.isRestricted || isManager) && (\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={count > 1 ? `Remove all ${count} links` : 'Remove link'}\n />\n )}\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","count","isSelected","onEntityClick","onRemove","onCountChange","isManager","isEditingCount","setIsEditingCount","useState","editValue","setEditValue","handleBadgeClick","e","commitCount","newCount","cancelEdit","handleKeyDown","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","EntityIcon","Fragment","part","index","Styled.CountInput","Styled.CountBadge","Button"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { j as o } from "../../../../_virtual/jsx-runtime.es.js";
2
- import { Fragment as n } from "react";
3
- import { Button as a } from "@ynput/ayon-react-components";
1
+ import { j as i } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { useState as l, Fragment as R } from "react";
3
+ import { Button as E } from "@ynput/ayon-react-components";
4
4
  import "../../api/base/client.es.js";
5
5
  import "../../api/generated/graphql.es.js";
6
6
  import "../../api/generated/graphqlLinks.es.js";
@@ -56,7 +56,7 @@ import "../../api/queries/config/getConfig.es.js";
56
56
  import "../../api/queries/config/updateConfig.es.js";
57
57
  import "../../api/queries/entities/getEntity.es.js";
58
58
  import "../../api/queries/entities/getEntityPanel.es.js";
59
- import { detailsPanelEntityTypes as d } from "../../api/queries/entities/transformDetailsPanelData.es.js";
59
+ import { detailsPanelEntityTypes as b } from "../../api/queries/entities/transformDetailsPanelData.es.js";
60
60
  import "../../api/queries/entities/updateEntity.es.js";
61
61
  import "../../api/queries/entityLists/getLists.es.js";
62
62
  import "../../api/queries/entityLists/updateLists.es.js";
@@ -91,53 +91,88 @@ import "../../api/queries/views/getViews.es.js";
91
91
  import "../../api/queries/views/updateViews.es.js";
92
92
  import "../../api/queries/watchers/getWatchers.es.js";
93
93
  import "../../api/queries/uris/getUris.es.js";
94
- import { LinkItem as l } from "./LinksManager.styled.es.js";
95
- import y from "clsx";
96
- import { EntityIcon as f } from "../EntityIcon/EntityIcon.es.js";
97
- const po = ({
94
+ import { LinkItem as g, CountInput as I, CountBadge as T } from "./LinksManager.styled.es.js";
95
+ import N from "clsx";
96
+ import { EntityIcon as v } from "../EntityIcon/EntityIcon.es.js";
97
+ const jo = ({
98
98
  link: t,
99
- isSelected: e = !1,
100
- onEntityClick: s,
101
- onRemove: c,
102
- isManager: r = !1
99
+ count: r,
100
+ isSelected: d = !1,
101
+ onEntityClick: u,
102
+ onRemove: y,
103
+ onCountChange: f,
104
+ isManager: p = !1
103
105
  }) => {
104
- const m = d.includes(t.entityType) && !t.isRestricted;
105
- return /* @__PURE__ */ o.jsxs(
106
- l,
106
+ const [n, m] = l(!1), [a, e] = l(r), x = (o) => {
107
+ o.stopPropagation(), !t.isRestricted && (e(r), m(!0));
108
+ }, h = () => {
109
+ const o = Math.max(1, a);
110
+ o !== r && f?.(o), m(!1);
111
+ }, j = () => {
112
+ e(r), m(!1);
113
+ }, C = (o) => {
114
+ o.stopPropagation(), o.key === "Enter" ? o.currentTarget.blur() : o.key === "Escape" && j();
115
+ }, c = b.includes(t.entityType) && !t.isRestricted;
116
+ return /* @__PURE__ */ i.jsxs(
117
+ g,
107
118
  {
108
- onClick: () => m && s?.(t.entityId, t.entityType),
109
- "data-tooltip": t.isRestricted ? r ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : t.parents.join("/") + "/" + t.label,
110
- className: y({
111
- clickable: m,
112
- selected: e,
113
- restricted: t.isRestricted && !r,
114
- unknown: t.isRestricted && r
119
+ onClick: () => !n && c && u?.(t.entityId, t.entityType),
120
+ "data-tooltip": t.isRestricted ? p ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : t.parents.join("/") + "/" + t.label,
121
+ className: N({
122
+ clickable: c,
123
+ selected: d,
124
+ restricted: t.isRestricted && !p,
125
+ unknown: t.isRestricted && p
115
126
  }),
116
127
  children: [
117
- /* @__PURE__ */ o.jsx(f, { entity: { entityType: t.entityType }, icon: t?.icon, color: t.color }),
118
- /* @__PURE__ */ o.jsx("span", { className: "title", children: t.isRestricted ? /* @__PURE__ */ o.jsx("span", { className: "label", children: r ? "Unknown" : "Access Restricted" }) : /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
119
- t.parents?.map((i, p) => /* @__PURE__ */ o.jsxs(n, { children: [
120
- /* @__PURE__ */ o.jsx("span", { children: i }, p + "-path"),
121
- /* @__PURE__ */ o.jsx("span", { children: "/" }, p + "-separator")
122
- ] }, p)),
123
- /* @__PURE__ */ o.jsx("span", { className: "label", children: t.label })
128
+ /* @__PURE__ */ i.jsx(v, { entity: { entityType: t.entityType }, icon: t?.icon, color: t.color }),
129
+ /* @__PURE__ */ i.jsx("span", { className: "title", children: t.isRestricted ? /* @__PURE__ */ i.jsx("span", { className: "label", children: p ? "Unknown" : "Access Restricted" }) : /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
130
+ t.parents?.map((o, s) => /* @__PURE__ */ i.jsxs(R, { children: [
131
+ /* @__PURE__ */ i.jsx("span", { children: o }, s + "-path"),
132
+ /* @__PURE__ */ i.jsx("span", { children: "/" }, s + "-separator")
133
+ ] }, s)),
134
+ /* @__PURE__ */ i.jsx("span", { className: "label", children: t.label })
124
135
  ] }) }),
125
- (!t.isRestricted || r) && /* @__PURE__ */ o.jsx(
126
- a,
136
+ !t.isRestricted && (n ? /* @__PURE__ */ i.jsx(
137
+ I,
138
+ {
139
+ value: a,
140
+ min: 1,
141
+ autoFocus: !0,
142
+ onChange: (o) => e(parseInt(o.target.value) || 1),
143
+ onFocus: (o) => o.target.select(),
144
+ onBlur: h,
145
+ onKeyDown: C,
146
+ onClick: (o) => o.stopPropagation(),
147
+ "data-tooltip": "Number of links to this entity."
148
+ }
149
+ ) : /* @__PURE__ */ i.jsxs(
150
+ T,
151
+ {
152
+ onClick: x,
153
+ tabIndex: 0,
154
+ "data-tooltip": "Number of links to this entity.",
155
+ children: [
156
+ "x",
157
+ r
158
+ ]
159
+ }
160
+ )),
161
+ (!t.isRestricted || p) && /* @__PURE__ */ i.jsx(
162
+ E,
127
163
  {
128
164
  icon: "link_off",
129
165
  variant: "text",
130
166
  className: "remove",
131
- onClick: (i) => c(i, t),
132
- "data-tooltip": "Remove link"
167
+ onClick: (o) => y(o, t),
168
+ "data-tooltip": r > 1 ? `Remove all ${r} links` : "Remove link"
133
169
  }
134
170
  )
135
171
  ]
136
- },
137
- t.linkId
172
+ }
138
173
  );
139
174
  };
140
175
  export {
141
- po as LinkManagerItem
176
+ jo as LinkManagerItem
142
177
  };
143
178
  //# sourceMappingURL=LinkManagerItem.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkManagerItem.es.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button } from '@ynput/ayon-react-components'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\nimport { EntityIcon } from '@shared/components/EntityIcon'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n isManager?: boolean\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n isManager = false,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() => isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? isManager\n ? 'Unknown Link - Entity not found'\n : 'Access Restricted - Insufficient Permissions to Entity'\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted && !isManager,\n unknown: link.isRestricted && isManager,\n })}\n >\n <EntityIcon entity={{entityType: link.entityType}} icon={link?.icon} color={link.color} />\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">{isManager ? 'Unknown' : 'Access Restricted'}</span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n {(!link.isRestricted || isManager) && (\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={'Remove link'}\n />\n )}\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","isSelected","onEntityClick","onRemove","isManager","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","EntityIcon","Fragment","part","index","Button","e"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,KAA4C,CAAC;AAAA,EACxD,MAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAM;AAEJ,QAAMC,IADsBC,EAAwB,SAASN,EAAK,UAAiB,KACxC,CAACA,EAAK;AACjD,SACEO,gBAAAA,EAAAA;AAAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,SAAS,MAAMH,KAAeH,IAAgBF,EAAK,UAAUA,EAAK,UAAU;AAAA,MAC5E,gBACEA,EAAK,eACDI,IACE,oCACA,2DACFJ,EAAK,QAAQ,KAAK,GAAG,IAAI,MAAMA,EAAK;AAAA,MAE1C,WAAWS,EAAK;AAAA,QACd,WAAWJ;AAAA,QACX,UAAUJ;AAAA,QACV,YAAYD,EAAK,gBAAgB,CAACI;AAAA,QAClC,SAASJ,EAAK,gBAAgBI;AAAA,MAAA,CAC/B;AAAA,MAED,UAAA;AAAA,QAAAM,gBAAAA,EAAAA,IAACC,GAAA,EAAW,QAAQ,EAAC,YAAYX,EAAK,WAAA,GAAa,MAAMA,GAAM,MAAM,OAAOA,EAAK,MAAA,CAAO;AAAA,QACxFU,gBAAAA,MAAC,QAAA,EAAK,WAAU,SACb,YAAK,eACJA,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,SAAS,UAAAN,IAAY,YAAY,oBAAA,CAAoB,IAErEG,gBAAAA,EAAAA,KAAAK,YAAA,EACG,UAAA;AAAA,UAAAZ,EAAK,SAAS,IAAI,CAACa,GAAMC,MACxBP,gBAAAA,EAAAA,KAACK,GAAA,EACC,UAAA;AAAA,YAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAA4B,UAAAG,EAAA,GAAlBC,IAAQ,OAAe;AAAA,YAClCJ,gBAAAA,EAAAA,IAAC,QAAA,EAAgC,UAAA,IAAA,GAAtBI,IAAQ,YAAe;AAAA,UAAA,EAAA,GAFrBA,CAGf,CACD;AAAA,UACDJ,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,SAAS,YAAK,MAAA,CAAM;AAAA,QAAA,EAAA,CACtC,EAAA,CAEJ;AAAA,SACE,CAACV,EAAK,gBAAgBI,MACtBM,gBAAAA,EAAAA;AAAAA,UAACK;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,CAACC,MAAMb,EAASa,GAAGhB,CAAI;AAAA,YAChC,gBAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB;AAAA,IAAA;AAAA,IAvCGA,EAAK;AAAA,EAAA;AA2ChB;"}
1
+ {"version":3,"file":"LinkManagerItem.es.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment, useState } from 'react'\nimport { Button } from '@ynput/ayon-react-components'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\nimport { EntityIcon } from '@shared/components/EntityIcon'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n count: number\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n onCountChange?: (newCount: number) => void\n isManager?: boolean\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n count,\n isSelected = false,\n onEntityClick,\n onRemove,\n onCountChange,\n isManager = false,\n}) => {\n const [isEditingCount, setIsEditingCount] = useState(false)\n const [editValue, setEditValue] = useState(count)\n\n const handleBadgeClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (link.isRestricted) return\n setEditValue(count)\n setIsEditingCount(true)\n }\n\n const commitCount = () => {\n const newCount = Math.max(1, editValue)\n if (newCount !== count) {\n onCountChange?.(newCount)\n }\n setIsEditingCount(false)\n }\n\n const cancelEdit = () => {\n setEditValue(count)\n setIsEditingCount(false)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n e.stopPropagation()\n if (e.key === 'Enter') {\n e.currentTarget.blur()\n } else if (e.key === 'Escape') {\n cancelEdit()\n }\n }\n\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n return (\n <Styled.LinkItem\n onClick={() => !isEditingCount && isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? isManager\n ? 'Unknown Link - Entity not found'\n : 'Access Restricted - Insufficient Permissions to Entity'\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted && !isManager,\n unknown: link.isRestricted && isManager,\n })}\n >\n <EntityIcon entity={{entityType: link.entityType}} icon={link?.icon} color={link.color} />\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">{isManager ? 'Unknown' : 'Access Restricted'}</span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n {!link.isRestricted && (\n isEditingCount ? (\n <Styled.CountInput\n value={editValue}\n min={1}\n autoFocus\n onChange={(e) => setEditValue(parseInt(e.target.value) || 1)}\n onFocus={(e) => e.target.select()}\n onBlur={commitCount}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n data-tooltip=\"Number of links to this entity.\"\n />\n ) : (\n <Styled.CountBadge\n onClick={handleBadgeClick}\n tabIndex={0}\n data-tooltip=\"Number of links to this entity.\"\n >\n x{count}\n </Styled.CountBadge>\n )\n )}\n {(!link.isRestricted || isManager) && (\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={count > 1 ? `Remove all ${count} links` : 'Remove link'}\n />\n )}\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","count","isSelected","onEntityClick","onRemove","onCountChange","isManager","isEditingCount","setIsEditingCount","useState","editValue","setEditValue","handleBadgeClick","e","commitCount","newCount","cancelEdit","handleKeyDown","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","EntityIcon","Fragment","part","index","Styled.CountInput","Styled.CountBadge","Button"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/jsx-runtime.cjs.js"),I=require("react"),i=require("./LinksManager.styled.cjs.js"),S=require("lodash");require("react-toastify");const q=require("../../util/getEntityId.cjs.js");require("../../util/pubsub.cjs.js");const L=require("./hooks/useUpdateLinks.cjs.js"),M=require("./AddNewLinks.cjs.js"),v=require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js"),b=require("./LinkManagerItem.cjs.js"),C=require("@ynput/ayon-react-components");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/SubtasksModulesContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("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");const T=require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const P=({linkTypeLabel:p,direction:u,links:a=[],projectName:n,entityId:m,entityType:y,linkType:g,targetEntityType:s,folderId:d,selectedEntityIds:j=[],onClose:c,onEntityClick:E})=>{const{user:l}=T.useGlobalContext(),R=l?.data?.isAdmin||l?.data?.isManager,o=L({projectName:n,direction:u,entityId:m,entityType:y,targetEntityType:s,linkType:g}),[k,x]=I.useState(null),h=(t,r)=>{t.stopPropagation(),o.remove([{id:r.linkId,target:{entityId:r.entityId,entityType:r.entityType}}])};return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs(i.Container,{children:[e.jsxRuntimeExports.jsxs(i.Header,{children:[S.upperFirst(p)," links (",u,")",e.jsxRuntimeExports.jsx(C.Button,{icon:"close",variant:"text",className:"remove",onClick:c,"data-shortcut":"Escape","data-tooltip-delay":500})]}),e.jsxRuntimeExports.jsxs(i.LinksList,{children:[a?.map(t=>e.jsxRuntimeExports.jsx(b.LinkManagerItem,{link:t,isSelected:j.includes(t.entityId),onEntityClick:E,onRemove:h,isManager:R},t.linkId)),a.length===0&&e.jsxRuntimeExports.jsx(i.SubHeader,{children:"No links yet"})]}),e.jsxRuntimeExports.jsx(M,{targetEntityType:s,projectName:n,onClose:c,onAdd:t=>o.add([{targetEntityId:t,linkId:q.getEntityId()}]),onSearchTypeChange:x})]}),k==="picker"&&e.jsxRuntimeExports.jsx(v.EntityPickerDialog,{onClose:()=>x(null),projectName:n,entityType:s,initialSelection:d?{folder:{[d]:!0}}:void 0,onSubmit:t=>o.add(t.map(r=>({targetEntityId:r,linkId:q.getEntityId()}))),isMultiSelect:!0})]})};exports.LinksManager=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../../../_virtual/jsx-runtime.cjs.js"),E=require("react"),o=require("./LinksManager.styled.cjs.js"),D=require("lodash");require("react-toastify");const d=require("../../util/getEntityId.cjs.js");require("../../util/pubsub.cjs.js");const P=require("./hooks/useUpdateLinks.cjs.js"),G=require("./AddNewLinks.cjs.js"),H=require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js"),w=require("./LinkManagerItem.cjs.js"),B=require("@ynput/ayon-react-components");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/SubtasksModulesContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("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");const F=require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const K=require("./utils/groupLinks.cjs.js"),O=({linkTypeLabel:I,direction:l,links:m=[],projectName:a,entityId:j,entityType:g,linkType:h,targetEntityType:u,folderId:y,selectedEntityIds:v=[],onClose:x,onEntityClick:R})=>{const{user:q}=F.useGlobalContext(),L=q?.data?.isAdmin||q?.data?.isManager,i=P({projectName:a,direction:l,entityId:j,entityType:g,targetEntityType:u,linkType:h}),[C,p]=E.useState(null),[M,S]=E.useState({}),f=K.groupLinksByEntity(m),k=e=>{const t=M[e.groupKey];return t!==void 0&&t!==e.count?t:e.count},T=(e,t)=>{e.stopPropagation(),i.remove(t.linkIds.map(c=>({id:c,target:{entityId:t.entityId,entityType:t.representative.entityType}})))},b=(e,t)=>{const c=k(e);S(r=>({...r,[e.groupKey]:t}));const s=t-c;if(s>0){const r=Array.from({length:s},()=>({targetEntityId:e.entityId,linkId:d.getEntityId()}));i.add(r)}else if(s<0){const r=e.linkIds.slice(s).map(A=>({id:A,target:{entityId:e.entityId,entityType:e.representative.entityType}}));i.remove(r)}};return n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsxs(o.Container,{onMouseDown:e=>{e.target!==document.activeElement&&document.activeElement instanceof HTMLInputElement&&document.activeElement.blur()},children:[n.jsxRuntimeExports.jsxs(o.Header,{children:[D.upperFirst(I)," links (",l,")",n.jsxRuntimeExports.jsx(B.Button,{icon:"close",variant:"text",className:"remove",onClick:x,"data-shortcut":"Escape","data-tooltip-delay":500})]}),n.jsxRuntimeExports.jsxs(o.LinksList,{children:[f.map(e=>n.jsxRuntimeExports.jsx(w.LinkManagerItem,{link:e.representative,count:k(e),isSelected:v.includes(e.entityId),onEntityClick:R,onRemove:t=>T(t,e),onCountChange:t=>b(e,t),isManager:L},e.representative.linkId)),m.length===0&&n.jsxRuntimeExports.jsx(o.SubHeader,{children:"No links yet"})]}),n.jsxRuntimeExports.jsx(G,{targetEntityType:u,projectName:a,onClose:x,onAdd:e=>i.add([{targetEntityId:e,linkId:d.getEntityId()}]),onSearchTypeChange:p})]}),C==="picker"&&n.jsxRuntimeExports.jsx(H.EntityPickerDialog,{onClose:()=>p(null),projectName:a,entityType:u,initialSelection:y?{folder:{[y]:!0}}:void 0,onSubmit:e=>i.add(e.map(t=>({targetEntityId:t,linkId:d.getEntityId()}))),isMultiSelect:!0})]})};exports.LinksManager=O;
2
2
  //# sourceMappingURL=LinksManager.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinksManager.cjs.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'\nimport { useGlobalContext } from '@shared/context'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n color?: string // color from folder/task type anatomy\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 { user } = useGlobalContext()\n const isManager = user?.data?.isAdmin || user?.data?.isManager\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 isManager={isManager}\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","user","useGlobalContext","isManager","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","e","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":"k6CAqCO,MAAMA,EAAsC,CAAC,CAClD,cAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,CAAA,EACR,YAAAC,EACA,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,kBAAAC,EAAoB,CAAA,EACpB,QAAAC,EACA,cAAAC,CACF,IAAM,CACJ,KAAM,CAAE,KAAAC,CAAA,EAASC,mBAAA,EACXC,EAAYF,GAAM,MAAM,SAAWA,GAAM,MAAM,UAE/CG,EAAeC,EAAe,CAClC,YAAAb,EACA,UAAAF,EACA,SAAAG,EACA,WAAAC,EACA,iBAAAE,EACA,SAAAD,CAAA,CACD,EAEK,CAACW,EAAYC,CAAa,EAAIC,EAAAA,SAAyB,IAAI,EAE3DC,EAAe,CAACC,EAAwCC,IAAqB,CAEjFD,EAAE,gBAAA,EAEFN,EAAa,OAAO,CAClB,CACE,GAAIO,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,SAAU,WAAYA,EAAK,UAAA,CAAW,CACjE,CACD,CACH,EAEA,OACEC,EAAAA,kBAAAA,KAAAC,6BAAA,CACE,SAAA,CAAAD,yBAACE,EAAAA,UAAA,CACC,SAAA,CAAAF,yBAACG,EAAAA,OAAA,CACE,SAAA,CAAAC,EAAAA,WAAW3B,CAAa,EAAE,WAASC,EAAU,IAC9C2B,EAAAA,kBAAAA,IAACC,EAAAA,OAAA,CACC,KAAM,QACN,QAAQ,OACR,UAAU,SACV,QAASnB,EACT,gBAAe,SACf,qBAAoB,GAAA,CAAA,CACtB,EACF,EACAa,yBAACO,EAAAA,UAAA,CACE,SAAA,CAAA5B,GAAO,IAAKoB,GACXM,EAAAA,kBAAAA,IAACG,EAAAA,gBAAA,CAEC,KAAAT,EACA,WAAYb,EAAkB,SAASa,EAAK,QAAQ,EACpD,cAAAX,EACA,SAAUS,EACV,UAAAN,CAAA,EALKQ,EAAK,MAAA,CAOb,EACApB,EAAM,SAAW,2BAAM8B,EAAAA,UAAA,CAAiB,SAAA,cAAA,CAAY,CAAA,EACvD,EACAJ,EAAAA,kBAAAA,IAACK,EAAA,CACC,iBAAA1B,EACA,YAAAJ,EACA,QAAAO,EACA,MAAQwB,GAAOnB,EAAa,IAAI,CAAC,CAAE,eAAgBmB,EAAI,OAAQC,EAAAA,YAAA,CAAY,CAAG,CAAC,EAC/E,mBAAoBjB,CAAA,CAAA,CACtB,EACF,EACCD,IAAe,UACdW,EAAAA,kBAAAA,IAACQ,EAAAA,mBAAA,CACC,QAAS,IAAMlB,EAAc,IAAI,EACjC,YAAAf,EACA,WAAYI,EACZ,iBAAkBC,EAAW,CAAE,OAAQ,CAAE,CAACA,CAAQ,EAAG,EAAA,CAAK,EAAM,OAChE,SAAW6B,GACTtB,EAAa,IAAIsB,EAAE,IAAKH,IAAQ,CAAE,eAAgBA,EAAI,OAAQC,EAAAA,YAAA,CAAY,EAAI,CAAC,EAEjF,cAAa,EAAA,CAAA,CACf,EAEJ,CAEJ"}
1
+ {"version":3,"file":"LinksManager.cjs.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'\nimport { useGlobalContext } from '@shared/context'\nimport { groupLinksByEntity, GroupedLink } from './utils/groupLinks'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n color?: string // color from folder/task type anatomy\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 { user } = useGlobalContext()\n const isManager = user?.data?.isAdmin || user?.data?.isManager\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 // Optimistic counts for immediate UI feedback (creates are not optimistic in the cache)\n const [optimisticCounts, setOptimisticCounts] = useState<Record<string, number>>({})\n\n const groupedLinks = groupLinksByEntity(links)\n\n // Get display count: use optimistic value until real data catches up\n const getDisplayCount = (group: GroupedLink) => {\n const optimistic = optimisticCounts[group.groupKey]\n if (optimistic !== undefined && optimistic !== group.count) {\n return optimistic\n }\n return group.count\n }\n\n const handleRemoveGroup = (e: React.MouseEvent<HTMLButtonElement>, group: GroupedLink) => {\n e.stopPropagation()\n\n linksUpdater.remove(\n group.linkIds.map((id) => ({\n id,\n target: { entityId: group.entityId, entityType: group.representative.entityType },\n })),\n )\n }\n\n const handleCountChange = (group: GroupedLink, newCount: number) => {\n const currentCount = getDisplayCount(group)\n // Set optimistic count immediately for instant UI feedback\n setOptimisticCounts((prev) => ({ ...prev, [group.groupKey]: newCount }))\n\n const diff = newCount - currentCount\n if (diff > 0) {\n // Add more links\n const newLinks = Array.from({ length: diff }, () => ({\n targetEntityId: group.entityId,\n linkId: getEntityId(),\n }))\n linksUpdater.add(newLinks)\n } else if (diff < 0) {\n // Remove links from the end (diff is negative, so slice(-3) takes last 3)\n const linksToRemove = group.linkIds.slice(diff).map((id) => ({\n id,\n target: { entityId: group.entityId, entityType: group.representative.entityType },\n }))\n linksUpdater.remove(linksToRemove)\n }\n }\n\n return (\n <>\n <Styled.Container\n onMouseDown={(e) => {\n // Blur active input when clicking anywhere in the dialog (so count input commits)\n if (e.target !== document.activeElement && document.activeElement instanceof HTMLInputElement) {\n document.activeElement.blur()\n }\n }}\n >\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 {groupedLinks.map((group) => (\n <LinkManagerItem\n key={group.representative.linkId}\n link={group.representative}\n count={getDisplayCount(group)}\n isSelected={selectedEntityIds.includes(group.entityId)}\n onEntityClick={onEntityClick}\n onRemove={(e) => handleRemoveGroup(e, group)}\n onCountChange={(newCount) => handleCountChange(group, newCount)}\n isManager={isManager}\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","user","useGlobalContext","isManager","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","optimisticCounts","setOptimisticCounts","groupedLinks","groupLinksByEntity","getDisplayCount","group","optimistic","handleRemoveGroup","id","handleCountChange","newCount","currentCount","prev","diff","newLinks","getEntityId","linksToRemove","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","e","Styled.SubHeader","AddNewLinks","EntityPickerDialog","s"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { j as t } from "../../../../_virtual/jsx-runtime.es.js";
2
- import { useState as S } from "react";
3
- import { Container as v, Header as L, LinksList as M, SubHeader as C } from "./LinksManager.styled.es.js";
4
- import { upperFirst as E } from "lodash";
1
+ import { j as i } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { useState as I } from "react";
3
+ import { Container as D, Header as H, LinksList as w, SubHeader as B } from "./LinksManager.styled.es.js";
4
+ import { upperFirst as F } from "lodash";
5
5
  import "react-toastify";
6
- import { getEntityId as c } from "../../util/getEntityId.es.js";
6
+ import { getEntityId as d } from "../../util/getEntityId.es.js";
7
7
  import "../../util/pubsub.es.js";
8
- import T from "./hooks/useUpdateLinks.es.js";
9
- import b from "./AddNewLinks.es.js";
10
- import { EntityPickerDialog as A } from "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
11
- import { LinkManagerItem as R } from "./LinkManagerItem.es.js";
12
- import { Button as F } from "@ynput/ayon-react-components";
8
+ import G from "./hooks/useUpdateLinks.es.js";
9
+ import K from "./AddNewLinks.es.js";
10
+ import { EntityPickerDialog as P } from "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
11
+ import { LinkManagerItem as U } from "./LinkManagerItem.es.js";
12
+ import { Button as N } from "@ynput/ayon-react-components";
13
13
  import "../../context/RemoteModulesContext.es.js";
14
14
  import "../../context/DetailsPanelContext.es.js";
15
15
  import "../../context/SubtasksModulesContext.es.js";
@@ -24,97 +24,128 @@ import "../../context/PowerpackContext.es.js";
24
24
  import "../../context/MoveEntityContext.es.js";
25
25
  import "../../context/MenuContext.es.js";
26
26
  import "../../context/WebsocketContext.es.js";
27
- import { useGlobalContext as H } from "../../context/GlobalContext.es.js";
27
+ import { useGlobalContext as O } from "../../context/GlobalContext.es.js";
28
28
  import "../../context/ProjectContext.es.js";
29
29
  import "../../context/ProjectFoldersContext.es.js";
30
30
  import "../../context/UriContext.es.js";
31
- const dt = ({
32
- linkTypeLabel: u,
33
- direction: m,
34
- links: s = [],
35
- projectName: o,
36
- entityId: x,
37
- entityType: y,
38
- linkType: h,
39
- targetEntityType: e,
40
- folderId: p,
41
- selectedEntityIds: f = [],
42
- onClose: a,
43
- onEntityClick: g
31
+ import { groupLinksByEntity as q } from "./utils/groupLinks.es.js";
32
+ const Ct = ({
33
+ linkTypeLabel: h,
34
+ direction: p,
35
+ links: c = [],
36
+ projectName: s,
37
+ entityId: v,
38
+ entityType: x,
39
+ linkType: C,
40
+ targetEntityType: m,
41
+ folderId: l,
42
+ selectedEntityIds: E = [],
43
+ onClose: y,
44
+ onEntityClick: L
44
45
  }) => {
45
- const { user: d } = H(), k = d?.data?.isAdmin || d?.data?.isManager, n = T({
46
- projectName: o,
47
- direction: m,
48
- entityId: x,
49
- entityType: y,
50
- targetEntityType: e,
51
- linkType: h
52
- }), [I, l] = S(null), j = (i, r) => {
53
- i.stopPropagation(), n.remove([
46
+ const { user: u } = O(), j = u?.data?.isAdmin || u?.data?.isManager, n = G({
47
+ projectName: s,
48
+ direction: p,
49
+ entityId: v,
50
+ entityType: x,
51
+ targetEntityType: m,
52
+ linkType: C
53
+ }), [g, k] = I(null), [S, T] = I({}), M = q(c), f = (t) => {
54
+ const e = S[t.groupKey];
55
+ return e !== void 0 && e !== t.count ? e : t.count;
56
+ }, b = (t, e) => {
57
+ t.stopPropagation(), n.remove(
58
+ e.linkIds.map((a) => ({
59
+ id: a,
60
+ target: { entityId: e.entityId, entityType: e.representative.entityType }
61
+ }))
62
+ );
63
+ }, A = (t, e) => {
64
+ const a = f(t);
65
+ T((o) => ({ ...o, [t.groupKey]: e }));
66
+ const r = e - a;
67
+ if (r > 0) {
68
+ const o = Array.from({ length: r }, () => ({
69
+ targetEntityId: t.entityId,
70
+ linkId: d()
71
+ }));
72
+ n.add(o);
73
+ } else if (r < 0) {
74
+ const o = t.linkIds.slice(r).map((R) => ({
75
+ id: R,
76
+ target: { entityId: t.entityId, entityType: t.representative.entityType }
77
+ }));
78
+ n.remove(o);
79
+ }
80
+ };
81
+ return /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
82
+ /* @__PURE__ */ i.jsxs(
83
+ D,
54
84
  {
55
- id: r.linkId,
56
- target: { entityId: r.entityId, entityType: r.entityType }
85
+ onMouseDown: (t) => {
86
+ t.target !== document.activeElement && document.activeElement instanceof HTMLInputElement && document.activeElement.blur();
87
+ },
88
+ children: [
89
+ /* @__PURE__ */ i.jsxs(H, { children: [
90
+ F(h),
91
+ " links (",
92
+ p,
93
+ ")",
94
+ /* @__PURE__ */ i.jsx(
95
+ N,
96
+ {
97
+ icon: "close",
98
+ variant: "text",
99
+ className: "remove",
100
+ onClick: y,
101
+ "data-shortcut": "Escape",
102
+ "data-tooltip-delay": 500
103
+ }
104
+ )
105
+ ] }),
106
+ /* @__PURE__ */ i.jsxs(w, { children: [
107
+ M.map((t) => /* @__PURE__ */ i.jsx(
108
+ U,
109
+ {
110
+ link: t.representative,
111
+ count: f(t),
112
+ isSelected: E.includes(t.entityId),
113
+ onEntityClick: L,
114
+ onRemove: (e) => b(e, t),
115
+ onCountChange: (e) => A(t, e),
116
+ isManager: j
117
+ },
118
+ t.representative.linkId
119
+ )),
120
+ c.length === 0 && /* @__PURE__ */ i.jsx(B, { children: "No links yet" })
121
+ ] }),
122
+ /* @__PURE__ */ i.jsx(
123
+ K,
124
+ {
125
+ targetEntityType: m,
126
+ projectName: s,
127
+ onClose: y,
128
+ onAdd: (t) => n.add([{ targetEntityId: t, linkId: d() }]),
129
+ onSearchTypeChange: k
130
+ }
131
+ )
132
+ ]
57
133
  }
58
- ]);
59
- };
60
- return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
61
- /* @__PURE__ */ t.jsxs(v, { children: [
62
- /* @__PURE__ */ t.jsxs(L, { children: [
63
- E(u),
64
- " links (",
65
- m,
66
- ")",
67
- /* @__PURE__ */ t.jsx(
68
- F,
69
- {
70
- icon: "close",
71
- variant: "text",
72
- className: "remove",
73
- onClick: a,
74
- "data-shortcut": "Escape",
75
- "data-tooltip-delay": 500
76
- }
77
- )
78
- ] }),
79
- /* @__PURE__ */ t.jsxs(M, { children: [
80
- s?.map((i) => /* @__PURE__ */ t.jsx(
81
- R,
82
- {
83
- link: i,
84
- isSelected: f.includes(i.entityId),
85
- onEntityClick: g,
86
- onRemove: j,
87
- isManager: k
88
- },
89
- i.linkId
90
- )),
91
- s.length === 0 && /* @__PURE__ */ t.jsx(C, { children: "No links yet" })
92
- ] }),
93
- /* @__PURE__ */ t.jsx(
94
- b,
95
- {
96
- targetEntityType: e,
97
- projectName: o,
98
- onClose: a,
99
- onAdd: (i) => n.add([{ targetEntityId: i, linkId: c() }]),
100
- onSearchTypeChange: l
101
- }
102
- )
103
- ] }),
104
- I === "picker" && /* @__PURE__ */ t.jsx(
105
- A,
134
+ ),
135
+ g === "picker" && /* @__PURE__ */ i.jsx(
136
+ P,
106
137
  {
107
- onClose: () => l(null),
108
- projectName: o,
109
- entityType: e,
110
- initialSelection: p ? { folder: { [p]: !0 } } : void 0,
111
- onSubmit: (i) => n.add(i.map((r) => ({ targetEntityId: r, linkId: c() }))),
138
+ onClose: () => k(null),
139
+ projectName: s,
140
+ entityType: m,
141
+ initialSelection: l ? { folder: { [l]: !0 } } : void 0,
142
+ onSubmit: (t) => n.add(t.map((e) => ({ targetEntityId: e, linkId: d() }))),
112
143
  isMultiSelect: !0
113
144
  }
114
145
  )
115
146
  ] });
116
147
  };
117
148
  export {
118
- dt as LinksManager
149
+ Ct as LinksManager
119
150
  };
120
151
  //# sourceMappingURL=LinksManager.es.js.map
@@ -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'\nimport { useGlobalContext } from '@shared/context'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n color?: string // color from folder/task type anatomy\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 { user } = useGlobalContext()\n const isManager = user?.data?.isAdmin || user?.data?.isManager\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 isManager={isManager}\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","user","useGlobalContext","isManager","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","e","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCO,MAAMA,KAAsC,CAAC;AAAA,EAClD,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ,CAAA;AAAA,EACR,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB,CAAA;AAAA,EACpB,SAAAC;AAAA,EACA,eAAAC;AACF,MAAM;AACJ,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAA,GACXC,IAAYF,GAAM,MAAM,WAAWA,GAAM,MAAM,WAE/CG,IAAeC,EAAe;AAAA,IAClC,aAAAb;AAAA,IACA,WAAAF;AAAA,IACA,UAAAG;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAE;AAAA,IACA,UAAAD;AAAA,EAAA,CACD,GAEK,CAACW,GAAYC,CAAa,IAAIC,EAAyB,IAAI,GAE3DC,IAAe,CAACC,GAAwCC,MAAqB;AAEjF,IAAAD,EAAE,gBAAA,GAEFN,EAAa,OAAO;AAAA,MAClB;AAAA,QACE,IAAIO,EAAK;AAAA,QACT,QAAQ,EAAE,UAAUA,EAAK,UAAU,YAAYA,EAAK,WAAA;AAAA,MAAW;AAAA,IACjE,CACD;AAAA,EACH;AAEA,SACEC,gBAAAA,EAAAA,KAAAC,YAAA,EACE,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GAAA,EACC,UAAA;AAAA,MAAAF,gBAAAA,OAACG,GAAA,EACE,UAAA;AAAA,QAAAC,EAAW3B,CAAa;AAAA,QAAE;AAAA,QAASC;AAAA,QAAU;AAAA,QAC9C2B,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAASnB;AAAA,YACT,iBAAe;AAAA,YACf,sBAAoB;AAAA,UAAA;AAAA,QAAA;AAAA,MACtB,GACF;AAAA,MACAa,gBAAAA,OAACO,GAAA,EACE,UAAA;AAAA,QAAA5B,GAAO,IAAI,CAACoB,MACXM,gBAAAA,EAAAA;AAAAA,UAACG;AAAA,UAAA;AAAA,YAEC,MAAAT;AAAA,YACA,YAAYb,EAAkB,SAASa,EAAK,QAAQ;AAAA,YACpD,eAAAX;AAAA,YACA,UAAUS;AAAA,YACV,WAAAN;AAAA,UAAA;AAAA,UALKQ,EAAK;AAAA,QAAA,CAOb;AAAA,QACApB,EAAM,WAAW,2BAAM8B,GAAA,EAAiB,UAAA,eAAA,CAAY;AAAA,MAAA,GACvD;AAAA,MACAJ,gBAAAA,EAAAA;AAAAA,QAACK;AAAA,QAAA;AAAA,UACC,kBAAA1B;AAAA,UACA,aAAAJ;AAAA,UACA,SAAAO;AAAA,UACA,OAAO,CAACwB,MAAOnB,EAAa,IAAI,CAAC,EAAE,gBAAgBmB,GAAI,QAAQC,EAAA,EAAY,CAAG,CAAC;AAAA,UAC/E,oBAAoBjB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACCD,MAAe,YACdW,gBAAAA,EAAAA;AAAAA,MAACQ;AAAA,MAAA;AAAA,QACC,SAAS,MAAMlB,EAAc,IAAI;AAAA,QACjC,aAAAf;AAAA,QACA,YAAYI;AAAA,QACZ,kBAAkBC,IAAW,EAAE,QAAQ,EAAE,CAACA,CAAQ,GAAG,GAAA,EAAK,IAAM;AAAA,QAChE,UAAU,CAAC6B,MACTtB,EAAa,IAAIsB,EAAE,IAAI,CAACH,OAAQ,EAAE,gBAAgBA,GAAI,QAAQC,EAAA,EAAY,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'\nimport { useGlobalContext } from '@shared/context'\nimport { groupLinksByEntity, GroupedLink } from './utils/groupLinks'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n color?: string // color from folder/task type anatomy\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 { user } = useGlobalContext()\n const isManager = user?.data?.isAdmin || user?.data?.isManager\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 // Optimistic counts for immediate UI feedback (creates are not optimistic in the cache)\n const [optimisticCounts, setOptimisticCounts] = useState<Record<string, number>>({})\n\n const groupedLinks = groupLinksByEntity(links)\n\n // Get display count: use optimistic value until real data catches up\n const getDisplayCount = (group: GroupedLink) => {\n const optimistic = optimisticCounts[group.groupKey]\n if (optimistic !== undefined && optimistic !== group.count) {\n return optimistic\n }\n return group.count\n }\n\n const handleRemoveGroup = (e: React.MouseEvent<HTMLButtonElement>, group: GroupedLink) => {\n e.stopPropagation()\n\n linksUpdater.remove(\n group.linkIds.map((id) => ({\n id,\n target: { entityId: group.entityId, entityType: group.representative.entityType },\n })),\n )\n }\n\n const handleCountChange = (group: GroupedLink, newCount: number) => {\n const currentCount = getDisplayCount(group)\n // Set optimistic count immediately for instant UI feedback\n setOptimisticCounts((prev) => ({ ...prev, [group.groupKey]: newCount }))\n\n const diff = newCount - currentCount\n if (diff > 0) {\n // Add more links\n const newLinks = Array.from({ length: diff }, () => ({\n targetEntityId: group.entityId,\n linkId: getEntityId(),\n }))\n linksUpdater.add(newLinks)\n } else if (diff < 0) {\n // Remove links from the end (diff is negative, so slice(-3) takes last 3)\n const linksToRemove = group.linkIds.slice(diff).map((id) => ({\n id,\n target: { entityId: group.entityId, entityType: group.representative.entityType },\n }))\n linksUpdater.remove(linksToRemove)\n }\n }\n\n return (\n <>\n <Styled.Container\n onMouseDown={(e) => {\n // Blur active input when clicking anywhere in the dialog (so count input commits)\n if (e.target !== document.activeElement && document.activeElement instanceof HTMLInputElement) {\n document.activeElement.blur()\n }\n }}\n >\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 {groupedLinks.map((group) => (\n <LinkManagerItem\n key={group.representative.linkId}\n link={group.representative}\n count={getDisplayCount(group)}\n isSelected={selectedEntityIds.includes(group.entityId)}\n onEntityClick={onEntityClick}\n onRemove={(e) => handleRemoveGroup(e, group)}\n onCountChange={(newCount) => handleCountChange(group, newCount)}\n isManager={isManager}\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","user","useGlobalContext","isManager","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","optimisticCounts","setOptimisticCounts","groupedLinks","groupLinksByEntity","getDisplayCount","group","optimistic","handleRemoveGroup","e","id","handleCountChange","newCount","currentCount","prev","diff","newLinks","getEntityId","linksToRemove","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","EntityPickerDialog","s"],"mappings":"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"}