@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.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +28 -24
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/Views.cjs.js +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js +36 -41
- package/dist/Views.es.js.map +1 -1
- package/dist/_virtual/index.cjs.js +1 -1
- package/dist/_virtual/index.cjs2.js +1 -1
- package/dist/_virtual/index.cjs3.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es.js +4 -5
- package/dist/_virtual/index.es2.js +6 -2
- package/dist/_virtual/index.es2.js.map +1 -1
- package/dist/_virtual/index.es3.js +2 -5
- package/dist/_virtual/index.es3.js.map +1 -1
- package/dist/_virtual/index.es4.js +5 -2
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/_virtual/index.es7.js +2 -2
- package/dist/_virtual/index.es8.js +2 -5
- package/dist/_virtual/index.es8.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +15 -11
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
- package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js.map +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/access.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +5 -3
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +2 -0
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/users.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +99 -90
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +13 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +72 -25
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +25 -21
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +14 -14
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +23 -23
- package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +71 -36
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +120 -89
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +52 -12
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +63 -21
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js +2 -0
- package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js +18 -0
- package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +8 -4
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +8 -4
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +8 -4
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -5
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +139 -128
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +90 -81
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -4
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +9 -5
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -4
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +20 -16
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -5
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -18
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -4
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -4
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +57 -45
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js +2 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js +70 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +247 -151
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -4
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -5
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -4
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -3
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -4
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +59 -55
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +9 -5
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +16 -16
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +9 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +17 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +7 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +60 -48
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -24
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -4
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +24 -23
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +83 -88
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +56 -53
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +23 -144
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/types.cjs.js +2 -0
- package/dist/shared/src/containers/Views/types.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/types.es.js +15 -0
- package/dist/shared/src/containers/Views/types.es.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js +2 -0
- package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js +5 -0
- package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/portalUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/portalUtils.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +76 -77
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +9 -5
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/types/api/generated/access.d.ts +6 -0
- package/dist/types/api/generated/graphql.d.ts +8 -4
- package/dist/types/api/generated/users.d.ts +6 -1
- package/dist/types/components/AttributeEditor/AttributeEditor.d.ts +1 -0
- package/dist/types/components/LinksManager/LinkManagerItem.d.ts +2 -0
- package/dist/types/components/LinksManager/LinksManager.styled.d.ts +6 -0
- package/dist/types/components/LinksManager/utils/groupLinks.d.ts +14 -0
- package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +1 -0
- package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
- package/dist/types/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.d.ts +11 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +1 -0
- package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
- package/dist/types/containers/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +2 -2
- package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -2
- package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +1 -1
- package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -3
- package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +2 -1
- package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +1 -1
- package/dist/types/containers/Views/index.d.ts +1 -7
- package/dist/types/containers/Views/types.d.ts +10 -0
- package/dist/types/containers/Views/utils/isViewStudioScope.d.ts +2 -0
- package/dist/types/containers/Views/utils/portalUtils.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
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
|
|
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
|
|
2
|
-
import { Fragment as
|
|
3
|
-
import { Button as
|
|
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
|
|
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
|
|
95
|
-
import
|
|
96
|
-
import { EntityIcon as
|
|
97
|
-
const
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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 =
|
|
105
|
-
|
|
106
|
-
|
|
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: () =>
|
|
109
|
-
"data-tooltip": t.isRestricted ?
|
|
110
|
-
className:
|
|
111
|
-
clickable:
|
|
112
|
-
selected:
|
|
113
|
-
restricted: t.isRestricted && !
|
|
114
|
-
unknown: t.isRestricted &&
|
|
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__ */
|
|
118
|
-
/* @__PURE__ */
|
|
119
|
-
t.parents?.map((
|
|
120
|
-
/* @__PURE__ */
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
-
] },
|
|
123
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
126
|
-
|
|
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: (
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Container as
|
|
4
|
-
import { upperFirst as
|
|
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
|
|
6
|
+
import { getEntityId as d } from "../../util/getEntityId.es.js";
|
|
7
7
|
import "../../util/pubsub.es.js";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { EntityPickerDialog as
|
|
11
|
-
import { LinkManagerItem as
|
|
12
|
-
import { Button as
|
|
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
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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:
|
|
46
|
-
projectName:
|
|
47
|
-
direction:
|
|
48
|
-
entityId:
|
|
49
|
-
entityType:
|
|
50
|
-
targetEntityType:
|
|
51
|
-
linkType:
|
|
52
|
-
}), [
|
|
53
|
-
|
|
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
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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: () =>
|
|
108
|
-
projectName:
|
|
109
|
-
entityType:
|
|
110
|
-
initialSelection:
|
|
111
|
-
onSubmit: (
|
|
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
|
-
|
|
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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"}
|