@ynput/ayon-frontend-shared 0.2.19 → 0.2.20
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 +10 -0
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +10 -0
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/api.cjs.js +16 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +17 -1
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +22 -0
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +23 -1
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +10 -0
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +10 -0
- package/dist/index.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +5 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +6 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +58 -41
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +57 -41
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +20 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +21 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -0
- package/dist/shared/src/api/base/client.cjs.js +2 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +2 -1
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/actions.cjs.js +6 -1
- package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/actions.es.js +6 -1
- package/dist/shared/src/api/generated/actions.es.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
- package/dist/shared/src/api/generated/addons.cjs.js +2 -1
- package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/addons.es.js +2 -1
- package/dist/shared/src/api/generated/addons.es.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.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/links.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/links.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/operations.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/operations.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js +0 -8
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js +0 -8
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/system.es.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js +53 -0
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/views.es.js +53 -0
- package/dist/shared/src/api/generated/views.es.js.map +1 -0
- package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -0
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +1 -0
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js +67 -0
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/cloud/cloud.es.js +67 -0
- package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +4 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +11 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +11 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +17 -2
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +17 -2
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -0
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +1 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -0
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.es.js +1 -0
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +72 -0
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/views/getViews.es.js +72 -0
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +33 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.es.js +33 -0
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +12 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +12 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +10 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +10 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +369 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +369 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -0
- package/dist/shared/src/components/Feedback/SupportBubble.cjs.js +48 -0
- package/dist/shared/src/components/Feedback/SupportBubble.cjs.js.map +1 -0
- package/dist/shared/src/components/Feedback/SupportBubble.es.js +48 -0
- package/dist/shared/src/components/Feedback/SupportBubble.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/CTAButton.cjs.js +10 -0
- package/dist/shared/src/components/Powerpack/CTAButton.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/CTAButton.es.js +10 -0
- package/dist/shared/src/components/Powerpack/CTAButton.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +229 -28
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +230 -29
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +3 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +3 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +4 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +4 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +179 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +179 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +10 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +10 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +10 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +10 -0
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +10 -0
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +4 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +4 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +10 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +10 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +10 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +10 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +4 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +164 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +164 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +71 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +71 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js +189 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js +189 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +36 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +36 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js +63 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js +63 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/Views.cjs.js +21 -0
- package/dist/shared/src/components/Views/Views.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/Views.es.js +21 -0
- package/dist/shared/src/components/Views/Views.es.js.map +1 -0
- package/dist/shared/src/components/Views/Views.styled.cjs.js +44 -0
- package/dist/shared/src/components/Views/Views.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/Views.styled.es.js +44 -0
- package/dist/shared/src/components/Views/Views.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js +32 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js +32 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js +31 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js +31 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js +33 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js +33 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +132 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +132 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
- package/dist/shared/src/components/Views/context/ViewsContext.cjs.js +145 -0
- package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/context/ViewsContext.es.js +145 -0
- package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +1 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js +160 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js +160 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +13 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +13 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js +8 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js +8 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/portalUtils.cjs.js +11 -0
- package/dist/shared/src/components/Views/utils/portalUtils.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/portalUtils.es.js +11 -0
- package/dist/shared/src/components/Views/utils/portalUtils.es.js.map +1 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +10 -0
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +10 -0
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +4 -0
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -0
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +10 -0
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +10 -0
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +4 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +4 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +4 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +10 -2
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +10 -2
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +10 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +10 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +10 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +10 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +4 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +4 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +4 -0
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +4 -0
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +9 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +9 -0
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +4 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +4 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +4 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +4 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +4 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/types/api/generated/actions.d.ts +11 -4
- package/dist/types/api/generated/activityFeed.d.ts +3 -0
- package/dist/types/api/generated/addons.d.ts +1 -0
- package/dist/types/api/generated/anatomy.d.ts +0 -2
- package/dist/types/api/generated/authentication.d.ts +0 -1
- package/dist/types/api/generated/configuration.d.ts +6 -0
- package/dist/types/api/generated/index.d.ts +2 -0
- package/dist/types/api/generated/links.d.ts +7 -5
- package/dist/types/api/generated/onboarding.d.ts +0 -1
- package/dist/types/api/generated/operations.d.ts +2 -0
- package/dist/types/api/generated/projects.d.ts +0 -35
- package/dist/types/api/generated/system.d.ts +2 -0
- package/dist/types/api/generated/tasks.d.ts +0 -14
- package/dist/types/api/generated/views.d.ts +122 -0
- package/dist/types/api/queries/cloud/cloud.d.ts +593 -0
- package/dist/types/api/queries/cloud/index.d.ts +1 -0
- package/dist/types/api/queries/index.d.ts +2 -0
- package/dist/types/api/queries/project/getProject.d.ts +0 -2
- package/dist/types/api/queries/views/getViews.d.ts +412 -0
- package/dist/types/api/queries/views/index.d.ts +2 -0
- package/dist/types/api/queries/views/updateViews.d.ts +177 -0
- package/dist/types/components/Feedback/FeedbackContext.d.ts +17 -0
- package/dist/types/components/Feedback/SupportBubble.d.ts +4 -0
- package/dist/types/components/Feedback/index.d.ts +2 -0
- package/dist/types/components/Powerpack/CTAButton.d.ts +4 -0
- package/dist/types/components/Powerpack/PowerpackDialog.d.ts +8 -0
- package/dist/types/components/Views/ViewForm/ViewForm.d.ts +14 -0
- package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +9 -0
- package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +15 -0
- package/dist/types/components/Views/ViewItem/ViewItem.d.ts +15 -0
- package/dist/types/components/Views/ViewItem/ViewItem.styled.d.ts +4 -0
- package/dist/types/components/Views/Views.d.ts +8 -0
- package/dist/types/components/Views/Views.styled.d.ts +4 -0
- package/dist/types/components/Views/ViewsButton/ViewsButton.d.ts +2 -0
- package/dist/types/components/Views/ViewsMenu/ViewsMenu.d.ts +11 -0
- package/dist/types/components/Views/ViewsMenu/ViewsMenu.styled.d.ts +4 -0
- package/dist/types/components/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +4 -0
- package/dist/types/components/Views/context/ViewsContext.d.ts +31 -0
- package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +14 -0
- package/dist/types/components/Views/index.d.ts +11 -0
- package/dist/types/components/Views/utils/generatePersonalView.d.ts +3 -0
- package/dist/types/components/Views/utils/getCustomViewsFallback.d.ts +12 -0
- package/dist/types/components/Views/utils/portalUtils.d.ts +9 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/context/PowerpackContext.d.ts +5 -5
- package/package.json +1 -1
package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelFloating.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\nimport * as Styled from './DetailsPanelFloating.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { StackedThumbnails } from '@shared/components'\nimport { upperFirst } from 'lodash'\nimport { AssigneeField, Icon } from '@ynput/ayon-react-components'\nimport { PiPWrapper } from '@shared/context'\nimport { useGetEntitiesDetailsPanelQuery } from '@shared/api'\nimport { useGetKanbanProjectUsersQuery, useGetProjectsInfoQuery } from '@shared/api'\nimport getAllProjectStatuses from '../helpers/getAllProjectsStatuses'\nimport FeedWrapper from '../FeedWrapper'\nimport mergeProjectInfo from '../helpers/mergeProjectInfo'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { productTypes } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface DetailsPanelFloatingProps {}\n\nexport const DetailsPanelFloating: FC<DetailsPanelFloatingProps> = () => {\n // TODO: fix this\n const { pip } = useDetailsPanelContext()\n const entityType = pip?.entityType\n const entities = pip?.entities || []\n const scope = pip?.scope || ''\n const isOpen = entities.length > 0 && !!entityType\n\n const projects: string[] = entities.map((e: any) => e.projectName)\n\n const { data: allUsers = [] } = useGetKanbanProjectUsersQuery({ projects }, { skip: !isOpen })\n\n const { data: projectsInfo = {}, isFetching: isFetchingInfo } = useGetProjectsInfoQuery(\n {\n projects: projects,\n },\n { skip: !isOpen },\n )\n\n // get all statuses from projects info, removing duplicate names\n const statuses = useMemo(\n () => getAllProjectStatuses(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n const { data: entitiesData = [], isFetching: isFetchingEntitiesDetails } =\n useGetEntitiesDetailsPanelQuery(\n // @ts-expect-error\n { entityType: entityType, entities: entities },\n {\n skip: !isOpen || isFetchingInfo,\n },\n )\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n // build icons for entity types\n const entityTypeIcons = useMemo(\n () => ({\n task: projectInfo.taskTypes\n .filter((task) => !!task.icon)\n .reduce((acc, task) => ({ ...acc, [task.name]: task.icon }), {}),\n folder: projectInfo.folderTypes\n .filter((folder) => !!folder.icon)\n .reduce((acc, folder) => ({ ...acc, [folder.name]: folder.icon }), {}),\n product: Object.entries(productTypes).reduce(\n (acc, [key, product]) => ({ ...acc, [key]: product.icon }),\n {},\n ),\n }),\n [projectInfo],\n )\n\n const thumbnails = useMemo(\n () => (entityType ? getThumbnails(entitiesData, entityType, entityTypeIcons) : []),\n [entitiesData, entityType],\n )\n\n // users for assignee field, find in all users\n const users = useMemo(() => {\n return allUsers\n .filter((u) => entitiesData.some((e) => e?.task?.assignees?.includes(u.name)))\n .map((u) => ({ ...u, avatarUrl: `/api/users/${u.name}/avatar` }))\n }, [allUsers, entities])\n\n const firstEntity = entitiesData[0]\n if (!entitiesData.length || !firstEntity) return null\n\n if (isFetchingEntitiesDetails) return <div>Loading...</div>\n\n const projectName = firstEntity?.projectName\n\n // are there multiple statuses of different names?\n const mixedStatuses = entitiesData.some((e) => e?.status !== firstEntity?.status)\n const mixedStatus = {\n icon: 'question_mark',\n color: 'var(--md-sys-color-surface-container-highest)',\n name: 'Mixed statuses',\n }\n\n const statusAnatomy = mixedStatuses\n ? mixedStatus\n : statuses.find((s) => s.name === firstEntity?.status) || {\n icon: '',\n color: '',\n name: 'None',\n }\n\n if (!entityType) return null\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entitiesData, entityType)\n\n return (\n <PiPWrapper>\n <Styled.Container>\n <Styled.Header>\n <StackedThumbnails thumbnails={thumbnails} />\n <Styled.Content>\n <h2>{title}</h2>\n <div className=\"sub-title\">\n <span>{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.Row>\n <Styled.Status style={{ backgroundColor: statusAnatomy?.color }}>\n {<Icon icon={statusAnatomy.icon || 'question_mark'} />}\n <span className=\"label\">{statusAnatomy?.name}</span>\n </Styled.Status>\n <AssigneeField users={users} style={{ pointerEvents: 'none' }} />\n </Styled.Row>\n <Styled.FeedContainer>\n <FeedWrapper\n entityType={entityType}\n // @ts-ignore\n entities={entitiesData}\n activeUsers={[]}\n // selectedTasksProjects={{}}\n projectInfo={projectsInfo[projectName]}\n projectName={projectName}\n isMultiProjects={false}\n scope={scope}\n readOnly\n // @ts-ignore\n statuses={statuses}\n />\n </Styled.FeedContainer>\n </Styled.Container>\n </PiPWrapper>\n )\n}\n\nexport default DetailsPanelFloating\n"],"names":["useDetailsPanelContext","useGetKanbanProjectUsersQuery","useGetProjectsInfoQuery","useMemo","getAllProjectStatuses","useGetEntitiesDetailsPanelQuery","jsx","buildDetailsPanelTitles","PiPWrapper","jsxs","Styled.Container","Styled.Header","StackedThumbnails","Styled.Content","upperFirst","Styled.Row","Styled.Status","Icon","AssigneeField","Styled.FeedContainer"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DetailsPanelFloating.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\nimport * as Styled from './DetailsPanelFloating.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { StackedThumbnails } from '@shared/components'\nimport { upperFirst } from 'lodash'\nimport { AssigneeField, Icon } from '@ynput/ayon-react-components'\nimport { PiPWrapper } from '@shared/context'\nimport { useGetEntitiesDetailsPanelQuery } from '@shared/api'\nimport { useGetKanbanProjectUsersQuery, useGetProjectsInfoQuery } from '@shared/api'\nimport getAllProjectStatuses from '../helpers/getAllProjectsStatuses'\nimport FeedWrapper from '../FeedWrapper'\nimport mergeProjectInfo from '../helpers/mergeProjectInfo'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { productTypes } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface DetailsPanelFloatingProps {}\n\nexport const DetailsPanelFloating: FC<DetailsPanelFloatingProps> = () => {\n // TODO: fix this\n const { pip } = useDetailsPanelContext()\n const entityType = pip?.entityType\n const entities = pip?.entities || []\n const scope = pip?.scope || ''\n const isOpen = entities.length > 0 && !!entityType\n\n const projects: string[] = entities.map((e: any) => e.projectName)\n\n const { data: allUsers = [] } = useGetKanbanProjectUsersQuery({ projects }, { skip: !isOpen })\n\n const { data: projectsInfo = {}, isFetching: isFetchingInfo } = useGetProjectsInfoQuery(\n {\n projects: projects,\n },\n { skip: !isOpen },\n )\n\n // get all statuses from projects info, removing duplicate names\n const statuses = useMemo(\n () => getAllProjectStatuses(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n const { data: entitiesData = [], isFetching: isFetchingEntitiesDetails } =\n useGetEntitiesDetailsPanelQuery(\n // @ts-expect-error\n { entityType: entityType, entities: entities },\n {\n skip: !isOpen || isFetchingInfo,\n },\n )\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n // build icons for entity types\n const entityTypeIcons = useMemo(\n () => ({\n task: projectInfo.taskTypes\n .filter((task) => !!task.icon)\n .reduce((acc, task) => ({ ...acc, [task.name]: task.icon }), {}),\n folder: projectInfo.folderTypes\n .filter((folder) => !!folder.icon)\n .reduce((acc, folder) => ({ ...acc, [folder.name]: folder.icon }), {}),\n product: Object.entries(productTypes).reduce(\n (acc, [key, product]) => ({ ...acc, [key]: product.icon }),\n {},\n ),\n }),\n [projectInfo],\n )\n\n const thumbnails = useMemo(\n () => (entityType ? getThumbnails(entitiesData, entityType, entityTypeIcons) : []),\n [entitiesData, entityType],\n )\n\n // users for assignee field, find in all users\n const users = useMemo(() => {\n return allUsers\n .filter((u) => entitiesData.some((e) => e?.task?.assignees?.includes(u.name)))\n .map((u) => ({ ...u, avatarUrl: `/api/users/${u.name}/avatar` }))\n }, [allUsers, entities])\n\n const firstEntity = entitiesData[0]\n if (!entitiesData.length || !firstEntity) return null\n\n if (isFetchingEntitiesDetails) return <div>Loading...</div>\n\n const projectName = firstEntity?.projectName\n\n // are there multiple statuses of different names?\n const mixedStatuses = entitiesData.some((e) => e?.status !== firstEntity?.status)\n const mixedStatus = {\n icon: 'question_mark',\n color: 'var(--md-sys-color-surface-container-highest)',\n name: 'Mixed statuses',\n }\n\n const statusAnatomy = mixedStatuses\n ? mixedStatus\n : statuses.find((s) => s.name === firstEntity?.status) || {\n icon: '',\n color: '',\n name: 'None',\n }\n\n if (!entityType) return null\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entitiesData, entityType)\n\n return (\n <PiPWrapper>\n <Styled.Container>\n <Styled.Header>\n <StackedThumbnails thumbnails={thumbnails} />\n <Styled.Content>\n <h2>{title}</h2>\n <div className=\"sub-title\">\n <span>{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.Row>\n <Styled.Status style={{ backgroundColor: statusAnatomy?.color }}>\n {<Icon icon={statusAnatomy.icon || 'question_mark'} />}\n <span className=\"label\">{statusAnatomy?.name}</span>\n </Styled.Status>\n <AssigneeField users={users} style={{ pointerEvents: 'none' }} />\n </Styled.Row>\n <Styled.FeedContainer>\n <FeedWrapper\n entityType={entityType}\n // @ts-ignore\n entities={entitiesData}\n activeUsers={[]}\n // selectedTasksProjects={{}}\n projectInfo={projectsInfo[projectName]}\n projectName={projectName}\n isMultiProjects={false}\n scope={scope}\n readOnly\n // @ts-ignore\n statuses={statuses}\n />\n </Styled.FeedContainer>\n </Styled.Container>\n </PiPWrapper>\n )\n}\n\nexport default DetailsPanelFloating\n"],"names":["useDetailsPanelContext","useGetKanbanProjectUsersQuery","useGetProjectsInfoQuery","useMemo","getAllProjectStatuses","useGetEntitiesDetailsPanelQuery","jsx","buildDetailsPanelTitles","PiPWrapper","jsxs","Styled.Container","Styled.Header","StackedThumbnails","Styled.Content","upperFirst","Styled.Row","Styled.Status","Icon","AssigneeField","Styled.FeedContainer"],"mappings":"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"}
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js
CHANGED
|
@@ -44,6 +44,7 @@ import "../../../api/generated/versions.es.js";
|
|
|
44
44
|
import "../../../api/generated/workfiles.es.js";
|
|
45
45
|
import "../../../api/generated/ynputCloud.es.js";
|
|
46
46
|
import "../../../api/generated/grouping.es.js";
|
|
47
|
+
import "../../../api/generated/views.es.js";
|
|
47
48
|
import "../../../api/queries/actions/getActions.es.js";
|
|
48
49
|
import "../../../api/queries/activities/getActivities.es.js";
|
|
49
50
|
import "../../../api/queries/activities/updateActivities.es.js";
|
|
@@ -77,6 +78,9 @@ import "../../../api/queries/permissions/getPermissions.es.js";
|
|
|
77
78
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
78
79
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
79
80
|
import "../../../api/queries/products/createProduct.es.js";
|
|
81
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
82
|
+
import "../../../api/queries/views/getViews.es.js";
|
|
83
|
+
import "../../../api/queries/views/updateViews.es.js";
|
|
80
84
|
import "@dnd-kit/core";
|
|
81
85
|
import "@dnd-kit/sortable";
|
|
82
86
|
import "../../../components/ReviewablesList/ReviewablesList.styled.es.js";
|
|
@@ -181,6 +185,7 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
|
181
185
|
import "../../../components/Powerpack/PowerpackButton.es.js";
|
|
182
186
|
import "../../../components/Powerpack/PricingLink.es.js";
|
|
183
187
|
import "../../../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
188
|
+
import "../../../components/Powerpack/CTAButton.es.js";
|
|
184
189
|
import "../../../components/SettingsPanel/SettingsPanel.es.js";
|
|
185
190
|
import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
186
191
|
import "../../../components/AttributeEditor/components/MinMaxField.es.js";
|
|
@@ -189,6 +194,11 @@ import "../../../components/SearchFilter/filterDates.es.js";
|
|
|
189
194
|
import "../../../components/Badge/Badge.es.js";
|
|
190
195
|
import "../../../components/VersionUploader/components/UploadVersionDialog.es.js";
|
|
191
196
|
import "../../../components/VersionUploader/context/VersionUploadContext.es.js";
|
|
197
|
+
import "../../../components/Feedback/FeedbackContext.es.js";
|
|
198
|
+
import "../../../components/Feedback/SupportBubble.es.js";
|
|
199
|
+
import "../../../components/Views/context/ViewsContext.es.js";
|
|
200
|
+
import "../../../components/Views/Views.styled.es.js";
|
|
201
|
+
import "../../../components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
192
202
|
const DetailsPanelFloating = () => {
|
|
193
203
|
const { pip } = useDetailsPanelContext();
|
|
194
204
|
const entityType = pip == null ? void 0 : pip.entityType;
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelFloating.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\nimport * as Styled from './DetailsPanelFloating.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { StackedThumbnails } from '@shared/components'\nimport { upperFirst } from 'lodash'\nimport { AssigneeField, Icon } from '@ynput/ayon-react-components'\nimport { PiPWrapper } from '@shared/context'\nimport { useGetEntitiesDetailsPanelQuery } from '@shared/api'\nimport { useGetKanbanProjectUsersQuery, useGetProjectsInfoQuery } from '@shared/api'\nimport getAllProjectStatuses from '../helpers/getAllProjectsStatuses'\nimport FeedWrapper from '../FeedWrapper'\nimport mergeProjectInfo from '../helpers/mergeProjectInfo'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { productTypes } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface DetailsPanelFloatingProps {}\n\nexport const DetailsPanelFloating: FC<DetailsPanelFloatingProps> = () => {\n // TODO: fix this\n const { pip } = useDetailsPanelContext()\n const entityType = pip?.entityType\n const entities = pip?.entities || []\n const scope = pip?.scope || ''\n const isOpen = entities.length > 0 && !!entityType\n\n const projects: string[] = entities.map((e: any) => e.projectName)\n\n const { data: allUsers = [] } = useGetKanbanProjectUsersQuery({ projects }, { skip: !isOpen })\n\n const { data: projectsInfo = {}, isFetching: isFetchingInfo } = useGetProjectsInfoQuery(\n {\n projects: projects,\n },\n { skip: !isOpen },\n )\n\n // get all statuses from projects info, removing duplicate names\n const statuses = useMemo(\n () => getAllProjectStatuses(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n const { data: entitiesData = [], isFetching: isFetchingEntitiesDetails } =\n useGetEntitiesDetailsPanelQuery(\n // @ts-expect-error\n { entityType: entityType, entities: entities },\n {\n skip: !isOpen || isFetchingInfo,\n },\n )\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n // build icons for entity types\n const entityTypeIcons = useMemo(\n () => ({\n task: projectInfo.taskTypes\n .filter((task) => !!task.icon)\n .reduce((acc, task) => ({ ...acc, [task.name]: task.icon }), {}),\n folder: projectInfo.folderTypes\n .filter((folder) => !!folder.icon)\n .reduce((acc, folder) => ({ ...acc, [folder.name]: folder.icon }), {}),\n product: Object.entries(productTypes).reduce(\n (acc, [key, product]) => ({ ...acc, [key]: product.icon }),\n {},\n ),\n }),\n [projectInfo],\n )\n\n const thumbnails = useMemo(\n () => (entityType ? getThumbnails(entitiesData, entityType, entityTypeIcons) : []),\n [entitiesData, entityType],\n )\n\n // users for assignee field, find in all users\n const users = useMemo(() => {\n return allUsers\n .filter((u) => entitiesData.some((e) => e?.task?.assignees?.includes(u.name)))\n .map((u) => ({ ...u, avatarUrl: `/api/users/${u.name}/avatar` }))\n }, [allUsers, entities])\n\n const firstEntity = entitiesData[0]\n if (!entitiesData.length || !firstEntity) return null\n\n if (isFetchingEntitiesDetails) return <div>Loading...</div>\n\n const projectName = firstEntity?.projectName\n\n // are there multiple statuses of different names?\n const mixedStatuses = entitiesData.some((e) => e?.status !== firstEntity?.status)\n const mixedStatus = {\n icon: 'question_mark',\n color: 'var(--md-sys-color-surface-container-highest)',\n name: 'Mixed statuses',\n }\n\n const statusAnatomy = mixedStatuses\n ? mixedStatus\n : statuses.find((s) => s.name === firstEntity?.status) || {\n icon: '',\n color: '',\n name: 'None',\n }\n\n if (!entityType) return null\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entitiesData, entityType)\n\n return (\n <PiPWrapper>\n <Styled.Container>\n <Styled.Header>\n <StackedThumbnails thumbnails={thumbnails} />\n <Styled.Content>\n <h2>{title}</h2>\n <div className=\"sub-title\">\n <span>{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.Row>\n <Styled.Status style={{ backgroundColor: statusAnatomy?.color }}>\n {<Icon icon={statusAnatomy.icon || 'question_mark'} />}\n <span className=\"label\">{statusAnatomy?.name}</span>\n </Styled.Status>\n <AssigneeField users={users} style={{ pointerEvents: 'none' }} />\n </Styled.Row>\n <Styled.FeedContainer>\n <FeedWrapper\n entityType={entityType}\n // @ts-ignore\n entities={entitiesData}\n activeUsers={[]}\n // selectedTasksProjects={{}}\n projectInfo={projectsInfo[projectName]}\n projectName={projectName}\n isMultiProjects={false}\n scope={scope}\n readOnly\n // @ts-ignore\n statuses={statuses}\n />\n </Styled.FeedContainer>\n </Styled.Container>\n </PiPWrapper>\n )\n}\n\nexport default DetailsPanelFloating\n"],"names":["jsx","jsxs","Styled.Container","Styled.Header","Styled.Content","Styled.Row","Styled.Status","Styled.FeedContainer"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DetailsPanelFloating.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\nimport * as Styled from './DetailsPanelFloating.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { StackedThumbnails } from '@shared/components'\nimport { upperFirst } from 'lodash'\nimport { AssigneeField, Icon } from '@ynput/ayon-react-components'\nimport { PiPWrapper } from '@shared/context'\nimport { useGetEntitiesDetailsPanelQuery } from '@shared/api'\nimport { useGetKanbanProjectUsersQuery, useGetProjectsInfoQuery } from '@shared/api'\nimport getAllProjectStatuses from '../helpers/getAllProjectsStatuses'\nimport FeedWrapper from '../FeedWrapper'\nimport mergeProjectInfo from '../helpers/mergeProjectInfo'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { productTypes } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\nexport interface DetailsPanelFloatingProps {}\n\nexport const DetailsPanelFloating: FC<DetailsPanelFloatingProps> = () => {\n // TODO: fix this\n const { pip } = useDetailsPanelContext()\n const entityType = pip?.entityType\n const entities = pip?.entities || []\n const scope = pip?.scope || ''\n const isOpen = entities.length > 0 && !!entityType\n\n const projects: string[] = entities.map((e: any) => e.projectName)\n\n const { data: allUsers = [] } = useGetKanbanProjectUsersQuery({ projects }, { skip: !isOpen })\n\n const { data: projectsInfo = {}, isFetching: isFetchingInfo } = useGetProjectsInfoQuery(\n {\n projects: projects,\n },\n { skip: !isOpen },\n )\n\n // get all statuses from projects info, removing duplicate names\n const statuses = useMemo(\n () => getAllProjectStatuses(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n const { data: entitiesData = [], isFetching: isFetchingEntitiesDetails } =\n useGetEntitiesDetailsPanelQuery(\n // @ts-expect-error\n { entityType: entityType, entities: entities },\n {\n skip: !isOpen || isFetchingInfo,\n },\n )\n\n // reduce projectsInfo to selected projects and into one\n const projectInfo = useMemo(\n () => mergeProjectInfo(projectsInfo, projects),\n [projectsInfo, projects],\n )\n\n // build icons for entity types\n const entityTypeIcons = useMemo(\n () => ({\n task: projectInfo.taskTypes\n .filter((task) => !!task.icon)\n .reduce((acc, task) => ({ ...acc, [task.name]: task.icon }), {}),\n folder: projectInfo.folderTypes\n .filter((folder) => !!folder.icon)\n .reduce((acc, folder) => ({ ...acc, [folder.name]: folder.icon }), {}),\n product: Object.entries(productTypes).reduce(\n (acc, [key, product]) => ({ ...acc, [key]: product.icon }),\n {},\n ),\n }),\n [projectInfo],\n )\n\n const thumbnails = useMemo(\n () => (entityType ? getThumbnails(entitiesData, entityType, entityTypeIcons) : []),\n [entitiesData, entityType],\n )\n\n // users for assignee field, find in all users\n const users = useMemo(() => {\n return allUsers\n .filter((u) => entitiesData.some((e) => e?.task?.assignees?.includes(u.name)))\n .map((u) => ({ ...u, avatarUrl: `/api/users/${u.name}/avatar` }))\n }, [allUsers, entities])\n\n const firstEntity = entitiesData[0]\n if (!entitiesData.length || !firstEntity) return null\n\n if (isFetchingEntitiesDetails) return <div>Loading...</div>\n\n const projectName = firstEntity?.projectName\n\n // are there multiple statuses of different names?\n const mixedStatuses = entitiesData.some((e) => e?.status !== firstEntity?.status)\n const mixedStatus = {\n icon: 'question_mark',\n color: 'var(--md-sys-color-surface-container-highest)',\n name: 'Mixed statuses',\n }\n\n const statusAnatomy = mixedStatuses\n ? mixedStatus\n : statuses.find((s) => s.name === firstEntity?.status) || {\n icon: '',\n color: '',\n name: 'None',\n }\n\n if (!entityType) return null\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entitiesData, entityType)\n\n return (\n <PiPWrapper>\n <Styled.Container>\n <Styled.Header>\n <StackedThumbnails thumbnails={thumbnails} />\n <Styled.Content>\n <h2>{title}</h2>\n <div className=\"sub-title\">\n <span>{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.Row>\n <Styled.Status style={{ backgroundColor: statusAnatomy?.color }}>\n {<Icon icon={statusAnatomy.icon || 'question_mark'} />}\n <span className=\"label\">{statusAnatomy?.name}</span>\n </Styled.Status>\n <AssigneeField users={users} style={{ pointerEvents: 'none' }} />\n </Styled.Row>\n <Styled.FeedContainer>\n <FeedWrapper\n entityType={entityType}\n // @ts-ignore\n entities={entitiesData}\n activeUsers={[]}\n // selectedTasksProjects={{}}\n projectInfo={projectsInfo[projectName]}\n projectName={projectName}\n isMultiProjects={false}\n scope={scope}\n readOnly\n // @ts-ignore\n statuses={statuses}\n />\n </Styled.FeedContainer>\n </Styled.Container>\n </PiPWrapper>\n )\n}\n\nexport default DetailsPanelFloating\n"],"names":["jsx","jsxs","Styled.Container","Styled.Header","Styled.Content","Styled.Row","Styled.Status","Styled.FeedContainer"],"mappings":"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"}
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js
CHANGED
|
@@ -44,6 +44,7 @@ require("../../../api/generated/versions.cjs.js");
|
|
|
44
44
|
require("../../../api/generated/workfiles.cjs.js");
|
|
45
45
|
require("../../../api/generated/ynputCloud.cjs.js");
|
|
46
46
|
require("../../../api/generated/grouping.cjs.js");
|
|
47
|
+
require("../../../api/generated/views.cjs.js");
|
|
47
48
|
require("../../../api/queries/actions/getActions.cjs.js");
|
|
48
49
|
const getActivities = require("../../../api/queries/activities/getActivities.cjs.js");
|
|
49
50
|
require("../../../api/queries/activities/updateActivities.cjs.js");
|
|
@@ -77,6 +78,9 @@ require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
|
77
78
|
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
78
79
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
79
80
|
require("../../../api/queries/products/createProduct.cjs.js");
|
|
81
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
82
|
+
require("../../../api/queries/views/getViews.cjs.js");
|
|
83
|
+
require("../../../api/queries/views/updateViews.cjs.js");
|
|
80
84
|
require("@dnd-kit/core");
|
|
81
85
|
require("@dnd-kit/sortable");
|
|
82
86
|
require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");
|
|
@@ -118,6 +122,7 @@ require("react-router-dom");
|
|
|
118
122
|
require("../../../components/Powerpack/PowerpackButton.cjs.js");
|
|
119
123
|
require("../../../components/Powerpack/PricingLink.cjs.js");
|
|
120
124
|
require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");
|
|
125
|
+
require("../../../components/Powerpack/CTAButton.cjs.js");
|
|
121
126
|
require("../../../components/SettingsPanel/SettingsPanel.cjs.js");
|
|
122
127
|
require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");
|
|
123
128
|
require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");
|
|
@@ -126,6 +131,11 @@ require("../../../components/SearchFilter/filterDates.cjs.js");
|
|
|
126
131
|
require("../../../components/Badge/Badge.cjs.js");
|
|
127
132
|
require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");
|
|
128
133
|
require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");
|
|
134
|
+
require("../../../components/Feedback/FeedbackContext.cjs.js");
|
|
135
|
+
require("../../../components/Feedback/SupportBubble.cjs.js");
|
|
136
|
+
require("../../../components/Views/context/ViewsContext.cjs.js");
|
|
137
|
+
require("../../../components/Views/Views.styled.cjs.js");
|
|
138
|
+
require("../../../components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
|
|
129
139
|
require("../../Feed/context/FeedContext.cjs.js");
|
|
130
140
|
require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");
|
|
131
141
|
require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelHeader.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { union, upperFirst } from 'lodash'\nimport clsx from 'clsx'\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport { EntityPanelUploader, StackedThumbnails } from '@shared/components'\nimport { Actions, DetailsPanelProps } from '@shared/containers'\n// shared\nimport { useGetEntitiesChecklistsQuery, useGetAttributeConfigQuery } from '@shared/api'\nimport type { DetailsPanelEntityData } from '@shared/api'\nimport { getPriorityOptions } from '@shared/util'\nimport { useScopedStatuses, useEntityUpdate } from '@shared/hooks'\nimport { DetailsPanelTab, useDetailsPanelContext } from '@shared/context'\n\nimport FeedFilters from '../FeedFilters/FeedFilters'\nimport * as Styled from './DetailsPanelHeader.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { PlayableIcon } from '@shared/components/PlayableIcon/PlayableIcon'\n\nexport type EntityTypeIcons = {\n folder: Record<string, string>\n task: Record<string, string>\n product: Record<string, string>\n}\n\ntype DetailsPanelHeaderProps = {\n entityType: 'folder' | 'task' | 'version' | 'representation'\n entitySubTypes: string[]\n entities: DetailsPanelEntityData[]\n disabledAssignees?: any[]\n users?: any[]\n disabledStatuses?: string[]\n tagsOptions?: any[]\n isFetching?: boolean\n isCompact?: boolean\n currentTab: DetailsPanelTab\n onTabChange: (tab: DetailsPanelTab) => void\n onOpenViewer: (args: any) => void\n onEntityFocus: DetailsPanelProps['onEntityFocus']\n entityTypeIcons: EntityTypeIcons\n}\n\nconst DetailsPanelHeader = ({\n entityType,\n entitySubTypes,\n entities = [],\n disabledAssignees = [],\n users = [],\n disabledStatuses,\n tagsOptions = [],\n isFetching,\n isCompact = false,\n currentTab,\n onTabChange,\n entityTypeIcons,\n onOpenViewer,\n onEntityFocus,\n}: DetailsPanelHeaderProps) => {\n const { useSearchParams, useNavigate, isDeveloperMode } = useDetailsPanelContext()\n const navigate = useNavigate()\n const [searchParams, setSearchParams] = useSearchParams()\n\n const statuses = useScopedStatuses(\n entities.map((entity) => entity.projectName),\n [entityType],\n )\n\n // for selected entities, get flat list of assignees\n const entityUsers: string[] = useMemo(\n () =>\n union(\n ...entities.flatMap((entity) => [\n entity.task?.assignees || [],\n entity.version?.author || [],\n ]),\n ),\n [entities],\n )\n\n let firstEntity = entities[0]\n // If there's no data return null\n const isLoading = entities.length === 0 || !firstEntity || isFetching\n // placeholder entity\n if (!firstEntity) {\n firstEntity = {\n id: 'placeholder',\n name: 'loading...',\n label: 'loading...',\n entityType,\n status: 'loading',\n projectName: 'loading...',\n tags: [],\n hasReviewables: false,\n attrib: {},\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n\n const projectName = entities.length > 1 ? undefined : firstEntity?.projectName\n\n const entityIds = entities\n .filter((e) => e.projectName === firstEntity?.projectName && e.id)\n .map((entity) => entity.id)\n\n // get checklists count\n const { data: checklistCount } = useGetEntitiesChecklistsQuery(\n {\n projectName: firstEntity?.projectName,\n entityIds,\n },\n { skip: !firstEntity?.projectName || !entityIds.length },\n )\n let checklistsLabel\n if (checklistCount?.total && checklistCount.total > 0) {\n checklistsLabel = `${checklistCount.checked}/${checklistCount.total}`\n }\n\n // get priorities\n // get priority attribute so we know the colors and icons for each priority\n const { data: priorityAttrib } = useGetAttributeConfigQuery({ attributeName: 'priority' })\n const priorities = getPriorityOptions(priorityAttrib, entityType)\n\n const thumbnails = useMemo(\n () => getThumbnails(entities, entityType, entityTypeIcons),\n [entities, entityType, entityTypeIcons],\n )\n\n // we need to get the intersection of all the statuses of the projects for the selected entities\n // this means that if we have 2 entities from 2 different projects, we need to get the intersection of the statuses of those 2 projects\n // and it prevents us from showing statuses that are not available for the selected entities\n const statusesValue = useMemo(() => entities.map((t) => t.status), [entities])\n const priorityValues = useMemo(() => entities.map((t) => t.attrib?.priority), [entities])\n const tagsValues: string[][] = useMemo(() => entities.map((t) => t.tags), [entities])\n const tagsOptionsObject = useMemo(\n () =>\n tagsOptions.reduce((acc, tag) => {\n acc[tag.name] = tag\n return acc\n }, {}),\n [tagsOptions],\n )\n\n const isMultiple = entities.length > 1\n\n const { updateEntity } = useEntityUpdate({\n entities: entities.map((e) => ({\n id: e.id,\n projectName: e.projectName,\n users: e.task?.assignees || [],\n folderId: e.folder?.id,\n productId: e.product?.id,\n })),\n entityType,\n })\n\n const handleUpdate = (field: string, value: any) => {\n if (value === null || value === undefined) return console.error('value is null or undefined')\n return updateEntity(field, value)\n }\n\n const handleThumbnailClick = () => {\n let versionIds,\n id = firstEntity.id,\n entityTypeKey = entityType + 'Id'\n\n if (entityType === 'version' && firstEntity.product?.id) {\n versionIds = [firstEntity.id]\n id = firstEntity.product?.id\n entityTypeKey = 'productId'\n }\n\n if (id) {\n onOpenViewer({\n [entityTypeKey]: id,\n projectName,\n versionIds,\n })\n }\n }\n\n const hasUser =\n ['task', 'version', 'representation'].includes(entityType) &&\n (entityUsers.length > 0 || entityType === 'task')\n\n const usersOptions = users.map((u) => u)\n if (hasUser) {\n // check if all users are in options, otherwise add them\n const allUsers = users.map((u) => u.name)\n const usersToAdd = entityUsers.filter((u) => !allUsers.includes(u))\n if (usersToAdd.length) {\n usersOptions.push(...usersToAdd.map((u) => ({ name: u, fullName: u })))\n }\n }\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entities, entityType)\n\n return (\n <Styled.HeaderContainer>\n <EntityPanelUploader\n entities={entities}\n entityType={entityType}\n projectName={projectName}\n onVersionCreated={(id) => onEntityFocus?.(id, 'version')}\n >\n <Styled.Grid className={clsx('details-panel-header', { isCompact })}>\n <Styled.Header\n className={clsx('titles', { isCompact, loading: isLoading }, 'no-shimmer')}\n >\n <div style={{ position: 'relative' }}>\n <StackedThumbnails\n isLoading={isLoading}\n shimmer={isLoading}\n thumbnails={thumbnails}\n onClick={thumbnails.length === 1 ? handleThumbnailClick : undefined}\n hoverIcon={'play_circle'}\n />\n {!isMultiple && firstEntity?.hasReviewables && <PlayableIcon />}\n </div>\n <Styled.Content className={clsx({ loading: isLoading })}>\n <Styled.Title>\n <h2>{title}</h2>\n <Styled.TagsSelect\n value={union(...tagsValues)}\n tags={tagsOptionsObject}\n options={[]}\n editable\n editor\n onChange={(value) => handleUpdate('tags', value)}\n align=\"right\"\n styleDropdown={{ display: isLoading ? 'none' : 'unset' }}\n className=\"tags-select\"\n />\n </Styled.Title>\n <div className=\"sub-title\">\n <span className=\"entity-type\">{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.StatusSelect\n value={statusesValue}\n options={statuses || []}\n disabledValues={disabledStatuses}\n invert\n style={{ maxWidth: 'unset' }}\n onChange={(value) => handleUpdate('status', value)}\n className={clsx('status-select', { loading: isLoading })}\n align={isCompact ? 'right' : 'left'}\n />\n {!isCompact &&\n (!hasUser || isLoading ? (\n <div></div>\n ) : (\n <Styled.AssigneeSelect\n value={entityUsers}\n options={usersOptions}\n disabledValues={disabledAssignees.map((u) => u.name)}\n isMultiple={isMultiple && entityUsers.length > 1 && entityType === 'task'}\n readOnly={entityType !== 'task'}\n emptyMessage={entityType === 'task' ? 'Assign user' : ''}\n align=\"right\"\n onChange={(value) => handleUpdate('assignees', value)}\n className=\"assignee-select\"\n data-tooltip={\n entityUsers.length ? (entityType === 'task' ? 'Assigned users' : 'Author') : ''\n }\n />\n ))}\n <Actions\n entities={entities}\n entityType={entityType}\n entitySubTypes={entitySubTypes}\n isLoadingEntity={!!isFetching || !!isLoading}\n searchParams={searchParams}\n isDeveloperMode={isDeveloperMode}\n onSetSearchParams={setSearchParams}\n onNavigate={navigate}\n />\n {priorities ? (\n <Styled.PriorityEnumDropdown\n options={priorities}\n placeholder=\"No priority\"\n value={priorityValues}\n onChange={(value) => handleUpdate('attrib', { priority: value[0] })}\n align=\"right\"\n />\n ) : (\n <div style={{ height: 32 }}></div>\n )}\n <FeedFilters\n isLoading={isLoading}\n entityType={entityType}\n className=\"filters\"\n overrides={{\n checklists: {\n label: checklistsLabel,\n },\n }}\n currentTab={currentTab}\n onTabChange={onTabChange}\n />\n </Styled.Grid>\n </EntityPanelUploader>\n </Styled.HeaderContainer>\n )\n}\n\nexport default DetailsPanelHeader\n"],"names":["useDetailsPanelContext","useScopedStatuses","useMemo","union","useGetEntitiesChecklistsQuery","useGetAttributeConfigQuery","getPriorityOptions","useEntityUpdate","buildDetailsPanelTitles","jsx","Styled.HeaderContainer","EntityPanelUploader","jsxs","Styled.Grid","Styled.Header","StackedThumbnails","PlayableIcon","Styled.Content","Styled.Title","Styled.TagsSelect","upperFirst","Styled.StatusSelect","Styled.AssigneeSelect","Actions","Styled.PriorityEnumDropdown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DetailsPanelHeader.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { union, upperFirst } from 'lodash'\nimport clsx from 'clsx'\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport { EntityPanelUploader, StackedThumbnails } from '@shared/components'\nimport { Actions, DetailsPanelProps } from '@shared/containers'\n// shared\nimport { useGetEntitiesChecklistsQuery, useGetAttributeConfigQuery } from '@shared/api'\nimport type { DetailsPanelEntityData } from '@shared/api'\nimport { getPriorityOptions } from '@shared/util'\nimport { useScopedStatuses, useEntityUpdate } from '@shared/hooks'\nimport { DetailsPanelTab, useDetailsPanelContext } from '@shared/context'\n\nimport FeedFilters from '../FeedFilters/FeedFilters'\nimport * as Styled from './DetailsPanelHeader.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { PlayableIcon } from '@shared/components/PlayableIcon/PlayableIcon'\n\nexport type EntityTypeIcons = {\n folder: Record<string, string>\n task: Record<string, string>\n product: Record<string, string>\n}\n\ntype DetailsPanelHeaderProps = {\n entityType: 'folder' | 'task' | 'version' | 'representation'\n entitySubTypes: string[]\n entities: DetailsPanelEntityData[]\n disabledAssignees?: any[]\n users?: any[]\n disabledStatuses?: string[]\n tagsOptions?: any[]\n isFetching?: boolean\n isCompact?: boolean\n currentTab: DetailsPanelTab\n onTabChange: (tab: DetailsPanelTab) => void\n onOpenViewer: (args: any) => void\n onEntityFocus: DetailsPanelProps['onEntityFocus']\n entityTypeIcons: EntityTypeIcons\n}\n\nconst DetailsPanelHeader = ({\n entityType,\n entitySubTypes,\n entities = [],\n disabledAssignees = [],\n users = [],\n disabledStatuses,\n tagsOptions = [],\n isFetching,\n isCompact = false,\n currentTab,\n onTabChange,\n entityTypeIcons,\n onOpenViewer,\n onEntityFocus,\n}: DetailsPanelHeaderProps) => {\n const { useSearchParams, useNavigate, isDeveloperMode } = useDetailsPanelContext()\n const navigate = useNavigate()\n const [searchParams, setSearchParams] = useSearchParams()\n\n const statuses = useScopedStatuses(\n entities.map((entity) => entity.projectName),\n [entityType],\n )\n\n // for selected entities, get flat list of assignees\n const entityUsers: string[] = useMemo(\n () =>\n union(\n ...entities.flatMap((entity) => [\n entity.task?.assignees || [],\n entity.version?.author || [],\n ]),\n ),\n [entities],\n )\n\n let firstEntity = entities[0]\n // If there's no data return null\n const isLoading = entities.length === 0 || !firstEntity || isFetching\n // placeholder entity\n if (!firstEntity) {\n firstEntity = {\n id: 'placeholder',\n name: 'loading...',\n label: 'loading...',\n entityType,\n status: 'loading',\n projectName: 'loading...',\n tags: [],\n hasReviewables: false,\n attrib: {},\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n\n const projectName = entities.length > 1 ? undefined : firstEntity?.projectName\n\n const entityIds = entities\n .filter((e) => e.projectName === firstEntity?.projectName && e.id)\n .map((entity) => entity.id)\n\n // get checklists count\n const { data: checklistCount } = useGetEntitiesChecklistsQuery(\n {\n projectName: firstEntity?.projectName,\n entityIds,\n },\n { skip: !firstEntity?.projectName || !entityIds.length },\n )\n let checklistsLabel\n if (checklistCount?.total && checklistCount.total > 0) {\n checklistsLabel = `${checklistCount.checked}/${checklistCount.total}`\n }\n\n // get priorities\n // get priority attribute so we know the colors and icons for each priority\n const { data: priorityAttrib } = useGetAttributeConfigQuery({ attributeName: 'priority' })\n const priorities = getPriorityOptions(priorityAttrib, entityType)\n\n const thumbnails = useMemo(\n () => getThumbnails(entities, entityType, entityTypeIcons),\n [entities, entityType, entityTypeIcons],\n )\n\n // we need to get the intersection of all the statuses of the projects for the selected entities\n // this means that if we have 2 entities from 2 different projects, we need to get the intersection of the statuses of those 2 projects\n // and it prevents us from showing statuses that are not available for the selected entities\n const statusesValue = useMemo(() => entities.map((t) => t.status), [entities])\n const priorityValues = useMemo(() => entities.map((t) => t.attrib?.priority), [entities])\n const tagsValues: string[][] = useMemo(() => entities.map((t) => t.tags), [entities])\n const tagsOptionsObject = useMemo(\n () =>\n tagsOptions.reduce((acc, tag) => {\n acc[tag.name] = tag\n return acc\n }, {}),\n [tagsOptions],\n )\n\n const isMultiple = entities.length > 1\n\n const { updateEntity } = useEntityUpdate({\n entities: entities.map((e) => ({\n id: e.id,\n projectName: e.projectName,\n users: e.task?.assignees || [],\n folderId: e.folder?.id,\n productId: e.product?.id,\n })),\n entityType,\n })\n\n const handleUpdate = (field: string, value: any) => {\n if (value === null || value === undefined) return console.error('value is null or undefined')\n return updateEntity(field, value)\n }\n\n const handleThumbnailClick = () => {\n let versionIds,\n id = firstEntity.id,\n entityTypeKey = entityType + 'Id'\n\n if (entityType === 'version' && firstEntity.product?.id) {\n versionIds = [firstEntity.id]\n id = firstEntity.product?.id\n entityTypeKey = 'productId'\n }\n\n if (id) {\n onOpenViewer({\n [entityTypeKey]: id,\n projectName,\n versionIds,\n })\n }\n }\n\n const hasUser =\n ['task', 'version', 'representation'].includes(entityType) &&\n (entityUsers.length > 0 || entityType === 'task')\n\n const usersOptions = users.map((u) => u)\n if (hasUser) {\n // check if all users are in options, otherwise add them\n const allUsers = users.map((u) => u.name)\n const usersToAdd = entityUsers.filter((u) => !allUsers.includes(u))\n if (usersToAdd.length) {\n usersOptions.push(...usersToAdd.map((u) => ({ name: u, fullName: u })))\n }\n }\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entities, entityType)\n\n return (\n <Styled.HeaderContainer>\n <EntityPanelUploader\n entities={entities}\n entityType={entityType}\n projectName={projectName}\n onVersionCreated={(id) => onEntityFocus?.(id, 'version')}\n >\n <Styled.Grid className={clsx('details-panel-header', { isCompact })}>\n <Styled.Header\n className={clsx('titles', { isCompact, loading: isLoading }, 'no-shimmer')}\n >\n <div style={{ position: 'relative' }}>\n <StackedThumbnails\n isLoading={isLoading}\n shimmer={isLoading}\n thumbnails={thumbnails}\n onClick={thumbnails.length === 1 ? handleThumbnailClick : undefined}\n hoverIcon={'play_circle'}\n />\n {!isMultiple && firstEntity?.hasReviewables && <PlayableIcon />}\n </div>\n <Styled.Content className={clsx({ loading: isLoading })}>\n <Styled.Title>\n <h2>{title}</h2>\n <Styled.TagsSelect\n value={union(...tagsValues)}\n tags={tagsOptionsObject}\n options={[]}\n editable\n editor\n onChange={(value) => handleUpdate('tags', value)}\n align=\"right\"\n styleDropdown={{ display: isLoading ? 'none' : 'unset' }}\n className=\"tags-select\"\n />\n </Styled.Title>\n <div className=\"sub-title\">\n <span className=\"entity-type\">{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.StatusSelect\n value={statusesValue}\n options={statuses || []}\n disabledValues={disabledStatuses}\n invert\n style={{ maxWidth: 'unset' }}\n onChange={(value) => handleUpdate('status', value)}\n className={clsx('status-select', { loading: isLoading })}\n align={isCompact ? 'right' : 'left'}\n />\n {!isCompact &&\n (!hasUser || isLoading ? (\n <div></div>\n ) : (\n <Styled.AssigneeSelect\n value={entityUsers}\n options={usersOptions}\n disabledValues={disabledAssignees.map((u) => u.name)}\n isMultiple={isMultiple && entityUsers.length > 1 && entityType === 'task'}\n readOnly={entityType !== 'task'}\n emptyMessage={entityType === 'task' ? 'Assign user' : ''}\n align=\"right\"\n onChange={(value) => handleUpdate('assignees', value)}\n className=\"assignee-select\"\n data-tooltip={\n entityUsers.length ? (entityType === 'task' ? 'Assigned users' : 'Author') : ''\n }\n />\n ))}\n <Actions\n entities={entities}\n entityType={entityType}\n entitySubTypes={entitySubTypes}\n isLoadingEntity={!!isFetching || !!isLoading}\n searchParams={searchParams}\n isDeveloperMode={isDeveloperMode}\n onSetSearchParams={setSearchParams}\n onNavigate={navigate}\n />\n {priorities ? (\n <Styled.PriorityEnumDropdown\n options={priorities}\n placeholder=\"No priority\"\n value={priorityValues}\n onChange={(value) => handleUpdate('attrib', { priority: value[0] })}\n align=\"right\"\n />\n ) : (\n <div style={{ height: 32 }}></div>\n )}\n <FeedFilters\n isLoading={isLoading}\n entityType={entityType}\n className=\"filters\"\n overrides={{\n checklists: {\n label: checklistsLabel,\n },\n }}\n currentTab={currentTab}\n onTabChange={onTabChange}\n />\n </Styled.Grid>\n </EntityPanelUploader>\n </Styled.HeaderContainer>\n )\n}\n\nexport default DetailsPanelHeader\n"],"names":["useDetailsPanelContext","useScopedStatuses","useMemo","union","useGetEntitiesChecklistsQuery","useGetAttributeConfigQuery","getPriorityOptions","useEntityUpdate","buildDetailsPanelTitles","jsx","Styled.HeaderContainer","EntityPanelUploader","jsxs","Styled.Grid","Styled.Header","StackedThumbnails","PlayableIcon","Styled.Content","Styled.Title","Styled.TagsSelect","upperFirst","Styled.StatusSelect","Styled.AssigneeSelect","Actions","Styled.PriorityEnumDropdown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,oBAAoB,CAAC;AAAA,EACrB,QAAQ,CAAC;AAAA,EACT;AAAA,EACA,cAAc,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,EAAE,iBAAiB,aAAa,gBAAA,IAAoBA,oBAAAA,uBAAuB;AACjF,QAAM,WAAW,YAAY;AAC7B,QAAM,CAAC,cAAc,eAAe,IAAI,gBAAgB;AAExD,QAAM,WAAWC,kBAAA;AAAA,IACf,SAAS,IAAI,CAAC,WAAW,OAAO,WAAW;AAAA,IAC3C,CAAC,UAAU;AAAA,EACb;AAGA,QAAM,cAAwBC,MAAA;AAAA,IAC5B,MACEC,OAAA;AAAA,MACE,GAAG,SAAS,QAAQ,CAAC,WAAW;;AAAA;AAAA,YAC9B,YAAO,SAAP,mBAAa,cAAa,CAAC;AAAA,YAC3B,YAAO,YAAP,mBAAgB,WAAU,CAAA;AAAA,QAC3B;AAAA,OAAA;AAAA,IACH;AAAA,IACF,CAAC,QAAQ;AAAA,EACX;AAEI,MAAA,cAAc,SAAS,CAAC;AAE5B,QAAM,YAAY,SAAS,WAAW,KAAK,CAAC,eAAe;AAE3D,MAAI,CAAC,aAAa;AACF,kBAAA;AAAA,MACZ,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,MACA,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,MAAM,CAAC;AAAA,MACP,gBAAgB;AAAA,MAChB,QAAQ,CAAC;AAAA,MACT,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MAClC,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,IACpC;AAAA,EAAA;AAGF,QAAM,cAAc,SAAS,SAAS,IAAI,SAAY,2CAAa;AAEnE,QAAM,YAAY,SACf,OAAO,CAAC,MAAM,EAAE,iBAAgB,2CAAa,gBAAe,EAAE,EAAE,EAChE,IAAI,CAAC,WAAW,OAAO,EAAE;AAGtB,QAAA,EAAE,MAAM,eAAA,IAAmBC,cAAA;AAAA,IAC/B;AAAA,MACE,aAAa,2CAAa;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,EAAE,MAAM,EAAC,2CAAa,gBAAe,CAAC,UAAU,OAAO;AAAA,EACzD;AACI,MAAA;AACJ,OAAI,iDAAgB,UAAS,eAAe,QAAQ,GAAG;AACrD,sBAAkB,GAAG,eAAe,OAAO,IAAI,eAAe,KAAK;AAAA,EAAA;AAK/D,QAAA,EAAE,MAAM,eAAe,IAAIC,yCAA2B,EAAE,eAAe,YAAY;AACnF,QAAA,aAAaC,mBAAAA,mBAAmB,gBAAgB,UAAU;AAEhE,QAAM,aAAaJ,MAAA;AAAA,IACjB,MAAM,cAAc,UAAU,YAAY,eAAe;AAAA,IACzD,CAAC,UAAU,YAAY,eAAe;AAAA,EACxC;AAKA,QAAM,gBAAgBA,MAAAA,QAAQ,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,QAAQ,CAAC;AAC7E,QAAM,iBAAiBA,MAAAA,QAAQ,MAAM,SAAS,IAAI,CAAC,MAAM;;AAAA,mBAAE,WAAF,mBAAU;AAAA,GAAQ,GAAG,CAAC,QAAQ,CAAC;AACxF,QAAM,aAAyBA,MAAAA,QAAQ,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;AACpF,QAAM,oBAAoBA,MAAA;AAAA,IACxB,MACE,YAAY,OAAO,CAAC,KAAK,QAAQ;AAC3B,UAAA,IAAI,IAAI,IAAI;AACT,aAAA;AAAA,IACT,GAAG,EAAE;AAAA,IACP,CAAC,WAAW;AAAA,EACd;AAEM,QAAA,aAAa,SAAS,SAAS;AAE/B,QAAA,EAAE,aAAa,IAAIK,gCAAgB;AAAA,IACvC,UAAU,SAAS,IAAI,CAAC,MAAO;;AAAA;AAAA,QAC7B,IAAI,EAAE;AAAA,QACN,aAAa,EAAE;AAAA,QACf,SAAO,OAAE,SAAF,mBAAQ,cAAa,CAAC;AAAA,QAC7B,WAAU,OAAE,WAAF,mBAAU;AAAA,QACpB,YAAW,OAAE,YAAF,mBAAW;AAAA,MAAA;AAAA,KACtB;AAAA,IACF;AAAA,EAAA,CACD;AAEK,QAAA,eAAe,CAAC,OAAe,UAAe;AAClD,QAAI,UAAU,QAAQ,UAAU,OAAkB,QAAA,QAAQ,MAAM,4BAA4B;AACrF,WAAA,aAAa,OAAO,KAAK;AAAA,EAClC;AAEA,QAAM,uBAAuB,MAAM;;AACjC,QAAI,YACF,KAAK,YAAY,IACjB,gBAAgB,aAAa;AAE/B,QAAI,eAAe,eAAa,iBAAY,YAAZ,mBAAqB,KAAI;AAC1C,mBAAA,CAAC,YAAY,EAAE;AAC5B,YAAK,iBAAY,YAAZ,mBAAqB;AACV,sBAAA;AAAA,IAAA;AAGlB,QAAI,IAAI;AACO,mBAAA;AAAA,QACX,CAAC,aAAa,GAAG;AAAA,QACjB;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,UACJ,CAAC,QAAQ,WAAW,gBAAgB,EAAE,SAAS,UAAU,MACxD,YAAY,SAAS,KAAK,eAAe;AAE5C,QAAM,eAAe,MAAM,IAAI,CAAC,MAAM,CAAC;AACvC,MAAI,SAAS;AAEX,UAAM,WAAW,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI;AAClC,UAAA,aAAa,YAAY,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,CAAC,CAAC;AAClE,QAAI,WAAW,QAAQ;AACrB,mBAAa,KAAK,GAAG,WAAW,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,EAAE,CAAC;AAAA,IAAA;AAAA,EACxE;AAIF,QAAM,EAAE,OAAO,SAAA,IAAaC,wBAAAA,wBAAwB,UAAU,UAAU;AAGtE,SAAAC,iDAACC,0BAAAA,iBAAA,EACC,UAAAD,2BAAA,kBAAA;AAAA,IAACE,oBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB,CAAC,OAAO,+CAAgB,IAAI;AAAA,MAE9C,UAAAC,2BAAAA,kBAAAA,KAACC,0BAAO,MAAP,EAAY,WAAW,KAAK,wBAAwB,EAAE,WAAW,GAChE,UAAA;AAAA,QAAAD,2BAAA,kBAAA;AAAA,UAACE,0BAAO;AAAA,UAAP;AAAA,YACC,WAAW,KAAK,UAAU,EAAE,WAAW,SAAS,aAAa,YAAY;AAAA,YAEzE,UAAA;AAAA,cAAAF,2BAAA,kBAAA,KAAC,OAAI,EAAA,OAAO,EAAE,UAAU,WACtB,GAAA,UAAA;AAAA,gBAAAH,2BAAA,kBAAA;AAAA,kBAACM,kBAAA;AAAA,kBAAA;AAAA,oBACC;AAAA,oBACA,SAAS;AAAA,oBACT;AAAA,oBACA,SAAS,WAAW,WAAW,IAAI,uBAAuB;AAAA,oBAC1D,WAAW;AAAA,kBAAA;AAAA,gBACb;AAAA,gBACC,CAAC,eAAc,2CAAa,oEAAmBC,aAAa,cAAA,CAAA,CAAA;AAAA,cAAA,GAC/D;AAAA,cACAJ,kDAACK,0BAAAA,SAAA,EAAe,WAAW,KAAK,EAAE,SAAS,WAAW,GACpD,UAAA;AAAA,gBAACL,kDAAAM,0BAAAA,OAAA,EACC,UAAA;AAAA,kBAAAT,2BAAAA,kBAAAA,IAAC,QAAI,UAAM,MAAA,CAAA;AAAA,kBACXA,2BAAA,kBAAA;AAAA,oBAACU,0BAAO;AAAA,oBAAP;AAAA,sBACC,OAAOhB,OAAAA,MAAM,GAAG,UAAU;AAAA,sBAC1B,MAAM;AAAA,sBACN,SAAS,CAAC;AAAA,sBACV,UAAQ;AAAA,sBACR,QAAM;AAAA,sBACN,UAAU,CAAC,UAAU,aAAa,QAAQ,KAAK;AAAA,sBAC/C,OAAM;AAAA,sBACN,eAAe,EAAE,SAAS,YAAY,SAAS,QAAQ;AAAA,sBACvD,WAAU;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACZ,GACF;AAAA,gBACAS,2BAAAA,kBAAAA,KAAC,OAAI,EAAA,WAAU,aACb,UAAA;AAAA,kBAACA,2BAAAA,kBAAAA,KAAA,QAAA,EAAK,WAAU,eAAe,UAAA;AAAA,oBAAAQ,OAAAA,WAAW,UAAU;AAAA,oBAAE;AAAA,kBAAA,GAAG;AAAA,kBACzDX,2BAAAA,kBAAAA,IAAC,QAAI,UAAS,SAAA,CAAA;AAAA,gBAAA,EAChB,CAAA;AAAA,cAAA,EACF,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,QACAA,2BAAA,kBAAA;AAAA,UAACY,0BAAO;AAAA,UAAP;AAAA,YACC,OAAO;AAAA,YACP,SAAS,YAAY,CAAC;AAAA,YACtB,gBAAgB;AAAA,YAChB,QAAM;AAAA,YACN,OAAO,EAAE,UAAU,QAAQ;AAAA,YAC3B,UAAU,CAAC,UAAU,aAAa,UAAU,KAAK;AAAA,YACjD,WAAW,KAAK,iBAAiB,EAAE,SAAS,WAAW;AAAA,YACvD,OAAO,YAAY,UAAU;AAAA,UAAA;AAAA,QAC/B;AAAA,QACC,CAAC,cACC,CAAC,WAAW,YACXZ,2BAAAA,kBAAAA,IAAC,QAAI,CAAA,IAELA,2BAAA,kBAAA;AAAA,UAACa,0BAAO;AAAA,UAAP;AAAA,YACC,OAAO;AAAA,YACP,SAAS;AAAA,YACT,gBAAgB,kBAAkB,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,YACnD,YAAY,cAAc,YAAY,SAAS,KAAK,eAAe;AAAA,YACnE,UAAU,eAAe;AAAA,YACzB,cAAc,eAAe,SAAS,gBAAgB;AAAA,YACtD,OAAM;AAAA,YACN,UAAU,CAAC,UAAU,aAAa,aAAa,KAAK;AAAA,YACpD,WAAU;AAAA,YACV,gBACE,YAAY,SAAU,eAAe,SAAS,mBAAmB,WAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAIrFb,2BAAA,kBAAA;AAAA,UAACc,QAAA;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;AAAA,YACnC;AAAA,YACA;AAAA,YACA,mBAAmB;AAAA,YACnB,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QACC,aACCd,2BAAA,kBAAA;AAAA,UAACe,0BAAO;AAAA,UAAP;AAAA,YACC,SAAS;AAAA,YACT,aAAY;AAAA,YACZ,OAAO;AAAA,YACP,UAAU,CAAC,UAAU,aAAa,UAAU,EAAE,UAAU,MAAM,CAAC,GAAG;AAAA,YAClE,OAAM;AAAA,UAAA;AAAA,QAAA,IAGPf,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,OAAO,EAAE,QAAQ,MAAM;AAAA,QAE9BA,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,WAAU;AAAA,YACV,WAAW;AAAA,cACT,YAAY;AAAA,gBACV,OAAO;AAAA,cAAA;AAAA,YAEX;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EACF,CAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;;"}
|
|
@@ -43,6 +43,7 @@ import "../../../api/generated/versions.es.js";
|
|
|
43
43
|
import "../../../api/generated/workfiles.es.js";
|
|
44
44
|
import "../../../api/generated/ynputCloud.es.js";
|
|
45
45
|
import "../../../api/generated/grouping.es.js";
|
|
46
|
+
import "../../../api/generated/views.es.js";
|
|
46
47
|
import "../../../api/queries/actions/getActions.es.js";
|
|
47
48
|
import { useGetEntitiesChecklistsQuery } from "../../../api/queries/activities/getActivities.es.js";
|
|
48
49
|
import "../../../api/queries/activities/updateActivities.es.js";
|
|
@@ -76,6 +77,9 @@ import "../../../api/queries/permissions/getPermissions.es.js";
|
|
|
76
77
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
77
78
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
78
79
|
import "../../../api/queries/products/createProduct.es.js";
|
|
80
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
81
|
+
import "../../../api/queries/views/getViews.es.js";
|
|
82
|
+
import "../../../api/queries/views/updateViews.es.js";
|
|
79
83
|
import "@dnd-kit/core";
|
|
80
84
|
import "@dnd-kit/sortable";
|
|
81
85
|
import "../../../components/ReviewablesList/ReviewablesList.styled.es.js";
|
|
@@ -117,6 +121,7 @@ import "react-router-dom";
|
|
|
117
121
|
import "../../../components/Powerpack/PowerpackButton.es.js";
|
|
118
122
|
import "../../../components/Powerpack/PricingLink.es.js";
|
|
119
123
|
import "../../../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
124
|
+
import "../../../components/Powerpack/CTAButton.es.js";
|
|
120
125
|
import "../../../components/SettingsPanel/SettingsPanel.es.js";
|
|
121
126
|
import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
122
127
|
import "../../../components/AttributeEditor/components/MinMaxField.es.js";
|
|
@@ -125,6 +130,11 @@ import "../../../components/SearchFilter/filterDates.es.js";
|
|
|
125
130
|
import "../../../components/Badge/Badge.es.js";
|
|
126
131
|
import "../../../components/VersionUploader/components/UploadVersionDialog.es.js";
|
|
127
132
|
import "../../../components/VersionUploader/context/VersionUploadContext.es.js";
|
|
133
|
+
import "../../../components/Feedback/FeedbackContext.es.js";
|
|
134
|
+
import "../../../components/Feedback/SupportBubble.es.js";
|
|
135
|
+
import "../../../components/Views/context/ViewsContext.es.js";
|
|
136
|
+
import "../../../components/Views/Views.styled.es.js";
|
|
137
|
+
import "../../../components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
128
138
|
import "../../Feed/context/FeedContext.es.js";
|
|
129
139
|
import "../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
|
|
130
140
|
import "../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelHeader.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { union, upperFirst } from 'lodash'\nimport clsx from 'clsx'\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport { EntityPanelUploader, StackedThumbnails } from '@shared/components'\nimport { Actions, DetailsPanelProps } from '@shared/containers'\n// shared\nimport { useGetEntitiesChecklistsQuery, useGetAttributeConfigQuery } from '@shared/api'\nimport type { DetailsPanelEntityData } from '@shared/api'\nimport { getPriorityOptions } from '@shared/util'\nimport { useScopedStatuses, useEntityUpdate } from '@shared/hooks'\nimport { DetailsPanelTab, useDetailsPanelContext } from '@shared/context'\n\nimport FeedFilters from '../FeedFilters/FeedFilters'\nimport * as Styled from './DetailsPanelHeader.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { PlayableIcon } from '@shared/components/PlayableIcon/PlayableIcon'\n\nexport type EntityTypeIcons = {\n folder: Record<string, string>\n task: Record<string, string>\n product: Record<string, string>\n}\n\ntype DetailsPanelHeaderProps = {\n entityType: 'folder' | 'task' | 'version' | 'representation'\n entitySubTypes: string[]\n entities: DetailsPanelEntityData[]\n disabledAssignees?: any[]\n users?: any[]\n disabledStatuses?: string[]\n tagsOptions?: any[]\n isFetching?: boolean\n isCompact?: boolean\n currentTab: DetailsPanelTab\n onTabChange: (tab: DetailsPanelTab) => void\n onOpenViewer: (args: any) => void\n onEntityFocus: DetailsPanelProps['onEntityFocus']\n entityTypeIcons: EntityTypeIcons\n}\n\nconst DetailsPanelHeader = ({\n entityType,\n entitySubTypes,\n entities = [],\n disabledAssignees = [],\n users = [],\n disabledStatuses,\n tagsOptions = [],\n isFetching,\n isCompact = false,\n currentTab,\n onTabChange,\n entityTypeIcons,\n onOpenViewer,\n onEntityFocus,\n}: DetailsPanelHeaderProps) => {\n const { useSearchParams, useNavigate, isDeveloperMode } = useDetailsPanelContext()\n const navigate = useNavigate()\n const [searchParams, setSearchParams] = useSearchParams()\n\n const statuses = useScopedStatuses(\n entities.map((entity) => entity.projectName),\n [entityType],\n )\n\n // for selected entities, get flat list of assignees\n const entityUsers: string[] = useMemo(\n () =>\n union(\n ...entities.flatMap((entity) => [\n entity.task?.assignees || [],\n entity.version?.author || [],\n ]),\n ),\n [entities],\n )\n\n let firstEntity = entities[0]\n // If there's no data return null\n const isLoading = entities.length === 0 || !firstEntity || isFetching\n // placeholder entity\n if (!firstEntity) {\n firstEntity = {\n id: 'placeholder',\n name: 'loading...',\n label: 'loading...',\n entityType,\n status: 'loading',\n projectName: 'loading...',\n tags: [],\n hasReviewables: false,\n attrib: {},\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n\n const projectName = entities.length > 1 ? undefined : firstEntity?.projectName\n\n const entityIds = entities\n .filter((e) => e.projectName === firstEntity?.projectName && e.id)\n .map((entity) => entity.id)\n\n // get checklists count\n const { data: checklistCount } = useGetEntitiesChecklistsQuery(\n {\n projectName: firstEntity?.projectName,\n entityIds,\n },\n { skip: !firstEntity?.projectName || !entityIds.length },\n )\n let checklistsLabel\n if (checklistCount?.total && checklistCount.total > 0) {\n checklistsLabel = `${checklistCount.checked}/${checklistCount.total}`\n }\n\n // get priorities\n // get priority attribute so we know the colors and icons for each priority\n const { data: priorityAttrib } = useGetAttributeConfigQuery({ attributeName: 'priority' })\n const priorities = getPriorityOptions(priorityAttrib, entityType)\n\n const thumbnails = useMemo(\n () => getThumbnails(entities, entityType, entityTypeIcons),\n [entities, entityType, entityTypeIcons],\n )\n\n // we need to get the intersection of all the statuses of the projects for the selected entities\n // this means that if we have 2 entities from 2 different projects, we need to get the intersection of the statuses of those 2 projects\n // and it prevents us from showing statuses that are not available for the selected entities\n const statusesValue = useMemo(() => entities.map((t) => t.status), [entities])\n const priorityValues = useMemo(() => entities.map((t) => t.attrib?.priority), [entities])\n const tagsValues: string[][] = useMemo(() => entities.map((t) => t.tags), [entities])\n const tagsOptionsObject = useMemo(\n () =>\n tagsOptions.reduce((acc, tag) => {\n acc[tag.name] = tag\n return acc\n }, {}),\n [tagsOptions],\n )\n\n const isMultiple = entities.length > 1\n\n const { updateEntity } = useEntityUpdate({\n entities: entities.map((e) => ({\n id: e.id,\n projectName: e.projectName,\n users: e.task?.assignees || [],\n folderId: e.folder?.id,\n productId: e.product?.id,\n })),\n entityType,\n })\n\n const handleUpdate = (field: string, value: any) => {\n if (value === null || value === undefined) return console.error('value is null or undefined')\n return updateEntity(field, value)\n }\n\n const handleThumbnailClick = () => {\n let versionIds,\n id = firstEntity.id,\n entityTypeKey = entityType + 'Id'\n\n if (entityType === 'version' && firstEntity.product?.id) {\n versionIds = [firstEntity.id]\n id = firstEntity.product?.id\n entityTypeKey = 'productId'\n }\n\n if (id) {\n onOpenViewer({\n [entityTypeKey]: id,\n projectName,\n versionIds,\n })\n }\n }\n\n const hasUser =\n ['task', 'version', 'representation'].includes(entityType) &&\n (entityUsers.length > 0 || entityType === 'task')\n\n const usersOptions = users.map((u) => u)\n if (hasUser) {\n // check if all users are in options, otherwise add them\n const allUsers = users.map((u) => u.name)\n const usersToAdd = entityUsers.filter((u) => !allUsers.includes(u))\n if (usersToAdd.length) {\n usersOptions.push(...usersToAdd.map((u) => ({ name: u, fullName: u })))\n }\n }\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entities, entityType)\n\n return (\n <Styled.HeaderContainer>\n <EntityPanelUploader\n entities={entities}\n entityType={entityType}\n projectName={projectName}\n onVersionCreated={(id) => onEntityFocus?.(id, 'version')}\n >\n <Styled.Grid className={clsx('details-panel-header', { isCompact })}>\n <Styled.Header\n className={clsx('titles', { isCompact, loading: isLoading }, 'no-shimmer')}\n >\n <div style={{ position: 'relative' }}>\n <StackedThumbnails\n isLoading={isLoading}\n shimmer={isLoading}\n thumbnails={thumbnails}\n onClick={thumbnails.length === 1 ? handleThumbnailClick : undefined}\n hoverIcon={'play_circle'}\n />\n {!isMultiple && firstEntity?.hasReviewables && <PlayableIcon />}\n </div>\n <Styled.Content className={clsx({ loading: isLoading })}>\n <Styled.Title>\n <h2>{title}</h2>\n <Styled.TagsSelect\n value={union(...tagsValues)}\n tags={tagsOptionsObject}\n options={[]}\n editable\n editor\n onChange={(value) => handleUpdate('tags', value)}\n align=\"right\"\n styleDropdown={{ display: isLoading ? 'none' : 'unset' }}\n className=\"tags-select\"\n />\n </Styled.Title>\n <div className=\"sub-title\">\n <span className=\"entity-type\">{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.StatusSelect\n value={statusesValue}\n options={statuses || []}\n disabledValues={disabledStatuses}\n invert\n style={{ maxWidth: 'unset' }}\n onChange={(value) => handleUpdate('status', value)}\n className={clsx('status-select', { loading: isLoading })}\n align={isCompact ? 'right' : 'left'}\n />\n {!isCompact &&\n (!hasUser || isLoading ? (\n <div></div>\n ) : (\n <Styled.AssigneeSelect\n value={entityUsers}\n options={usersOptions}\n disabledValues={disabledAssignees.map((u) => u.name)}\n isMultiple={isMultiple && entityUsers.length > 1 && entityType === 'task'}\n readOnly={entityType !== 'task'}\n emptyMessage={entityType === 'task' ? 'Assign user' : ''}\n align=\"right\"\n onChange={(value) => handleUpdate('assignees', value)}\n className=\"assignee-select\"\n data-tooltip={\n entityUsers.length ? (entityType === 'task' ? 'Assigned users' : 'Author') : ''\n }\n />\n ))}\n <Actions\n entities={entities}\n entityType={entityType}\n entitySubTypes={entitySubTypes}\n isLoadingEntity={!!isFetching || !!isLoading}\n searchParams={searchParams}\n isDeveloperMode={isDeveloperMode}\n onSetSearchParams={setSearchParams}\n onNavigate={navigate}\n />\n {priorities ? (\n <Styled.PriorityEnumDropdown\n options={priorities}\n placeholder=\"No priority\"\n value={priorityValues}\n onChange={(value) => handleUpdate('attrib', { priority: value[0] })}\n align=\"right\"\n />\n ) : (\n <div style={{ height: 32 }}></div>\n )}\n <FeedFilters\n isLoading={isLoading}\n entityType={entityType}\n className=\"filters\"\n overrides={{\n checklists: {\n label: checklistsLabel,\n },\n }}\n currentTab={currentTab}\n onTabChange={onTabChange}\n />\n </Styled.Grid>\n </EntityPanelUploader>\n </Styled.HeaderContainer>\n )\n}\n\nexport default DetailsPanelHeader\n"],"names":["jsx","Styled.HeaderContainer","jsxs","Styled.Grid","Styled.Header","Styled.Content","Styled.Title","Styled.TagsSelect","Styled.StatusSelect","Styled.AssigneeSelect","Styled.PriorityEnumDropdown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DetailsPanelHeader.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { union, upperFirst } from 'lodash'\nimport clsx from 'clsx'\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport { EntityPanelUploader, StackedThumbnails } from '@shared/components'\nimport { Actions, DetailsPanelProps } from '@shared/containers'\n// shared\nimport { useGetEntitiesChecklistsQuery, useGetAttributeConfigQuery } from '@shared/api'\nimport type { DetailsPanelEntityData } from '@shared/api'\nimport { getPriorityOptions } from '@shared/util'\nimport { useScopedStatuses, useEntityUpdate } from '@shared/hooks'\nimport { DetailsPanelTab, useDetailsPanelContext } from '@shared/context'\n\nimport FeedFilters from '../FeedFilters/FeedFilters'\nimport * as Styled from './DetailsPanelHeader.styled'\nimport getThumbnails from '../helpers/getThumbnails'\nimport { buildDetailsPanelTitles } from '../helpers/buildDetailsPanelTitles'\nimport { PlayableIcon } from '@shared/components/PlayableIcon/PlayableIcon'\n\nexport type EntityTypeIcons = {\n folder: Record<string, string>\n task: Record<string, string>\n product: Record<string, string>\n}\n\ntype DetailsPanelHeaderProps = {\n entityType: 'folder' | 'task' | 'version' | 'representation'\n entitySubTypes: string[]\n entities: DetailsPanelEntityData[]\n disabledAssignees?: any[]\n users?: any[]\n disabledStatuses?: string[]\n tagsOptions?: any[]\n isFetching?: boolean\n isCompact?: boolean\n currentTab: DetailsPanelTab\n onTabChange: (tab: DetailsPanelTab) => void\n onOpenViewer: (args: any) => void\n onEntityFocus: DetailsPanelProps['onEntityFocus']\n entityTypeIcons: EntityTypeIcons\n}\n\nconst DetailsPanelHeader = ({\n entityType,\n entitySubTypes,\n entities = [],\n disabledAssignees = [],\n users = [],\n disabledStatuses,\n tagsOptions = [],\n isFetching,\n isCompact = false,\n currentTab,\n onTabChange,\n entityTypeIcons,\n onOpenViewer,\n onEntityFocus,\n}: DetailsPanelHeaderProps) => {\n const { useSearchParams, useNavigate, isDeveloperMode } = useDetailsPanelContext()\n const navigate = useNavigate()\n const [searchParams, setSearchParams] = useSearchParams()\n\n const statuses = useScopedStatuses(\n entities.map((entity) => entity.projectName),\n [entityType],\n )\n\n // for selected entities, get flat list of assignees\n const entityUsers: string[] = useMemo(\n () =>\n union(\n ...entities.flatMap((entity) => [\n entity.task?.assignees || [],\n entity.version?.author || [],\n ]),\n ),\n [entities],\n )\n\n let firstEntity = entities[0]\n // If there's no data return null\n const isLoading = entities.length === 0 || !firstEntity || isFetching\n // placeholder entity\n if (!firstEntity) {\n firstEntity = {\n id: 'placeholder',\n name: 'loading...',\n label: 'loading...',\n entityType,\n status: 'loading',\n projectName: 'loading...',\n tags: [],\n hasReviewables: false,\n attrib: {},\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }\n }\n\n const projectName = entities.length > 1 ? undefined : firstEntity?.projectName\n\n const entityIds = entities\n .filter((e) => e.projectName === firstEntity?.projectName && e.id)\n .map((entity) => entity.id)\n\n // get checklists count\n const { data: checklistCount } = useGetEntitiesChecklistsQuery(\n {\n projectName: firstEntity?.projectName,\n entityIds,\n },\n { skip: !firstEntity?.projectName || !entityIds.length },\n )\n let checklistsLabel\n if (checklistCount?.total && checklistCount.total > 0) {\n checklistsLabel = `${checklistCount.checked}/${checklistCount.total}`\n }\n\n // get priorities\n // get priority attribute so we know the colors and icons for each priority\n const { data: priorityAttrib } = useGetAttributeConfigQuery({ attributeName: 'priority' })\n const priorities = getPriorityOptions(priorityAttrib, entityType)\n\n const thumbnails = useMemo(\n () => getThumbnails(entities, entityType, entityTypeIcons),\n [entities, entityType, entityTypeIcons],\n )\n\n // we need to get the intersection of all the statuses of the projects for the selected entities\n // this means that if we have 2 entities from 2 different projects, we need to get the intersection of the statuses of those 2 projects\n // and it prevents us from showing statuses that are not available for the selected entities\n const statusesValue = useMemo(() => entities.map((t) => t.status), [entities])\n const priorityValues = useMemo(() => entities.map((t) => t.attrib?.priority), [entities])\n const tagsValues: string[][] = useMemo(() => entities.map((t) => t.tags), [entities])\n const tagsOptionsObject = useMemo(\n () =>\n tagsOptions.reduce((acc, tag) => {\n acc[tag.name] = tag\n return acc\n }, {}),\n [tagsOptions],\n )\n\n const isMultiple = entities.length > 1\n\n const { updateEntity } = useEntityUpdate({\n entities: entities.map((e) => ({\n id: e.id,\n projectName: e.projectName,\n users: e.task?.assignees || [],\n folderId: e.folder?.id,\n productId: e.product?.id,\n })),\n entityType,\n })\n\n const handleUpdate = (field: string, value: any) => {\n if (value === null || value === undefined) return console.error('value is null or undefined')\n return updateEntity(field, value)\n }\n\n const handleThumbnailClick = () => {\n let versionIds,\n id = firstEntity.id,\n entityTypeKey = entityType + 'Id'\n\n if (entityType === 'version' && firstEntity.product?.id) {\n versionIds = [firstEntity.id]\n id = firstEntity.product?.id\n entityTypeKey = 'productId'\n }\n\n if (id) {\n onOpenViewer({\n [entityTypeKey]: id,\n projectName,\n versionIds,\n })\n }\n }\n\n const hasUser =\n ['task', 'version', 'representation'].includes(entityType) &&\n (entityUsers.length > 0 || entityType === 'task')\n\n const usersOptions = users.map((u) => u)\n if (hasUser) {\n // check if all users are in options, otherwise add them\n const allUsers = users.map((u) => u.name)\n const usersToAdd = entityUsers.filter((u) => !allUsers.includes(u))\n if (usersToAdd.length) {\n usersOptions.push(...usersToAdd.map((u) => ({ name: u, fullName: u })))\n }\n }\n\n // Get title and subtitle from the imported function\n const { title, subTitle } = buildDetailsPanelTitles(entities, entityType)\n\n return (\n <Styled.HeaderContainer>\n <EntityPanelUploader\n entities={entities}\n entityType={entityType}\n projectName={projectName}\n onVersionCreated={(id) => onEntityFocus?.(id, 'version')}\n >\n <Styled.Grid className={clsx('details-panel-header', { isCompact })}>\n <Styled.Header\n className={clsx('titles', { isCompact, loading: isLoading }, 'no-shimmer')}\n >\n <div style={{ position: 'relative' }}>\n <StackedThumbnails\n isLoading={isLoading}\n shimmer={isLoading}\n thumbnails={thumbnails}\n onClick={thumbnails.length === 1 ? handleThumbnailClick : undefined}\n hoverIcon={'play_circle'}\n />\n {!isMultiple && firstEntity?.hasReviewables && <PlayableIcon />}\n </div>\n <Styled.Content className={clsx({ loading: isLoading })}>\n <Styled.Title>\n <h2>{title}</h2>\n <Styled.TagsSelect\n value={union(...tagsValues)}\n tags={tagsOptionsObject}\n options={[]}\n editable\n editor\n onChange={(value) => handleUpdate('tags', value)}\n align=\"right\"\n styleDropdown={{ display: isLoading ? 'none' : 'unset' }}\n className=\"tags-select\"\n />\n </Styled.Title>\n <div className=\"sub-title\">\n <span className=\"entity-type\">{upperFirst(entityType)} - </span>\n <h3>{subTitle}</h3>\n </div>\n </Styled.Content>\n </Styled.Header>\n <Styled.StatusSelect\n value={statusesValue}\n options={statuses || []}\n disabledValues={disabledStatuses}\n invert\n style={{ maxWidth: 'unset' }}\n onChange={(value) => handleUpdate('status', value)}\n className={clsx('status-select', { loading: isLoading })}\n align={isCompact ? 'right' : 'left'}\n />\n {!isCompact &&\n (!hasUser || isLoading ? (\n <div></div>\n ) : (\n <Styled.AssigneeSelect\n value={entityUsers}\n options={usersOptions}\n disabledValues={disabledAssignees.map((u) => u.name)}\n isMultiple={isMultiple && entityUsers.length > 1 && entityType === 'task'}\n readOnly={entityType !== 'task'}\n emptyMessage={entityType === 'task' ? 'Assign user' : ''}\n align=\"right\"\n onChange={(value) => handleUpdate('assignees', value)}\n className=\"assignee-select\"\n data-tooltip={\n entityUsers.length ? (entityType === 'task' ? 'Assigned users' : 'Author') : ''\n }\n />\n ))}\n <Actions\n entities={entities}\n entityType={entityType}\n entitySubTypes={entitySubTypes}\n isLoadingEntity={!!isFetching || !!isLoading}\n searchParams={searchParams}\n isDeveloperMode={isDeveloperMode}\n onSetSearchParams={setSearchParams}\n onNavigate={navigate}\n />\n {priorities ? (\n <Styled.PriorityEnumDropdown\n options={priorities}\n placeholder=\"No priority\"\n value={priorityValues}\n onChange={(value) => handleUpdate('attrib', { priority: value[0] })}\n align=\"right\"\n />\n ) : (\n <div style={{ height: 32 }}></div>\n )}\n <FeedFilters\n isLoading={isLoading}\n entityType={entityType}\n className=\"filters\"\n overrides={{\n checklists: {\n label: checklistsLabel,\n },\n }}\n currentTab={currentTab}\n onTabChange={onTabChange}\n />\n </Styled.Grid>\n </EntityPanelUploader>\n </Styled.HeaderContainer>\n )\n}\n\nexport default DetailsPanelHeader\n"],"names":["jsx","Styled.HeaderContainer","jsxs","Styled.Grid","Styled.Header","Styled.Content","Styled.Title","Styled.TagsSelect","Styled.StatusSelect","Styled.AssigneeSelect","Styled.PriorityEnumDropdown"],"mappings":"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"}
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js
CHANGED
|
@@ -38,6 +38,7 @@ require("../../../api/generated/versions.cjs.js");
|
|
|
38
38
|
require("../../../api/generated/workfiles.cjs.js");
|
|
39
39
|
require("../../../api/generated/ynputCloud.cjs.js");
|
|
40
40
|
require("../../../api/generated/grouping.cjs.js");
|
|
41
|
+
require("../../../api/generated/views.cjs.js");
|
|
41
42
|
require("../../../api/queries/actions/getActions.cjs.js");
|
|
42
43
|
require("../../../api/queries/activities/getActivities.cjs.js");
|
|
43
44
|
require("../../../api/queries/activities/updateActivities.cjs.js");
|
|
@@ -71,6 +72,9 @@ require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
|
71
72
|
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
72
73
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
73
74
|
require("../../../api/queries/products/createProduct.cjs.js");
|
|
75
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
76
|
+
require("../../../api/queries/views/getViews.cjs.js");
|
|
77
|
+
require("../../../api/queries/views/updateViews.cjs.js");
|
|
74
78
|
const DetailsPanel = require("../DetailsPanel.cjs.js");
|
|
75
79
|
require("../../../context/RemoteModulesContext.cjs.js");
|
|
76
80
|
const DetailsPanelContext = require("../../../context/DetailsPanelContext.cjs.js");
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelSlideOut.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.tsx"],"sourcesContent":["import * as Styled from './DetailsPanelSlideOut.styled'\nimport { useGetUsersAssigneeQuery } from '@shared/api'\nimport { DetailsPanel } from '../DetailsPanel'\nimport { useDetailsPanelContext } from '@shared/context'\nimport type { ProjectModel } from '@shared/api'\n\nexport type DetailsPanelSlideOutProps = {\n projectsInfo: Record<string, ProjectModel>\n scope: string\n}\n\nexport const DetailsPanelSlideOut = ({ projectsInfo, scope }: DetailsPanelSlideOutProps) => {\n const { slideOut, onOpenViewer } = useDetailsPanelContext()\n const { entityType, entityId, projectName } = slideOut || {}\n const isSlideOutOpen = !!entityType && !!entityId && !!projectName\n\n const { data: users } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n\n const projectInfo = projectsInfo[projectName || ''] || {}\n const { tags = [] } = projectInfo\n\n const { closeSlideOut } = useDetailsPanelContext()\n const handleClose = () => closeSlideOut()\n const handleOpenViewer = (args: any) => onOpenViewer?.(args)\n\n if (!isSlideOutOpen) return null\n return (\n <Styled.SlideOut>\n <DetailsPanel\n entityType={entityType}\n entitySubTypes={[]}\n entities={[{ id: entityId, projectName }]}\n projectsInfo={{ [projectName]: projectInfo }}\n projectNames={[projectName]}\n tagsOptions={tags}\n projectUsers={users}\n activeProjectUsers={users}\n isSlideOut\n scope={scope}\n onClose={handleClose}\n onOpenViewer={handleOpenViewer}\n />\n </Styled.SlideOut>\n )\n}\n"],"names":["useDetailsPanelContext","useGetUsersAssigneeQuery","jsx","Styled.SlideOut","DetailsPanel"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DetailsPanelSlideOut.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.tsx"],"sourcesContent":["import * as Styled from './DetailsPanelSlideOut.styled'\nimport { useGetUsersAssigneeQuery } from '@shared/api'\nimport { DetailsPanel } from '../DetailsPanel'\nimport { useDetailsPanelContext } from '@shared/context'\nimport type { ProjectModel } from '@shared/api'\n\nexport type DetailsPanelSlideOutProps = {\n projectsInfo: Record<string, ProjectModel>\n scope: string\n}\n\nexport const DetailsPanelSlideOut = ({ projectsInfo, scope }: DetailsPanelSlideOutProps) => {\n const { slideOut, onOpenViewer } = useDetailsPanelContext()\n const { entityType, entityId, projectName } = slideOut || {}\n const isSlideOutOpen = !!entityType && !!entityId && !!projectName\n\n const { data: users } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n\n const projectInfo = projectsInfo[projectName || ''] || {}\n const { tags = [] } = projectInfo\n\n const { closeSlideOut } = useDetailsPanelContext()\n const handleClose = () => closeSlideOut()\n const handleOpenViewer = (args: any) => onOpenViewer?.(args)\n\n if (!isSlideOutOpen) return null\n return (\n <Styled.SlideOut>\n <DetailsPanel\n entityType={entityType}\n entitySubTypes={[]}\n entities={[{ id: entityId, projectName }]}\n projectsInfo={{ [projectName]: projectInfo }}\n projectNames={[projectName]}\n tagsOptions={tags}\n projectUsers={users}\n activeProjectUsers={users}\n isSlideOut\n scope={scope}\n onClose={handleClose}\n onOpenViewer={handleOpenViewer}\n />\n </Styled.SlideOut>\n )\n}\n"],"names":["useDetailsPanelContext","useGetUsersAssigneeQuery","jsx","Styled.SlideOut","DetailsPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,uBAAuB,CAAC,EAAE,cAAc,YAAuC;AAC1F,QAAM,EAAE,UAAU,aAAa,IAAIA,2CAAuB;AAC1D,QAAM,EAAE,YAAY,UAAU,YAAY,IAAI,YAAY,CAAC;AACrD,QAAA,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC;AAEvD,QAAM,EAAE,MAAM,MAAM,IAAIC,SAAyB,yBAAA,EAAE,YAAY,GAAG,EAAE,MAAM,CAAC,aAAa;AAExF,QAAM,cAAc,aAAa,eAAe,EAAE,KAAK,CAAC;AACxD,QAAM,EAAE,OAAO,CAAC,EAAA,IAAM;AAEhB,QAAA,EAAE,cAAc,IAAID,2CAAuB;AAC3C,QAAA,cAAc,MAAM,cAAc;AACxC,QAAM,mBAAmB,CAAC,SAAc,6CAAe;AAEnD,MAAA,CAAC,eAAuB,QAAA;AAE1B,SAAAE,iDAACC,4BAAAA,UAAA,EACC,UAAAD,2BAAA,kBAAA;AAAA,IAACE,aAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,gBAAgB,CAAC;AAAA,MACjB,UAAU,CAAC,EAAE,IAAI,UAAU,aAAa;AAAA,MACxC,cAAc,EAAE,CAAC,WAAW,GAAG,YAAY;AAAA,MAC3C,cAAc,CAAC,WAAW;AAAA,MAC1B,aAAa;AAAA,MACb,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB,YAAU;AAAA,MACV;AAAA,MACA,SAAS;AAAA,MACT,cAAc;AAAA,IAAA;AAAA,EAAA,GAElB;AAEJ;;"}
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js
CHANGED
|
@@ -36,6 +36,7 @@ import "../../../api/generated/versions.es.js";
|
|
|
36
36
|
import "../../../api/generated/workfiles.es.js";
|
|
37
37
|
import "../../../api/generated/ynputCloud.es.js";
|
|
38
38
|
import "../../../api/generated/grouping.es.js";
|
|
39
|
+
import "../../../api/generated/views.es.js";
|
|
39
40
|
import "../../../api/queries/actions/getActions.es.js";
|
|
40
41
|
import "../../../api/queries/activities/getActivities.es.js";
|
|
41
42
|
import "../../../api/queries/activities/updateActivities.es.js";
|
|
@@ -69,6 +70,9 @@ import "../../../api/queries/permissions/getPermissions.es.js";
|
|
|
69
70
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
70
71
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
71
72
|
import "../../../api/queries/products/createProduct.es.js";
|
|
73
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
74
|
+
import "../../../api/queries/views/getViews.es.js";
|
|
75
|
+
import "../../../api/queries/views/updateViews.es.js";
|
|
72
76
|
import { DetailsPanel } from "../DetailsPanel.es.js";
|
|
73
77
|
import "../../../context/RemoteModulesContext.es.js";
|
|
74
78
|
import { useDetailsPanelContext } from "../../../context/DetailsPanelContext.es.js";
|
package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanelSlideOut.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.tsx"],"sourcesContent":["import * as Styled from './DetailsPanelSlideOut.styled'\nimport { useGetUsersAssigneeQuery } from '@shared/api'\nimport { DetailsPanel } from '../DetailsPanel'\nimport { useDetailsPanelContext } from '@shared/context'\nimport type { ProjectModel } from '@shared/api'\n\nexport type DetailsPanelSlideOutProps = {\n projectsInfo: Record<string, ProjectModel>\n scope: string\n}\n\nexport const DetailsPanelSlideOut = ({ projectsInfo, scope }: DetailsPanelSlideOutProps) => {\n const { slideOut, onOpenViewer } = useDetailsPanelContext()\n const { entityType, entityId, projectName } = slideOut || {}\n const isSlideOutOpen = !!entityType && !!entityId && !!projectName\n\n const { data: users } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n\n const projectInfo = projectsInfo[projectName || ''] || {}\n const { tags = [] } = projectInfo\n\n const { closeSlideOut } = useDetailsPanelContext()\n const handleClose = () => closeSlideOut()\n const handleOpenViewer = (args: any) => onOpenViewer?.(args)\n\n if (!isSlideOutOpen) return null\n return (\n <Styled.SlideOut>\n <DetailsPanel\n entityType={entityType}\n entitySubTypes={[]}\n entities={[{ id: entityId, projectName }]}\n projectsInfo={{ [projectName]: projectInfo }}\n projectNames={[projectName]}\n tagsOptions={tags}\n projectUsers={users}\n activeProjectUsers={users}\n isSlideOut\n scope={scope}\n onClose={handleClose}\n onOpenViewer={handleOpenViewer}\n />\n </Styled.SlideOut>\n )\n}\n"],"names":["jsx","Styled.SlideOut"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DetailsPanelSlideOut.es.js","sources":["../../../../../../src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.tsx"],"sourcesContent":["import * as Styled from './DetailsPanelSlideOut.styled'\nimport { useGetUsersAssigneeQuery } from '@shared/api'\nimport { DetailsPanel } from '../DetailsPanel'\nimport { useDetailsPanelContext } from '@shared/context'\nimport type { ProjectModel } from '@shared/api'\n\nexport type DetailsPanelSlideOutProps = {\n projectsInfo: Record<string, ProjectModel>\n scope: string\n}\n\nexport const DetailsPanelSlideOut = ({ projectsInfo, scope }: DetailsPanelSlideOutProps) => {\n const { slideOut, onOpenViewer } = useDetailsPanelContext()\n const { entityType, entityId, projectName } = slideOut || {}\n const isSlideOutOpen = !!entityType && !!entityId && !!projectName\n\n const { data: users } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n\n const projectInfo = projectsInfo[projectName || ''] || {}\n const { tags = [] } = projectInfo\n\n const { closeSlideOut } = useDetailsPanelContext()\n const handleClose = () => closeSlideOut()\n const handleOpenViewer = (args: any) => onOpenViewer?.(args)\n\n if (!isSlideOutOpen) return null\n return (\n <Styled.SlideOut>\n <DetailsPanel\n entityType={entityType}\n entitySubTypes={[]}\n entities={[{ id: entityId, projectName }]}\n projectsInfo={{ [projectName]: projectInfo }}\n projectNames={[projectName]}\n tagsOptions={tags}\n projectUsers={users}\n activeProjectUsers={users}\n isSlideOut\n scope={scope}\n onClose={handleClose}\n onOpenViewer={handleOpenViewer}\n />\n </Styled.SlideOut>\n )\n}\n"],"names":["jsx","Styled.SlideOut"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,uBAAuB,CAAC,EAAE,cAAc,YAAuC;AAC1F,QAAM,EAAE,UAAU,aAAa,IAAI,uBAAuB;AAC1D,QAAM,EAAE,YAAY,UAAU,YAAY,IAAI,YAAY,CAAC;AACrD,QAAA,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC;AAEvD,QAAM,EAAE,MAAM,MAAM,IAAI,yBAAyB,EAAE,YAAY,GAAG,EAAE,MAAM,CAAC,aAAa;AAExF,QAAM,cAAc,aAAa,eAAe,EAAE,KAAK,CAAC;AACxD,QAAM,EAAE,OAAO,CAAC,EAAA,IAAM;AAEhB,QAAA,EAAE,cAAc,IAAI,uBAAuB;AAC3C,QAAA,cAAc,MAAM,cAAc;AACxC,QAAM,mBAAmB,CAAC,SAAc,6CAAe;AAEnD,MAAA,CAAC,eAAuB,QAAA;AAE1B,SAAAA,sCAACC,UAAA,EACC,UAAAD,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,gBAAgB,CAAC;AAAA,MACjB,UAAU,CAAC,EAAE,IAAI,UAAU,aAAa;AAAA,MACxC,cAAc,EAAE,CAAC,WAAW,GAAG,YAAY;AAAA,MAC3C,cAAc,CAAC,WAAW;AAAA,MAC1B,aAAa;AAAA,MACb,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB,YAAU;AAAA,MACV;AAAA,MACA,SAAS;AAAA,MACT,cAAc;AAAA,IAAA;AAAA,EAAA,GAElB;AAEJ;"}
|
|
@@ -37,6 +37,7 @@ require("../../../api/generated/versions.cjs.js");
|
|
|
37
37
|
require("../../../api/generated/workfiles.cjs.js");
|
|
38
38
|
require("../../../api/generated/ynputCloud.cjs.js");
|
|
39
39
|
require("../../../api/generated/grouping.cjs.js");
|
|
40
|
+
require("../../../api/generated/views.cjs.js");
|
|
40
41
|
require("../../../api/queries/actions/getActions.cjs.js");
|
|
41
42
|
require("../../../api/queries/activities/getActivities.cjs.js");
|
|
42
43
|
require("../../../api/queries/activities/updateActivities.cjs.js");
|
|
@@ -70,6 +71,9 @@ require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
|
70
71
|
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
71
72
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
72
73
|
require("../../../api/queries/products/createProduct.cjs.js");
|
|
74
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
75
|
+
require("../../../api/queries/views/getViews.cjs.js");
|
|
76
|
+
require("../../../api/queries/views/updateViews.cjs.js");
|
|
73
77
|
const useGetEntityPath = ({
|
|
74
78
|
entity,
|
|
75
79
|
entityType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityPath.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["useGetFolderListQuery","useGetProductVersionsQuery","useMemo","_a","_b"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetEntityPath.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["useGetFolderListQuery","useGetProductVersionsQuery","useMemo","_a","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAeA,WAAA;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiBC,UAAA;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAWC,MAAA;AAAA,IACf,MACE;;AAAA,gBAACC,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,KACA,CAAC,KAAIC,MAAA,aAAa,QAAQ,YAArB,gBAAAA,IAA8B,gBAAe,CAAG,CAAA,EAClD,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAaF,MAAA;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAWA,MAAA;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;;"}
|
|
@@ -36,6 +36,7 @@ import "../../../api/generated/versions.es.js";
|
|
|
36
36
|
import "../../../api/generated/workfiles.es.js";
|
|
37
37
|
import "../../../api/generated/ynputCloud.es.js";
|
|
38
38
|
import "../../../api/generated/grouping.es.js";
|
|
39
|
+
import "../../../api/generated/views.es.js";
|
|
39
40
|
import "../../../api/queries/actions/getActions.es.js";
|
|
40
41
|
import "../../../api/queries/activities/getActivities.es.js";
|
|
41
42
|
import "../../../api/queries/activities/updateActivities.es.js";
|
|
@@ -69,6 +70,9 @@ import "../../../api/queries/permissions/getPermissions.es.js";
|
|
|
69
70
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
70
71
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
71
72
|
import "../../../api/queries/products/createProduct.es.js";
|
|
73
|
+
import "../../../api/queries/cloud/cloud.es.js";
|
|
74
|
+
import "../../../api/queries/views/getViews.es.js";
|
|
75
|
+
import "../../../api/queries/views/updateViews.es.js";
|
|
72
76
|
const useGetEntityPath = ({
|
|
73
77
|
entity,
|
|
74
78
|
entityType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityPath.es.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["_a","_b"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetEntityPath.es.js","sources":["../../../../../../src/containers/DetailsPanel/hooks/useGetEntityPath.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport getEntityPathData from '../helpers/getEntityPathData'\n// shared\nimport { PathSegment } from '@shared/components'\nimport { useGetProductVersionsQuery, useGetFolderListQuery } from '@shared/api'\nimport type { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api'\n\ntype Props = {\n entity: DetailsPanelEntityData\n entityType: DetailsPanelEntityType\n projectName: string\n isLoading: boolean\n}\n\nconst useGetEntityPath = ({\n entity,\n entityType,\n projectName,\n isLoading,\n}: Props): [PathSegment[], PathSegment[]] => {\n // get the folders list for the project\n const { data: { folders: projectFolders = [] } = {}, isFetching } = useGetFolderListQuery(\n { projectName: projectName, attrib: true },\n { skip: !projectName || isLoading },\n )\n\n // if the entityType is version, get sibling versions\n const { data: versionsData } = useGetProductVersionsQuery(\n { productId: entity.product?.id || '', projectName },\n { skip: entityType !== 'version' || !entity.product?.id },\n )\n\n const versions = useMemo(\n () =>\n !versionsData?.project.product?.versionList\n ? []\n : [...(versionsData.project.product?.versionList || [])]\n .sort((a, b) => {\n if (a.name === 'HERO') return -1\n if (b.name === 'HERO') return 1\n return b.name.localeCompare(a.name)\n })\n .map((version) => ({\n type: 'version' as const,\n label: version.name,\n id: version.id,\n })),\n [versionsData],\n )\n\n const foldersMap = useMemo(\n () => new Map(projectFolders.map((folder) => [folder.id, folder])),\n [projectFolders],\n )\n\n const segments = useMemo(\n () => (isFetching ? [] : getEntityPathData(entity, foldersMap)),\n [projectFolders, entity],\n )\n\n return [segments, versions]\n}\n\nexport default useGetEntityPath\n"],"names":["_a","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;;AAErC,QAAA,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA,MAAO,CAAA,GAAI,WAAA,IAAe;AAAA,IAClE,EAAE,aAA0B,QAAQ,KAAK;AAAA,IACzC,EAAE,MAAM,CAAC,eAAe,UAAU;AAAA,EACpC;AAGM,QAAA,EAAE,MAAM,aAAA,IAAiB;AAAA,IAC7B,EAAE,aAAW,YAAO,YAAP,mBAAgB,OAAM,IAAI,YAAY;AAAA,IACnD,EAAE,MAAM,eAAe,aAAa,GAAC,YAAO,YAAP,mBAAgB,IAAG;AAAA,EAC1D;AAEA,QAAM,WAAW;AAAA,IACf,MACE;;AAAA,gBAACA,MAAA,6CAAc,QAAQ,YAAtB,gBAAAA,IAA+B,eAC5B,KACA,CAAC,KAAIC,MAAA,aAAa,QAAQ,YAArB,gBAAAA,IAA8B,gBAAe,CAAG,CAAA,EAClD,KAAK,CAAC,GAAG,MAAM;AACV,YAAA,EAAE,SAAS,OAAe,QAAA;AAC1B,YAAA,EAAE,SAAS,OAAe,QAAA;AAC9B,eAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,MAAA,CACnC,EACA,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,IAAI,QAAQ;AAAA,MAAA,EACZ;AAAA;AAAA,IACV,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,aAAa;AAAA,IACjB,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,IACjE,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,WAAW;AAAA,IACf,MAAO,aAAa,CAAK,IAAA,kBAAkB,QAAQ,UAAU;AAAA,IAC7D,CAAC,gBAAgB,MAAM;AAAA,EACzB;AAEO,SAAA,CAAC,UAAU,QAAQ;AAC5B;"}
|
|
@@ -39,6 +39,7 @@ require("../../../api/generated/versions.cjs.js");
|
|
|
39
39
|
require("../../../api/generated/workfiles.cjs.js");
|
|
40
40
|
require("../../../api/generated/ynputCloud.cjs.js");
|
|
41
41
|
require("../../../api/generated/grouping.cjs.js");
|
|
42
|
+
require("../../../api/generated/views.cjs.js");
|
|
42
43
|
require("../../../api/queries/actions/getActions.cjs.js");
|
|
43
44
|
const getActivities = require("../../../api/queries/activities/getActivities.cjs.js");
|
|
44
45
|
const updateActivities = require("../../../api/queries/activities/updateActivities.cjs.js");
|
|
@@ -73,6 +74,9 @@ require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
|
73
74
|
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
74
75
|
require("../../../api/queries/versions/updateVersions.cjs.js");
|
|
75
76
|
require("../../../api/queries/products/createProduct.cjs.js");
|
|
77
|
+
require("../../../api/queries/cloud/cloud.cjs.js");
|
|
78
|
+
require("../../../api/queries/views/getViews.cjs.js");
|
|
79
|
+
require("../../../api/queries/views/updateViews.cjs.js");
|
|
76
80
|
require("../../../context/RemoteModulesContext.cjs.js");
|
|
77
81
|
const DetailsPanelContext = require("../../../context/DetailsPanelContext.cjs.js");
|
|
78
82
|
require("../../../context/ThumbnailUploaderContext.cjs.js");
|