@ynput/ayon-frontend-shared 0.2.23 → 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/_virtual/index.cjs10.js +4 -4
- package/dist/_virtual/index.cjs8.js +4 -4
- package/dist/_virtual/index.cjs9.js +4 -4
- package/dist/_virtual/index.es10.js +4 -4
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +4 -4
- 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/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/vfile/lib/index.es.js +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.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +6 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -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 +10 -3
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +10 -3
- 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/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/hooks/useBuildViewMenuItems.d.ts +2 -1
- 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":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useProjectTableQueriesContext } from '../context/ProjectTableQueriesContext'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '../../../util'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { toast } from 'react-toastify'\nimport { EntityMap } from '../types'\nimport { OperationWithRowId } from './useUpdateTableData'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n\n const { getEntityById } = useProjectTableContext()\n\n const getValidEntity = (entityId: string): (EntityMap & { rowId: string }) | null => {\n const entity = getEntityById(entityId) as EntityMap & { rowId: string }\n return entity || null\n }\n\n const handleDeleteEntities = useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n\n for (const id of entityIds) {\n const entity = getValidEntity(id)\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const entityLabel =\n fullEntities.length === 1\n ? `\"${fullEntities[0].label || fullEntities[0].name}\"`\n : `${fullEntities.length} entities`\n\n confirmDelete({\n label: 'folders and tasks',\n message: `Are you sure you want to delete ${entityLabel}? This action cannot be undone.`,\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n // check if the error is because of child tasks, products\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess],\n )\n\n return handleDeleteEntities\n}\n\nexport default useDeleteEntities\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useProjectTableQueriesContext } from '../context/ProjectTableQueriesContext'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '../../../util'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { toast } from 'react-toastify'\nimport { EntityMap } from '../types'\nimport { OperationWithRowId } from './useUpdateTableData'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n\n const { getEntityById } = useProjectTableContext()\n\n const getValidEntity = (entityId: string): (EntityMap & { rowId: string }) | null => {\n const entity = getEntityById(entityId) as EntityMap & { rowId: string }\n return entity || null\n }\n\n const handleDeleteEntities = useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n\n for (const id of entityIds) {\n const entity = getValidEntity(id)\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const entityLabel =\n fullEntities.length === 1\n ? `\"${fullEntities[0].label || fullEntities[0].name}\"`\n : `${fullEntities.length} entities`\n\n confirmDelete({\n label: 'folders and tasks',\n message: `Are you sure you want to delete ${entityLabel}? This action cannot be undone.`,\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n // check if the error is because of child tasks, products\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess],\n )\n\n return handleDeleteEntities\n}\n\nexport default useDeleteEntities\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,oBAAoB,CAAC,EAAE,gBAAwC;AAC7D,QAAA,EAAE,eAAe,IAAI,8BAA8B;AAEnD,QAAA,EAAE,cAAc,IAAI,uBAAuB;AAE3C,QAAA,iBAAiB,CAAC,aAA6D;AAC7E,UAAA,SAAS,cAAc,QAAQ;AACrC,WAAO,UAAU;AAAA,EACnB;AAEA,QAAM,uBAAuB;AAAA,IAC3B,OAAO,cAAwB;AAC7B,UAAI,CAAC,aAAa,UAAU,WAAW,GAAG;AACxC,cAAM,MAAM,sBAAsB;AAClC;AAAA,MAAA;AAGF,YAAM,eAAkD,CAAC;AACnD,YAAA,qCAAqB,IAAY;AAEvC,iBAAW,MAAM,WAAW;AACpB,cAAA,SAAS,eAAe,EAAE;AAChC,YAAI,UAAU,CAAC,eAAe,IAAI,OAAO,EAAE,GAAG;AAC5C,uBAAa,KAAK,MAAM;AACT,yBAAA,IAAI,OAAO,EAAE;AAAA,QAAA;AAAA,MAC9B;AAGE,UAAA,aAAa,WAAW,GAAG;AAC7B,cAAM,MAAM,mBAAmB;AAC/B;AAAA,MAAA;AAGI,YAAA,iBAAiB,OAAO,QAAQ,UAAU;AAC9C,cAAM,aAAmC,CAAC;AAC1C,mBAAW,KAAK,cAAc;AAC5B,cAAI,CAAC,EAAG;AACR,qBAAW,KAAK;AAAA,YACd,YAAY,cAAc,IAAI,SAAS;AAAA,YACvC,MAAM;AAAA,YACN,UAAU,EAAE;AAAA,YACZ,OAAO,EAAE;AAAA,YACT;AAAA,UAAA,CACD;AAAA,QAAA;AAEC,YAAA;AACI,iBAAA,iDAAiB,EAAE;AACzB,cAAI,WAAW;AACH,sBAAA;AAAA,UAAA;AAAA,iBAEL,OAAY;AACb,gBAAA,WAAU,+BAAO,UAAS;AACxB,kBAAA,MAAM,8BAA8B,KAAK;AAC3C,gBAAA,EAAE,SAAS,GAAG,MAAM;AAAA,QAAA;AAAA,MAE9B;AAEA,YAAM,cACJ,aAAa,WAAW,IACpB,IAAI,aAAa,CAAC,EAAE,SAAS,aAAa,CAAC,EAAE,IAAI,MACjD,GAAG,aAAa,MAAM;AAEd,oBAAA;AAAA,QACZ,OAAO;AAAA,QACP,SAAS,mCAAmC,WAAW;AAAA,QACvD,QAAQ;AAAA,QACR,SAAS,CAAC,UAAe;;AACvB,gBAAM,4BAA4B;AAElC,eAAI,oCAAO,eAAP,mBAAmB,SAAS,4BAA4B;AAC1D,kBAAM,eAAe,OAAO;AAAA,cAC1B,0CAA0C,WAAW;AAAA,YACvD;AACA,gBAAI,cAAc;AAChB,6BAAe,IAAI;AAAA,YAAA,OACd;AACL,sBAAQ,IAAI,8BAA8B;AAAA,YAAA;AAAA,UAC5C;AAAA,QAEJ;AAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IACH;AAAA,IACA,CAAC,eAAe,gBAAgB,SAAS;AAAA,EAC3C;AAEO,SAAA;AACT;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
require("../../../api/base/client.cjs.js");
|
|
4
4
|
require("../../../api/generated/graphql.cjs.js");
|
|
5
|
+
require("../../../api/generated/graphqlLinks.cjs.js");
|
|
5
6
|
require("../../../api/generated/access.cjs.js");
|
|
6
7
|
require("../../../api/generated/actions.cjs.js");
|
|
7
8
|
require("../../../api/generated/activityFeed.cjs.js");
|
|
@@ -57,6 +58,9 @@ require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
|
|
|
57
58
|
require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
|
|
58
59
|
const getFolders = require("../../../api/queries/folders/getFolders.cjs.js");
|
|
59
60
|
require("../../../api/queries/grouping/getGrouping.cjs.js");
|
|
61
|
+
require("../../../api/queries/links/updateLinks.cjs.js");
|
|
62
|
+
require("../../../api/queries/links/getLinks.cjs.js");
|
|
63
|
+
const getEntityLinks = require("../../../api/queries/links/getEntityLinks.cjs.js");
|
|
60
64
|
const getOverview = require("../../../api/queries/overview/getOverview.cjs.js");
|
|
61
65
|
require("../../../api/queries/overview/updateOverview.cjs.js");
|
|
62
66
|
require("../../../api/queries/permissions/getPermissions.cjs.js");
|
|
@@ -116,6 +120,7 @@ const useFetchOverviewData = ({
|
|
|
116
120
|
},
|
|
117
121
|
{ skip: !expandedParentIds.length || !showHierarchy }
|
|
118
122
|
);
|
|
123
|
+
const skipFoldersByTaskFilter = !queryFilters.filterString || !folders.length || !showHierarchy;
|
|
119
124
|
const {
|
|
120
125
|
data: foldersByTaskFilter,
|
|
121
126
|
isUninitialized,
|
|
@@ -128,16 +133,43 @@ const useFetchOverviewData = ({
|
|
|
128
133
|
tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search }
|
|
129
134
|
},
|
|
130
135
|
{
|
|
131
|
-
skip:
|
|
136
|
+
skip: skipFoldersByTaskFilter
|
|
132
137
|
}
|
|
133
138
|
);
|
|
139
|
+
const visibleFolders = React.useMemo(() => {
|
|
140
|
+
const visibleSet = /* @__PURE__ */ new Set();
|
|
141
|
+
folders.forEach((folder) => {
|
|
142
|
+
if (!folder.parentId) {
|
|
143
|
+
visibleSet.add(folder.id);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const parentId = folder.parentId;
|
|
147
|
+
const isSelectedInSlicer = selectedFolders.includes(folder.id);
|
|
148
|
+
const expandedMap = expanded;
|
|
149
|
+
if (expandedMap[parentId] === true || isSelectedInSlicer) {
|
|
150
|
+
visibleSet.add(folder.id);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return visibleSet;
|
|
154
|
+
}, [folders, foldersByTaskFilter, skipFoldersByTaskFilter, expanded, selectedFolders]);
|
|
155
|
+
const {
|
|
156
|
+
data: foldersLinks = [],
|
|
157
|
+
refetch: refetchFoldersLinks,
|
|
158
|
+
isUninitialized: isUninitializedFoldersLinks
|
|
159
|
+
} = getEntityLinks.useGetEntityLinksQuery({
|
|
160
|
+
projectName,
|
|
161
|
+
entityIds: Array.from(visibleFolders),
|
|
162
|
+
entityType: "folder"
|
|
163
|
+
});
|
|
134
164
|
const foldersMap = React.useMemo(() => {
|
|
135
165
|
const map = /* @__PURE__ */ new Map();
|
|
136
166
|
const addExtraDataToFolder = (folder) => {
|
|
167
|
+
var _a;
|
|
137
168
|
const folderWithExtraData = {
|
|
138
169
|
...folder,
|
|
139
170
|
entityId: folder.id,
|
|
140
|
-
entityType: "folder"
|
|
171
|
+
entityType: "folder",
|
|
172
|
+
links: ((_a = foldersLinks == null ? void 0 : foldersLinks.find((link) => link.id === folder.id)) == null ? void 0 : _a.links) || []
|
|
141
173
|
};
|
|
142
174
|
return folderWithExtraData;
|
|
143
175
|
};
|
|
@@ -197,7 +229,7 @@ const useFetchOverviewData = ({
|
|
|
197
229
|
return filteredMap;
|
|
198
230
|
}
|
|
199
231
|
return map;
|
|
200
|
-
}, [folders, foldersByTaskFilter, isUninitialized, selectedFolders]);
|
|
232
|
+
}, [folders, foldersByTaskFilter, isUninitialized, selectedFolders, foldersLinks]);
|
|
201
233
|
const loadingTasksForParents = React.useMemo(() => {
|
|
202
234
|
if (isFetchingExpandedFoldersTasks) {
|
|
203
235
|
return loadingUtils.determineLoadingTaskFolders({
|
|
@@ -298,6 +330,24 @@ const useFetchOverviewData = ({
|
|
|
298
330
|
skip: !groupBy || !groupQueries.length || isLoadingModules
|
|
299
331
|
}
|
|
300
332
|
);
|
|
333
|
+
const visibleTasks = React.useMemo(() => {
|
|
334
|
+
const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList;
|
|
335
|
+
return new Set(allTasks.map((task) => task.id));
|
|
336
|
+
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, groupBy]);
|
|
337
|
+
const {
|
|
338
|
+
data: tasksLinks = [],
|
|
339
|
+
refetch: refetchTasksLinks,
|
|
340
|
+
isUninitialized: isUninitializedTasksLinks
|
|
341
|
+
} = getEntityLinks.useGetEntityLinksQuery(
|
|
342
|
+
{
|
|
343
|
+
projectName,
|
|
344
|
+
entityIds: Array.from(visibleTasks),
|
|
345
|
+
entityType: "task"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
skip: visibleTasks.size === 0
|
|
349
|
+
}
|
|
350
|
+
);
|
|
301
351
|
const handleFetchNextPage = (group) => {
|
|
302
352
|
if (groupBy) {
|
|
303
353
|
if (group && group in groupPageCounts) {
|
|
@@ -316,11 +366,15 @@ const useFetchOverviewData = ({
|
|
|
316
366
|
const { tasksMap, tasksByFolderMap } = React.useMemo(() => {
|
|
317
367
|
const tasksMap2 = /* @__PURE__ */ new Map();
|
|
318
368
|
const tasksByFolderMap2 = /* @__PURE__ */ new Map();
|
|
319
|
-
const addExtraDataToTask = (task) =>
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
369
|
+
const addExtraDataToTask = (task) => {
|
|
370
|
+
var _a;
|
|
371
|
+
return {
|
|
372
|
+
...task,
|
|
373
|
+
entityId: task.id,
|
|
374
|
+
entityType: "task",
|
|
375
|
+
links: ((_a = tasksLinks == null ? void 0 : tasksLinks.find((link) => link.id === task.id)) == null ? void 0 : _a.links) || []
|
|
376
|
+
};
|
|
377
|
+
};
|
|
324
378
|
const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList;
|
|
325
379
|
for (const task of allTasks) {
|
|
326
380
|
const taskId = task.id;
|
|
@@ -344,13 +398,15 @@ const useFetchOverviewData = ({
|
|
|
344
398
|
}
|
|
345
399
|
}
|
|
346
400
|
return { tasksMap: tasksMap2, tasksByFolderMap: tasksByFolderMap2 };
|
|
347
|
-
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks]);
|
|
401
|
+
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, tasksLinks]);
|
|
348
402
|
const reloadTableData = () => {
|
|
349
403
|
if (!isUninitializedFolders) refetchFolders();
|
|
350
404
|
if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks();
|
|
351
405
|
if (!isUninitializedTasksFolders) refetchTasksFolders();
|
|
352
406
|
if (!isUninitializedTasksList) refetchTasksList();
|
|
353
407
|
if (!isUninitializedGroupedTasks) refetchGroupedTasks();
|
|
408
|
+
if (!isUninitializedFoldersLinks) refetchFoldersLinks();
|
|
409
|
+
if (!isUninitializedTasksLinks) refetchTasksLinks();
|
|
354
410
|
};
|
|
355
411
|
return {
|
|
356
412
|
foldersMap,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useGetFolderListQuery","isGroupId","useGetOverviewTasksByFoldersQuery","useGetQueryTasksFoldersQuery","useMemo","determineLoadingTaskFolders","useState","useEffect","useGetTasksListInfiniteInfiniteQuery","useGetGroupedTasksListQuery","tasksMap","tasksByFolderMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\nimport { useGetEntityLinksQuery } from '@shared/api'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n\n const skipFoldersByTaskFilter = !queryFilters.filterString || !folders.length || !showHierarchy\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isSelectedInSlicer = selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isSelectedInSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [folders, foldersByTaskFilter, skipFoldersByTaskFilter, expanded, selectedFolders])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = useGetEntityLinksQuery({\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n })\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders, foldersLinks])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n return new Set(allTasks.map((task) => task.id))\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, groupBy])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, tasksLinks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useGetFolderListQuery","isGroupId","useGetOverviewTasksByFoldersQuery","useGetQueryTasksFoldersQuery","useMemo","useGetEntityLinksQuery","determineLoadingTaskFolders","useState","useEffect","useGetTasksListInfiniteInfiniteQuery","useGetGroupedTasksListQuery","tasksMap","tasksByFolderMap"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "../../../api/base/client.es.js";
|
|
2
2
|
import "../../../api/generated/graphql.es.js";
|
|
3
|
+
import "../../../api/generated/graphqlLinks.es.js";
|
|
3
4
|
import "../../../api/generated/access.es.js";
|
|
4
5
|
import "../../../api/generated/actions.es.js";
|
|
5
6
|
import "../../../api/generated/activityFeed.es.js";
|
|
@@ -55,6 +56,9 @@ import "../../../api/queries/entityLists/getListsAttributes.es.js";
|
|
|
55
56
|
import "../../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
56
57
|
import { useGetFolderListQuery } from "../../../api/queries/folders/getFolders.es.js";
|
|
57
58
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
59
|
+
import "../../../api/queries/links/updateLinks.es.js";
|
|
60
|
+
import "../../../api/queries/links/getLinks.es.js";
|
|
61
|
+
import { useGetEntityLinksQuery } from "../../../api/queries/links/getEntityLinks.es.js";
|
|
58
62
|
import { useGetOverviewTasksByFoldersQuery, useGetQueryTasksFoldersQuery, useGetTasksListInfiniteInfiniteQuery, useGetGroupedTasksListQuery } from "../../../api/queries/overview/getOverview.es.js";
|
|
59
63
|
import "../../../api/queries/overview/updateOverview.es.js";
|
|
60
64
|
import "../../../api/queries/permissions/getPermissions.es.js";
|
|
@@ -114,6 +118,7 @@ const useFetchOverviewData = ({
|
|
|
114
118
|
},
|
|
115
119
|
{ skip: !expandedParentIds.length || !showHierarchy }
|
|
116
120
|
);
|
|
121
|
+
const skipFoldersByTaskFilter = !queryFilters.filterString || !folders.length || !showHierarchy;
|
|
117
122
|
const {
|
|
118
123
|
data: foldersByTaskFilter,
|
|
119
124
|
isUninitialized,
|
|
@@ -126,16 +131,43 @@ const useFetchOverviewData = ({
|
|
|
126
131
|
tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search }
|
|
127
132
|
},
|
|
128
133
|
{
|
|
129
|
-
skip:
|
|
134
|
+
skip: skipFoldersByTaskFilter
|
|
130
135
|
}
|
|
131
136
|
);
|
|
137
|
+
const visibleFolders = useMemo(() => {
|
|
138
|
+
const visibleSet = /* @__PURE__ */ new Set();
|
|
139
|
+
folders.forEach((folder) => {
|
|
140
|
+
if (!folder.parentId) {
|
|
141
|
+
visibleSet.add(folder.id);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const parentId = folder.parentId;
|
|
145
|
+
const isSelectedInSlicer = selectedFolders.includes(folder.id);
|
|
146
|
+
const expandedMap = expanded;
|
|
147
|
+
if (expandedMap[parentId] === true || isSelectedInSlicer) {
|
|
148
|
+
visibleSet.add(folder.id);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
return visibleSet;
|
|
152
|
+
}, [folders, foldersByTaskFilter, skipFoldersByTaskFilter, expanded, selectedFolders]);
|
|
153
|
+
const {
|
|
154
|
+
data: foldersLinks = [],
|
|
155
|
+
refetch: refetchFoldersLinks,
|
|
156
|
+
isUninitialized: isUninitializedFoldersLinks
|
|
157
|
+
} = useGetEntityLinksQuery({
|
|
158
|
+
projectName,
|
|
159
|
+
entityIds: Array.from(visibleFolders),
|
|
160
|
+
entityType: "folder"
|
|
161
|
+
});
|
|
132
162
|
const foldersMap = useMemo(() => {
|
|
133
163
|
const map = /* @__PURE__ */ new Map();
|
|
134
164
|
const addExtraDataToFolder = (folder) => {
|
|
165
|
+
var _a;
|
|
135
166
|
const folderWithExtraData = {
|
|
136
167
|
...folder,
|
|
137
168
|
entityId: folder.id,
|
|
138
|
-
entityType: "folder"
|
|
169
|
+
entityType: "folder",
|
|
170
|
+
links: ((_a = foldersLinks == null ? void 0 : foldersLinks.find((link) => link.id === folder.id)) == null ? void 0 : _a.links) || []
|
|
139
171
|
};
|
|
140
172
|
return folderWithExtraData;
|
|
141
173
|
};
|
|
@@ -195,7 +227,7 @@ const useFetchOverviewData = ({
|
|
|
195
227
|
return filteredMap;
|
|
196
228
|
}
|
|
197
229
|
return map;
|
|
198
|
-
}, [folders, foldersByTaskFilter, isUninitialized, selectedFolders]);
|
|
230
|
+
}, [folders, foldersByTaskFilter, isUninitialized, selectedFolders, foldersLinks]);
|
|
199
231
|
const loadingTasksForParents = useMemo(() => {
|
|
200
232
|
if (isFetchingExpandedFoldersTasks) {
|
|
201
233
|
return determineLoadingTaskFolders({
|
|
@@ -296,6 +328,24 @@ const useFetchOverviewData = ({
|
|
|
296
328
|
skip: !groupBy || !groupQueries.length || isLoadingModules
|
|
297
329
|
}
|
|
298
330
|
);
|
|
331
|
+
const visibleTasks = useMemo(() => {
|
|
332
|
+
const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList;
|
|
333
|
+
return new Set(allTasks.map((task) => task.id));
|
|
334
|
+
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, groupBy]);
|
|
335
|
+
const {
|
|
336
|
+
data: tasksLinks = [],
|
|
337
|
+
refetch: refetchTasksLinks,
|
|
338
|
+
isUninitialized: isUninitializedTasksLinks
|
|
339
|
+
} = useGetEntityLinksQuery(
|
|
340
|
+
{
|
|
341
|
+
projectName,
|
|
342
|
+
entityIds: Array.from(visibleTasks),
|
|
343
|
+
entityType: "task"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
skip: visibleTasks.size === 0
|
|
347
|
+
}
|
|
348
|
+
);
|
|
299
349
|
const handleFetchNextPage = (group) => {
|
|
300
350
|
if (groupBy) {
|
|
301
351
|
if (group && group in groupPageCounts) {
|
|
@@ -314,11 +364,15 @@ const useFetchOverviewData = ({
|
|
|
314
364
|
const { tasksMap, tasksByFolderMap } = useMemo(() => {
|
|
315
365
|
const tasksMap2 = /* @__PURE__ */ new Map();
|
|
316
366
|
const tasksByFolderMap2 = /* @__PURE__ */ new Map();
|
|
317
|
-
const addExtraDataToTask = (task) =>
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
367
|
+
const addExtraDataToTask = (task) => {
|
|
368
|
+
var _a;
|
|
369
|
+
return {
|
|
370
|
+
...task,
|
|
371
|
+
entityId: task.id,
|
|
372
|
+
entityType: "task",
|
|
373
|
+
links: ((_a = tasksLinks == null ? void 0 : tasksLinks.find((link) => link.id === task.id)) == null ? void 0 : _a.links) || []
|
|
374
|
+
};
|
|
375
|
+
};
|
|
322
376
|
const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList;
|
|
323
377
|
for (const task of allTasks) {
|
|
324
378
|
const taskId = task.id;
|
|
@@ -342,13 +396,15 @@ const useFetchOverviewData = ({
|
|
|
342
396
|
}
|
|
343
397
|
}
|
|
344
398
|
return { tasksMap: tasksMap2, tasksByFolderMap: tasksByFolderMap2 };
|
|
345
|
-
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks]);
|
|
399
|
+
}, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, tasksLinks]);
|
|
346
400
|
const reloadTableData = () => {
|
|
347
401
|
if (!isUninitializedFolders) refetchFolders();
|
|
348
402
|
if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks();
|
|
349
403
|
if (!isUninitializedTasksFolders) refetchTasksFolders();
|
|
350
404
|
if (!isUninitializedTasksList) refetchTasksList();
|
|
351
405
|
if (!isUninitializedGroupedTasks) refetchGroupedTasks();
|
|
406
|
+
if (!isUninitializedFoldersLinks) refetchFoldersLinks();
|
|
407
|
+
if (!isUninitializedTasksLinks) refetchTasksLinks();
|
|
352
408
|
};
|
|
353
409
|
return {
|
|
354
410
|
foldersMap,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["tasksMap","tasksByFolderMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\nimport { useGetEntityLinksQuery } from '@shared/api'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n\n const skipFoldersByTaskFilter = !queryFilters.filterString || !folders.length || !showHierarchy\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isSelectedInSlicer = selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isSelectedInSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [folders, foldersByTaskFilter, skipFoldersByTaskFilter, expanded, selectedFolders])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = useGetEntityLinksQuery({\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n })\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders, foldersLinks])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\n if (!groupBy?.id) return 'string'\n\n const groupById = groupBy.id\n\n // Handle special cases for built-in group types\n if (groupById === 'assignees' || groupById === 'tags') {\n return 'list_of_strings'\n }\n\n // Handle attribute-based grouping (format: \"attrib.attributeName\")\n if (groupById.startsWith('attrib.')) {\n const attributeName = groupById.split('.')[1]\n const attribute = attribFields.find((field) => field.name === attributeName)\n return attribute?.data?.type || 'string'\n }\n\n // Default fallback\n return 'string'\n }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n return new Set(allTasks.map((task) => task.id))\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, groupBy])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks, tasksLinks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["tasksMap","tasksByFolderMap"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const React = require("react");
|
|
|
4
4
|
const productTypes = require("../../../util/productTypes.cjs.js");
|
|
5
5
|
require("lodash");
|
|
6
6
|
require("react-toastify");
|
|
7
|
+
require("uuid");
|
|
7
8
|
require("../../../util/pubsub.cjs.js");
|
|
8
9
|
const useGetEntityTypeData = ({ projectInfo }) => {
|
|
9
10
|
const { folderTypes = [], taskTypes = [] } = projectInfo || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityTypeData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { ProjectModel, TaskType, FolderType } from '../types/project'\nimport { productTypes } from '@shared/util'\n\ntype Props = {\n projectInfo?: ProjectModel\n}\n\nexport const useGetEntityTypeData = ({ projectInfo }: Props) => {\n const { folderTypes = [], taskTypes = [] } = projectInfo || {}\n\n // create a map of folder types by name for efficient lookups\n const folderTypesByName = useMemo(() => {\n const map: Map<string, FolderType> = new Map()\n for (const folderType of folderTypes) {\n map.set(folderType.name, folderType)\n }\n return map\n }, [folderTypes])\n\n // create a map of task types by name for efficient lookups\n const taskTypesByName = useMemo(() => {\n const map: Map<string, TaskType> = new Map()\n for (const taskType of taskTypes) {\n map.set(taskType.name, taskType)\n }\n return map\n }, [taskTypes])\n\n // convert object to map for product types\n const productTypesByName = useMemo(() => {\n const map: Map<string, any> = new Map()\n for (const name in productTypes) {\n map.set(name, productTypes[name])\n }\n return map\n }, [productTypes])\n\n const getEntityTypeData = useCallback(\n (type: 'folder' | 'task' | 'product' | string | undefined, subType?: string) => {\n if (!type || !subType) return\n switch (type) {\n case 'folder':\n return folderTypesByName.get(subType)\n case 'task':\n return taskTypesByName.get(subType)\n case 'product':\n return productTypesByName.get(subType)\n\n default:\n break\n }\n },\n [folderTypesByName, taskTypesByName, productTypesByName],\n )\n\n return getEntityTypeData\n}\n"],"names":["useMemo","useCallback"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetEntityTypeData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { ProjectModel, TaskType, FolderType } from '../types/project'\nimport { productTypes } from '@shared/util'\n\ntype Props = {\n projectInfo?: ProjectModel\n}\n\nexport const useGetEntityTypeData = ({ projectInfo }: Props) => {\n const { folderTypes = [], taskTypes = [] } = projectInfo || {}\n\n // create a map of folder types by name for efficient lookups\n const folderTypesByName = useMemo(() => {\n const map: Map<string, FolderType> = new Map()\n for (const folderType of folderTypes) {\n map.set(folderType.name, folderType)\n }\n return map\n }, [folderTypes])\n\n // create a map of task types by name for efficient lookups\n const taskTypesByName = useMemo(() => {\n const map: Map<string, TaskType> = new Map()\n for (const taskType of taskTypes) {\n map.set(taskType.name, taskType)\n }\n return map\n }, [taskTypes])\n\n // convert object to map for product types\n const productTypesByName = useMemo(() => {\n const map: Map<string, any> = new Map()\n for (const name in productTypes) {\n map.set(name, productTypes[name])\n }\n return map\n }, [productTypes])\n\n const getEntityTypeData = useCallback(\n (type: 'folder' | 'task' | 'product' | string | undefined, subType?: string) => {\n if (!type || !subType) return\n switch (type) {\n case 'folder':\n return folderTypesByName.get(subType)\n case 'task':\n return taskTypesByName.get(subType)\n case 'product':\n return productTypesByName.get(subType)\n\n default:\n break\n }\n },\n [folderTypesByName, taskTypesByName, productTypesByName],\n )\n\n return getEntityTypeData\n}\n"],"names":["useMemo","useCallback"],"mappings":";;;;;;;;AAQO,MAAM,uBAAuB,CAAC,EAAE,kBAAyB;AACxD,QAAA,EAAE,cAAc,CAAC,GAAG,YAAY,CAAC,EAAA,IAAM,eAAe,CAAC;AAGvD,QAAA,oBAAoBA,MAAAA,QAAQ,MAAM;AAChC,UAAA,0BAAmC,IAAI;AAC7C,eAAW,cAAc,aAAa;AAChC,UAAA,IAAI,WAAW,MAAM,UAAU;AAAA,IAAA;AAE9B,WAAA;AAAA,EAAA,GACN,CAAC,WAAW,CAAC;AAGV,QAAA,kBAAkBA,MAAAA,QAAQ,MAAM;AAC9B,UAAA,0BAAiC,IAAI;AAC3C,eAAW,YAAY,WAAW;AAC5B,UAAA,IAAI,SAAS,MAAM,QAAQ;AAAA,IAAA;AAE1B,WAAA;AAAA,EAAA,GACN,CAAC,SAAS,CAAC;AAGR,QAAA,qBAAqBA,MAAAA,QAAQ,MAAM;AACjC,UAAA,0BAA4B,IAAI;AACtC,eAAW,QAAQ,cAAc;AAC/B,UAAI,IAAI,MAAM,aAAa,IAAI,CAAC;AAAA,IAAA;AAE3B,WAAA;AAAA,EAAA,GACN,CAAC,YAAY,CAAC;AAEjB,QAAM,oBAAoBC,MAAA;AAAA,IACxB,CAAC,MAA0D,YAAqB;AAC1E,UAAA,CAAC,QAAQ,CAAC,QAAS;AACvB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACI,iBAAA,kBAAkB,IAAI,OAAO;AAAA,QACtC,KAAK;AACI,iBAAA,gBAAgB,IAAI,OAAO;AAAA,QACpC,KAAK;AACI,iBAAA,mBAAmB,IAAI,OAAO;AAAA,MAGrC;AAAA,IAEN;AAAA,IACA,CAAC,mBAAmB,iBAAiB,kBAAkB;AAAA,EACzD;AAEO,SAAA;AACT;;"}
|
|
@@ -2,6 +2,7 @@ import { useMemo, useCallback } from "react";
|
|
|
2
2
|
import productTypes from "../../../util/productTypes.es.js";
|
|
3
3
|
import "lodash";
|
|
4
4
|
import "react-toastify";
|
|
5
|
+
import "uuid";
|
|
5
6
|
import "../../../util/pubsub.es.js";
|
|
6
7
|
const useGetEntityTypeData = ({ projectInfo }) => {
|
|
7
8
|
const { folderTypes = [], taskTypes = [] } = projectInfo || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityTypeData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { ProjectModel, TaskType, FolderType } from '../types/project'\nimport { productTypes } from '@shared/util'\n\ntype Props = {\n projectInfo?: ProjectModel\n}\n\nexport const useGetEntityTypeData = ({ projectInfo }: Props) => {\n const { folderTypes = [], taskTypes = [] } = projectInfo || {}\n\n // create a map of folder types by name for efficient lookups\n const folderTypesByName = useMemo(() => {\n const map: Map<string, FolderType> = new Map()\n for (const folderType of folderTypes) {\n map.set(folderType.name, folderType)\n }\n return map\n }, [folderTypes])\n\n // create a map of task types by name for efficient lookups\n const taskTypesByName = useMemo(() => {\n const map: Map<string, TaskType> = new Map()\n for (const taskType of taskTypes) {\n map.set(taskType.name, taskType)\n }\n return map\n }, [taskTypes])\n\n // convert object to map for product types\n const productTypesByName = useMemo(() => {\n const map: Map<string, any> = new Map()\n for (const name in productTypes) {\n map.set(name, productTypes[name])\n }\n return map\n }, [productTypes])\n\n const getEntityTypeData = useCallback(\n (type: 'folder' | 'task' | 'product' | string | undefined, subType?: string) => {\n if (!type || !subType) return\n switch (type) {\n case 'folder':\n return folderTypesByName.get(subType)\n case 'task':\n return taskTypesByName.get(subType)\n case 'product':\n return productTypesByName.get(subType)\n\n default:\n break\n }\n },\n [folderTypesByName, taskTypesByName, productTypesByName],\n )\n\n return getEntityTypeData\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetEntityTypeData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { ProjectModel, TaskType, FolderType } from '../types/project'\nimport { productTypes } from '@shared/util'\n\ntype Props = {\n projectInfo?: ProjectModel\n}\n\nexport const useGetEntityTypeData = ({ projectInfo }: Props) => {\n const { folderTypes = [], taskTypes = [] } = projectInfo || {}\n\n // create a map of folder types by name for efficient lookups\n const folderTypesByName = useMemo(() => {\n const map: Map<string, FolderType> = new Map()\n for (const folderType of folderTypes) {\n map.set(folderType.name, folderType)\n }\n return map\n }, [folderTypes])\n\n // create a map of task types by name for efficient lookups\n const taskTypesByName = useMemo(() => {\n const map: Map<string, TaskType> = new Map()\n for (const taskType of taskTypes) {\n map.set(taskType.name, taskType)\n }\n return map\n }, [taskTypes])\n\n // convert object to map for product types\n const productTypesByName = useMemo(() => {\n const map: Map<string, any> = new Map()\n for (const name in productTypes) {\n map.set(name, productTypes[name])\n }\n return map\n }, [productTypes])\n\n const getEntityTypeData = useCallback(\n (type: 'folder' | 'task' | 'product' | string | undefined, subType?: string) => {\n if (!type || !subType) return\n switch (type) {\n case 'folder':\n return folderTypesByName.get(subType)\n case 'task':\n return taskTypesByName.get(subType)\n case 'product':\n return productTypesByName.get(subType)\n\n default:\n break\n }\n },\n [folderTypesByName, taskTypesByName, productTypesByName],\n )\n\n return getEntityTypeData\n}\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,uBAAuB,CAAC,EAAE,kBAAyB;AACxD,QAAA,EAAE,cAAc,CAAC,GAAG,YAAY,CAAC,EAAA,IAAM,eAAe,CAAC;AAGvD,QAAA,oBAAoB,QAAQ,MAAM;AAChC,UAAA,0BAAmC,IAAI;AAC7C,eAAW,cAAc,aAAa;AAChC,UAAA,IAAI,WAAW,MAAM,UAAU;AAAA,IAAA;AAE9B,WAAA;AAAA,EAAA,GACN,CAAC,WAAW,CAAC;AAGV,QAAA,kBAAkB,QAAQ,MAAM;AAC9B,UAAA,0BAAiC,IAAI;AAC3C,eAAW,YAAY,WAAW;AAC5B,UAAA,IAAI,SAAS,MAAM,QAAQ;AAAA,IAAA;AAE1B,WAAA;AAAA,EAAA,GACN,CAAC,SAAS,CAAC;AAGR,QAAA,qBAAqB,QAAQ,MAAM;AACjC,UAAA,0BAA4B,IAAI;AACtC,eAAW,QAAQ,cAAc;AAC/B,UAAI,IAAI,MAAM,aAAa,IAAI,CAAC;AAAA,IAAA;AAE3B,WAAA;AAAA,EAAA,GACN,CAAC,YAAY,CAAC;AAEjB,QAAM,oBAAoB;AAAA,IACxB,CAAC,MAA0D,YAAqB;AAC1E,UAAA,CAAC,QAAQ,CAAC,QAAS;AACvB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACI,iBAAA,kBAAkB,IAAI,OAAO;AAAA,QACtC,KAAK;AACI,iBAAA,gBAAgB,IAAI,OAAO;AAAA,QACpC,KAAK;AACI,iBAAA,mBAAmB,IAAI,OAAO;AAAA,MAGrC;AAAA,IAEN;AAAA,IACA,CAAC,mBAAmB,iBAAiB,kBAAkB;AAAA,EACzD;AAEO,SAAA;AACT;"}
|