@ynput/ayon-frontend-shared 0.2.22 → 0.2.24
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 +22 -12
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +22 -12
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +17 -1
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +19 -3
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/SimpleTable.cjs.js +18 -0
- package/dist/SimpleTable.cjs.js.map +1 -0
- package/dist/SimpleTable.es.js +18 -0
- package/dist/SimpleTable.es.js.map +1 -0
- package/dist/api.cjs.js +15 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +87 -72
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +6 -0
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +6 -0
- package/dist/components.es.js.map +1 -1
- package/dist/hooks.cjs.js +2 -0
- package/dist/hooks.cjs.js.map +1 -1
- package/dist/hooks.es.js +2 -0
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +22 -12
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +22 -12
- package/dist/index.es.js.map +1 -1
- 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/graphql.cjs.js +9 -10
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +9 -10
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js +447 -0
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/graphqlLinks.es.js +447 -0
- package/dist/shared/src/api/generated/graphqlLinks.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 +1 -0
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.es.js +1 -0
- package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js +4 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +4 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +2 -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 +4 -0
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -0
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +3 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +3 -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/links/getEntityLinks.cjs.js +142 -0
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +142 -0
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -0
- package/dist/shared/src/api/queries/links/getLinks.cjs.js +202 -0
- package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/links/getLinks.es.js +202 -0
- package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -0
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js +304 -0
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/links/updateLinks.es.js +304 -0
- package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -0
- package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js +8 -0
- package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js +8 -0
- package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js.map +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +5 -4
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +5 -4
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +70 -15
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +70 -15
- 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 +2 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +2 -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/share/share.cjs.js +1 -0
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.es.js +1 -0
- package/dist/shared/src/api/queries/share/share.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 +2 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +2 -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 +1 -0
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +1 -0
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- 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/Chips/Chips.cjs.js +149 -0
- package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -0
- package/dist/shared/src/components/Chips/Chips.es.js +149 -0
- package/dist/shared/src/components/Chips/Chips.es.js.map +1 -0
- 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 +5 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +5 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +37 -27
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +37 -27
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -2
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -2
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +331 -0
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +332 -0
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +125 -0
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +125 -0
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +92 -0
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +92 -0
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +250 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +250 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js +229 -0
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js +229 -0
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js +12 -0
- package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js +13 -0
- package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js +103 -0
- package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js +104 -0
- package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +278 -0
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +279 -0
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js +70 -0
- package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js +70 -0
- package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +22 -12
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +22 -12
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +104 -14
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +104 -14
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +22 -12
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +22 -12
- 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 +23 -13
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +23 -13
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +22 -12
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +22 -12
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +22 -12
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +22 -12
- 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 +5 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +5 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +22 -12
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +22 -12
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +22 -12
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +22 -12
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +7 -2
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -2
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- 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 +22 -12
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +22 -12
- 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 +22 -12
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +22 -12
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +22 -12
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +18 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +18 -8
- 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/helpers/getThumbnails.cjs.js +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.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/EntityPickerDialog/EntityPickerDialog.cjs.js +357 -0
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +357 -0
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +262 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +263 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +273 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +274 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +250 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +251 -0
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +35 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +36 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +235 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +235 -0
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +49 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +49 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js +12 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js +12 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js +26 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js +26 -0
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +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 +5 -4
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +5 -4
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.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/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +1 -0
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +1 -0
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +36 -6
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +36 -6
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +25 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +25 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +263 -9
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +264 -10
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +21 -11
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +21 -11
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +1 -229
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +2 -230
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +432 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +432 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +120 -47
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +121 -48
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js +33 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js +33 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js.map +1 -0
- 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/SelectedRowsProvider.cjs.js +13 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +14 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +104 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +104 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +13 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +13 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.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/useBuildGroupByTableData.cjs.js +127 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +127 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +134 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +134 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +199 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +199 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +111 -12
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +111 -12
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +65 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +65 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +113 -14
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +113 -14
- 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/useHistory.cjs.js +4 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +4 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +199 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +199 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +201 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +202 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -0
- 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 +103 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +103 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +13 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +13 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +126 -15
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +126 -15
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +49 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +49 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js +2 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js +2 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +142 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +143 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +14 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +14 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +0 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +0 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +299 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +299 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +22 -12
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +22 -12
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +528 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +529 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +160 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +160 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +74 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +74 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js +19 -0
- package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js.map +1 -0
- package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js +19 -0
- package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +1 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +18 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +18 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js +17 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js +17 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js +37 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js +37 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js +13 -2
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js +14 -3
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js +1 -2
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js +2 -3
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +11 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +11 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +53 -14
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +53 -14
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +4 -0
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -0
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +4 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +2 -2
- package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js +2 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js +2 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +4 -0
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -0
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.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 +4 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +4 -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/useHierarchyTable.cjs.js +147 -0
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useHierarchyTable.es.js +147 -0
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +12 -5
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +12 -5
- 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/shared/src/{utils/extractVersionFromFilename.es.js.map → util/extractVersionFromFilename.cjs.js.map} +1 -1
- package/dist/shared/src/util/extractVersionFromFilename.es.js.map +1 -0
- package/dist/shared/src/util/getEntityId.cjs.js +11 -0
- package/dist/shared/src/util/getEntityId.cjs.js.map +1 -0
- package/dist/shared/src/util/getEntityId.es.js +11 -0
- package/dist/shared/src/util/getEntityId.es.js.map +1 -0
- package/dist/shared/src/{utils → util}/versionUploadHelpers.cjs.js +3 -2
- package/dist/shared/src/{utils/versionUploadHelpers.es.js.map → util/versionUploadHelpers.cjs.js.map} +1 -1
- package/dist/shared/src/{utils → util}/versionUploadHelpers.es.js +3 -2
- package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -0
- package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js +16 -0
- package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js.map +1 -0
- package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js +17 -0
- package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js.map +1 -0
- package/dist/types/SimpleTable.d.ts +6 -0
- package/dist/types/api/generated/graphql.d.ts +116 -33
- package/dist/types/api/generated/graphqlLinks.d.ts +2269 -0
- package/dist/types/api/generated/index.d.ts +2 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +80 -79
- package/dist/types/api/queries/entityLists/types.d.ts +5 -5
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/links/getEntityLinks.d.ts +182 -0
- package/dist/types/api/queries/links/getLinks.d.ts +862 -0
- package/dist/types/api/queries/links/index.d.ts +3 -0
- package/dist/types/api/queries/links/updateLinks.d.ts +321 -0
- package/dist/types/api/queries/links/utils/formatEntityLinks.d.ts +1 -0
- package/dist/types/api/queries/overview/index.d.ts +1 -0
- package/dist/types/api/queries/overview/updateOverview.d.ts +9 -0
- package/dist/types/components/Chips/Chips.d.ts +14 -0
- package/dist/types/components/Chips/index.d.ts +1 -0
- package/dist/types/components/LinksManager/AddNewLinks.d.ts +11 -0
- package/dist/types/components/LinksManager/LinkManagerItem.d.ts +9 -0
- package/dist/types/components/LinksManager/LinksManager.d.ts +24 -0
- package/dist/types/components/LinksManager/LinksManager.styled.d.ts +17 -0
- package/dist/types/components/LinksManager/LinksManagerDialog.d.ts +9 -0
- package/dist/types/components/LinksManager/SearchingLoadingItems.d.ts +5 -0
- package/dist/types/components/LinksManager/hooks/useKeyboardNavigation.d.ts +24 -0
- package/dist/types/components/LinksManager/hooks/useUpdateLinks.d.ts +24 -0
- package/dist/types/components/LinksManager/index.d.ts +2 -0
- package/dist/types/components/LinksManager/utils/formatEntityPath.d.ts +1 -0
- package/dist/types/components/LinksManager/utils/linkUpdates.d.ts +47 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +15 -0
- package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +17 -0
- package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableHeader.d.ts +25 -0
- package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableSearch.d.ts +8 -0
- package/dist/types/containers/EntityPickerDialog/components/index.d.ts +1 -0
- package/dist/types/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.d.ts +9 -0
- package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +28 -0
- package/dist/types/containers/EntityPickerDialog/index.d.ts +1 -0
- package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +8 -0
- package/dist/types/containers/EntityPickerDialog/util/entityHierarchies.d.ts +3 -0
- package/dist/types/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.d.ts +2 -0
- package/dist/types/containers/EntityPickerDialog/util/index.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +6 -1
- package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +1 -4
- package/dist/types/containers/ProjectTreeTable/context/CellEditingProvider.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/context/DetailsPanelEntityContext.d.ts +16 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +4 -1
- package/dist/types/containers/ProjectTreeTable/context/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +34 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -34
- package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +17 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +7 -1
- package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +23 -0
- package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
- package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.d.ts +7 -0
- package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTableRowTemplate.d.ts +1 -0
- package/dist/types/{SimpleTable → containers/SimpleTable}/index.d.ts +1 -0
- package/dist/types/containers/Views/ViewsMenu/SectionHeader.d.ts +6 -0
- package/dist/types/containers/Views/ViewsMenu/SectionHeader.styled.d.ts +1 -0
- package/dist/types/containers/Views/ViewsMenu/ViewsMenu.d.ts +8 -3
- package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
- package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +4 -3
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useHierarchyTable.d.ts +13 -0
- package/dist/types/util/getEntityId.d.ts +2 -0
- package/dist/types/util/index.d.ts +3 -0
- package/dist/util.cjs.js +16 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +17 -1
- package/dist/util.es.js.map +1 -1
- package/package.json +8 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +0 -7
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +0 -8
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +0 -14
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +0 -15
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +0 -11
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +0 -11
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +0 -57
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +0 -58
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +0 -16
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +0 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +0 -17
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +0 -1
- package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +0 -1
- package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +0 -1
- /package/dist/shared/src/{utils → util}/extractVersionFromFilename.cjs.js +0 -0
- /package/dist/shared/src/{utils → util}/extractVersionFromFilename.es.js +0 -0
- /package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.styled.d.ts +0 -0
- /package/dist/types/{SimpleTable → containers/SimpleTable}/context/SimpleTableContext.d.ts +0 -0
- /package/dist/types/{utils → util}/extractVersionFromFilename.d.ts +0 -0
- /package/dist/types/{utils → util}/versionUploadHelpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPanelUploader.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { upperFirst } from 'lodash'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n type ProductCreationData,\n type VersionCreationData,\n} from '@shared/utils/versionUploadHelpers'\n// 3811c830436f11f0abc9d6ac5bf0bcfb\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["useDetailsPanelContext","useState","useRef","useReviewablesUpload","progress","sanitizeProductName","toast","createProductHelper","createProduct","handleUploadError","useCreateVersionMutation","useCreateProductMutation","productId","_a","getNextVersionNumber","createVersionHelper","entityType","projectName","res","useUpdateEntitiesMutation","jsxs","ThumbnailUploadProvider","Styled.DragAndDropWrapper","jsx","ThumbnailWrapper","Styled.DropZones","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,MAAM,YAAmD;AAAA,EACvD,EAAE,IAAI,aAAa,OAAO,oBAAoB,MAAM,sBAAsB;AAAA,EAC1E,EAAE,IAAI,WAAW,OAAO,kBAAkB,MAAM,SAAS;AAC3D;AAEO,MAAM,sBAAsB,CAAC;AAAA,EAClC,WAAW,CAAC;AAAA,EACZ;AAAA,EACA,WAAW,CAAC;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AACF,MAAgC;;AACxB,QAAA,EAAE,SAAS,IAAIA,2CAAuB;AAE5C,QAAM,CAAC,gBAAgB,iBAAiB,IAAIC,MAAAA,SAAS,KAAK;AAC1D,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAA4B,IAAI;AAClE,QAAA,iBAAiBC,aAAO,CAAC;AAG/B,QAAM,CAAC,eAAe,gBAAgB,IAAID,MAAAA,SAA4B,IAAI;AAC1E,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAS,CAAC;AAG1C,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,MAAAA,SAAS,KAAK;AAChE,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAA0B,IAAI;AAGtE,QAAM,eAAe,SAAS,WAAW,IAAI,SAAS,CAAC,IAAI;AAErD,QAAA,UAA6B,kDAAc,SAAd,mBAAoB;AACjD,QAAA,YAA+B,kDAAc,WAAd,mBAAsB;AACrD,QAAA,aAAgC,kDAAc,YAAd,mBAAuB;AAC7D,QAAM,YAAgC,6CAAc;AACpD,QAAM,oBAAoB,QAAQ,gBAAgB,eAAe,gBAAgB;AAGjF,QAAM,EAAE,kBAAkB,sBAAsB,IAAIE,0CAAqB;AAAA,IACvE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,MAAM;AACd,uBAAiB,IAAI;AACrB,kBAAY,CAAC;AAAA,IACf;AAAA,IACA,YAAY,CAACC,cAAa;AACxB,kBAAYA,SAAQ;AAAA,IAAA;AAAA,EACtB,CACD;AAGD,QAAM,qBAAqB,UAAU,OAAO,CAAC,SAAS;AAChD,QAAA,KAAK,OAAO,WAAW;AAClB,aAAA;AAAA,IAAA;AAEF,WAAA;AAAA,EAAA,CACR;AAED,QAAM,aAAa,MAAM;AACvB,qBAAiB,IAAI;AACrB,sBAAkB,KAAK;AACvB,oBAAgB,IAAI;AACpB,mBAAe,UAAU;AACzB,gBAAY,CAAC;AACb,yBAAqB,KAAK;AAC1B,oBAAgB,IAAI;AAAA,EACtB;AAGM,QAAA,qBAAqB,OAAO,gBAAwB;AACpD,QAAA,CAAC,gBAAgB,CAAC,cAAc;AAClC,2BAAqB,KAAK;AAC1B,sBAAgB,IAAI;AACpB;AAAA,IAAA;AAGI,UAAA,gBAAgBC,yCAAoB,WAAW;AAEjD,QAAA,CAAC,cAAc,QAAQ;AACnBC,oBAAAA,MAAA;AAAA,QACJ;AAAA,MACF;AACA;AAAA,IAAA;AAGE,QAAA;AACF,UAAI,CAAC,UAAU;AACP,cAAA,IAAI,MAAM,2CAA2C;AAAA,MAAA;AAE7D,uBAAiB,SAAS;AAG1B,YAAM,aAAa,MAAMC,yCAAoBC,iBAAe,aAAa;AAAA,QACvE;AAAA,QACA,MAAM;AAAA,QACN,aAAa;AAAA;AAAA,MAAA,CACd;AAGD,2BAAqB,KAAK;AACpB,YAAA,yBAAyB,cAAc,WAAW,EAAE;AAC1D,sBAAgB,IAAI;AAAA,aACb,OAAY;AACnBC,2BAAA,kBAAkB,OAAO,kBAAkB;AAChC,iBAAA;AAAA,IAAA;AAAA,EAEf;AAGA,QAAM,qBAAqB,MAAM;AAC/B,yBAAqB,KAAK;AAC1B,oBAAgB,IAAI;AACT,eAAA;AAAA,EACb;AAEM,QAAA,CAAC,aAAa,IAAIC,wCAAyB;AAC3C,QAAA,CAACF,eAAa,IAAIG,uCAAyB;AAE3C,QAAA,sBAAsB,OAAO,UAAoB;;AACjD,QAAA,CAAC,qBAAqB,CAAC,cAAc;AACvCL,oBAAA,MAAM,MAAM,yDAAyD;AACrE,aAAO,WAAW;AAAA,IAAA;AAGdM,UAAAA,cAAYC,MAAA,aAAa,YAAb,gBAAAA,IAAsB;AACxC,QAAI,CAACD,YAAW;AAEd,sBAAgB,KAAK;AACrB,2BAAqB,IAAI;AACzB;AAAA,IAAA;AAII,UAAA,yBAAyB,OAAOA,UAAS;AAAA,EACjD;AAGM,QAAA,2BAA2B,OAAO,OAAiBA,eAAsB;;AACzE,QAAA;AACF,YAAM,cAAcE,qBAAA,sBAAqBD,MAAA,aAAc,YAAd,gBAAAA,IAAuB,aAAa;AAG7E,YAAM,aAAa,MAAME,yCAAoB,eAAe,aAAa;AAAA,QACvE,WAAAH;AAAAA,QACA;AAAA;AAAA,QACA,SAAS;AAAA,MAAA,CACV;AAEK,YAAA,sBAAsB,OAAO,WAAW,EAAE;AAErC,iBAAA;AAGX,2DAAmB,WAAW;AAAA,aACvB,OAAY;AACnBH,2BAAA,kBAAkB,OAAO,mBAAmB;AACjC,iBAAA;AAAA,IAAA;AAAA,EAEf;AAGA,QAAM,8BAA8B,OAAO,aAAoB,OAAO;AAEpE,sBAAkB,KAAK;AAGnB,QAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,IAAA;AAIF,UAAM,gBAAe,oBAAI,KAAK,GAAE,YAAY;AAE5C,QAAI,aAA0B,CAAC;AAG/B,eAAW,UAAU,YAAY;AACzB,YAAA,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAI,CAAC,cAAe;AACA,aAAO;AACrB,YAAA,mBAAmB,OAAO,SAAS,CAAC;AAE1C,iBAAW,KAAK;AAAA,QACd,IAAI,cAAc;AAAA,QAClB,aAAa,cAAc;AAAA,QAC3B,MAAM,EAAE,WAAW,aAAa;AAAA,QAChC;AAAA,MAAA,CACD;AAEoB,OAAA;AAAA,QACnB,WAAW,cAAc;AAAA,MAG3B;AAAA,IAEgC;AAG9B,QAAA;AACF,YAAM,eAAe,EAAE,YAAY,YAAY;AAC/C,oBAAc,WAAW,UAAU;AAAA,aAC5B,OAAO;AACN,cAAA,MAAM,8BAA8B,KAAK;AAAA,IAAA;AAAA,EAErD;AAEM,QAAA,wBAAwB,OAAO,SAAe;AAC9C,QAAA,CAAC,KAAM,QAAO,WAAW;AAEzB,QAAA;AAEF,UAAI,CAAC,KAAK,KAAK,SAAS,OAAO,GAAG;AAC1B,cAAA,IAAI,MAAM,sBAAsB;AAAA,MAAA;AAGxC,UAAI,WAAW,CAAC;AAChB,iBAAW,UAAU,UAAU;AAC7B,cAAM,EAAE,IAAI,YAAAO,aAAY,aAAAC,iBAAgB;AAExC,YAAI,CAACA,aAAmB,OAAA,IAAI,MAAM,0BAA0B;AAE5D,cAAM,UAAU,MAAM;AAAA,UACpBA,gBAAe,iBAAiBA,YAAW,IAAID,WAAU,KAAK,EAAE;AAAA,UAChE;AAAA,UACA;AAAA,YACE,kBAAkB,CAAC,MAAM;AACX,0BAAA,KAAK,MAAO,MAAM,EAAE,UAAW,EAAE,SAAS,KAAK,KAAK,CAAC;AAAA,YACnE;AAAA,YACA,SAAS;AAAA,cACP,gBAAgB,KAAK;AAAA,YAAA;AAAA,UACvB;AAAA,QAEJ;AAEA,iBAAS,KAAK,OAAO;AAAA,MAAA;AAGvB,YAAM,MAAM,MAAM,QAAQ,IAAI,QAAQ;AAEtC,YAAM,kBAAkB,IAAI,IAAI,CAACE,MAAK,OAAO;AAAA,QAC3C,aAAaA,KAAI,KAAK;AAAA,QACtB,IAAI,SAAS,CAAC,EAAE;AAAA,MAAA,EAChB;AAEF,kCAA4B,eAAe;AAChC,iBAAA;AAAA,aACJ,OAAY;AACnB,cAAQ,MAAM,KAAK;AACbZ,0BAAA,MAAM,MAAM,OAAO;AACd,iBAAA;AAAA,IAAA;AAAA,EAEf;AAEM,QAAA,CAAC,cAAc,IAAIa,uCAA0B;AAE7C,QAAA,kBAAkB,CAAC,MAAuB;AAC9C,MAAE,eAAe;AACF,mBAAA;AACX,QAAA,eAAe,YAAY,GAAG;AAChC,wBAAkB,IAAI;AAAA,IAAA;AAAA,EAE1B;AAEM,QAAA,kBAAkB,CAAC,MAAuB;AAC9C,MAAE,eAAe;AACF,mBAAA;AACX,QAAA,eAAe,YAAY,GAAG;AAChC,wBAAkB,KAAK;AACvB,sBAAgB,IAAI;AAAA,IAAA;AAAA,EAExB;AAEM,QAAA,iBAAiB,CAAC,MAAuB;AAC7C,MAAE,eAAe;AAAA,EACnB;AAEM,QAAA,aAAa,CAAC,MAAuB;AACzC,MAAE,eAAe;AACjB,mBAAe,UAAU;AACzB,sBAAkB,KAAK;AACvB,oBAAgB,IAAI;AAEhB,QAAA,CAAC,EAAE,aAAa,SAAS,EAAE,aAAa,MAAM,WAAW,GAAG;AAC9D;AAAA,IAAA;AAGF,QAAI,iBAAiB,aAAa;AAChC,uBAAiB,WAAW;AAC5B,YAAM,OAAO,EAAE,aAAa,MAAM,CAAC;AAEnC,4BAAsB,IAAI;AAAA,IAAA;AAG5B,QAAI,iBAAiB,WAAW;AAC9B,uBAAiB,SAAS;AACpB,YAAA,QAAQ,EAAE,aAAa;AAE7B,0BAAoB,KAAK;AAAA,IAAA;AAAA,EAE7B;AAGM,QAAA,oBAAoB,OAAO,OAAsC,SAAqB;AACpF,UAAA,QAAQ,MAAM,OAAO;AAC3B,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC;AAAA,IAAA;AAGF,QAAI,SAAS,WAAW;AACtB,uBAAiB,SAAS;AAC1B,0BAAoB,KAAK;AAAA,IAAA;AAE3B,QAAI,SAAS,aAAa;AACxB,uBAAiB,WAAW;AACN,4BAAA,MAAM,CAAC,CAAC;AAAA,IAAA;AAAA,EAElC;AAEM,QAAA,oBAAoBjB,aAAyB,IAAI;AACjD,QAAA,mBAAmBA,aAAyB,IAAI;AAGpD,SAAAkB,2BAAA,kBAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,uBAAuB;AAAA,MACvB;AAAA,MACA,kBAAkB,oBAAoB,mBAAmB;AAAA,MAEzD,UAAA;AAAA,QAAAD,2BAAA,kBAAA;AAAA,UAACE,2BAAO;AAAA,UAAP;AAAA,YACC,WAAW,KAAK,EAAE,UAAU,gBAAgB;AAAA,YAC5C,aAAa;AAAA,YACb,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,QAAQ;AAAA,YAER,UAAA;AAAA,cAAAC,iDAACC,0BAAAA,kBACC,EAAA,UAAAD,2BAAAA,kBAAAA,IAAC,OAAK,EAAA,SAAS,CAAA,GACjB;AAAA,cACC,mEACEE,2BAAAA,WAAA,EACE,UAAmB,mBAAA,IAAI,CAAC,SACvBF,2BAAA,kBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,IAAI,KAAK;AAAA,kBACT,OAAO,KAAK;AAAA,kBACZ,MAAM,KAAK;AAAA,kBACX,UAAU,iBAAiB,KAAK;AAAA,kBAChC,YAAY,MAAM,gBAAgB,KAAK,EAAE;AAAA,kBACzC,aAAa,MAAM,gBAAgB,IAAI;AAAA,gBAAA;AAAA,gBANlC,KAAK;AAAA,cAQb,CAAA,GACH;AAAA,eAEA,kBAAkB,eAAe,kBAAkB,cAClDH,kDAAAK,2BAAAA,WAAA,EACC,UAAA;AAAA,gBAACL,kDAAAM,2BAAAA,mBAAA,EACC,UAAA;AAAA,kBAAAH,2BAAA,kBAAA;AAAA,oBAACI,2BAAO;AAAA,oBAAP;AAAA,sBACC,OAAO;AAAA,wBACL,OAAO,GAAG,MAAM,QAAQ;AAAA,sBAAA;AAAA,oBAC1B;AAAA,kBACF;AAAA,mEACC,QAAK,EAAA,WAAU,SAAS,UAAA,aAAa,aAAa,MAAM,CAAA;AAAA,gBAAA,GAC3D;AAAA,gBACAJ,iDAACK,2BAAAA,cAAA,EAAoB,MAAM,SAAS,SAAQ,QAAO,SAAS,WAAY,CAAA;AAAA,cAAA,GAC1E;AAAA,cAEFL,2BAAA,kBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,UAAU,CAAC,MAAM,kBAAkB,GAAG,WAAW;AAAA,kBACjD,KAAK;AAAA,gBAAA;AAAA,cACP;AAAA,cACAA,2BAAA,kBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,UAAU,CAAC,MAAM,kBAAkB,GAAG,SAAS;AAAA,kBAC/C,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YACP;AAAA,UAAA;AAAA,QACF;AAAA,QAGAA,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,UAAU;AAAA,YACV,UAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
|
|
1
|
+
{"version":3,"file":"EntityPanelUploader.cjs.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n} from '@shared/util'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["useDetailsPanelContext","useState","useRef","useReviewablesUpload","progress","sanitizeProductName","toast","createProductHelper","createProduct","handleUploadError","useCreateVersionMutation","useCreateProductMutation","productId","_a","getNextVersionNumber","createVersionHelper","entityType","projectName","res","useUpdateEntitiesMutation","jsxs","ThumbnailUploadProvider","Styled.DragAndDropWrapper","jsx","ThumbnailWrapper","Styled.DropZones","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton"],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ import "../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled
|
|
|
10
10
|
import "../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
|
|
11
11
|
import "lodash";
|
|
12
12
|
import { toast } from "react-toastify";
|
|
13
|
+
import "uuid";
|
|
14
|
+
import { sanitizeProductName, createProductHelper, handleUploadError, getNextVersionNumber, createVersionHelper } from "../../util/versionUploadHelpers.es.js";
|
|
13
15
|
import "../../util/pubsub.es.js";
|
|
14
16
|
import "../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js";
|
|
15
17
|
import "../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.es.js";
|
|
@@ -49,15 +51,20 @@ import "../EmptyPlaceholder/EmptyPlaceholder.es.js";
|
|
|
49
51
|
import "../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
50
52
|
import "../../containers/ProjectTreeTable/ProjectTreeTable.es.js";
|
|
51
53
|
import "../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
|
|
52
|
-
import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
|
|
53
54
|
import "@tanstack/react-table";
|
|
54
|
-
import "../../containers/ProjectTreeTable/
|
|
55
|
-
import "../../containers/ProjectTreeTable/
|
|
56
|
-
import "../../containers/ProjectTreeTable/
|
|
57
|
-
import "../../containers/ProjectTreeTable/
|
|
58
|
-
import "../../containers/ProjectTreeTable/
|
|
55
|
+
import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
56
|
+
import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
|
|
57
|
+
import "../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
|
|
58
|
+
import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
|
|
59
|
+
import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
|
|
60
|
+
import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
|
|
61
|
+
import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
|
|
62
|
+
import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
|
|
63
|
+
import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
|
|
64
|
+
import "../ThumbnailSimple/ThumbnailSimple.es.js";
|
|
59
65
|
import "../../api/base/client.es.js";
|
|
60
66
|
import "../../api/generated/graphql.es.js";
|
|
67
|
+
import "../../api/generated/graphqlLinks.es.js";
|
|
61
68
|
import "../../api/generated/access.es.js";
|
|
62
69
|
import "../../api/generated/actions.es.js";
|
|
63
70
|
import "../../api/generated/activityFeed.es.js";
|
|
@@ -113,6 +120,9 @@ import "../../api/queries/entityLists/getListsAttributes.es.js";
|
|
|
113
120
|
import "../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
114
121
|
import "../../api/queries/folders/getFolders.es.js";
|
|
115
122
|
import "../../api/queries/grouping/getGrouping.es.js";
|
|
123
|
+
import "../../api/queries/links/updateLinks.es.js";
|
|
124
|
+
import "../../api/queries/links/getLinks.es.js";
|
|
125
|
+
import "../../api/queries/links/getEntityLinks.es.js";
|
|
116
126
|
import "../../api/queries/overview/getOverview.es.js";
|
|
117
127
|
import "../../api/queries/overview/updateOverview.es.js";
|
|
118
128
|
import "../../api/queries/permissions/getPermissions.es.js";
|
|
@@ -130,26 +140,6 @@ import { useCreateVersionMutation } from "../../api/queries/versions/updateVersi
|
|
|
130
140
|
import "../../api/queries/views/getViews.es.js";
|
|
131
141
|
import "../../api/queries/views/updateViews.es.js";
|
|
132
142
|
import "../../api/queries/watchers/getWatchers.es.js";
|
|
133
|
-
import "../../../../_virtual/runtime.es.js";
|
|
134
|
-
import "../../../../_virtual/semver.es.js";
|
|
135
|
-
import "react-redux";
|
|
136
|
-
import "custom-protocol-check";
|
|
137
|
-
import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
|
|
138
|
-
import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
|
|
139
|
-
import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
140
|
-
import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
|
|
141
|
-
import "../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
|
|
142
|
-
import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
|
|
143
|
-
import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
|
|
144
|
-
import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
|
|
145
|
-
import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
|
|
146
|
-
import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
|
|
147
|
-
import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
|
|
148
|
-
import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
|
|
149
|
-
import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
|
|
150
|
-
import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
|
|
151
|
-
import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
|
|
152
|
-
import "../ThumbnailSimple/ThumbnailSimple.es.js";
|
|
153
143
|
import "@dnd-kit/core";
|
|
154
144
|
import "@dnd-kit/sortable";
|
|
155
145
|
import "../ReviewablesList/ReviewablesList.styled.es.js";
|
|
@@ -164,11 +154,14 @@ import { DragAndDropWrapper, DropZones, UploadingProgress, Progress, CancelButto
|
|
|
164
154
|
import Dropzone from "./Dropzone.es.js";
|
|
165
155
|
import axios from "axios";
|
|
166
156
|
import EntityPanelUploaderDialog from "./EntityPanelUploaderDialog.es.js";
|
|
167
|
-
import { sanitizeProductName, createProductHelper, handleUploadError, getNextVersionNumber, createVersionHelper } from "../../utils/versionUploadHelpers.es.js";
|
|
168
157
|
import "../SimpleFormDialog/SimpleFormDialog.es.js";
|
|
169
158
|
import "../EntityPath/EntityPath.styled.es.js";
|
|
170
159
|
import "../EntityPath/SegmentProvider.es.js";
|
|
171
160
|
import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
|
|
161
|
+
import "../../../../_virtual/runtime.es.js";
|
|
162
|
+
import "../../../../_virtual/semver.es.js";
|
|
163
|
+
import "react-redux";
|
|
164
|
+
import "custom-protocol-check";
|
|
172
165
|
import "../Watchers/Watchers.es.js";
|
|
173
166
|
import "../ProjectTableSettings/ProjectTableSettings.es.js";
|
|
174
167
|
import "../Powerpack/PowerpackButton.es.js";
|
|
@@ -185,6 +178,23 @@ import "../VersionUploader/components/UploadVersionDialog.es.js";
|
|
|
185
178
|
import "../VersionUploader/context/VersionUploadContext.es.js";
|
|
186
179
|
import "../Feedback/FeedbackContext.es.js";
|
|
187
180
|
import "../Feedback/SupportBubble.es.js";
|
|
181
|
+
import "../Chips/Chips.es.js";
|
|
182
|
+
import "../LinksManager/LinksManager.styled.es.js";
|
|
183
|
+
import "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
|
|
184
|
+
import "../LinksManager/LinksManagerDialog.es.js";
|
|
185
|
+
import "../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js";
|
|
186
|
+
import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
|
|
187
|
+
import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
|
|
188
|
+
import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
|
|
189
|
+
import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
|
|
190
|
+
import "../../containers/ProjectTreeTable/context/SelectionCellsContext.es.js";
|
|
191
|
+
import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
|
|
192
|
+
import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
|
|
193
|
+
import "../../containers/ProjectTreeTable/context/ProjectTableContext.es.js";
|
|
194
|
+
import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
|
|
195
|
+
import "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
|
|
196
|
+
import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
|
|
197
|
+
import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
|
|
188
198
|
import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
|
|
189
199
|
import "../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.es.js";
|
|
190
200
|
import { ThumbnailWrapper } from "../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPanelUploader.es.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { upperFirst } from 'lodash'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n type ProductCreationData,\n type VersionCreationData,\n} from '@shared/utils/versionUploadHelpers'\n// 3811c830436f11f0abc9d6ac5bf0bcfb\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["progress","productId","_a","entityType","projectName","res","jsxs","Styled.DragAndDropWrapper","jsx","Styled.DropZones","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityPanelUploader.es.js","sources":["../../../../../src/components/EntityPanelUploader/EntityPanelUploader.tsx"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailWrapper } from '@shared/containers'\nimport {\n useCreateVersionMutation,\n useUpdateEntitiesMutation,\n useCreateProductMutation,\n} from '@shared/api'\nimport * as Styled from './EntityPanelUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\nimport Dropzone, { DropzoneType } from './Dropzone'\nimport axios from 'axios'\nimport { toast } from 'react-toastify'\nimport { useReviewablesUpload } from '../ReviewablesList'\nimport { useDetailsPanelContext } from '@shared/context'\nimport EntityPanelUploaderDialog from './EntityPanelUploaderDialog'\nimport {\n sanitizeProductName,\n createProductHelper,\n createVersionHelper,\n getNextVersionNumber,\n handleUploadError,\n} from '@shared/util'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityPanelUploaderProps = {\n entityType: string\n entities: any[]\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n onVersionCreated?: (versionId: string) => void\n}\n\ntype UploadType = 'thumbnail' | 'version'\nconst dropZones: (DropzoneType & { id: UploadType })[] = [\n { id: 'thumbnail', label: 'Upload thumbnail', icon: 'add_photo_alternate' },\n { id: 'version', label: 'Upload version', icon: 'layers' },\n]\n\nexport const EntityPanelUploader = ({\n children = [],\n entityType,\n entities = [],\n projectName,\n onUploaded,\n onVersionCreated,\n}: EntityPanelUploaderProps) => {\n const { dispatch } = useDetailsPanelContext()\n // Dragging and dropping state\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [draggingZone, setDraggingZone] = useState<UploadType | null>(null)\n const dragCounterRef = useRef(0)\n\n // Uploading state\n const [uploadingType, setUploadingType] = useState<UploadType | null>(null)\n const [progress, setProgress] = useState(0)\n\n // Dialog state for product creation\n const [showProductDialog, setShowProductDialog] = useState(false)\n const [pendingFiles, setPendingFiles] = useState<FileList | null>(null)\n\n // Check if we have exactly one entity selected\n const singleEntity = entities.length === 1 ? entities[0] : null\n // extra all entity IDs for the single version entity\n const taskId: string | undefined = singleEntity?.task?.id\n const folderId: string | undefined = singleEntity?.folder?.id\n const productId: string | undefined = singleEntity?.product?.id\n const versionId: string | undefined = singleEntity?.id\n const canUploadVersions = Boolean(singleEntity && entityType !== 'representation')\n\n // Use the custom hook for reviewable upload logic (only when single version)\n const { handleFileUpload: uploadReviewableFiles } = useReviewablesUpload({\n projectName,\n versionId: versionId,\n taskId: taskId,\n folderId: folderId,\n productId: productId,\n dispatch,\n onUpload: () => {\n setUploadingType(null)\n setProgress(0)\n },\n onProgress: (progress) => {\n setProgress(progress)\n },\n })\n\n // Filter drop zones based on whether we can upload reviewables\n const availableDropZones = dropZones.filter((zone) => {\n if (zone.id === 'version') {\n return canUploadVersions\n }\n return true\n })\n\n const resetState = () => {\n setUploadingType(null)\n setIsDraggingFile(false)\n setDraggingZone(null)\n dragCounterRef.current = 0\n setProgress(0)\n setShowProductDialog(false)\n setPendingFiles(null)\n }\n\n // Handle dialog submission - create product and upload version\n const handleDialogSubmit = async (productName: string) => {\n if (!pendingFiles || !singleEntity) {\n setShowProductDialog(false)\n setPendingFiles(null)\n return\n }\n\n const sanitizedName = sanitizeProductName(productName)\n\n if (!sanitizedName.trim()) {\n toast.error(\n 'Product name must contain valid characters (letters, numbers, underscore, or hyphen)',\n )\n return\n }\n\n try {\n if (!folderId) {\n throw new Error('Folder ID is required to create a product')\n }\n setUploadingType('version')\n\n // Create the product\n const productRes = await createProductHelper(createProduct, projectName, {\n folderId: folderId,\n name: sanitizedName,\n productType: 'review', // default product type for uploaded files\n })\n\n // Close dialog and proceed with version upload\n setShowProductDialog(false)\n await uploadVersionWithProduct(pendingFiles, productRes.id)\n setPendingFiles(null)\n } catch (error: any) {\n handleUploadError(error, 'creating product')\n resetState()\n }\n }\n\n // Handle dialog cancellation\n const handleDialogCancel = () => {\n setShowProductDialog(false)\n setPendingFiles(null)\n resetState()\n }\n\n const [createVersion] = useCreateVersionMutation()\n const [createProduct] = useCreateProductMutation()\n // Handle version/reviewable file upload\n const handleVersionUpload = async (files: FileList) => {\n if (!canUploadVersions || !singleEntity) {\n toast.error('Please select exactly one version to upload reviewables')\n return resetState()\n }\n\n const productId = singleEntity.product?.id\n if (!productId) {\n // Show dialog to create product first\n setPendingFiles(files)\n setShowProductDialog(true)\n return\n }\n\n // If we have a productId, proceed with upload\n await uploadVersionWithProduct(files, productId)\n }\n\n // Helper function to handle the actual version upload\n const uploadVersionWithProduct = async (files: FileList, productId: string) => {\n try {\n const nextVersion = getNextVersionNumber(singleEntity!.product?.latestVersion)\n\n // create a new version\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId,\n taskId, // previous version could have a taskId or we are uploading on a task\n version: nextVersion,\n })\n\n await uploadReviewableFiles(files, versionRes.id)\n // The hook handles success callbacks, just reset our local state\n resetState()\n\n // update entity panel to focus the new version\n onVersionCreated?.(versionRes.id)\n } catch (error: any) {\n handleUploadError(error, 'uploading version')\n resetState()\n }\n }\n\n // once the file has been uploaded, we need to patch the entities with the new thumbnail\n const handleThumbnailFileUploaded = async (thumbnails: any[] = []) => {\n // always set isDragginle to false\n setIsDraggingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const handleUploadThumbnail = async (file: File) => {\n if (!file) return resetState()\n\n try {\n // check file is an image\n if (!file.type.includes('image')) {\n throw new Error('File is not an image')\n }\n\n let promises = []\n for (const entity of entities) {\n const { id, entityType, projectName } = entity\n\n if (!projectName) throw new Error('Project name is required')\n\n const promise = axios.post(\n projectName && `/api/projects/${projectName}/${entityType}s/${id}/thumbnail`,\n file,\n {\n onUploadProgress: (e) => {\n setProgress(Math.round((100 * e.loaded) / (e.total || file.size)))\n },\n headers: {\n 'Content-Type': file.type,\n },\n },\n )\n\n promises.push(promise)\n }\n\n const res = await Promise.all(promises)\n\n const updatedEntities = res.map((res, i) => ({\n thumbnailId: res.data.id as string,\n id: entities[i].id,\n }))\n\n handleThumbnailFileUploaded(updatedEntities)\n resetState()\n } catch (error: any) {\n console.error(error)\n toast.error(error.message)\n resetState()\n }\n }\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleDragEnter = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current++\n if (dragCounterRef.current === 1) {\n setIsDraggingFile(true)\n }\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current--\n if (dragCounterRef.current === 0) {\n setIsDraggingFile(false)\n setDraggingZone(null)\n }\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n dragCounterRef.current = 0\n setIsDraggingFile(false)\n setDraggingZone(null)\n\n if (!e.dataTransfer.files || e.dataTransfer.files.length === 0) {\n return\n }\n\n if (draggingZone === 'thumbnail') {\n setUploadingType('thumbnail')\n const file = e.dataTransfer.files[0]\n // try to upload the thumbnail\n handleUploadThumbnail(file)\n }\n\n if (draggingZone === 'version') {\n setUploadingType('version')\n const files = e.dataTransfer.files\n // try to upload the reviewables using the hook\n handleVersionUpload(files)\n }\n }\n\n // upload thumbnail from input (right click on thumbnail)\n const handleInputUpload = async (event: ChangeEvent<HTMLInputElement>, type: UploadType) => {\n const files = event.target.files\n if (!files || files.length === 0) {\n return\n }\n\n if (type === 'version') {\n setUploadingType('version')\n handleVersionUpload(files)\n }\n if (type === 'thumbnail') {\n setUploadingType('thumbnail')\n handleUploadThumbnail(files[0])\n }\n }\n\n const thumbnailInputRef = useRef<HTMLInputElement>(null)\n const versionsInputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailFileUploaded}\n thumbnailInputRef={thumbnailInputRef}\n versionsInputRef={canUploadVersions ? versionsInputRef : undefined}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ dragging: isDraggingFile })}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n {isDraggingFile && (\n <Styled.DropZones>\n {availableDropZones.map((zone) => (\n <Dropzone\n key={zone.id}\n id={zone.id}\n label={zone.label}\n icon={zone.icon}\n isActive={draggingZone === zone.id}\n onDragOver={() => setDraggingZone(zone.id)}\n onDragLeave={() => setDraggingZone(null)}\n />\n ))}\n </Styled.DropZones>\n )}\n {(uploadingType === 'thumbnail' || uploadingType === 'version') && (\n <Styled.DropZones>\n <Styled.UploadingProgress>\n <Styled.Progress\n style={{\n right: `${100 - progress}%`,\n }}\n />\n <span className=\"label\">{`Uploading ${uploadingType}...`}</span>\n </Styled.UploadingProgress>\n <Styled.CancelButton icon={'close'} variant=\"text\" onClick={resetState} />\n </Styled.DropZones>\n )}\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'thumbnail')}\n ref={thumbnailInputRef}\n />\n <input\n type=\"file\"\n onChange={(e) => handleInputUpload(e, 'version')}\n ref={versionsInputRef}\n />\n </Styled.DragAndDropWrapper>\n\n {/* Product creation dialog */}\n <EntityPanelUploaderDialog\n isOpen={showProductDialog}\n files={pendingFiles}\n onSubmit={handleDialogSubmit}\n onCancel={handleDialogCancel}\n />\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["progress","productId","_a","entityType","projectName","res","jsxs","Styled.DragAndDropWrapper","jsx","Styled.DropZones","Styled.UploadingProgress","Styled.Progress","Styled.CancelButton"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const useCreateContextMenu = require("../../containers/ContextMenu/useCreateCont
|
|
|
11
11
|
require("lodash");
|
|
12
12
|
require("react-toastify");
|
|
13
13
|
const copyToClipboard = require("../../util/copyToClipboard.cjs.js");
|
|
14
|
+
require("uuid");
|
|
14
15
|
require("../../util/pubsub.cjs.js");
|
|
15
16
|
require("../../context/RemoteModulesContext.cjs.js");
|
|
16
17
|
const DetailsPanelContext = require("../../context/DetailsPanelContext.cjs.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentProvider.cjs.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["forwardRef","useDetailsPanelContext","copyToClipboard","useCreateContextMenu","jsx","ActiveSegment","classNames"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SegmentProvider.cjs.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["forwardRef","useDetailsPanelContext","copyToClipboard","useCreateContextMenu","jsx","ActiveSegment","classNames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkBA,MAAA;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAMC,gBAAAA,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAIC,0CAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAACC,kBAAA;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAWC,UAAW,WAAA,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;;"}
|
|
@@ -10,6 +10,7 @@ import { useCreateContextMenu } from "../../containers/ContextMenu/useCreateCont
|
|
|
10
10
|
import "lodash";
|
|
11
11
|
import "react-toastify";
|
|
12
12
|
import { copyToClipboard } from "../../util/copyToClipboard.es.js";
|
|
13
|
+
import "uuid";
|
|
13
14
|
import "../../util/pubsub.es.js";
|
|
14
15
|
import "../../context/RemoteModulesContext.es.js";
|
|
15
16
|
import { useDetailsPanelContext } from "../../context/DetailsPanelContext.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentProvider.es.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SegmentProvider.es.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkB;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAI,uBAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAM,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAI,qBAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAW,WAAW,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
|
|
@@ -5,6 +5,7 @@ const lodash = require("lodash");
|
|
|
5
5
|
const React = require("react");
|
|
6
6
|
require("../../api/base/client.cjs.js");
|
|
7
7
|
require("../../api/generated/graphql.cjs.js");
|
|
8
|
+
require("../../api/generated/graphqlLinks.cjs.js");
|
|
8
9
|
require("../../api/generated/access.cjs.js");
|
|
9
10
|
require("../../api/generated/actions.cjs.js");
|
|
10
11
|
require("../../api/generated/activityFeed.cjs.js");
|
|
@@ -60,6 +61,9 @@ require("../../api/queries/entityLists/getListsAttributes.cjs.js");
|
|
|
60
61
|
require("../../api/queries/entityLists/updateListsAttributes.cjs.js");
|
|
61
62
|
require("../../api/queries/folders/getFolders.cjs.js");
|
|
62
63
|
require("../../api/queries/grouping/getGrouping.cjs.js");
|
|
64
|
+
require("../../api/queries/links/updateLinks.cjs.js");
|
|
65
|
+
require("../../api/queries/links/getLinks.cjs.js");
|
|
66
|
+
require("../../api/queries/links/getEntityLinks.cjs.js");
|
|
63
67
|
require("../../api/queries/overview/getOverview.cjs.js");
|
|
64
68
|
require("../../api/queries/overview/updateOverview.cjs.js");
|
|
65
69
|
require("../../api/queries/permissions/getPermissions.cjs.js");
|
|
@@ -87,7 +91,7 @@ const FeedbackProvider = ({ children }) => {
|
|
|
87
91
|
const { data: verification, isLoading: isLoadingVerification } = cloud.useGetFeedbackVerificationQuery(
|
|
88
92
|
void 0,
|
|
89
93
|
{
|
|
90
|
-
skip: !(user == null ? void 0 : user.name)
|
|
94
|
+
skip: !(user == null ? void 0 : user.name) || !connect
|
|
91
95
|
}
|
|
92
96
|
);
|
|
93
97
|
const loadScript = () => {
|
|
@@ -253,7 +257,7 @@ const FeedbackProvider = ({ children }) => {
|
|
|
253
257
|
}, [user == null ? void 0 : user.name, scriptLoaded, siteInfo]);
|
|
254
258
|
const [identified, setIdentified] = React.useState(false);
|
|
255
259
|
React.useEffect(() => {
|
|
256
|
-
if (!(user == null ? void 0 : user.name) || !verification || !scriptLoaded) return;
|
|
260
|
+
if (!(user == null ? void 0 : user.name) || !connect || !verification || !scriptLoaded) return;
|
|
257
261
|
if (identified) return;
|
|
258
262
|
identifyUser();
|
|
259
263
|
setIdentified(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackContext.cjs.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useGetCurrentUserQuery","useGetSiteInfoQuery","useGetYnputCloudInfoQuery","useGetFeedbackVerificationQuery","cloneDeep","unreadCount","_a","_b","useEffect","jsx","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeedbackContext.cjs.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import { cloneDeep } from 'lodash'\nimport React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport {\n useGetCurrentUserQuery,\n useGetFeedbackVerificationQuery,\n useGetSiteInfoQuery,\n useGetYnputCloudInfoQuery,\n} from '@shared/api'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n const { data: user } = useGetCurrentUserQuery()\n const { data: siteInfo } = useGetSiteInfoQuery({ full: true }, { skip: !user?.name })\n const { data: connect } = useGetYnputCloudInfoQuery(undefined, { skip: !user?.name })\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n undefined,\n {\n skip: !user?.name || !connect,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification) return\n const verificationData = cloneDeep(verification)\n // delete any undefined/null properties\n const cleanObject = (obj: any) => {\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n cleanObject(obj[key])\n } else if (obj[key] === undefined || obj[key] === null) {\n delete obj[key]\n }\n })\n }\n\n cleanObject(verificationData)\n\n const identifyData = {\n ...verificationData,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: connect?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n win.Featurebase(\n 'boot',\n {\n appId: '67b76a31b8a7a2f3181da4ba',\n email: verification?.email,\n theme: 'dark',\n userId: verification?.userId, // user ID from verification\n userHash: verification?.userHash, // generated user hash token\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !connect || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n connect?.instanceId,\n verification?.userHash,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useGetCurrentUserQuery","useGetSiteInfoQuery","useGetYnputCloudInfoQuery","useGetFeedbackVerificationQuery","cloneDeep","unreadCount","_a","_b","useEffect","jsx","useContext"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { cloneDeep } from "lodash";
|
|
|
3
3
|
import { createContext, useState, useEffect, useContext } from "react";
|
|
4
4
|
import "../../api/base/client.es.js";
|
|
5
5
|
import "../../api/generated/graphql.es.js";
|
|
6
|
+
import "../../api/generated/graphqlLinks.es.js";
|
|
6
7
|
import "../../api/generated/access.es.js";
|
|
7
8
|
import "../../api/generated/actions.es.js";
|
|
8
9
|
import "../../api/generated/activityFeed.es.js";
|
|
@@ -58,6 +59,9 @@ import "../../api/queries/entityLists/getListsAttributes.es.js";
|
|
|
58
59
|
import "../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
59
60
|
import "../../api/queries/folders/getFolders.es.js";
|
|
60
61
|
import "../../api/queries/grouping/getGrouping.es.js";
|
|
62
|
+
import "../../api/queries/links/updateLinks.es.js";
|
|
63
|
+
import "../../api/queries/links/getLinks.es.js";
|
|
64
|
+
import "../../api/queries/links/getEntityLinks.es.js";
|
|
61
65
|
import "../../api/queries/overview/getOverview.es.js";
|
|
62
66
|
import "../../api/queries/overview/updateOverview.es.js";
|
|
63
67
|
import "../../api/queries/permissions/getPermissions.es.js";
|
|
@@ -85,7 +89,7 @@ const FeedbackProvider = ({ children }) => {
|
|
|
85
89
|
const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(
|
|
86
90
|
void 0,
|
|
87
91
|
{
|
|
88
|
-
skip: !(user == null ? void 0 : user.name)
|
|
92
|
+
skip: !(user == null ? void 0 : user.name) || !connect
|
|
89
93
|
}
|
|
90
94
|
);
|
|
91
95
|
const loadScript = () => {
|
|
@@ -251,7 +255,7 @@ const FeedbackProvider = ({ children }) => {
|
|
|
251
255
|
}, [user == null ? void 0 : user.name, scriptLoaded, siteInfo]);
|
|
252
256
|
const [identified, setIdentified] = useState(false);
|
|
253
257
|
useEffect(() => {
|
|
254
|
-
if (!(user == null ? void 0 : user.name) || !verification || !scriptLoaded) return;
|
|
258
|
+
if (!(user == null ? void 0 : user.name) || !connect || !verification || !scriptLoaded) return;
|
|
255
259
|
if (identified) return;
|
|
256
260
|
identifyUser();
|
|
257
261
|
setIdentified(true);
|