@ynput/ayon-frontend-shared 0.2.36 → 0.2.38
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 +68 -66
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +182 -167
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Views.cjs.js +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js +25 -24
- package/dist/Views.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +1 -1
- package/dist/_virtual/index.cjs11.js +1 -1
- package/dist/_virtual/index.cjs12.js +1 -1
- package/dist/_virtual/index.cjs2.js +1 -1
- package/dist/_virtual/index.cjs3.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.es10.js +3 -3
- package/dist/_virtual/index.es11.js +5 -5
- package/dist/_virtual/index.es12.js +5 -5
- package/dist/_virtual/index.es2.js +2 -5
- package/dist/_virtual/index.es2.js.map +1 -1
- package/dist/_virtual/index.es3.js +5 -2
- package/dist/_virtual/index.es3.js.map +1 -1
- package/dist/_virtual/index.es4.js +2 -2
- package/dist/_virtual/index.es5.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +107 -106
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +135 -133
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +32 -26
- package/dist/context.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +54 -52
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
- package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
- package/dist/node_modules/rehype/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/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/actions.es.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
- package/dist/shared/src/api/generated/authentication.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/authentication.es.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js +88 -84
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +22 -20
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +34 -32
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/generated/onboarding.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/onboarding.es.js.map +1 -1
- package/dist/shared/src/api/generated/products.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/products.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/system.cjs.js +1 -1
- package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/system.es.js +3 -0
- package/dist/shared/src/api/generated/system.es.js.map +1 -1
- package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/users.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/generated/ynputCloud.cjs.js +1 -1
- package/dist/shared/src/api/generated/ynputCloud.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/ynputCloud.es.js +6 -1
- package/dist/shared/src/api/generated/ynputCloud.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +7 -1
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +73 -67
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +131 -114
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +129 -122
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- 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 +4 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +61 -50
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +6 -4
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.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 +70 -68
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +7 -5
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +119 -112
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +106 -105
- package/dist/shared/src/components/LinksManager/AddNewLinks.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 +54 -52
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +58 -46
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +11 -9
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +45 -43
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +79 -77
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +44 -42
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +2 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +263 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -0
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +2 -2
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +66 -64
- 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 +140 -142
- 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 +50 -48
- 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 +49 -47
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.es.js +19 -27
- package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.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 +321 -258
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +27 -25
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.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 +48 -46
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +9 -7
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -6
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +109 -112
- 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 +22 -23
- 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 +49 -47
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
- package/dist/shared/src/containers/Actions/Actions.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 +50 -48
- 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 +162 -160
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +58 -56
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +112 -103
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +88 -86
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +19 -17
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +36 -32
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js +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 +25 -22
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +17 -15
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.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 +45 -43
- 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 +49 -47
- 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 +49 -47
- 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 +49 -47
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +45 -46
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +5 -3
- package/dist/shared/src/containers/Feed/Feed.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 +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +9 -7
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.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 +110 -108
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +10 -8
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +13 -11
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.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 +42 -41
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +46 -42
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +11 -9
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.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 +335 -329
- 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 +54 -52
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.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 +43 -41
- 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 +53 -51
- 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 +51 -49
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +235 -214
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +45 -40
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +160 -156
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.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 +59 -57
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +26 -90
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +69 -69
- 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 +111 -111
- 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 +58 -57
- 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 +51 -49
- 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 +60 -53
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +15 -20
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.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 +68 -66
- 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 +63 -59
- 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 +51 -49
- 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 +52 -50
- 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 +67 -65
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.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 +55 -53
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +130 -116
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.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 +58 -56
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +26 -34
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +122 -233
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +64 -62
- 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 +47 -45
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +58 -62
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.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 +114 -112
- 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 +49 -47
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +8 -6
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +100 -94
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +9 -9
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +40 -35
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +8 -7
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +76 -76
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +2 -0
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -0
- package/dist/shared/src/context/GlobalContext.es.js +123 -0
- package/dist/shared/src/context/GlobalContext.es.js.map +1 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +8 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +2 -0
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -0
- package/dist/shared/src/context/ProjectContext.es.js +182 -0
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +35 -34
- package/dist/shared/src/context/RemoteModulesContext.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 +48 -46
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +6 -5
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +27 -12
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/versionUploadHelpers.cjs.js +1 -1
- package/dist/shared/src/util/versionUploadHelpers.cjs.js.map +1 -1
- package/dist/shared/src/util/versionUploadHelpers.es.js +24 -34
- package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.es.js +4 -2
- package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +7 -5
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js +18 -16
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
- package/dist/types/api/generated/actions.d.ts +2 -0
- package/dist/types/api/generated/attributes.d.ts +20 -5
- package/dist/types/api/generated/authentication.d.ts +2 -0
- package/dist/types/api/generated/configuration.d.ts +3 -1
- package/dist/types/api/generated/entityLists.d.ts +22 -5
- package/dist/types/api/generated/enums.d.ts +36 -0
- package/dist/types/api/generated/graphql.d.ts +9 -2
- package/dist/types/api/generated/graphqlLinks.d.ts +3 -0
- package/dist/types/api/generated/onboarding.d.ts +1 -0
- package/dist/types/api/generated/products.d.ts +9 -3
- package/dist/types/api/generated/projects.d.ts +4 -4
- package/dist/types/api/generated/system.d.ts +27 -5
- package/dist/types/api/generated/users.d.ts +2 -0
- package/dist/types/api/generated/views.d.ts +40 -5
- package/dist/types/api/generated/ynputCloud.d.ts +7 -20
- package/dist/types/api/queries/actions/getActions.d.ts +6 -6
- package/dist/types/api/queries/activities/getActivities.d.ts +10 -8
- package/dist/types/api/queries/activities/getCategories.d.ts +2 -2
- package/dist/types/api/queries/activities/getMentions.d.ts +2 -2
- package/dist/types/api/queries/activities/updateActivities.d.ts +4 -0
- package/dist/types/api/queries/addons/getAddons.d.ts +8 -8
- package/dist/types/api/queries/attributes/getAttributes.d.ts +4 -4
- package/dist/types/api/queries/authentication/getAuthentication.d.ts +2 -2
- package/dist/types/api/queries/cloud/cloud.d.ts +21 -21
- package/dist/types/api/queries/entities/getEntity.d.ts +12 -10
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +6 -4
- package/dist/types/api/queries/entities/updateEntity.d.ts +2 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +190 -188
- package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +2 -2
- package/dist/types/api/queries/entityLists/listFolders.d.ts +2 -2
- package/dist/types/api/queries/folders/getFolders.d.ts +4 -4
- package/dist/types/api/queries/grouping/getGrouping.d.ts +2 -2
- package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -2
- package/dist/types/api/queries/overview/getOverview.d.ts +12 -10
- package/dist/types/api/queries/permissions/getPermissions.d.ts +4 -4
- package/dist/types/api/queries/project/getProject.d.ts +190 -6
- package/dist/types/api/queries/review/getReview.d.ts +6 -6
- package/dist/types/api/queries/share/share.d.ts +2 -2
- package/dist/types/api/queries/system/getSystem.d.ts +91 -81
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +13 -8
- package/dist/types/api/queries/users/getUsers.d.ts +63 -57
- package/dist/types/api/queries/users/guests.d.ts +2 -2
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +29 -6
- package/dist/types/api/queries/versions/getVersionsProductsUtils.d.ts +5 -5
- package/dist/types/api/queries/versions/updateVersions.d.ts +2 -2
- package/dist/types/api/queries/views/getViews.d.ts +8 -8
- package/dist/types/api/queries/watchers/getWatchers.d.ts +2 -2
- package/dist/types/components/DetailsPanelDetails/hooks/index.d.ts +0 -1
- package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +29 -0
- package/dist/types/components/RemotePage/index.d.ts +1 -0
- package/dist/types/components/ReviewablesList/getGroupedReviewables.d.ts +1 -2
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +2 -1
- package/dist/types/components/index.d.ts +31 -30
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +3 -2
- package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +3 -0
- package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +4 -2
- package/dist/types/containers/Feed/context/FeedContext.d.ts +4 -3
- package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +0 -5
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -4
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -7
- package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +2 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +1 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +5 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useGroupBySettings.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +3 -2
- package/dist/types/containers/Views/index.d.ts +2 -2
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +6 -10
- package/dist/types/context/AddonProjectContext.d.ts +9 -14
- package/dist/types/context/DetailsPanelContext.d.ts +1 -2
- package/dist/types/context/GlobalContext.d.ts +25 -0
- package/dist/types/context/ProjectContext.d.ts +33 -0
- package/dist/types/context/index.d.ts +2 -0
- package/dist/types/hooks/useGroupByRemoteModules.d.ts +2 -1
- package/dist/types/util/index.d.ts +0 -2
- package/dist/types/util/versionUploadHelpers.d.ts +0 -1
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +55 -58
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +0 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +0 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +0 -99
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +0 -1
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js +0 -2
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js.map +0 -1
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js +0 -64
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js.map +0 -1
- package/dist/shared/src/util/productTypes.cjs.js +0 -2
- package/dist/shared/src/util/productTypes.cjs.js.map +0 -1
- package/dist/shared/src/util/productTypes.es.js +0 -25
- package/dist/shared/src/util/productTypes.es.js.map +0 -1
- package/dist/types/components/DetailsPanelDetails/hooks/useEntityData.d.ts +0 -12
- package/dist/types/containers/Views/hooks/pages/useReportsViewSettings.d.ts +0 -11
- package/dist/types/util/productTypes.d.ts +0 -8
package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityPickerData.es.js","sources":["../../../../../../src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.tsx"],"sourcesContent":["import {\n FolderListItem,\n SearchEntityLink,\n
|
|
1
|
+
{"version":3,"file":"useGetEntityPickerData.es.js","sources":["../../../../../../src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.tsx"],"sourcesContent":["import {\n FolderListItem,\n SearchEntityLink,\n useGetSearchedEntitiesLinksInfiniteQuery,\n} from '@shared/api'\nimport { useProjectContext } from '@shared/context'\nimport { useHierarchyTable } from '@shared/hooks'\nimport { FC, useMemo } from 'react'\nimport { PickerEntityType, PickerSearch } from '../EntityPickerDialog'\nimport {\n buildEntityPickerTableData,\n buildFolderPickerTableData,\n EntityAnatomy,\n entityHierarchies,\n} from '../util'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { matchSorter } from 'match-sorter'\n\nexport type EntityQueryResult = {\n data: (SearchEntityLink | FolderListItem)[]\n table: SimpleTableRow[]\n isLoading: boolean\n isFetchingNextPage?: boolean\n hasNextPage?: boolean\n fetchNextPage?: () => void\n error?: string\n}\n\ntype EntityPickerDataReturn = {\n folder: EntityQueryResult\n task: EntityQueryResult\n product: EntityQueryResult\n version: EntityQueryResult\n representation: EntityQueryResult\n workfile: EntityQueryResult\n}\n\ninterface useGetEntityPickerDataProps {\n projectName: string\n entityType: PickerEntityType // which entity type we are picking for\n search: PickerSearch\n selection: Record<PickerEntityType, string[]>\n}\n\nexport const useGetEntityPickerData = ({\n projectName,\n entityType,\n search,\n selection,\n}: useGetEntityPickerDataProps): EntityPickerDataReturn => {\n const entityDependencies = entityHierarchies[entityType] || []\n\n // Get project data\n const project = useProjectContext()\n // convert flat list to table rows for the table\n const {\n data: hierarchTable,\n folders: foldersDataRaw,\n isFetching: isLoadingFolders,\n } = useHierarchyTable({\n projectName,\n folderTypes: project?.folderTypes || [],\n })\n\n const foldersData = useMemo(() => {\n if (!search.folder) return foldersDataRaw\n return matchSorter(foldersDataRaw, search.folder, {\n keys: ['name', 'label', 'path'],\n })\n }, [foldersDataRaw, search.folder])\n\n // create flat filtered data when searching on folders\n const foldersTable = useMemo(\n () =>\n search.folder\n ? buildFolderPickerTableData(foldersData, project?.folderTypes || [])\n : hierarchTable,\n\n [foldersData, hierarchTable, search.folder, project],\n )\n\n const folder: EntityQueryResult = {\n data: foldersData,\n table: foldersTable,\n isLoading: isLoadingFolders,\n }\n\n // if there is a selection on the parent we user that, otherwise we use all parent ids of parent data\n const getParentIds = (parentType: PickerEntityType, parentData: { id: string }[] = []) => {\n const parentSelection = selection[parentType]\n if (parentSelection?.length > 0) {\n return parentSelection\n } else if (parentData) {\n return parentData.map((entity) => entity.id)\n } else {\n return undefined\n }\n }\n\n const task = useGetEntityTypeData(\n projectName,\n 'task',\n search.task,\n !entityDependencies.includes('task'),\n getParentIds(entityHierarchies['task'][entityHierarchies['task'].length - 2], foldersData),\n project?.taskTypes,\n )\n const product = useGetEntityTypeData(\n projectName,\n 'product',\n search.product,\n !entityDependencies.includes('product'),\n getParentIds(\n entityHierarchies['product'][entityHierarchies['product'].length - 2],\n folder.data,\n ),\n project?.productTypes,\n )\n const version = useGetEntityTypeData(\n projectName,\n 'version',\n search.version,\n !entityDependencies.includes('version'),\n getParentIds(\n entityHierarchies['version'][entityHierarchies['version'].length - 2],\n product.data,\n ),\n )\n const representation = useGetEntityTypeData(\n projectName,\n 'representation',\n search.representation,\n !entityDependencies.includes('representation'),\n getParentIds(\n entityHierarchies['representation'][entityHierarchies['representation'].length - 2],\n version.data,\n ),\n )\n const workfile = useGetEntityTypeData(\n projectName,\n 'workfile',\n search.workfile,\n !entityDependencies.includes('workfile'),\n getParentIds(\n entityHierarchies['workfile'][entityHierarchies['workfile'].length - 2],\n task.data,\n ),\n )\n\n return {\n folder,\n task,\n product,\n version,\n representation,\n workfile,\n }\n}\n\nconst useGetEntityTypeData = (\n projectName: string,\n entityType: PickerEntityType,\n search: string | undefined,\n skip: boolean,\n parentIds?: string[],\n anatomies?: EntityAnatomy[],\n) => {\n const { data, isFetching, hasNextPage, fetchNextPage, isFetchingNextPage, error } =\n useGetSearchedEntitiesLinksInfiniteQuery(\n {\n projectName,\n entityType,\n search,\n parentIds,\n },\n // skip if this is folder hierarchy (we already have the folders) or if we're waiting for parent selection\n {\n skip: skip,\n },\n )\n\n // Flatten all entities from all pages\n const entities = useMemo(() => {\n return data?.pages.flatMap((page) => page.entities) || []\n }, [data])\n\n // convert to table rows\n const table = useMemo(\n () => buildEntityPickerTableData(entities, anatomies),\n [entities, anatomies],\n )\n\n return {\n data: entities,\n table: table,\n isLoading: isFetching,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n error: error as string,\n }\n}\n"],"names":["useGetEntityPickerData","projectName","entityType","search","selection","entityDependencies","entityHierarchies","project","useProjectContext","hierarchTable","foldersDataRaw","isLoadingFolders","useHierarchyTable","foldersData","useMemo","matchSorter","foldersTable","buildFolderPickerTableData","folder","getParentIds","parentType","parentData","parentSelection","entity","task","useGetEntityTypeData","product","version","representation","workfile","skip","parentIds","anatomies","data","isFetching","hasNextPage","fetchNextPage","isFetchingNextPage","error","useGetSearchedEntitiesLinksInfiniteQuery","entities","page","table","buildEntityPickerTableData"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../../_virtual/jsx-runtime.cjs.js"),x=require("react"),ne=require("./components/ActivityItem.cjs.js"),ie=require("./components/CommentInput/CommentInput.cjs.js"),j=require("./Feed.styled.cjs.js"),se=require("./hooks/useCommentMutations.cjs.js"),oe=require("./hooks/useTransformActivities.cjs.js"),re=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),le=require("./hooks/useSaveScrollPos.cjs.js"),ae=require("./hooks/useScrollOnInputOpen.cjs.js"),ce=require("./feedHelpers.cjs.js");require("@ynput/ayon-react-components");const de=require("clsx"),ue=require("./hooks/useScrollToHighlighted.cjs.js"),me=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),pe=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const h=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const ge=require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");const xe=require("./helpers/mergeAnnotationAttachments.cjs.js"),he=30,fe=({disabled:b,readOnly:L,statuses:S=[],entityListId:D})=>{const{projectName:r,entities:l,entityType:m,editingId:I,projectInfo:M,setEditingId:w,userName:_,activitiesData:F,isLoadingNew:a,isLoadingNextPage:B,loadNextPage:c,hasNextPage:H,users:W,currentTab:d}=h.useFeedContext(),{openSlideOut:U,highlightedActivities:f,setHighlightedActivities:V,onOpenImage:y,setFeedAnnotations:N}=ge.useDetailsPanelContext(),z=["versions"].includes(d),p=x.useMemo(()=>xe(F),[F]);x.useEffect(()=>{p.length||N([]);const e=p.map(t=>{var n,i;return(i=(n=t.activityData)==null?void 0:n.annotations)==null?void 0:i.map(s=>({...s,activityId:t.activityId}))}).filter(Boolean).flat();N(e)},[p]);const q=oe.default(p,W,M,m,_),u=x.useRef(null);ae({feedRef:u,isInputOpen:I===h.FEED_NEW_COMMENT,height:93}),le({entities:l,feedRef:u,filter:d,disabled:!!f.length,isLoading:a}),ue({feedRef:u,highlighted:f,isLoading:a,loadNextPage:c,hasNextPage:!!c});const{submitComment:G,updateComment:R,deleteComment:J,isSaving:K}=se({projectName:r,entityType:m,entities:l,filter:d,entityListId:D}),Q=(e,t)=>{var O;const n=e==null?void 0:e.target;if(!n||!t)return console.log("no target or activity");const i=n.checked,s=i?"[ ]":"[x]",$=i?"[x]":"[ ]",{body:g}=t,k=Array.from(((O=n.closest(".comment-body"))==null?void 0:O.querySelectorAll(".task-list-item"))||[]).findIndex(v=>v===n.closest("li"));let P=k;(g.match(/\[.\]/g)||[]).forEach((v,te)=>{v!==s&&te<k&&P--});const T=[];let E=-1;for(;(E=g.indexOf(s,E+1))>-1;)T.push(E);const C=T[P];if(C===void 0)return;const ee=C+s.length,A=g.slice(0,C)+$+g.slice(ee);A&&R(t,A,t.files)},X=e=>{const{entityId:t,entityType:n,activityId:i}=e;if(!n||!["version","task","folder"].includes(n))return console.log("Entity type not supported yet");if(!t||!n||!r)return console.log("No entity id or type found");U({entityId:t,entityType:n,projectName:r}),V([i])},Y=({index:e,activityId:t})=>{const n=Object.values(q).reverse().filter(i=>i.activityType=="comment").map(i=>({id:i.activityId,files:i.files.filter(s=>me.isFilePreviewable(s.mime,s.ext))})).filter(i=>i.files.length>0);y==null||y({files:n,activityId:t,index:e,projectName:r})},Z=x.useMemo(()=>ce.getLoadingPlaceholders(10),[]);return o.jsxRuntimeExports.jsx(o.jsxRuntimeExports.Fragment,{children:o.jsxRuntimeExports.jsxs(j.FeedContainer,{className:"feed",children:[void 0,o.jsxRuntimeExports.jsxs(j.FeedContent,{ref:u,className:de({loading:a},"no-shimmer"),children:[a?Z:q.map(e=>o.jsxRuntimeExports.jsx(ne,{activity:e,onCheckChange:Q,onDelete:J,onUpdate:async(t,n,i,s)=>await R(e,t,n,s),projectInfo:M,projectName:r,entityType:m,onReferenceClick:X,createdAts:l.map(t=>t.createdAt),onFileExpand:Y,showOrigin:l.length>1,filter:d,editProps:{projectName:r,entities:l,entityType:m},isHighlighted:f.includes(e.activityId),readOnly:L,statuses:S},e.activityId)),q.length===1&&d==="versions"&&!a&&o.jsxRuntimeExports.jsx(pe.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),H&&c&&o.jsxRuntimeExports.jsx(re.InView,{root:u.current,onChange:e=>e&&c(),rootMargin:"400px 0px 0px 0px",children:o.jsxRuntimeExports.jsx(j.LoadMore,{style:{height:0},onClick:()=>c(),children:B?"Loading more...":"Click to load more"})})]}),!z&&o.jsxRuntimeExports.jsx(ie.default,{initValue:null,onSubmit:G,isOpen:I===h.FEED_NEW_COMMENT,onClose:()=>w(null),onOpen:()=>w(h.FEED_NEW_COMMENT),disabled:b,isLoading:a||!l.length||K})]})})};exports.Feed=fe;exports.activitiesLast=he;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../../_virtual/jsx-runtime.cjs.js"),x=require("react"),ne=require("./components/ActivityItem.cjs.js"),ie=require("./components/CommentInput/CommentInput.cjs.js"),j=require("./Feed.styled.cjs.js"),se=require("./hooks/useCommentMutations.cjs.js"),oe=require("./hooks/useTransformActivities.cjs.js"),re=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),le=require("./hooks/useSaveScrollPos.cjs.js"),ae=require("./hooks/useScrollOnInputOpen.cjs.js"),ce=require("./feedHelpers.cjs.js");require("@ynput/ayon-react-components");const de=require("clsx"),ue=require("./hooks/useScrollToHighlighted.cjs.js"),me=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),pe=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const h=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const ge=require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");const xe=require("./helpers/mergeAnnotationAttachments.cjs.js"),he=30,fe=({disabled:b,readOnly:L,statuses:S=[],entityListId:D})=>{const{projectName:r,entities:l,entityType:m,editingId:I,projectInfo:M,setEditingId:w,userName:_,activitiesData:F,isLoadingNew:a,isLoadingNextPage:B,loadNextPage:c,hasNextPage:H,users:W,currentTab:d}=h.useFeedContext(),{openSlideOut:U,highlightedActivities:f,setHighlightedActivities:V,onOpenImage:y,setFeedAnnotations:N}=ge.useDetailsPanelContext(),z=["versions"].includes(d),p=x.useMemo(()=>xe(F),[F]);x.useEffect(()=>{p.length||N([]);const e=p.map(t=>{var n,i;return(i=(n=t.activityData)==null?void 0:n.annotations)==null?void 0:i.map(s=>({...s,activityId:t.activityId}))}).filter(Boolean).flat();N(e)},[p]);const q=oe.default(p,W,M,m,_),u=x.useRef(null);ae({feedRef:u,isInputOpen:I===h.FEED_NEW_COMMENT,height:93}),le({entities:l,feedRef:u,filter:d,disabled:!!f.length,isLoading:a}),ue({feedRef:u,highlighted:f,isLoading:a,loadNextPage:c,hasNextPage:!!c});const{submitComment:G,updateComment:R,deleteComment:J,isSaving:K}=se({projectName:r,entityType:m,entities:l,filter:d,entityListId:D}),Q=(e,t)=>{var O;const n=e==null?void 0:e.target;if(!n||!t)return console.log("no target or activity");const i=n.checked,s=i?"[ ]":"[x]",$=i?"[x]":"[ ]",{body:g}=t,k=Array.from(((O=n.closest(".comment-body"))==null?void 0:O.querySelectorAll(".task-list-item"))||[]).findIndex(v=>v===n.closest("li"));let P=k;(g.match(/\[.\]/g)||[]).forEach((v,te)=>{v!==s&&te<k&&P--});const T=[];let E=-1;for(;(E=g.indexOf(s,E+1))>-1;)T.push(E);const C=T[P];if(C===void 0)return;const ee=C+s.length,A=g.slice(0,C)+$+g.slice(ee);A&&R(t,A,t.files)},X=e=>{const{entityId:t,entityType:n,activityId:i}=e;if(!n||!["version","task","folder"].includes(n))return console.log("Entity type not supported yet");if(!t||!n||!r)return console.log("No entity id or type found");U({entityId:t,entityType:n,projectName:r}),V([i])},Y=({index:e,activityId:t})=>{const n=Object.values(q).reverse().filter(i=>i.activityType=="comment").map(i=>({id:i.activityId,files:i.files.filter(s=>me.isFilePreviewable(s.mime,s.ext))})).filter(i=>i.files.length>0);y==null||y({files:n,activityId:t,index:e,projectName:r})},Z=x.useMemo(()=>ce.getLoadingPlaceholders(10),[]);return o.jsxRuntimeExports.jsx(o.jsxRuntimeExports.Fragment,{children:o.jsxRuntimeExports.jsxs(j.FeedContainer,{className:"feed",children:[void 0,o.jsxRuntimeExports.jsxs(j.FeedContent,{ref:u,className:de({loading:a},"no-shimmer"),children:[a?Z:q.map(e=>o.jsxRuntimeExports.jsx(ne,{activity:e,onCheckChange:Q,onDelete:J,onUpdate:async(t,n,i,s)=>await R(e,t,n,s),projectInfo:M,projectName:r,entityType:m,onReferenceClick:X,createdAts:l.map(t=>t.createdAt),onFileExpand:Y,showOrigin:l.length>1,filter:d,editProps:{projectName:r,entities:l,entityType:m},isHighlighted:f.includes(e.activityId),readOnly:L,statuses:S},e.activityId)),q.length===1&&d==="versions"&&!a&&o.jsxRuntimeExports.jsx(pe.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),H&&c&&o.jsxRuntimeExports.jsx(re.InView,{root:u.current,onChange:e=>e&&c(),rootMargin:"400px 0px 0px 0px",children:o.jsxRuntimeExports.jsx(j.LoadMore,{style:{height:0},onClick:()=>c(),children:B?"Loading more...":"Click to load more"})})]}),!z&&o.jsxRuntimeExports.jsx(ie.default,{initValue:null,onSubmit:G,isOpen:I===h.FEED_NEW_COMMENT,onClose:()=>w(null),onOpen:()=>w(h.FEED_NEW_COMMENT),disabled:b,isLoading:a||!l.length||K})]})})};exports.Feed=fe;exports.activitiesLast=he;
|
|
2
2
|
//# sourceMappingURL=Feed.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|
|
@@ -29,8 +29,10 @@ import "../../context/PowerpackContext.es.js";
|
|
|
29
29
|
import "../../context/MoveEntityContext.es.js";
|
|
30
30
|
import "../../context/MenuContext.es.js";
|
|
31
31
|
import "../../context/WebsocketContext.es.js";
|
|
32
|
+
import "../../context/GlobalContext.es.js";
|
|
33
|
+
import "../../context/ProjectContext.es.js";
|
|
32
34
|
import ve from "./helpers/mergeAnnotationAttachments.es.js";
|
|
33
|
-
const
|
|
35
|
+
const it = 30, nt = ({ disabled: L, readOnly: S, statuses: R = [], entityListId: D }) => {
|
|
34
36
|
const {
|
|
35
37
|
projectName: r,
|
|
36
38
|
entities: l,
|
|
@@ -183,7 +185,7 @@ const tt = 30, ot = ({ disabled: L, readOnly: S, statuses: R = [], entityListId:
|
|
|
183
185
|
] }) });
|
|
184
186
|
};
|
|
185
187
|
export {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
+
nt as Feed,
|
|
189
|
+
it as activitiesLast
|
|
188
190
|
};
|
|
189
191
|
//# sourceMappingURL=Feed.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Feed.es.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n}\n\nexport const Feed = ({ disabled, readOnly, statuses = [], entityListId }: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n currentTab,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n } = useDetailsPanelContext()\n\n // hide comment input for specific filters\n const hideCommentInput = ['versions'].includes(currentTab)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: currentTab,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n })\n\n // comment mutations here!\n const { submitComment, updateComment, deleteComment, isSaving } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: currentTab,\n entityListId,\n })\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={currentTab}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 1 && currentTab === 'versions' && !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","Feed","disabled","readOnly","statuses","entityListId","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","currentTab","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","useDetailsPanelContext","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","_b","_a","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitComment","updateComment","deleteComment","isSaving","useCommentMutations","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","jsxs","Styled.FeedContainer","Styled.FeedContent","clsx","jsx","ActivityItem","value","files","_refs","data","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
|
|
1
|
+
"use strict";const r=require("../../../../../../_virtual/jsx-runtime.cjs.js"),S=require("clsx"),f=require("react"),te=require("react-markdown"),re=require("remark-emoji"),ne=require("remark-gfm"),oe=require("remark-directive"),ie=require("remark-directive-rehype"),se=require("../CommentInput/CommentInput.cjs.js"),ce=require("../ReactionContainer/Reactions.cjs.js"),ue=require("../../hooks/useReferenceTooltip.cjs.js"),ae=require("../FilesGrid/FilesGrid.cjs.js"),le=require("../CommentInput/quillToMarkdown.cjs.js"),s=require("./ActivityComment.styled.cjs.js"),me=require("./CommentWrapper.cjs.js"),x=require("./ActivityMarkdownComponents.cjs.js"),de=require("./mappers.cjs.js"),xe=require("@ynput/ayon-react-components"),pe=require("../ActivityStatus/ActivityStatus.cjs.js"),qe=require("../../context/FeedContext.cjs.js"),je=require("../../../../util/confirmDelete.cjs.js");require("react-toastify");require("uuid");require("lodash");require("../../../../util/pubsub.cjs.js");const ye=require("../ActivityHeader/ActivityHeader.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const Re=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");const ge=require("../CommentInput/hooks/useBlendedCategoryColor.cjs.js"),Ce=require("../ActivityCategorySelect/CategoryTag.cjs.js"),Ee=({activity:n={},onCheckChange:B,onDelete:p,onUpdate:q,projectInfo:he,editProps:N,projectName:c,entityType:H,onReferenceClick:T,onFileExpand:G,showOrigin:$,isHighlighted:_,readOnly:v,statuses:D=[]})=>{var P;const{userName:j,createReaction:L,deleteReaction:O,editingId:Q,setEditingId:y,categories:k,isGuest:R}=qe.useFeedContext(),t=f.useMemo(()=>k.find(e=>{var d;return e.name===((d=n.activityData)==null?void 0:d.category)})||null,[(P=n==null?void 0:n.activityData)==null?void 0:P.category,k]),u=ge.useBlendedCategoryColor(t==null?void 0:t.color);let{body:g,authorName:l,authorFullName:C,createdAt:V,referenceType:W,entityId:A,activityId:o,author:i,isOwner:w,files:E=[],origin:h}=n;l||(l=(i==null?void 0:i.name)||""),C||(C=(i==null?void 0:i.fullName)||l);const{onGoToFrame:m,setHighlightedActivities:z}=Re.useDetailsPanelContext(),b=()=>{y(o)},J=()=>{y(null)},K=async(e,d,ee)=>{await(q==null?void 0:q(e,d,void 0,ee)),y(null)},a=Q===o,I=W!=="origin"||$,X=async()=>{const e=le.getTextRefs(g);I&&h&&e.push({id:h.id,type:h.type}),p&&await p(o,A,e)},Y=()=>{je.confirmDelete({title:"Delete comment",message:"Are you sure you want to delete this comment?",accept:async()=>{await X()}})},[,F]=ue(),M=f.useMemo(()=>de.mapGraphQLReactions(n.reactions,j),[[...n.reactions||[]]]),Z=e=>{e.isActive?L({projectName:c,userName:j,activityId:o,createReactionModel:{reaction:e.type}}):O({projectName:c,userName:j,activityId:o,reaction:e.type})},U=f.useCallback(e=>{e.annotation&&(m==null||m(e.annotation.range[0]),z([o]))},[m]);return r.jsxRuntimeExports.jsx(r.jsxRuntimeExports.Fragment,{children:r.jsxRuntimeExports.jsxs(s.Comment,{className:S("comment",{isOwner:w,isEditing:a,isHighlighted:_,category:!!t&&!R}),id:o,$categoryPrimary:t==null?void 0:t.color,$categoryTertiary:u.primary,$categorySecondary:u.secondary,children:[r.jsxRuntimeExports.jsx(ye,{name:l,fullName:C,date:V,isRef:I,activity:n,projectName:c,entityType:H,onReferenceClick:T,onReferenceTooltip:F,children:void 0}),r.jsxRuntimeExports.jsxs(s.Body,{className:S("comment-body",{isEditing:a}),children:[!v&&w?r.jsxRuntimeExports.jsxs(s.Tools,{className:"tools",children:[p&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"delete",onClick:Y,tooltip:"Delete comment",variant:"text"}),b&&r.jsxRuntimeExports.jsx(s.ToolButton,{icon:"edit_square",onClick:b,variant:"text"})]}):r.jsxRuntimeExports.jsx("div",{className:"tools"}),!a&&!R&&t&&r.jsxRuntimeExports.jsx(Ce.CategoryTag,{value:t.name,color:t.color,style:{top:-4,left:-4},isCompact:!0}),a?r.jsxRuntimeExports.jsx(se.default,{initValue:g,initFiles:E,initCategory:t==null?void 0:t.name,isEditing:!0,onClose:J,onSubmit:K,isOpen:!0,...N}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx(me,{children:r.jsxRuntimeExports.jsx(te,{remarkPlugins:[ne,re,oe,ie],urlTransform:e=>e,components:{a:e=>x.aTag(e,{entityId:A,projectName:c,onReferenceClick:T,onReferenceTooltip:F,activityId:o,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary}),input:e=>x.inputTag(e,{activity:n,onCheckChange:B}),code:e=>x.codeTag(e),blockquote:e=>x.blockquoteTag(e),tip:e=>r.jsxRuntimeExports.jsxs(s.Tip,{children:[r.jsxRuntimeExports.jsx(xe.Icon,{icon:"info"}),e.children]}),status:e=>r.jsxRuntimeExports.jsx(pe,{name:e.id,statuses:D,children:e.children})},children:g})}),r.jsxRuntimeExports.jsx(ae,{files:E,isCompact:E.length>6,activityId:o,projectName:c,isDownloadable:!0,onExpand:G,onAnnotationClick:U,onRemove:void 0})]}),!a&&r.jsxRuntimeExports.jsx("div",{style:{marginTop:"16px"},children:M&&r.jsxRuntimeExports.jsx(ce,{reactions:M,changeHandler:Z,readOnly:v,category:t&&!R?t.name:void 0,categoryPrimary:t==null?void 0:t.color,categorySecondary:u.secondary,categoryTertiary:u.primary})})]})]})})};module.exports=Ee;
|
|
2
2
|
//# sourceMappingURL=ActivityComment.cjs.js.map
|
package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"+0DAkDMA,GAAkB,CAAC,CACvB,SAAAC,EAAW,CAAC,EACZ,cAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,GACA,UAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,CAAA,CACb,IAAa,OACL,KAAA,CAAE,SAAAC,EAAU,eAAAC,EAAgB,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,EAAc,WAAAC,EAAY,QAAAC,CAAQ,EAC7FC,kBAAe,EAEXC,EAAeC,EAAAA,QAAQ,IACpBJ,EAAW,KAAMK,GAAQ,OAAA,OAAAA,EAAI,SAASC,EAAAzB,EAAS,eAAT,YAAAyB,EAAuB,UAAQ,GAAK,KAChF,EAACA,EAAAzB,GAAA,YAAAA,EAAU,eAAV,YAAAyB,EAAwB,SAAUN,CAAU,CAAC,EAE3CO,EAAuBC,GAAAA,wBAAwBL,GAAA,YAAAA,EAAc,KAAK,EAEpE,GAAA,CACF,KAAAM,EACA,WAAAC,EACA,eAAAC,EACA,UAAAC,EACA,cAAAC,EACA,SAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,OAAAC,CAAA,EACEtC,EACC6B,IAAyBA,GAAAM,GAAA,YAAAA,EAAQ,OAAQ,IACzCL,IAAiCA,GAAAK,GAAA,YAAAA,EAAQ,WAAYN,GAE1D,KAAM,CAAE,YAAAU,EAAa,yBAAAC,CAAyB,EAAIC,0BAAuB,EAEnEC,EAAoB,IAAM,CAC9BxB,EAAagB,CAAU,CACzB,EAEMS,EAAmB,IAAM,CAE7BzB,EAAa,IAAI,CACnB,EAEM0B,EAAa,MAAOC,EAAYR,EAAYS,KAAe,CAC/D,MAAM3C,GAAA,YAAAA,EAAW0C,EAAOR,EAAO,OAAWS,KAC1C5B,EAAa,IAAI,CACnB,EAEM6B,EAAY9B,IAAciB,EAE1Bc,EAAQhB,IAAkB,UAAYtB,EAEtCuC,EAAe,SAAY,CACzB,MAAAC,EAAOC,eAAYvB,CAAI,EAKzBoB,GAASV,GACNY,EAAA,KAAK,CAAE,GAAIZ,EAAO,GAAI,KAAMA,EAAO,KAAM,EAIhDpC,GAAa,MAAMA,EAASgC,EAAYD,EAAUiB,CAAI,CACxD,EAEME,EAAqB,IAAM,CACjBC,iBAAA,CACZ,MAAO,iBACP,QAAS,gDACT,OAAQ,SAAY,CAClB,MAAMJ,EAAa,CAAA,CACrB,CACD,CACH,EAEM,CAAG,CAAAK,CAAa,EAAIC,GAAoB,EAExCC,EAAkBjC,EAAA,QACtB,IAAMkC,uBAAoBzD,EAAS,UAAWc,CAAQ,EACtD,CAAC,CAAC,GAAId,EAAS,WAAa,EAAG,CAAC,CAClC,EAEM0D,EAAyBC,GAAuB,CAChDA,EAAS,SACI5C,EAAA,CACb,YAAAT,EAEA,SAAAQ,EACA,WAAAoB,EACA,oBAAqB,CACnB,SAAUyB,EAAS,IAAA,CACrB,CACD,EAEc3C,EAAA,CACb,YAAAV,EAEA,SAAAQ,EACA,WAAAoB,EACA,SAAUyB,EAAS,IAAA,CACpB,CAEL,EAEMC,EAAoBC,EAAA,YACvBC,GAAc,CACRA,EAAK,aAEVvB,GAAA,MAAAA,EAAeuB,EAAK,WAAuC,MAAM,CAAC,GACzCtB,EAAA,CAACN,CAAU,CAAC,EACvC,EACA,CAACK,CAAW,CACd,EAEA,OAEIwB,wBAAAC,EAAAA,kBAAAA,SAAA,CAAA,SAAAC,EAAA,kBAAA,KAACC,EAAO,QAAP,CACC,UAAWC,EAAK,UAAW,CACzB,QAAA/B,EACA,UAAAW,EACA,cAAApC,EACA,SAAU,CAAC,CAACW,GAAgB,CAACF,CAAA,CAC9B,EACD,GAAIc,EACJ,iBAAkBZ,GAAA,YAAAA,EAAc,MAChC,kBAAmBI,EAAqB,QACxC,mBAAoBA,EAAqB,UAEzC,SAAA,CAAAqC,EAAA,kBAAA,IAACK,GAAA,CACC,KAAMvC,EACN,SAAUC,EACV,KAAMC,EACN,MAAAiB,EACA,SAAAhD,EAEA,YAAAM,EACA,WAAAC,EACA,iBAAAC,EACA,mBAAoB8C,EACpB,SAAU,MAAA,CACZ,EACAW,yBAACI,EAAAA,KAAA,CAAY,UAAWF,EAAK,eAAgB,CAAE,UAAApB,EAAW,EACvD,SAAA,CAAA,CAACnC,GAAYwB,EACZ6B,EAAA,kBAAA,KAACK,EAAA,MAAA,CAAa,UAAW,QACtB,SAAA,CACCpE,GAAA6D,EAAA,kBAAA,IAACQ,EAAO,WAAP,CACC,KAAK,SACL,QAASnB,EACT,QAAQ,iBACR,QAAQ,MAAA,CACV,EAEDV,GACEqB,EAAAA,kBAAAA,IAAAQ,EAAA,WAAA,CAAkB,KAAK,cAAc,QAAS7B,EAAmB,QAAQ,MAAO,CAAA,CAAA,CAErF,CAAA,EAEAqB,EAAAA,kBAAAA,IAAC,MAAI,CAAA,UAAU,OAAQ,CAAA,EAGxB,CAAChB,GAAa,CAAC3B,GAAWE,GACzByC,EAAA,kBAAA,IAACS,GAAA,YAAA,CACC,MAAOlD,EAAa,KACpB,MAAOA,EAAa,MACpB,MAAO,CACL,IAAK,GACL,KAAM,EACR,EACA,UAAS,EAAA,CACX,EAGDyB,EACCgB,EAAA,kBAAA,IAACU,GAAA,QAAA,CACC,UAAW7C,EACX,UAAWS,EACX,aAAcf,GAAA,YAAAA,EAAc,KAC5B,UAAS,GACT,QAASqB,EACT,SAAUC,EACV,OAAQ,GACP,GAAGvC,CAAA,CAAA,EAIJ4D,EAAA,kBAAA,KAAAD,6BAAA,CAAA,SAAA,CAAAD,wBAACW,GACC,CAAA,SAAAX,EAAA,kBAAA,IAACY,GAAA,CACC,cAAe,CAACC,GAAWC,GAAOC,GAAiBC,EAAqB,EACxE,aAAeC,GAAQA,EACvB,WAAY,CAGV,EAAIC,GAEFC,EAAAA,KAAKD,EAAO,CACV,SAAAhD,EACA,YAAA3B,EAEA,iBAAAE,EACA,mBAAoB8C,EACpB,WAAApB,EACA,gBAAiBZ,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,SACzC,CAAA,EAGH,MAAQuD,GAAUE,EAAA,SAASF,EAAO,CAAE,SAAAjF,EAAU,cAAAC,EAAe,EAI7D,KAAOgF,GAAUG,EAAA,QAAQH,CAAK,EAE9B,WAAaA,GAAUI,EAAA,cAAcJ,CAAK,EAE1C,IAAMA,GACHhB,EAAA,kBAAA,KAAAqB,MAAA,CACC,SAAA,CAACvB,EAAAA,kBAAAA,IAAAwB,GAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EACjBN,EAAM,QAAA,EACT,EAGF,OAASA,2BAEJO,GAAe,CAAA,KAAMP,EAAM,GAAI,SAAApE,EAC7B,WAAM,SACT,CAGN,EAEC,SAAAe,CAAA,CAAA,EAEL,EAGAmC,EAAA,kBAAA,IAAC0B,GAAA,CACC,MAAApD,EACA,UAAWA,EAAM,OAAS,EAC1B,WAAAH,EACA,YAAA5B,EACA,eAAc,GACd,SAAUG,EACV,kBAAAmD,EACA,SAAU,MAAA,CAAA,CACZ,EACF,EAGD,CAACb,GACCgB,EAAAA,kBAAAA,IAAA,MAAA,CAAI,MAAO,CAAE,UAAW,MAAO,EAC7B,SACCP,GAAAO,EAAA,kBAAA,IAAC2B,GAAA,CACC,UAAWlC,EACX,cAAeE,EACf,SAAA9C,EACA,SAAUU,GAAgB,CAACF,EAAUE,EAAa,KAAO,OACzD,gBAAiBA,GAAA,YAAAA,EAAc,MAC/B,kBAAmBI,EAAqB,UACxC,iBAAkBA,EAAqB,OAAA,CAAA,CAG7C,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAAA,EAEJ,CAEJ"}
|
|
1
|
+
{"version":3,"file":"ActivityComment.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
|
|
@@ -37,9 +37,11 @@ import "../../../../context/PowerpackContext.es.js";
|
|
|
37
37
|
import "../../../../context/MoveEntityContext.es.js";
|
|
38
38
|
import "../../../../context/MenuContext.es.js";
|
|
39
39
|
import "../../../../context/WebsocketContext.es.js";
|
|
40
|
+
import "../../../../context/GlobalContext.es.js";
|
|
41
|
+
import "../../../../context/ProjectContext.es.js";
|
|
40
42
|
import { useBlendedCategoryColor as we } from "../CommentInput/hooks/useBlendedCategoryColor.es.js";
|
|
41
43
|
import { CategoryTag as Ee } from "../ActivityCategorySelect/CategoryTag.es.js";
|
|
42
|
-
const
|
|
44
|
+
const jo = ({
|
|
43
45
|
activity: r = {},
|
|
44
46
|
onCheckChange: H,
|
|
45
47
|
onDelete: d,
|
|
@@ -255,6 +257,6 @@ const ho = ({
|
|
|
255
257
|
) });
|
|
256
258
|
};
|
|
257
259
|
export {
|
|
258
|
-
|
|
260
|
+
jo as default
|
|
259
261
|
};
|
|
260
262
|
//# sourceMappingURL=ActivityComment.es.js.map
|
package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityComment.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActivityComment.es.js","sources":["../../../../../../../src/containers/Feed/components/ActivityComment/ActivityComment.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useMemo } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport emoji from 'remark-emoji'\nimport remarkGfm from 'remark-gfm'\nimport remarkDirective from 'remark-directive'\nimport remarkDirectiveRehype from 'remark-directive-rehype'\n\nimport CommentInput from '../CommentInput/CommentInput'\nimport Reactions from '../ReactionContainer/Reactions'\nimport { Reaction } from '../ReactionContainer/types'\nimport useReferenceTooltip from '../../hooks/useReferenceTooltip'\nimport FilesGrid, { FilesGridProps } from '../FilesGrid/FilesGrid'\n\nimport { getTextRefs } from '../CommentInput/quillToMarkdown'\nimport * as Styled from './ActivityComment.styled'\nimport CommentWrapper from './CommentWrapper'\nimport { aTag, blockquoteTag, codeTag, inputTag } from './ActivityMarkdownComponents'\nimport { mapGraphQLReactions } from './mappers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityStatus from '../ActivityStatus/ActivityStatus'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { confirmDelete } from '../../../../util'\nimport ActivityHeader, { ActivityHeaderProps } from '../ActivityHeader/ActivityHeader'\nimport type { Status } from '../../../ProjectTreeTable/types/project'\nimport { SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useBlendedCategoryColor } from '../CommentInput/hooks/useBlendedCategoryColor'\nimport { CategoryTag } from '../ActivityCategorySelect/CategoryTag'\n\ntype Props = {\n activity: any\n onCheckChange?: Function\n onDelete?: (activityId: string, entityId: string, refs: any) => Promise<void>\n onUpdate?: (value: any, files: any, refs?: any, data?: any) => Promise<void>\n projectInfo: any\n editProps?: {\n disabled: boolean\n isLoading: boolean\n }\n projectName: string\n entityType: string\n onReferenceClick?: ActivityHeaderProps['onReferenceClick']\n onFileExpand?: FilesGridProps['onExpand']\n showOrigin?: boolean\n isHighlighted?: boolean\n readOnly?: boolean\n statuses: Status[]\n}\n\nconst ActivityComment = ({\n activity = {},\n onCheckChange,\n onDelete,\n onUpdate,\n projectInfo,\n editProps,\n projectName,\n entityType,\n onReferenceClick,\n onFileExpand,\n showOrigin,\n isHighlighted,\n readOnly,\n statuses = [],\n}: Props) => {\n const { userName, createReaction, deleteReaction, editingId, setEditingId, categories, isGuest } =\n useFeedContext()\n\n const categoryData = useMemo(() => {\n return categories.find((cat) => cat.name === activity.activityData?.category) || null\n }, [activity?.activityData?.category, categories])\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n\n let {\n body,\n authorName,\n authorFullName,\n createdAt,\n referenceType,\n entityId,\n activityId,\n author,\n isOwner,\n files = [],\n origin,\n } = activity\n if (!authorName) authorName = author?.name || ''\n if (!authorFullName) authorFullName = author?.fullName || authorName\n\n const { onGoToFrame, setHighlightedActivities } = useDetailsPanelContext()\n\n const handleEditComment = () => {\n setEditingId(activityId)\n }\n\n const handleEditCancel = () => {\n // close the edit comment\n setEditingId(null)\n }\n\n const handleSave = async (value: any, files: any, data?: any) => {\n await onUpdate?.(value, files, undefined, data)\n setEditingId(null)\n }\n\n const isEditing = editingId === activityId\n\n const isRef = referenceType !== 'origin' || showOrigin\n\n const handleDelete = async () => {\n const refs = getTextRefs(body)\n\n // if the comment is a reference, (it's origin is not the entity)\n // we need to delete the reference from the origin as well\n // add it to the refs to delete\n if (isRef && origin) {\n refs.push({ id: origin.id, type: origin.type })\n }\n\n // note: body is used to match other refs to delete\n onDelete && (await onDelete(activityId, entityId, refs))\n }\n\n const deleteConfirmation = () => {\n confirmDelete({\n title: 'Delete comment',\n message: 'Are you sure you want to delete this comment?',\n accept: async () => {\n await handleDelete()\n },\n })\n }\n\n const [, setRefTooltip] = useReferenceTooltip()\n\n const mappedReactions = useMemo(\n () => mapGraphQLReactions(activity.reactions, userName),\n [[...(activity.reactions || [])]],\n )\n\n const reactionChangeHandler = (reaction: Reaction) => {\n if (reaction.isActive) {\n createReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n createReactionModel: {\n reaction: reaction.type,\n },\n })\n } else {\n deleteReaction({\n projectName: projectName,\n // @ts-ignore exposed endpoint doesn't need the username, we still need to pass it for the optimistic update\n userName: userName,\n activityId: activityId,\n reaction: reaction.type,\n })\n }\n }\n\n const onAnnotationClick = useCallback(\n (file: any) => {\n if (!file.annotation) return\n // annotation frame numbers are 1-based\n onGoToFrame?.((file.annotation as SavedAnnotationMetadata).range[0])\n setHighlightedActivities([activityId])\n },\n [onGoToFrame],\n )\n\n return (\n <>\n <Styled.Comment\n className={clsx('comment', {\n isOwner,\n isEditing,\n isHighlighted,\n category: !!categoryData && !isGuest,\n })}\n id={activityId}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <ActivityHeader\n name={authorName}\n fullName={authorFullName}\n date={createdAt}\n isRef={isRef}\n activity={activity}\n // projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n onReferenceTooltip={setRefTooltip}\n children={undefined}\n />\n <Styled.Body className={clsx('comment-body', { isEditing })}>\n {!readOnly && isOwner ? (\n <Styled.Tools className={'tools'}>\n {onDelete && (\n <Styled.ToolButton\n icon=\"delete\"\n onClick={deleteConfirmation}\n tooltip=\"Delete comment\"\n variant=\"text\"\n />\n )}\n {handleEditComment && (\n <Styled.ToolButton icon=\"edit_square\" onClick={handleEditComment} variant=\"text\" />\n )}\n </Styled.Tools>\n ) : (\n <div className=\"tools\"></div>\n )}\n\n {!isEditing && !isGuest && categoryData && (\n <CategoryTag\n value={categoryData.name}\n color={categoryData.color}\n style={{\n top: -4,\n left: -4,\n }}\n isCompact\n />\n )}\n\n {isEditing ? (\n <CommentInput\n initValue={body}\n initFiles={files}\n initCategory={categoryData?.name}\n isEditing\n onClose={handleEditCancel}\n onSubmit={handleSave}\n isOpen={true}\n {...editProps}\n />\n ) : (\n <>\n <CommentWrapper>\n <ReactMarkdown\n remarkPlugins={[remarkGfm, emoji, remarkDirective, remarkDirectiveRehype]}\n urlTransform={(url) => url}\n components={{\n // a links\n // @ts-ignore\n a: (props) =>\n // @ts-ignore\n aTag(props, {\n entityId,\n projectName,\n projectInfo,\n onReferenceClick,\n onReferenceTooltip: setRefTooltip,\n activityId,\n categoryPrimary: categoryData?.color,\n categorySecondary: blendedCategoryColor.secondary,\n }),\n // checkbox inputs\n // @ts-ignore\n input: (props) => inputTag(props, { activity, onCheckChange }),\n // code syntax highlighting\n // eslint-disable-next-line\n // @ts-ignore\n code: (props) => codeTag(props),\n // @ts-ignore\n blockquote: (props) => blockquoteTag(props),\n // @ts-ignore\n tip: (props) => (\n <Styled.Tip>\n <Icon icon=\"info\" />\n {props.children}\n </Styled.Tip>\n ),\n // @ts-ignore\n status: (props) => {\n return (\n <ActivityStatus name={props.id} statuses={statuses}>\n {props.children}\n </ActivityStatus>\n )\n },\n }}\n >\n {body}\n </ReactMarkdown>\n </CommentWrapper>\n {/* file uploads */}\n {/* @ts-ignore */}\n <FilesGrid\n files={files}\n isCompact={files.length > 6}\n activityId={activityId}\n projectName={projectName}\n isDownloadable\n onExpand={onFileExpand}\n onAnnotationClick={onAnnotationClick}\n onRemove={undefined}\n />\n </>\n )}\n\n {!isEditing && (\n <div style={{ marginTop: '16px' }}>\n {mappedReactions && (\n <Reactions\n reactions={mappedReactions}\n changeHandler={reactionChangeHandler}\n readOnly={readOnly}\n category={categoryData && !isGuest ? categoryData.name : undefined}\n categoryPrimary={categoryData?.color}\n categorySecondary={blendedCategoryColor.secondary}\n categoryTertiary={blendedCategoryColor.primary}\n />\n )}\n </div>\n )}\n </Styled.Body>\n </Styled.Comment>\n </>\n )\n}\n\nexport default ActivityComment\n"],"names":["ActivityComment","activity","onCheckChange","onDelete","onUpdate","projectInfo","editProps","projectName","entityType","onReferenceClick","onFileExpand","showOrigin","isHighlighted","readOnly","statuses","userName","createReaction","deleteReaction","editingId","setEditingId","categories","isGuest","useFeedContext","categoryData","useMemo","cat","_a","blendedCategoryColor","useBlendedCategoryColor","body","authorName","authorFullName","createdAt","referenceType","entityId","activityId","author","isOwner","files","origin","onGoToFrame","setHighlightedActivities","useDetailsPanelContext","handleEditComment","handleEditCancel","handleSave","value","data","isEditing","isRef","handleDelete","refs","getTextRefs","deleteConfirmation","confirmDelete","setRefTooltip","useReferenceTooltip","mappedReactions","mapGraphQLReactions","reactionChangeHandler","reaction","onAnnotationClick","useCallback","file","jsx","Fragment","jsxs","Styled.Comment","clsx","ActivityHeader","Styled.Body","Styled.Tools","Styled.ToolButton","CategoryTag","CommentInput","CommentWrapper","ReactMarkdown","remarkGfm","emoji","remarkDirective","remarkDirectiveRehype","url","props","aTag","inputTag","codeTag","blockquoteTag","Styled.Tip","Icon","ActivityStatus","FilesGrid","Reactions"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../../../../../../_virtual/jsx-runtime.cjs.js"),p=require("react"),T=require("@ynput/ayon-react-components"),b=require("../ActivityHeader/ActivityHeader.cjs.js"),t=require("./ActivityVersions.styled.cjs.js"),f=require("../ActivityGroup/ActivityGroup.styled.cjs.js"),k=require("../ActivityDate.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const w=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");const D=({activity:l,projectName:
|
|
1
|
+
"use strict";const e=require("../../../../../../_virtual/jsx-runtime.cjs.js"),p=require("react"),T=require("@ynput/ayon-react-components"),b=require("../ActivityHeader/ActivityHeader.cjs.js"),t=require("./ActivityVersions.styled.cjs.js"),f=require("../ActivityGroup/ActivityGroup.styled.cjs.js"),k=require("../ActivityDate.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");const w=require("../../../../context/DetailsPanelContext.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/PowerpackContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");const D=({activity:l,projectName:r,entityType:h,onReferenceClick:q,filter:a})=>{const{onOpenViewer:s}=w.useDetailsPanelContext();let{authorName:m,authorFullName:E,createdAt:d,versions:i=[]}=l;const[n,R]=p.useState(a==="versions"),o=2,[y,v]=p.useState(!1),A=(u,x)=>s==null?void 0:s({versionIds:[u],productId:x,projectName:r});return e.jsxRuntimeExports.jsxs(t.Container,{children:[e.jsxRuntimeExports.jsx(b,{name:m,fullName:E||m,date:d,activity:l,projectName:r,entityType:h,onReferenceClick:q}),i.flatMap((u,x)=>{const{name:C,id:c,productId:S,productName:I,updatedAt:N,comment:j}=u;return(x<o||n)&&e.jsxRuntimeExports.jsxs(t.Card,{onClick:()=>A(c,S),children:[e.jsxRuntimeExports.jsxs(t.Content,{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsxs(t.Title,{children:[e.jsxRuntimeExports.jsx("span",{children:I}),e.jsxRuntimeExports.jsx(k.default,{date:d,isExact:!0})]}),e.jsxRuntimeExports.jsx(t.VersionName,{className:"version",children:C})]}),e.jsxRuntimeExports.jsx(t.Thumbnail,{projectName:r,entityId:c,entityType:"version",onError:()=>v(!0),iconOnly:y,entityUpdatedAt:N,icon:"play_circle"})]}),j&&e.jsxRuntimeExports.jsx(t.Comment,{children:j})]},c)}),a!=="versions"&&i.length>o&&e.jsxRuntimeExports.jsxs(f.More,{onClick:()=>R(!n),children:[e.jsxRuntimeExports.jsx(T.Icon,{icon:"more"}),e.jsxRuntimeExports.jsx("span",{children:n?"Show less":`Show ${i.length-o} more versions`})]})]})};module.exports=D;
|
|
2
2
|
//# sourceMappingURL=ActivityVersions.cjs.js.map
|
package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActivityVersions.cjs.js","sources":["../../../../../../../src/containers/Feed/components/ActivityVersions/ActivityVersions.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport ActivityHeader from '../ActivityHeader/ActivityHeader'\nimport * as Styled from './ActivityVersions.styled'\nimport { More } from '../ActivityGroup/ActivityGroup.styled'\nimport ActivityDate from '../ActivityDate'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface Version {\n name: string\n id: string\n productId: string\n productName: string\n updatedAt: string\n comment?: string\n}\n\ninterface ActivityVersionsProps {\n activity: {\n authorName?: string\n authorFullName?: string\n createdAt?: string\n versions?: Version[]\n [key: string]: any\n }\n projectName: string\n entityType?: string\n onReferenceClick?: (ref: any) => void\n filter?: string\n}\n\nconst ActivityVersions: React.FC<ActivityVersionsProps> = ({\n activity,\n projectName,\n entityType,\n onReferenceClick,\n filter,\n}) => {\n const { onOpenViewer } = useDetailsPanelContext()\n let { authorName, authorFullName, createdAt, versions = [] } = activity\n\n const [showAll, setShowAll] = useState(filter === 'versions')\n const limit = 2\n\n const [thumbnailError, setThumbnailError] = useState(false)\n\n const handleClick = (versionId: string, productId: string) =>\n onOpenViewer?.({ versionIds: [versionId], productId, projectName })\n\n return (\n <Styled.Container>\n <ActivityHeader\n name={authorName}\n fullName={authorFullName || authorName}\n date={createdAt}\n activity={activity}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={onReferenceClick}\n />\n {versions.flatMap((version, index) => {\n const { name, id, productId, productName, updatedAt, comment } = version\n return (\n (index < limit || showAll) && (\n <Styled.Card onClick={() => handleClick(id, productId)} key={id}>\n <Styled.Content>\n <div>\n <Styled.Title>\n <span>{productName}</span>\n <ActivityDate date={createdAt} isExact />\n </Styled.Title>\n <Styled.VersionName className=\"version\">{name}</Styled.VersionName>\n </div>\n <Styled.Thumbnail\n {...{ projectName }}\n entityId={id}\n entityType=\"version\"\n onError={() => setThumbnailError(true)}\n iconOnly={thumbnailError}\n entityUpdatedAt={updatedAt}\n icon={'play_circle'}\n />\n </Styled.Content>\n {comment && <Styled.Comment>{comment}</Styled.Comment>}\n </Styled.Card>\n )\n )\n })}\n {filter !== 'versions' && versions.length > limit && (\n <More onClick={() => setShowAll(!showAll)}>\n <Icon icon=\"more\" />\n <span>{showAll ? `Show less` : `Show ${versions.length - limit} more versions`}</span>\n </More>\n )}\n </Styled.Container>\n )\n}\n\nexport default ActivityVersions\n"],"names":["ActivityVersions","activity","projectName","entityType","onReferenceClick","filter","onOpenViewer","useDetailsPanelContext","authorName","authorFullName","createdAt","versions","showAll","setShowAll","useState","limit","thumbnailError","setThumbnailError","handleClick","versionId","productId","jsxs","Styled.Container","jsx","ActivityHeader","version","index","name","id","productName","updatedAt","comment","Styled.Card","Styled.Content","Styled.Title","ActivityDate","Styled.VersionName","Styled.Thumbnail","Styled.Comment","More","Icon"],"mappings":"inCA+BA,MAAMA,EAAoD,CAAC,CACzD,SAAAC,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,OAAAC,CACF,IAAM,CACE,KAAA,CAAE,aAAAC,CAAa,EAAIC,yBAAuB,EAChD,GAAI,CAAE,WAAAC,EAAY,eAAAC,EAAgB,UAAAC,EAAW,SAAAC,EAAW,IAAOV,EAE/D,KAAM,CAACW,EAASC,CAAU,EAAIC,EAAAA,SAAST,IAAW,UAAU,EACtDU,EAAQ,EAER,CAACC,EAAgBC,CAAiB,EAAIH,EAAAA,SAAS,EAAK,EAEpDI,EAAc,CAACC,EAAmBC,IACtCd,GAAA,YAAAA,EAAe,CAAE,WAAY,CAACa,CAAS,EAAG,UAAAC,EAAW,YAAAlB,CAAA,GAGrD,OAAAmB,EAAA,kBAAA,KAACC,YAAA,CACC,SAAA,CAAAC,EAAA,kBAAA,IAACC,EAAA,CACC,KAAMhB,EACN,SAAUC,GAAkBD,EAC5B,KAAME,EACN,SAAAT,EACA,YAAAC,EACA,WAAAC,EACA,iBAAAC,CAAA,CACF,EACCO,EAAS,QAAQ,CAACc,EAASC,IAAU,CACpC,KAAM,CAAE,KAAAC,EAAM,GAAAC,EAAI,UAAAR,EAAW,YAAAS,EAAa,UAAAC,EAAW,QAAAC,GAAYN,EACjE,OACGC,EAAQX,GAASH,IAChBS,EAAA,kBAAA,KAACW,EAAO,KAAP,CAAY,QAAS,IAAMd,EAAYU,EAAIR,CAAS,EACnD,SAAA,CAACC,yBAAAY,EAAAA,QAAA,CACC,SAAA,CAAAZ,yBAAC,MACC,CAAA,SAAA,CAACA,yBAAAa,EAAAA,MAAA,CACC,SAAA,CAAAX,EAAAA,kBAAAA,IAAC,QAAM,SAAYM,CAAA,CAAA,EAClBN,EAAA,kBAAA,IAAAY,EAAA,QAAA,CAAa,KAAMzB,EAAW,QAAO,EAAC,CAAA,CAAA,EACzC,0BACC0B,EAAO,YAAP,CAAmB,UAAU,UAAW,SAAKT,CAAA,CAAA,CAAA,EAChD,EACAJ,EAAA,kBAAA,IAACc,EAAO,UAAP,CACO,YAAAnC,EACN,SAAU0B,EACV,WAAW,UACX,QAAS,IAAMX,EAAkB,EAAI,EACrC,SAAUD,EACV,gBAAiBc,EACjB,KAAM,aAAA,CAAA,CACR,EACF,EACCC,GAAWR,EAAAA,kBAAAA,IAACe,EAAAA,QAAA,CAAgB,SAAQP,CAAA,CAAA,CAAA,CAAA,EAnBsBH,CAoB7D,CAAA,CAGL,EACAvB,IAAW,YAAcM,EAAS,OAASI,GAC1CM,EAAA,kBAAA,KAACkB,OAAK,CAAA,QAAS,IAAM1B,EAAW,CAACD,CAAO,EACtC,SAAA,CAACW,EAAAA,kBAAAA,IAAAiB,EAAA,KAAA,CAAK,KAAK,MAAO,CAAA,EAClBjB,EAAAA,kBAAAA,IAAC,QAAM,SAAUX,EAAA,YAAc,QAAQD,EAAS,OAASI,CAAK,gBAAiB,CAAA,CAAA,CACjF,CAAA,CAAA,EAEJ,CAEJ"}
|