@ynput/ayon-frontend-shared 0.3.39 → 0.3.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +23 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +219 -218
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +219 -220
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +10 -9
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.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/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +20 -58
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +37 -75
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +14 -16
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
- package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.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 +3 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.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 +3 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +3 -2
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.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 +5 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +4 -3
- 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 +3 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +3 -2
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +339 -353
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
- package/dist/shared/src/components/SimpleFormDialog/FormFile.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 +3 -2
- 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 +3 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -6
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.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 +3 -2
- 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 +3 -2
- 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 +113 -119
- 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 +3 -2
- 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 +3 -2
- 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 +132 -122
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.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 +17 -16
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +5 -5
- package/dist/shared/src/containers/Feed/Feed.styled.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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.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 +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +5 -4
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- 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 +3 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.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 +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +3 -2
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +3 -2
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +3 -2
- package/dist/shared/src/containers/ListTable/ListTableHeader.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 +365 -363
- 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 +3 -2
- 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 +3 -2
- 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 +3 -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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.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 +3 -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 +6 -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 +3 -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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.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 +3 -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 +3 -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 +3 -2
- 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 +3 -2
- 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 +3 -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 +3 -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 +3 -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 +14 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.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 +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.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 +5 -4
- 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 +3 -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 +3 -2
- 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.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.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 +3 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +61 -82
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +83 -66
- package/dist/shared/src/context/ProjectContext.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 +5 -4
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +1 -34
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
- package/dist/types/api/queries/entityLists/getLists.d.ts +2 -315
- package/dist/types/api/queries/products/createProduct.d.ts +2 -2
- package/dist/types/api/queries/products/getProduct.d.ts +259 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
- package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
- package/dist/types/context/ProjectContext.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanel.cjs.js","sources":["../../../../../src/containers/DetailsPanel/DetailsPanel.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport useDetailsPanelURLSync from './hooks/useDetailsPanelURLSync'\nimport * as Styled from './DetailsPanel.styled'\n\n// shared\nimport { useGetEntitiesDetailsPanelQuery, detailsPanelEntityTypes } from '@shared/api'\nimport type { Tag, DetailsPanelEntityType, DetailsPanelEntityData } from '@shared/api'\nimport { DetailsPanelDetails, EntityPath, Watchers } from '@shared/components'\nimport { usePiPWindow } from '@shared/context/pip/PiPProvider'\nimport { extractEntityHierarchyFromParents } from '@shared/util'\nimport {\n ProjectContextProvider,\n ProjectModelWithProducts,\n ThumbnailUploadProvider,\n useDetailsPanelContext,\n useScopedDetailsPanel,\n useURIContext,\n FeedFilter,\n} from '@shared/context'\n\nimport DetailsPanelHeader from './components/DetailsPanelHeader/DetailsPanelHeader'\nimport DetailsPanelFiles from './components/DetailsPanelFiles'\nimport {\n DetailsPanelMoreMenu,\n type DetailsPanelEntityListsContext,\n} from './components/DetailsPanelMoreMenu'\nimport useGetEntityPath from './hooks/useGetEntityPath'\nimport getAllProjectStatuses from './helpers/getAllProjectsStatuses'\nimport FeedWrapper from './containers/FeedWrapper'\nimport FeedContextWrapper from './containers/FeedContextWrapper'\nimport mergeProjectInfo from './helpers/mergeProjectInfo'\nimport DetailsPanelSubtasks from './containers/DetailsPanelSubtasks'\n\nexport const entitiesWithoutFeed = ['product', 'representation']\n\ntype User = { avatarUrl: string; name: string; fullName?: string }\n\nexport type DetailsPanelProps = {\n entityType: DetailsPanelEntityType\n entitySubTypes?: string[] // used to get actions before the entity has loaded\n entitiesData?: { id: string; label: string; type: DetailsPanelEntityType }[]\n entities?: { id: string; projectName: string }[]\n tagsOptions?: Tag[]\n disabledStatuses?: string[]\n projectUsers?: User[]\n disabledProjectUsers?: string[]\n activeProjectUsers?: string[]\n projectsInfo?: Record<string, ProjectModelWithProducts>\n projectNames?: string[]\n isSlideOut?: boolean\n style?: React.CSSProperties\n scope: string\n isCompact?: boolean\n onClose?: () => void\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n onOpenViewer?: (entity: any) => void\n onEntityFocus?: (id: string, entityType: DetailsPanelEntityType) => void\n onOpen?: () => void\n onUriOpen?: (entity: DetailsPanelEntityData, source: 'uri' | 'url') => void\n // annotations\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n entityListId?: string\n guestCategories?: Record<string, string> // only used for guests to find if they have access to any categories\n /** Optional EntityListsContext for the \"Add to list\" sub-menu in the more-menu.\n * Hosts that already mount EntityListsProvider can pass the resolved context here;\n * otherwise wrap the panel with EntityListsContextBoundary. The shape mirrors\n * `EntityListsContextType` from `src/pages/ProjectListsPage/context` — it lives as a\n * structural type in shared/ so the layering rule (shared cannot import src/pages)\n * is preserved. */\n entityListsContext?: DetailsPanelEntityListsContext\n // optional tab state for independent tab management\n}\n\nconst DetailsPanelInner = ({\n entityType,\n entitySubTypes = [],\n // entities is data we already have from kanban\n entitiesData = [],\n // entityIds are used to get the full details data for the entities\n entities = [],\n tagsOptions = [],\n disabledStatuses,\n projectUsers,\n disabledProjectUsers,\n activeProjectUsers,\n projectsInfo = {},\n projectNames = [],\n isSlideOut = false,\n style = {},\n scope,\n isCompact = false,\n onClose,\n onWatchersUpdate,\n onOpenViewer,\n onEntityFocus,\n onOpen,\n onUriOpen, // when the details panel is opened from uri\n // annotations\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n entityListId,\n guestCategories = {},\n entityListsContext,\n}: // optional tab state for independent tab management\nDetailsPanelProps) => {\n const {\n closeSlideOut,\n openPip,\n user,\n isGuest,\n entities: contextEntities,\n setEntities,\n slideOut,\n useSearchParams,\n SubtasksManager,\n useNavigate,\n } = useDetailsPanelContext()\n const { currentTab, setTab, isFeed } = useScopedDetailsPanel(scope)\n const [_searchParams, setSearchParams] = useSearchParams()\n const hasCalledOnOpen = useRef(false)\n\n // Use context entities if available, otherwise use props\n const activeEntityType = contextEntities?.entityType ?? entityType\n const activeEntities = contextEntities?.entities ?? entities\n const activeEntitySubTypes = contextEntities?.entitySubTypes ?? entitySubTypes\n const activeEntitiesData = contextEntities?.entities ? [] : entitiesData\n const activeProjectNames = contextEntities?.entities\n ? contextEntities.entities.map((e) => e.projectName)\n : projectNames\n\n // Fire onOpen callback once when component mounts and renders\n useEffect(() => {\n if (onOpen && !hasCalledOnOpen.current) {\n hasCalledOnOpen.current = true\n onOpen()\n }\n }, [])\n\n // Force details tab for specific entity types\n useEffect(() => {\n if (entitiesWithoutFeed.includes(activeEntityType) && currentTab !== 'details') {\n setTab('details')\n }\n }, [activeEntityType, currentTab, setTab])\n\n // once component is provided with specific entities, remove context entities to avoid conflicts\n useEffect(() => {\n if (entities.length && contextEntities) {\n setEntities(null)\n }\n }, [entities, contextEntities, setEntities])\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, activeProjectNames),\n [projectsInfo, activeProjectNames],\n )\n\n // build icons for entity types\n const entityTypeIcons = useMemo(\n () => ({\n task: projectInfo.taskTypes\n .filter((task) => !!task.icon)\n .reduce((acc, task) => ({ ...acc, [task.name]: task.icon }), {}),\n folder: projectInfo.folderTypes\n .filter((folder) => !!folder.icon)\n .reduce((acc, folder) => ({ ...acc, [folder.name]: folder.icon }), {}),\n product: projectInfo.productTypes\n .filter((product) => !!product.icon)\n .reduce((acc, product) => ({ ...acc, [product.name]: product.icon }), {}),\n }),\n [projectInfo],\n )\n\n // for example when switching from version to task, task doesn't have reps tab\n // if reps tab was selected, set default to feed\n useEffect(() => {\n if (currentTab === 'files') {\n // check entity type is still version\n if (activeEntityType !== 'version') {\n setTab('feed')\n }\n }\n // Reset to feed if subtasks tab is selected but entity is not a task\n if (currentTab === 'subtasks' && activeEntityType !== 'task') {\n setTab('feed')\n }\n }, [activeEntityType, currentTab, scope])\n\n // now we get the full details data for selected entities\n let entitiesToQuery = activeEntities.length\n ? activeEntities.map((entity) => ({ id: entity.id, projectName: entity.projectName }))\n : // @ts-expect-error = not sure what's going on with activeEntitiesData, we should try and remove it\n activeEntitiesData.map((entity) => ({ id: entity.id, projectName: entity.projectName }))\n\n entitiesToQuery = entitiesToQuery.filter((entity) => entity.id)\n\n const {\n data: entityDetailsData = [],\n isFetching: isFetchingEntitiesDetails,\n isError,\n originalArgs,\n } = useGetEntitiesDetailsPanelQuery(\n { entityType: activeEntityType, entities: entitiesToQuery },\n {\n skip: !entitiesToQuery.length || !detailsPanelEntityTypes.includes(activeEntityType),\n },\n )\n\n // the entity changes then we close the slide out\n useEffect(() => {\n if (!isSlideOut) {\n closeSlideOut()\n }\n }, [originalArgs, isSlideOut])\n\n // if the details panel is opened vair the uri, run callback\n useEffect(() => {\n if (isFetchingEntitiesDetails) return\n\n if (\n (contextEntities?.source === 'uri' || contextEntities?.source === 'url') &&\n contextEntities?.entities?.length &&\n !!onUriOpen\n ) {\n const uriEntity = entityDetailsData.find(\n (entity) => entity.id === contextEntities.entities[0].id,\n )\n if (!uriEntity) return\n\n onUriOpen(uriEntity, contextEntities.source)\n }\n }, [entityDetailsData, isFetchingEntitiesDetails])\n\n // TODO: merge current entities data with fresh details data\n\n const allStatuses = getAllProjectStatuses(projectsInfo)\n\n // get the first project name and info to be used in the feed.\n const firstProject = activeProjectNames[0]\n const firstProjectInfo = projectsInfo[firstProject] || {}\n const firstEntityData = entityDetailsData[0] || {}\n // Use the last entity for URI sync\n const lastEntityData = entityDetailsData[entityDetailsData.length - 1]\n const lastProject = activeProjectNames[activeProjectNames.length - 1]\n\n // build the full entity path for the first entity\n const [entityPathSegments, entityPathVersions] = useGetEntityPath({\n entity: firstEntityData,\n entityType: activeEntityType,\n projectName: firstProject,\n isLoading: isFetchingEntitiesDetails,\n })\n\n const { setEntityUri, setUri } = useURIContext()\n // sync the uri when entity changes\n useEffect(() => {\n if (!lastEntityData?.parents) return\n if (!lastProject) return\n const { folderPath, taskName, versionName, productName } = extractEntityHierarchyFromParents(\n lastEntityData.parents,\n activeEntityType,\n lastEntityData.name,\n )\n\n setEntityUri({\n projectName: lastProject,\n folderPath: folderPath,\n taskName: taskName,\n productName: productName,\n versionName: versionName,\n })\n\n // unmount cleanup: clear uri\n return () => {\n setUri('')\n }\n }, [entityDetailsData, activeProjectNames, activeEntityType])\n\n // sync the details panel url (panel) with entity\n useDetailsPanelURLSync({\n entityData: lastEntityData,\n project: lastProject,\n activeEntityType,\n entitiesToQuery,\n })\n\n const clearSearchUrl = () => {\n // remove URL params when closing\n setSearchParams(\n (prev) => {\n const newParams = new URLSearchParams(prev)\n newParams.delete('project')\n newParams.delete('type')\n newParams.delete('id')\n return newParams\n },\n { replace: true },\n )\n }\n\n const handleClose = () => {\n onClose?.()\n // also remove any entities in context\n setEntities(null)\n clearSearchUrl()\n closeSlideOut()\n }\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && onClose) {\n // Don't trigger if we're in an input element\n const target = e.target as HTMLElement\n const isInputElement =\n ['INPUT', 'TEXTAREA', 'SELECT'].includes(target.tagName) || target.isContentEditable\n\n if (isInputElement) return\n\n // don't trigger if the viewer is open and panel not in slideout mode\n if (isSlideOut === false && (target.closest('#viewer-dialog') || !!slideOut)) return\n\n handleClose()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [handleClose, isSlideOut, slideOut])\n\n const { requestPipWindow } = usePiPWindow()\n\n // Hoisted so ThumbnailUploadProvider (wrapping the toolbar) and EntityPanelUploader\n // (inside DetailsPanelHeader) share the same ref identity — otherwise the toolbar's\n // more-menu, which sits as a sibling above the header, can't reach the inputs.\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n const canUploadVersion = entityDetailsData.length === 1 && activeEntityType !== 'representation'\n\n const shareEntityLabel = useMemo(() => {\n const name = firstEntityData?.label || firstEntityData?.name || ''\n const parents: string[] = firstEntityData?.parents || []\n const parts: (string | undefined)[] = [firstProject]\n switch (activeEntityType) {\n case 'folder':\n case 'task':\n case 'product':\n parts.push(parents.at(-1), name)\n break\n case 'version':\n parts.push(parents.at(-2), parents.at(-1), name)\n break\n case 'representation':\n parts.push(parents.at(-3), parents.at(-2), parents.at(-1), name)\n break\n default:\n parts.push(name)\n }\n return parts.filter(Boolean).join(' - ')\n }, [firstEntityData, activeEntityType, firstProject])\n\n const handleOpenPip = () => {\n openPip({\n entityType: activeEntityType,\n entities: entitiesToQuery,\n scope: scope,\n })\n requestPipWindow(500, 500)\n }\n\n const isCommentingEnabled = () => {\n // cannot comment on multiple projects\n if (activeProjectNames.length > 1) return false\n if (isGuest) {\n // Guest can only comment in review sessions (for now)\n if (!entityListId) return false\n // Guest must have at least one category set for list\n const guestHasCategory = Object.prototype.hasOwnProperty.call(\n guestCategories,\n user.attrib?.email || '',\n )\n if (!guestHasCategory) return false\n }\n return true\n }\n\n return (\n <ThumbnailUploadProvider\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={versionsInputRef}\n canUploadVersion={canUploadVersion}\n >\n <Styled.Panel className=\"details-panel\">\n <Styled.Toolbar>\n {/* TODO FIX PATH */}\n <EntityPath\n segments={entityPathSegments}\n versions={entityPathVersions}\n projectName={firstProject}\n hideProjectName={isSlideOut}\n isLoading={isFetchingEntitiesDetails || !entityPathSegments.length}\n entityType={activeEntityType}\n scope={scope}\n // @ts-ignore\n entityTypeIcons={entityTypeIcons}\n />\n <Styled.RightTools className=\"right-tools\">\n <DetailsPanelMoreMenu\n entityType={activeEntityType}\n entityId={firstEntityData?.id}\n entityIds={entitiesToQuery.map((e) => e.id).filter(Boolean)}\n entityLabel={shareEntityLabel}\n projectName={firstProject}\n selectedEntities={entityDetailsData\n .filter((e) => !!e?.id)\n .map((e) => ({\n entityId: e.id,\n entityType: e.entityType || activeEntityType,\n hasReviewables: !!e.hasReviewables,\n }))}\n entityListsContext={entityListsContext}\n onOpenPip={handleOpenPip}\n onOpenViewer={onOpenViewer}\n productId={firstEntityData?.product?.id}\n taskId={firstEntityData?.task?.id}\n folderId={firstEntityData?.folder?.id}\n />\n <Watchers\n entities={entitiesToQuery}\n entityType={activeEntityType}\n options={projectUsers || []}\n onWatchersUpdate={onWatchersUpdate && onWatchersUpdate}\n userName={user.name}\n />\n\n {onClose && (\n <Button\n icon=\"close\"\n variant={'text'}\n onClick={handleClose}\n data-shortcut={'Escape'}\n />\n )}\n </Styled.RightTools>\n </Styled.Toolbar>\n\n <DetailsPanelHeader\n entityType={activeEntityType}\n entitySubTypes={activeEntitySubTypes}\n entities={entityDetailsData}\n users={projectUsers}\n disabledAssignees={disabledProjectUsers}\n disabledStatuses={disabledStatuses}\n tagsOptions={tagsOptions}\n isFetching={isFetchingEntitiesDetails}\n isCompact={isCompact}\n currentTab={currentTab}\n onTabChange={setTab}\n entityTypeIcons={entityTypeIcons}\n onOpenViewer={(args) => onOpenViewer?.(args)}\n onEntityFocus={onEntityFocus}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={versionsInputRef}\n />\n\n <ProjectContextProvider projectName={firstProject}>\n {isFeed && !isError && (\n <FeedWrapper\n entityType={activeEntityType}\n entities={entityDetailsData}\n activeUsers={activeProjectUsers || []}\n projectInfo={firstProjectInfo}\n projectName={firstProject}\n disabled={!isCommentingEnabled()}\n scope={scope}\n statuses={allStatuses}\n readOnly={false}\n entityListId={entityListId}\n annotations={annotations}\n removeAnnotation={removeAnnotation}\n exportAnnotationComposite={exportAnnotationComposite}\n isSlideOut={isSlideOut}\n />\n )}\n {currentTab === 'subtasks' &&\n activeEntityType === 'task' &&\n firstEntityData?.id &&\n SubtasksManager && (\n <DetailsPanelSubtasks\n projectName={firstProject}\n taskId={firstEntityData.id}\n subtasks={firstEntityData.task?.subtasks || []}\n SubtasksManager={SubtasksManager}\n useNavigate={useNavigate!}\n onNotFound={() => setTab('feed')} // if subtasks module is not found, switch to feed tab\n />\n )}\n {currentTab === 'files' && (\n <DetailsPanelFiles\n entities={entityDetailsData}\n scope={scope}\n isLoadingVersion={isFetchingEntitiesDetails}\n />\n )}\n {currentTab === 'details' && (\n <FeedContextWrapper\n entityType={activeEntityType}\n entities={entityDetailsData}\n activeUsers={activeProjectUsers || []}\n projectInfo={firstProjectInfo}\n projectName={firstProject}\n disabled={!isCommentingEnabled()}\n scope={scope}\n statuses={allStatuses}\n readOnly={false}\n annotations={annotations}\n removeAnnotation={removeAnnotation}\n exportAnnotationComposite={exportAnnotationComposite}\n >\n <DetailsPanelDetails\n entities={entityDetailsData}\n isLoading={isFetchingEntitiesDetails}\n />\n </FeedContextWrapper>\n )}\n </ProjectContextProvider>\n </Styled.Panel>\n </ThumbnailUploadProvider>\n )\n}\n\n// create a wrapper that checks if the details panel should be open or not based on isOpen prop and entities state\nexport const DetailsPanel = ({\n isOpen,\n entityType,\n ...props\n}: Omit<DetailsPanelProps, 'entityType'> & {\n entityType?: DetailsPanelEntityType\n isOpen: boolean\n}) => {\n const { entities } = useDetailsPanelContext()\n\n if (!isOpen && !entities) return null\n if (!entityType && !entities) return null\n\n // @ts-expect-error - entityType could be undefined but we check for entities above\n return <DetailsPanelInner {...props} entityType={entityType || entities?.entityType} />\n}\n"],"names":["entitiesWithoutFeed","DetailsPanelInner","entityType","entitySubTypes","entitiesData","entities","tagsOptions","disabledStatuses","projectUsers","disabledProjectUsers","activeProjectUsers","projectsInfo","projectNames","isSlideOut","style","scope","isCompact","onClose","onWatchersUpdate","onOpenViewer","onEntityFocus","onOpen","onUriOpen","annotations","removeAnnotation","exportAnnotationComposite","entityListId","guestCategories","entityListsContext","closeSlideOut","openPip","user","isGuest","contextEntities","setEntities","slideOut","useSearchParams","SubtasksManager","useNavigate","useDetailsPanelContext","currentTab","setTab","isFeed","useScopedDetailsPanel","_searchParams","setSearchParams","hasCalledOnOpen","useRef","activeEntityType","activeEntities","activeEntitySubTypes","activeEntitiesData","activeProjectNames","useEffect","projectInfo","useMemo","mergeProjectInfo","entityTypeIcons","task","acc","folder","product","entitiesToQuery","entity","entityDetailsData","isFetchingEntitiesDetails","isError","originalArgs","useGetEntitiesDetailsPanelQuery","detailsPanelEntityTypes","uriEntity","allStatuses","getAllProjectStatuses","firstProject","firstProjectInfo","firstEntityData","lastEntityData","lastProject","entityPathSegments","entityPathVersions","useGetEntityPath","setEntityUri","setUri","useURIContext","folderPath","taskName","versionName","productName","extractEntityHierarchyFromParents","useDetailsPanelURLSync","clearSearchUrl","prev","newParams","handleClose","handleKeyDown","e","target","requestPipWindow","usePiPWindow","thumbnailInputRef","versionsInputRef","canUploadVersion","shareEntityLabel","name","parents","parts","handleOpenPip","isCommentingEnabled","jsx","ThumbnailUploadProvider","jsxs","Styled.Panel","Styled.Toolbar","EntityPath","Styled.RightTools","DetailsPanelMoreMenu","Watchers","Button","DetailsPanelHeader","args","ProjectContextProvider","FeedWrapper","DetailsPanelSubtasks","DetailsPanelFiles","FeedContextWrapper","DetailsPanelDetails","DetailsPanel","isOpen","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DetailsPanel.cjs.js","sources":["../../../../../src/containers/DetailsPanel/DetailsPanel.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport useDetailsPanelURLSync from './hooks/useDetailsPanelURLSync'\nimport * as Styled from './DetailsPanel.styled'\n\n// shared\nimport { useGetEntitiesDetailsPanelQuery, detailsPanelEntityTypes } from '@shared/api'\nimport type { Tag, DetailsPanelEntityType, DetailsPanelEntityData } from '@shared/api'\nimport { DetailsPanelDetails, EntityPath, Watchers } from '@shared/components'\nimport { usePiPWindow } from '@shared/context/pip/PiPProvider'\nimport { extractEntityHierarchyFromParents } from '@shared/util'\nimport {\n ProjectContextProvider,\n ProjectModelWithProducts,\n ThumbnailUploadProvider,\n useDetailsPanelContext,\n useScopedDetailsPanel,\n useURIContext,\n FeedFilter,\n} from '@shared/context'\n\nimport DetailsPanelHeader from './components/DetailsPanelHeader/DetailsPanelHeader'\nimport DetailsPanelFiles from './components/DetailsPanelFiles'\nimport {\n DetailsPanelMoreMenu,\n type DetailsPanelEntityListsContext,\n} from './components/DetailsPanelMoreMenu'\nimport useGetEntityPath from './hooks/useGetEntityPath'\nimport getAllProjectStatuses from './helpers/getAllProjectsStatuses'\nimport FeedWrapper from './containers/FeedWrapper'\nimport FeedContextWrapper from './containers/FeedContextWrapper'\nimport mergeProjectInfo from './helpers/mergeProjectInfo'\nimport buildEntityTypeIcons from './helpers/buildEntityTypeIcons'\nimport DetailsPanelSubtasks from './containers/DetailsPanelSubtasks'\n\nexport const entitiesWithoutFeed = ['product', 'representation']\n\ntype User = { avatarUrl: string; name: string; fullName?: string }\n\nexport type DetailsPanelProps = {\n entityType: DetailsPanelEntityType\n entitySubTypes?: string[] // used to get actions before the entity has loaded\n entitiesData?: { id: string; label: string; type: DetailsPanelEntityType }[]\n entities?: { id: string; projectName: string }[]\n tagsOptions?: Tag[]\n disabledStatuses?: string[]\n projectUsers?: User[]\n disabledProjectUsers?: string[]\n activeProjectUsers?: string[]\n projectsInfo?: Record<string, ProjectModelWithProducts>\n projectNames?: string[]\n isSlideOut?: boolean\n style?: React.CSSProperties\n scope: string\n isCompact?: boolean\n onClose?: () => void\n onWatchersUpdate?: (added: any[], removed: any[]) => void\n onOpenViewer?: (entity: any) => void\n onEntityFocus?: (id: string, entityType: DetailsPanelEntityType) => void\n onOpen?: () => void\n onUriOpen?: (entity: DetailsPanelEntityData, source: 'uri' | 'url') => void\n // annotations\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n entityListId?: string\n guestCategories?: Record<string, string> // only used for guests to find if they have access to any categories\n /** Optional EntityListsContext for the \"Add to list\" sub-menu in the more-menu.\n * Hosts that already mount EntityListsProvider can pass the resolved context here;\n * otherwise wrap the panel with EntityListsContextBoundary. The shape mirrors\n * `EntityListsContextType` from `src/pages/ProjectListsPage/context` — it lives as a\n * structural type in shared/ so the layering rule (shared cannot import src/pages)\n * is preserved. */\n entityListsContext?: DetailsPanelEntityListsContext\n // optional tab state for independent tab management\n}\n\nconst DetailsPanelInner = ({\n entityType,\n entitySubTypes = [],\n // entities is data we already have from kanban\n entitiesData = [],\n // entityIds are used to get the full details data for the entities\n entities = [],\n tagsOptions = [],\n disabledStatuses,\n projectUsers,\n disabledProjectUsers,\n activeProjectUsers,\n projectsInfo = {},\n projectNames = [],\n isSlideOut = false,\n style = {},\n scope,\n isCompact = false,\n onClose,\n onWatchersUpdate,\n onOpenViewer,\n onEntityFocus,\n onOpen,\n onUriOpen, // when the details panel is opened from uri\n // annotations\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n entityListId,\n guestCategories = {},\n entityListsContext,\n}: // optional tab state for independent tab management\nDetailsPanelProps) => {\n const {\n closeSlideOut,\n openPip,\n user,\n isGuest,\n entities: contextEntities,\n setEntities,\n slideOut,\n useSearchParams,\n SubtasksManager,\n useNavigate,\n } = useDetailsPanelContext()\n const { currentTab, setTab, isFeed } = useScopedDetailsPanel(scope)\n const [_searchParams, setSearchParams] = useSearchParams()\n const hasCalledOnOpen = useRef(false)\n\n // Use context entities if available, otherwise use props\n const activeEntityType = contextEntities?.entityType ?? entityType\n const activeEntities = contextEntities?.entities ?? entities\n const activeEntitySubTypes = contextEntities?.entitySubTypes ?? entitySubTypes\n const activeEntitiesData = contextEntities?.entities ? [] : entitiesData\n const activeProjectNames = contextEntities?.entities\n ? contextEntities.entities.map((e) => e.projectName)\n : projectNames\n\n // Fire onOpen callback once when component mounts and renders\n useEffect(() => {\n if (onOpen && !hasCalledOnOpen.current) {\n hasCalledOnOpen.current = true\n onOpen()\n }\n }, [])\n\n // Force details tab for specific entity types\n useEffect(() => {\n if (entitiesWithoutFeed.includes(activeEntityType) && currentTab !== 'details') {\n setTab('details')\n }\n }, [activeEntityType, currentTab, setTab])\n\n // once component is provided with specific entities, remove context entities to avoid conflicts\n useEffect(() => {\n if (entities.length && contextEntities) {\n setEntities(null)\n }\n }, [entities, contextEntities, setEntities])\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, activeProjectNames),\n [projectsInfo, activeProjectNames],\n )\n\n // build icons for entity types (used by the entity path breadcrumb)\n const entityTypeIcons = useMemo(() => buildEntityTypeIcons(projectInfo), [projectInfo])\n\n // for example when switching from version to task, task doesn't have reps tab\n // if reps tab was selected, set default to feed\n useEffect(() => {\n if (currentTab === 'files') {\n // check entity type is still version\n if (activeEntityType !== 'version') {\n setTab('feed')\n }\n }\n // Reset to feed if subtasks tab is selected but entity is not a task\n if (currentTab === 'subtasks' && activeEntityType !== 'task') {\n setTab('feed')\n }\n }, [activeEntityType, currentTab, scope])\n\n // now we get the full details data for selected entities\n let entitiesToQuery = activeEntities.length\n ? activeEntities.map((entity) => ({ id: entity.id, projectName: entity.projectName }))\n : // @ts-expect-error = not sure what's going on with activeEntitiesData, we should try and remove it\n activeEntitiesData.map((entity) => ({ id: entity.id, projectName: entity.projectName }))\n\n entitiesToQuery = entitiesToQuery.filter((entity) => entity.id)\n\n const {\n data: entityDetailsData = [],\n isFetching: isFetchingEntitiesDetails,\n isError,\n originalArgs,\n } = useGetEntitiesDetailsPanelQuery(\n { entityType: activeEntityType, entities: entitiesToQuery },\n {\n skip: !entitiesToQuery.length || !detailsPanelEntityTypes.includes(activeEntityType),\n },\n )\n\n // the entity changes then we close the slide out\n useEffect(() => {\n if (!isSlideOut) {\n closeSlideOut()\n }\n }, [originalArgs, isSlideOut])\n\n // if the details panel is opened vair the uri, run callback\n useEffect(() => {\n if (isFetchingEntitiesDetails) return\n\n if (\n (contextEntities?.source === 'uri' || contextEntities?.source === 'url') &&\n contextEntities?.entities?.length &&\n !!onUriOpen\n ) {\n const uriEntity = entityDetailsData.find(\n (entity) => entity.id === contextEntities.entities[0].id,\n )\n if (!uriEntity) return\n\n onUriOpen(uriEntity, contextEntities.source)\n }\n }, [entityDetailsData, isFetchingEntitiesDetails])\n\n // TODO: merge current entities data with fresh details data\n\n const allStatuses = getAllProjectStatuses(projectsInfo)\n\n // get the first project name and info to be used in the feed.\n const firstProject = activeProjectNames[0]\n const firstProjectInfo = projectsInfo[firstProject] || {}\n const firstEntityData = entityDetailsData[0] || {}\n // Use the last entity for URI sync\n const lastEntityData = entityDetailsData[entityDetailsData.length - 1]\n const lastProject = activeProjectNames[activeProjectNames.length - 1]\n\n // build the full entity path for the first entity\n const [entityPathSegments, entityPathVersions] = useGetEntityPath({\n entity: firstEntityData,\n entityType: activeEntityType,\n projectName: firstProject,\n isLoading: isFetchingEntitiesDetails,\n })\n\n const { setEntityUri, setUri } = useURIContext()\n // sync the uri when entity changes\n useEffect(() => {\n if (!lastEntityData?.parents) return\n if (!lastProject) return\n const { folderPath, taskName, versionName, productName } = extractEntityHierarchyFromParents(\n lastEntityData.parents,\n activeEntityType,\n lastEntityData.name,\n )\n\n setEntityUri({\n projectName: lastProject,\n folderPath: folderPath,\n taskName: taskName,\n productName: productName,\n versionName: versionName,\n })\n\n // unmount cleanup: clear uri\n return () => {\n setUri('')\n }\n }, [entityDetailsData, activeProjectNames, activeEntityType])\n\n // sync the details panel url (panel) with entity\n useDetailsPanelURLSync({\n entityData: lastEntityData,\n project: lastProject,\n activeEntityType,\n entitiesToQuery,\n })\n\n const clearSearchUrl = () => {\n // remove URL params when closing\n setSearchParams(\n (prev) => {\n const newParams = new URLSearchParams(prev)\n newParams.delete('project')\n newParams.delete('type')\n newParams.delete('id')\n return newParams\n },\n { replace: true },\n )\n }\n\n const handleClose = () => {\n onClose?.()\n // also remove any entities in context\n setEntities(null)\n clearSearchUrl()\n closeSlideOut()\n }\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && onClose) {\n // Don't trigger if we're in an input element\n const target = e.target as HTMLElement\n const isInputElement =\n ['INPUT', 'TEXTAREA', 'SELECT'].includes(target.tagName) || target.isContentEditable\n\n if (isInputElement) return\n\n // don't trigger if the viewer is open and panel not in slideout mode\n if (isSlideOut === false && (target.closest('#viewer-dialog') || !!slideOut)) return\n\n handleClose()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [handleClose, isSlideOut, slideOut])\n\n const { requestPipWindow } = usePiPWindow()\n\n // Hoisted so ThumbnailUploadProvider (wrapping the toolbar) and EntityPanelUploader\n // (inside DetailsPanelHeader) share the same ref identity — otherwise the toolbar's\n // more-menu, which sits as a sibling above the header, can't reach the inputs.\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n const canUploadVersion = entityDetailsData.length === 1 && activeEntityType !== 'representation'\n\n const shareEntityLabel = useMemo(() => {\n const name = firstEntityData?.label || firstEntityData?.name || ''\n const parents: string[] = firstEntityData?.parents || []\n const parts: (string | undefined)[] = [firstProject]\n switch (activeEntityType) {\n case 'folder':\n case 'task':\n case 'product':\n parts.push(parents.at(-1), name)\n break\n case 'version':\n parts.push(parents.at(-2), parents.at(-1), name)\n break\n case 'representation':\n parts.push(parents.at(-3), parents.at(-2), parents.at(-1), name)\n break\n default:\n parts.push(name)\n }\n return parts.filter(Boolean).join(' - ')\n }, [firstEntityData, activeEntityType, firstProject])\n\n const handleOpenPip = () => {\n openPip({\n entityType: activeEntityType,\n entities: entitiesToQuery,\n scope: scope,\n })\n requestPipWindow(500, 500)\n }\n\n const isCommentingEnabled = () => {\n // cannot comment on multiple projects\n if (activeProjectNames.length > 1) return false\n if (isGuest) {\n // Guest can only comment in review sessions (for now)\n if (!entityListId) return false\n // Guest must have at least one category set for list\n const guestHasCategory = Object.prototype.hasOwnProperty.call(\n guestCategories,\n user.attrib?.email || '',\n )\n if (!guestHasCategory) return false\n }\n return true\n }\n\n return (\n <ThumbnailUploadProvider\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={versionsInputRef}\n canUploadVersion={canUploadVersion}\n >\n <Styled.Panel className=\"details-panel\">\n <Styled.Toolbar>\n {/* TODO FIX PATH */}\n <EntityPath\n segments={entityPathSegments}\n versions={entityPathVersions}\n projectName={firstProject}\n hideProjectName={isSlideOut}\n isLoading={isFetchingEntitiesDetails || !entityPathSegments.length}\n entityType={activeEntityType}\n scope={scope}\n // @ts-ignore\n entityTypeIcons={entityTypeIcons}\n />\n <Styled.RightTools className=\"right-tools\">\n <DetailsPanelMoreMenu\n entityType={activeEntityType}\n entityId={firstEntityData?.id}\n entityIds={entitiesToQuery.map((e) => e.id).filter(Boolean)}\n entityLabel={shareEntityLabel}\n projectName={firstProject}\n selectedEntities={entityDetailsData\n .filter((e) => !!e?.id)\n .map((e) => ({\n entityId: e.id,\n entityType: e.entityType || activeEntityType,\n hasReviewables: !!e.hasReviewables,\n }))}\n entityListsContext={entityListsContext}\n onOpenPip={handleOpenPip}\n onOpenViewer={onOpenViewer}\n productId={firstEntityData?.product?.id}\n taskId={firstEntityData?.task?.id}\n folderId={firstEntityData?.folder?.id}\n />\n <Watchers\n entities={entitiesToQuery}\n entityType={activeEntityType}\n options={projectUsers || []}\n onWatchersUpdate={onWatchersUpdate && onWatchersUpdate}\n userName={user.name}\n />\n\n {onClose && (\n <Button\n icon=\"close\"\n variant={'text'}\n onClick={handleClose}\n data-shortcut={'Escape'}\n />\n )}\n </Styled.RightTools>\n </Styled.Toolbar>\n\n <DetailsPanelHeader\n entityType={activeEntityType}\n entitySubTypes={activeEntitySubTypes}\n entities={entityDetailsData}\n users={projectUsers}\n disabledAssignees={disabledProjectUsers}\n disabledStatuses={disabledStatuses}\n tagsOptions={tagsOptions}\n isFetching={isFetchingEntitiesDetails}\n isCompact={isCompact}\n currentTab={currentTab}\n onTabChange={setTab}\n projectInfo={projectInfo}\n onOpenViewer={(args) => onOpenViewer?.(args)}\n onEntityFocus={onEntityFocus}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={versionsInputRef}\n />\n\n <ProjectContextProvider projectName={firstProject}>\n {isFeed && !isError && (\n <FeedWrapper\n entityType={activeEntityType}\n entities={entityDetailsData}\n activeUsers={activeProjectUsers || []}\n projectInfo={firstProjectInfo}\n projectName={firstProject}\n disabled={!isCommentingEnabled()}\n scope={scope}\n statuses={allStatuses}\n readOnly={false}\n entityListId={entityListId}\n annotations={annotations}\n removeAnnotation={removeAnnotation}\n exportAnnotationComposite={exportAnnotationComposite}\n isSlideOut={isSlideOut}\n />\n )}\n {currentTab === 'subtasks' &&\n activeEntityType === 'task' &&\n firstEntityData?.id &&\n SubtasksManager && (\n <DetailsPanelSubtasks\n projectName={firstProject}\n taskId={firstEntityData.id}\n subtasks={firstEntityData.task?.subtasks || []}\n SubtasksManager={SubtasksManager}\n useNavigate={useNavigate!}\n onNotFound={() => setTab('feed')} // if subtasks module is not found, switch to feed tab\n />\n )}\n {currentTab === 'files' && (\n <DetailsPanelFiles\n entities={entityDetailsData}\n scope={scope}\n isLoadingVersion={isFetchingEntitiesDetails}\n />\n )}\n {currentTab === 'details' && (\n <FeedContextWrapper\n entityType={activeEntityType}\n entities={entityDetailsData}\n activeUsers={activeProjectUsers || []}\n projectInfo={firstProjectInfo}\n projectName={firstProject}\n disabled={!isCommentingEnabled()}\n scope={scope}\n statuses={allStatuses}\n readOnly={false}\n annotations={annotations}\n removeAnnotation={removeAnnotation}\n exportAnnotationComposite={exportAnnotationComposite}\n >\n <DetailsPanelDetails\n entities={entityDetailsData}\n isLoading={isFetchingEntitiesDetails}\n />\n </FeedContextWrapper>\n )}\n </ProjectContextProvider>\n </Styled.Panel>\n </ThumbnailUploadProvider>\n )\n}\n\n// create a wrapper that checks if the details panel should be open or not based on isOpen prop and entities state\nexport const DetailsPanel = ({\n isOpen,\n entityType,\n ...props\n}: Omit<DetailsPanelProps, 'entityType'> & {\n entityType?: DetailsPanelEntityType\n isOpen: boolean\n}) => {\n const { entities } = useDetailsPanelContext()\n\n if (!isOpen && !entities) return null\n if (!entityType && !entities) return null\n\n // @ts-expect-error - entityType could be undefined but we check for entities above\n return <DetailsPanelInner {...props} entityType={entityType || entities?.entityType} />\n}\n"],"names":["entitiesWithoutFeed","DetailsPanelInner","entityType","entitySubTypes","entitiesData","entities","tagsOptions","disabledStatuses","projectUsers","disabledProjectUsers","activeProjectUsers","projectsInfo","projectNames","isSlideOut","style","scope","isCompact","onClose","onWatchersUpdate","onOpenViewer","onEntityFocus","onOpen","onUriOpen","annotations","removeAnnotation","exportAnnotationComposite","entityListId","guestCategories","entityListsContext","closeSlideOut","openPip","user","isGuest","contextEntities","setEntities","slideOut","useSearchParams","SubtasksManager","useNavigate","useDetailsPanelContext","currentTab","setTab","isFeed","useScopedDetailsPanel","_searchParams","setSearchParams","hasCalledOnOpen","useRef","activeEntityType","activeEntities","activeEntitySubTypes","activeEntitiesData","activeProjectNames","useEffect","projectInfo","useMemo","mergeProjectInfo","entityTypeIcons","buildEntityTypeIcons","entitiesToQuery","entity","entityDetailsData","isFetchingEntitiesDetails","isError","originalArgs","useGetEntitiesDetailsPanelQuery","detailsPanelEntityTypes","uriEntity","allStatuses","getAllProjectStatuses","firstProject","firstProjectInfo","firstEntityData","lastEntityData","lastProject","entityPathSegments","entityPathVersions","useGetEntityPath","setEntityUri","setUri","useURIContext","folderPath","taskName","versionName","productName","extractEntityHierarchyFromParents","useDetailsPanelURLSync","clearSearchUrl","prev","newParams","handleClose","handleKeyDown","e","target","requestPipWindow","usePiPWindow","thumbnailInputRef","versionsInputRef","canUploadVersion","shareEntityLabel","name","parents","parts","handleOpenPip","isCommentingEnabled","jsx","ThumbnailUploadProvider","jsxs","Styled.Panel","Styled.Toolbar","EntityPath","Styled.RightTools","DetailsPanelMoreMenu","Watchers","Button","DetailsPanelHeader","args","ProjectContextProvider","FeedWrapper","DetailsPanelSubtasks","DetailsPanelFiles","FeedContextWrapper","DetailsPanelDetails","DetailsPanel","isOpen","props"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as o } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
2
|
import { Button as Dt } from "@ynput/ayon-react-components";
|
|
3
|
-
import { useRef as
|
|
4
|
-
import
|
|
5
|
-
import { Panel as
|
|
3
|
+
import { useRef as I, useEffect as c, useMemo as w } from "react";
|
|
4
|
+
import It from "./hooks/useDetailsPanelURLSync.es.js";
|
|
5
|
+
import { Panel as wt, Toolbar as Rt, RightTools as St } from "./DetailsPanel.styled.es.js";
|
|
6
6
|
import "../../api/base/client.es.js";
|
|
7
7
|
import "../../api/generated/graphql.es.js";
|
|
8
8
|
import "../../api/generated/graphqlLinks.es.js";
|
|
@@ -136,7 +136,7 @@ import "../Feed/components/CommentInput/modules/index.es.js";
|
|
|
136
136
|
import "../../context/RemoteModulesContext.es.js";
|
|
137
137
|
import "../../../../_virtual/runtime.es.js";
|
|
138
138
|
import "../../../../_virtual/semver.es.js";
|
|
139
|
-
import { useDetailsPanelContext as
|
|
139
|
+
import { useDetailsPanelContext as $, useScopedDetailsPanel as Wt } from "../../context/DetailsPanelContext.es.js";
|
|
140
140
|
import "../../context/PowerpackContextInstance.es.js";
|
|
141
141
|
import "../../context/SubtasksModulesContextInstance.es.js";
|
|
142
142
|
import { ThumbnailUploadProvider as Ht } from "../../context/ThumbnailUploaderContext.es.js";
|
|
@@ -244,7 +244,8 @@ import qt from "./helpers/getAllProjectsStatuses.es.js";
|
|
|
244
244
|
import Kt from "./containers/FeedWrapper.es.js";
|
|
245
245
|
import Xt from "./containers/FeedContextWrapper.es.js";
|
|
246
246
|
import _t from "./helpers/mergeProjectInfo.es.js";
|
|
247
|
-
import zt from "./
|
|
247
|
+
import zt from "./helpers/buildEntityTypeIcons.es.js";
|
|
248
|
+
import Jt from "./containers/DetailsPanelSubtasks.es.js";
|
|
248
249
|
import "./components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
|
|
249
250
|
import "./components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
|
|
250
251
|
import "./components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
|
|
@@ -261,7 +262,7 @@ import "../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
|
|
|
261
262
|
import "axios";
|
|
262
263
|
import "../../components/ReviewablesList/ReviewablesList.styled.es.js";
|
|
263
264
|
import "../../components/ReviewablesList/ReviewablesUpload.styled.es.js";
|
|
264
|
-
import { EntityPath as
|
|
265
|
+
import { EntityPath as Yt } from "../../components/EntityPath/EntityPath.es.js";
|
|
265
266
|
import "../../components/FeaturedVersionOrder/FeaturedVersionOrder.es.js";
|
|
266
267
|
import "../../components/Feedback/FeedbackContextInstance.es.js";
|
|
267
268
|
import "../../components/Feedback/SupportBubble.es.js";
|
|
@@ -288,33 +289,33 @@ import "../../components/Thumbnail/StackedThumbnails.es.js";
|
|
|
288
289
|
import "../../components/ThumbnailSimple/ThumbnailSimple.es.js";
|
|
289
290
|
import "../../components/VersionUploader/components/UploadVersionDialog.es.js";
|
|
290
291
|
import "../../components/VersionUploader/context/VersionUploadContext.es.js";
|
|
291
|
-
import { Watchers as
|
|
292
|
+
import { Watchers as Zt } from "../../components/Watchers/Watchers.es.js";
|
|
292
293
|
import "../../components/Menu/Menu.styled.es.js";
|
|
293
294
|
import "../../components/Menu/MenuItem.es.js";
|
|
294
295
|
import "../../components/ReviewablesSelector/ReviewablesSelector.es.js";
|
|
295
296
|
import "../../components/ColumnHeaderMenuUI.es.js";
|
|
296
|
-
const
|
|
297
|
+
const $t = ["product", "representation"], ti = ({
|
|
297
298
|
entityType: b,
|
|
298
299
|
entitySubTypes: P = [],
|
|
299
300
|
// entities is data we already have from kanban
|
|
300
|
-
entitiesData:
|
|
301
|
+
entitiesData: T = [],
|
|
301
302
|
// entityIds are used to get the full details data for the entities
|
|
302
303
|
entities: d = [],
|
|
303
|
-
tagsOptions:
|
|
304
|
-
disabledStatuses:
|
|
304
|
+
tagsOptions: tt = [],
|
|
305
|
+
disabledStatuses: it,
|
|
305
306
|
projectUsers: R,
|
|
306
|
-
disabledProjectUsers:
|
|
307
|
+
disabledProjectUsers: rt,
|
|
307
308
|
activeProjectUsers: S,
|
|
308
309
|
projectsInfo: g = {},
|
|
309
|
-
projectNames:
|
|
310
|
+
projectNames: ot = [],
|
|
310
311
|
isSlideOut: h = !1,
|
|
311
|
-
style:
|
|
312
|
+
style: ii = {},
|
|
312
313
|
scope: u,
|
|
313
|
-
isCompact:
|
|
314
|
-
onClose:
|
|
314
|
+
isCompact: et = !1,
|
|
315
|
+
onClose: x,
|
|
315
316
|
onWatchersUpdate: C,
|
|
316
317
|
onOpenViewer: F,
|
|
317
|
-
onEntityFocus:
|
|
318
|
+
onEntityFocus: pt,
|
|
318
319
|
onOpen: L,
|
|
319
320
|
onUriOpen: U,
|
|
320
321
|
// when the details panel is opened from uri
|
|
@@ -323,45 +324,38 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
323
324
|
removeAnnotation: H,
|
|
324
325
|
exportAnnotationComposite: M,
|
|
325
326
|
entityListId: A,
|
|
326
|
-
guestCategories:
|
|
327
|
-
entityListsContext:
|
|
327
|
+
guestCategories: mt = {},
|
|
328
|
+
entityListsContext: st
|
|
328
329
|
}) => {
|
|
329
330
|
const {
|
|
330
331
|
closeSlideOut: B,
|
|
331
|
-
openPip:
|
|
332
|
+
openPip: nt,
|
|
332
333
|
user: G,
|
|
333
|
-
isGuest:
|
|
334
|
+
isGuest: at,
|
|
334
335
|
entities: e,
|
|
335
|
-
setEntities:
|
|
336
|
+
setEntities: N,
|
|
336
337
|
slideOut: O,
|
|
337
|
-
useSearchParams:
|
|
338
|
+
useSearchParams: lt,
|
|
338
339
|
SubtasksManager: V,
|
|
339
|
-
useNavigate:
|
|
340
|
-
} =
|
|
340
|
+
useNavigate: ct
|
|
341
|
+
} = $(), { currentTab: a, setTab: j, isFeed: dt } = Wt(u), [ri, ut] = lt(), Q = I(!1), i = e?.entityType ?? b, q = e?.entities ?? d, ft = e?.entitySubTypes ?? P, yt = e?.entities ? [] : T, f = e?.entities ? e.entities.map((t) => t.projectName) : ot;
|
|
341
342
|
c(() => {
|
|
342
343
|
L && !Q.current && (Q.current = !0, L());
|
|
343
344
|
}, []), c(() => {
|
|
344
|
-
|
|
345
|
-
}, [
|
|
346
|
-
d.length && e &&
|
|
347
|
-
}, [d, e,
|
|
348
|
-
const
|
|
345
|
+
$t.includes(i) && a !== "details" && j("details");
|
|
346
|
+
}, [i, a, j]), c(() => {
|
|
347
|
+
d.length && e && N(null);
|
|
348
|
+
}, [d, e, N]);
|
|
349
|
+
const k = w(
|
|
349
350
|
() => _t(g, f),
|
|
350
351
|
[g, f]
|
|
351
|
-
),
|
|
352
|
-
() => ({
|
|
353
|
-
task: E.taskTypes.filter((t) => !!t.icon).reduce((t, i) => ({ ...t, [i.name]: i.icon }), {}),
|
|
354
|
-
folder: E.folderTypes.filter((t) => !!t.icon).reduce((t, i) => ({ ...t, [i.name]: i.icon }), {}),
|
|
355
|
-
product: E.productTypes.filter((t) => !!t.icon).reduce((t, i) => ({ ...t, [i.name]: i.icon }), {})
|
|
356
|
-
}),
|
|
357
|
-
[E]
|
|
358
|
-
);
|
|
352
|
+
), ht = w(() => zt(k), [k]);
|
|
359
353
|
c(() => {
|
|
360
|
-
a === "files" &&
|
|
361
|
-
}, [
|
|
354
|
+
a === "files" && i !== "version" && j("feed"), a === "subtasks" && i !== "task" && j("feed");
|
|
355
|
+
}, [i, a, u]);
|
|
362
356
|
let l = q.length ? q.map((t) => ({ id: t.id, projectName: t.projectName })) : (
|
|
363
357
|
// @ts-expect-error = not sure what's going on with activeEntitiesData, we should try and remove it
|
|
364
|
-
|
|
358
|
+
yt.map((t) => ({ id: t.id, projectName: t.projectName }))
|
|
365
359
|
);
|
|
366
360
|
l = l.filter((t) => t.id);
|
|
367
361
|
const {
|
|
@@ -370,9 +364,9 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
370
364
|
isError: jt,
|
|
371
365
|
originalArgs: Pt
|
|
372
366
|
} = Ct(
|
|
373
|
-
{ entityType:
|
|
367
|
+
{ entityType: i, entities: l },
|
|
374
368
|
{
|
|
375
|
-
skip: !l.length || !Ft.includes(
|
|
369
|
+
skip: !l.length || !Ft.includes(i)
|
|
376
370
|
}
|
|
377
371
|
);
|
|
378
372
|
c(() => {
|
|
@@ -380,125 +374,125 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
380
374
|
}, [Pt, h]), c(() => {
|
|
381
375
|
if (!y && (e?.source === "uri" || e?.source === "url") && e?.entities?.length && U) {
|
|
382
376
|
const t = p.find(
|
|
383
|
-
(
|
|
377
|
+
(r) => r.id === e.entities[0].id
|
|
384
378
|
);
|
|
385
379
|
if (!t) return;
|
|
386
380
|
U(t, e.source);
|
|
387
381
|
}
|
|
388
382
|
}, [p, y]);
|
|
389
|
-
const
|
|
383
|
+
const K = qt(g), n = f[0], X = g[n] || {}, m = p[0] || {}, E = p[p.length - 1], v = f[f.length - 1], [_, gt] = Qt({
|
|
390
384
|
entity: m,
|
|
391
|
-
entityType:
|
|
385
|
+
entityType: i,
|
|
392
386
|
projectName: n,
|
|
393
387
|
isLoading: y
|
|
394
|
-
}), { setEntityUri: Et, setUri:
|
|
388
|
+
}), { setEntityUri: Et, setUri: bt } = Bt();
|
|
395
389
|
c(() => {
|
|
396
|
-
if (!
|
|
397
|
-
const { folderPath: t, taskName:
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
390
|
+
if (!E?.parents || !v) return;
|
|
391
|
+
const { folderPath: t, taskName: r, versionName: s, productName: Z } = Lt(
|
|
392
|
+
E.parents,
|
|
393
|
+
i,
|
|
394
|
+
E.name
|
|
401
395
|
);
|
|
402
396
|
return Et({
|
|
403
397
|
projectName: v,
|
|
404
398
|
folderPath: t,
|
|
405
|
-
taskName:
|
|
406
|
-
productName:
|
|
399
|
+
taskName: r,
|
|
400
|
+
productName: Z,
|
|
407
401
|
versionName: s
|
|
408
402
|
}), () => {
|
|
409
|
-
|
|
403
|
+
bt("");
|
|
410
404
|
};
|
|
411
|
-
}, [p, f,
|
|
412
|
-
entityData:
|
|
405
|
+
}, [p, f, i]), It({
|
|
406
|
+
entityData: E,
|
|
413
407
|
project: v,
|
|
414
|
-
activeEntityType:
|
|
408
|
+
activeEntityType: i,
|
|
415
409
|
entitiesToQuery: l
|
|
416
410
|
});
|
|
417
|
-
const
|
|
418
|
-
|
|
411
|
+
const Tt = () => {
|
|
412
|
+
ut(
|
|
419
413
|
(t) => {
|
|
420
|
-
const
|
|
421
|
-
return
|
|
414
|
+
const r = new URLSearchParams(t);
|
|
415
|
+
return r.delete("project"), r.delete("type"), r.delete("id"), r;
|
|
422
416
|
},
|
|
423
417
|
{ replace: !0 }
|
|
424
418
|
);
|
|
425
419
|
}, D = () => {
|
|
426
|
-
|
|
420
|
+
x?.(), N(null), Tt(), B();
|
|
427
421
|
};
|
|
428
422
|
c(() => {
|
|
429
|
-
const t = (
|
|
430
|
-
if (
|
|
431
|
-
const s =
|
|
423
|
+
const t = (r) => {
|
|
424
|
+
if (r.key === "Escape" && x) {
|
|
425
|
+
const s = r.target;
|
|
432
426
|
if (["INPUT", "TEXTAREA", "SELECT"].includes(s.tagName) || s.isContentEditable || h === !1 && (s.closest("#viewer-dialog") || O)) return;
|
|
433
427
|
D();
|
|
434
428
|
}
|
|
435
429
|
};
|
|
436
430
|
return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
|
|
437
431
|
}, [D, h, O]);
|
|
438
|
-
const { requestPipWindow: xt } = Mt(),
|
|
439
|
-
const t = m?.label || m?.name || "",
|
|
440
|
-
switch (
|
|
432
|
+
const { requestPipWindow: xt } = Mt(), z = I(null), J = I(null), Nt = p.length === 1 && i !== "representation", kt = w(() => {
|
|
433
|
+
const t = m?.label || m?.name || "", r = m?.parents || [], s = [n];
|
|
434
|
+
switch (i) {
|
|
441
435
|
case "folder":
|
|
442
436
|
case "task":
|
|
443
437
|
case "product":
|
|
444
|
-
s.push(
|
|
438
|
+
s.push(r.at(-1), t);
|
|
445
439
|
break;
|
|
446
440
|
case "version":
|
|
447
|
-
s.push(
|
|
441
|
+
s.push(r.at(-2), r.at(-1), t);
|
|
448
442
|
break;
|
|
449
443
|
case "representation":
|
|
450
|
-
s.push(
|
|
444
|
+
s.push(r.at(-3), r.at(-2), r.at(-1), t);
|
|
451
445
|
break;
|
|
452
446
|
default:
|
|
453
447
|
s.push(t);
|
|
454
448
|
}
|
|
455
449
|
return s.filter(Boolean).join(" - ");
|
|
456
|
-
}, [m,
|
|
457
|
-
|
|
458
|
-
entityType:
|
|
450
|
+
}, [m, i, n]), vt = () => {
|
|
451
|
+
nt({
|
|
452
|
+
entityType: i,
|
|
459
453
|
entities: l,
|
|
460
454
|
scope: u
|
|
461
455
|
}), xt(500, 500);
|
|
462
|
-
},
|
|
463
|
-
|
|
456
|
+
}, Y = () => !(f.length > 1 || at && (!A || !Object.prototype.hasOwnProperty.call(
|
|
457
|
+
mt,
|
|
464
458
|
G.attrib?.email || ""
|
|
465
459
|
)));
|
|
466
460
|
return /* @__PURE__ */ o.jsx(
|
|
467
461
|
Ht,
|
|
468
462
|
{
|
|
469
|
-
thumbnailInputRef:
|
|
470
|
-
versionsInputRef:
|
|
463
|
+
thumbnailInputRef: z,
|
|
464
|
+
versionsInputRef: J,
|
|
471
465
|
canUploadVersion: Nt,
|
|
472
|
-
children: /* @__PURE__ */ o.jsxs(
|
|
466
|
+
children: /* @__PURE__ */ o.jsxs(wt, { className: "details-panel", children: [
|
|
473
467
|
/* @__PURE__ */ o.jsxs(Rt, { children: [
|
|
474
468
|
/* @__PURE__ */ o.jsx(
|
|
475
|
-
|
|
469
|
+
Yt,
|
|
476
470
|
{
|
|
477
|
-
segments:
|
|
471
|
+
segments: _,
|
|
478
472
|
versions: gt,
|
|
479
473
|
projectName: n,
|
|
480
474
|
hideProjectName: h,
|
|
481
|
-
isLoading: y || !
|
|
482
|
-
entityType:
|
|
475
|
+
isLoading: y || !_.length,
|
|
476
|
+
entityType: i,
|
|
483
477
|
scope: u,
|
|
484
|
-
entityTypeIcons:
|
|
478
|
+
entityTypeIcons: ht
|
|
485
479
|
}
|
|
486
480
|
),
|
|
487
481
|
/* @__PURE__ */ o.jsxs(St, { className: "right-tools", children: [
|
|
488
482
|
/* @__PURE__ */ o.jsx(
|
|
489
483
|
Vt,
|
|
490
484
|
{
|
|
491
|
-
entityType:
|
|
485
|
+
entityType: i,
|
|
492
486
|
entityId: m?.id,
|
|
493
487
|
entityIds: l.map((t) => t.id).filter(Boolean),
|
|
494
488
|
entityLabel: kt,
|
|
495
489
|
projectName: n,
|
|
496
490
|
selectedEntities: p.filter((t) => !!t?.id).map((t) => ({
|
|
497
491
|
entityId: t.id,
|
|
498
|
-
entityType: t.entityType ||
|
|
492
|
+
entityType: t.entityType || i,
|
|
499
493
|
hasReviewables: !!t.hasReviewables
|
|
500
494
|
})),
|
|
501
|
-
entityListsContext:
|
|
495
|
+
entityListsContext: st,
|
|
502
496
|
onOpenPip: vt,
|
|
503
497
|
onOpenViewer: F,
|
|
504
498
|
productId: m?.product?.id,
|
|
@@ -507,16 +501,16 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
507
501
|
}
|
|
508
502
|
),
|
|
509
503
|
/* @__PURE__ */ o.jsx(
|
|
510
|
-
|
|
504
|
+
Zt,
|
|
511
505
|
{
|
|
512
506
|
entities: l,
|
|
513
|
-
entityType:
|
|
507
|
+
entityType: i,
|
|
514
508
|
options: R || [],
|
|
515
509
|
onWatchersUpdate: C && C,
|
|
516
510
|
userName: G.name
|
|
517
511
|
}
|
|
518
512
|
),
|
|
519
|
-
|
|
513
|
+
x && /* @__PURE__ */ o.jsx(
|
|
520
514
|
Dt,
|
|
521
515
|
{
|
|
522
516
|
icon: "close",
|
|
@@ -530,36 +524,36 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
530
524
|
/* @__PURE__ */ o.jsx(
|
|
531
525
|
Gt,
|
|
532
526
|
{
|
|
533
|
-
entityType:
|
|
534
|
-
entitySubTypes:
|
|
527
|
+
entityType: i,
|
|
528
|
+
entitySubTypes: ft,
|
|
535
529
|
entities: p,
|
|
536
530
|
users: R,
|
|
537
|
-
disabledAssignees:
|
|
538
|
-
disabledStatuses:
|
|
539
|
-
tagsOptions:
|
|
531
|
+
disabledAssignees: rt,
|
|
532
|
+
disabledStatuses: it,
|
|
533
|
+
tagsOptions: tt,
|
|
540
534
|
isFetching: y,
|
|
541
|
-
isCompact:
|
|
535
|
+
isCompact: et,
|
|
542
536
|
currentTab: a,
|
|
543
537
|
onTabChange: j,
|
|
544
|
-
|
|
538
|
+
projectInfo: k,
|
|
545
539
|
onOpenViewer: (t) => F?.(t),
|
|
546
|
-
onEntityFocus:
|
|
547
|
-
thumbnailInputRef:
|
|
548
|
-
versionsInputRef:
|
|
540
|
+
onEntityFocus: pt,
|
|
541
|
+
thumbnailInputRef: z,
|
|
542
|
+
versionsInputRef: J
|
|
549
543
|
}
|
|
550
544
|
),
|
|
551
545
|
/* @__PURE__ */ o.jsxs(At, { projectName: n, children: [
|
|
552
|
-
|
|
546
|
+
dt && !jt && /* @__PURE__ */ o.jsx(
|
|
553
547
|
Kt,
|
|
554
548
|
{
|
|
555
|
-
entityType:
|
|
549
|
+
entityType: i,
|
|
556
550
|
entities: p,
|
|
557
551
|
activeUsers: S || [],
|
|
558
|
-
projectInfo:
|
|
552
|
+
projectInfo: X,
|
|
559
553
|
projectName: n,
|
|
560
|
-
disabled: !
|
|
554
|
+
disabled: !Y(),
|
|
561
555
|
scope: u,
|
|
562
|
-
statuses:
|
|
556
|
+
statuses: K,
|
|
563
557
|
readOnly: !1,
|
|
564
558
|
entityListId: A,
|
|
565
559
|
annotations: W,
|
|
@@ -568,14 +562,14 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
568
562
|
isSlideOut: h
|
|
569
563
|
}
|
|
570
564
|
),
|
|
571
|
-
a === "subtasks" &&
|
|
572
|
-
|
|
565
|
+
a === "subtasks" && i === "task" && m?.id && V && /* @__PURE__ */ o.jsx(
|
|
566
|
+
Jt,
|
|
573
567
|
{
|
|
574
568
|
projectName: n,
|
|
575
569
|
taskId: m.id,
|
|
576
570
|
subtasks: m.task?.subtasks || [],
|
|
577
571
|
SubtasksManager: V,
|
|
578
|
-
useNavigate:
|
|
572
|
+
useNavigate: ct,
|
|
579
573
|
onNotFound: () => j("feed")
|
|
580
574
|
}
|
|
581
575
|
),
|
|
@@ -590,14 +584,14 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
590
584
|
a === "details" && /* @__PURE__ */ o.jsx(
|
|
591
585
|
Xt,
|
|
592
586
|
{
|
|
593
|
-
entityType:
|
|
587
|
+
entityType: i,
|
|
594
588
|
entities: p,
|
|
595
589
|
activeUsers: S || [],
|
|
596
|
-
projectInfo:
|
|
590
|
+
projectInfo: X,
|
|
597
591
|
projectName: n,
|
|
598
|
-
disabled: !
|
|
592
|
+
disabled: !Y(),
|
|
599
593
|
scope: u,
|
|
600
|
-
statuses:
|
|
594
|
+
statuses: K,
|
|
601
595
|
readOnly: !1,
|
|
602
596
|
annotations: W,
|
|
603
597
|
removeAnnotation: H,
|
|
@@ -615,16 +609,16 @@ const Zt = ["product", "representation"], $t = ({
|
|
|
615
609
|
] })
|
|
616
610
|
}
|
|
617
611
|
);
|
|
618
|
-
},
|
|
612
|
+
}, Rm = ({
|
|
619
613
|
isOpen: b,
|
|
620
614
|
entityType: P,
|
|
621
|
-
...
|
|
615
|
+
...T
|
|
622
616
|
}) => {
|
|
623
|
-
const { entities: d } =
|
|
624
|
-
return !b && !d || !P && !d ? null : /* @__PURE__ */ o.jsx(
|
|
617
|
+
const { entities: d } = $();
|
|
618
|
+
return !b && !d || !P && !d ? null : /* @__PURE__ */ o.jsx(ti, { ...T, entityType: P || d?.entityType });
|
|
625
619
|
};
|
|
626
620
|
export {
|
|
627
|
-
|
|
628
|
-
|
|
621
|
+
Rm as DetailsPanel,
|
|
622
|
+
$t as entitiesWithoutFeed
|
|
629
623
|
};
|
|
630
624
|
//# sourceMappingURL=DetailsPanel.es.js.map
|