@ynput/ayon-frontend-shared 0.2.14 → 0.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +10 -0
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +10 -0
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +39 -1
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +41 -3
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +4 -4
- package/dist/_virtual/index.cjs5.js +3 -5
- package/dist/_virtual/index.cjs5.js.map +1 -1
- package/dist/_virtual/index.cjs6.js +5 -3
- package/dist/_virtual/index.cjs6.js.map +1 -1
- 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.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +4 -4
- package/dist/api.cjs.js +7 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +9 -2
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +12 -0
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +12 -0
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +4 -0
- package/dist/context.cjs.js.map +1 -1
- package/dist/context.es.js +4 -0
- package/dist/context.es.js.map +1 -1
- package/dist/index.cjs.js +10 -0
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +10 -0
- package/dist/index.es.js.map +1 -1
- package/dist/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/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/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/generated/actions.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/actions.es.js.map +1 -1
- package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/addons.es.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/events.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/events.es.js.map +1 -1
- package/dist/shared/src/api/generated/files.cjs.js +5 -0
- package/dist/shared/src/api/generated/files.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/files.es.js +5 -0
- package/dist/shared/src/api/generated/files.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +24 -0
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +24 -0
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/grouping.cjs.js +18 -0
- package/dist/shared/src/api/generated/grouping.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/grouping.es.js +18 -0
- package/dist/shared/src/api/generated/grouping.es.js.map +1 -0
- package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/operations.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js +16 -0
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js +16 -0
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/reviewables.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/reviewables.es.js.map +1 -1
- package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/system.es.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
- package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/users.es.js.map +1 -1
- 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/entities/getEntity.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +2 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +47 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +47 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +64 -3
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +64 -3
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +2 -0
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +2 -0
- 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/project/getProject.cjs.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +2 -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/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/AttributeEditor/AttributeEditor.cjs.js +2 -2
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +2 -2
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- package/dist/shared/src/components/Badge/Badge.cjs.js +31 -0
- package/dist/shared/src/components/Badge/Badge.cjs.js.map +1 -0
- package/dist/shared/src/components/Badge/Badge.es.js +31 -0
- package/dist/shared/src/components/Badge/Badge.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +2 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.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/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +10 -0
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +10 -0
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +69 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +69 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +48 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +102 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +102 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +13 -0
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PricingLink.es.js +13 -0
- package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +4 -10
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +1 -7
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +142 -3
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +142 -3
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js +13 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js +13 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +50 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +50 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -0
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.cjs.js +5 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.es.js +5 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js +5 -5
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js +5 -5
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +100 -79
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +100 -79
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +94 -17
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +95 -18
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +10 -0
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +10 -0
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +8 -7
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -7
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +6 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +223 -19
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +224 -20
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +10 -0
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +10 -0
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +3 -0
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +3 -0
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +10 -0
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +10 -0
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js +22 -0
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js +22 -0
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js +26 -7
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js +26 -7
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +19 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +19 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +11 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +11 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +3 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -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 +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +2 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +2 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.cjs.js +8 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.es.js +9 -2
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js +9 -0
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js +10 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.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 +3 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +3 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +54 -26
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +55 -27
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +53 -14
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +53 -14
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +205 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +205 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +25 -12
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +25 -12
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +11 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +11 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +54 -10
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +55 -11
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js +137 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js +137 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- 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 +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +187 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +187 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.cjs.js → useBuildProjectDataTable.cjs.js} +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.es.js → useBuildProjectDataTable.es.js} +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +64 -31
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +64 -31
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js +24 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js +24 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +16 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +16 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.cjs.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.es.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.cjs.js +30 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.es.js +30 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +363 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +363 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +16 -12
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +16 -13
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +239 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +239 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +40 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +40 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.cjs.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.es.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +7 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +7 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +12 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +12 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.cjs.js +8 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.es.js +8 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.cjs.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.es.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +109 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +109 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js +29 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js +30 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +0 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +0 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +10 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +10 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +3 -0
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +3 -0
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +170 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -0
- package/dist/shared/src/context/PowerpackContext.es.js +170 -0
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +7 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +8 -2
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +3 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js +8 -2
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js +8 -2
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.cjs.js +7 -1
- package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.es.js +7 -1
- package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
- package/dist/shared/src/util/getEntityTypeIcon.cjs.js +9 -0
- package/dist/shared/src/util/getEntityTypeIcon.cjs.js.map +1 -1
- package/dist/shared/src/util/getEntityTypeIcon.es.js +9 -0
- package/dist/shared/src/util/getEntityTypeIcon.es.js.map +1 -1
- package/dist/types/api/generated/actions.d.ts +2 -1
- package/dist/types/api/generated/addons.d.ts +8 -1
- package/dist/types/api/generated/anatomy.d.ts +1 -14
- package/dist/types/api/generated/attributes.d.ts +4 -2
- package/dist/types/api/generated/configuration.d.ts +6 -0
- package/dist/types/api/generated/entityLists.d.ts +2 -0
- package/dist/types/api/generated/events.d.ts +1 -1
- package/dist/types/api/generated/files.d.ts +11 -0
- package/dist/types/api/generated/graphql.d.ts +33 -38
- package/dist/types/api/generated/grouping.d.ts +40 -0
- package/dist/types/api/generated/index.d.ts +3 -1
- package/dist/types/api/generated/operations.d.ts +1 -1
- package/dist/types/api/generated/projects.d.ts +59 -0
- package/dist/types/api/generated/reviewables.d.ts +1 -0
- package/dist/types/api/generated/system.d.ts +5 -3
- package/dist/types/api/generated/tasks.d.ts +15 -1
- package/dist/types/api/generated/users.d.ts +1 -4
- package/dist/types/api/queries/activities/getActivities.d.ts +4 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +8 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +4 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +4 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +4 -0
- package/dist/types/api/queries/grouping/getGrouping.d.ts +137 -0
- package/dist/types/api/queries/grouping/index.d.ts +1 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +222 -482
- package/dist/types/api/queries/project/getProject.d.ts +6 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +4 -0
- package/dist/types/api/queries/users/getUsers.d.ts +4 -0
- package/dist/types/components/Badge/Badge.d.ts +10 -0
- package/dist/types/components/Badge/index.d.ts +1 -0
- package/dist/types/components/Powerpack/PowerpackButton.d.ts +7 -0
- package/dist/types/components/Powerpack/PowerpackDialog.d.ts +4 -0
- package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +8 -0
- package/dist/types/components/Powerpack/PricingLink.d.ts +4 -0
- package/dist/types/components/Powerpack/index.d.ts +3 -0
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +3 -2
- package/dist/types/components/ProjectTableSettings/TableSettings.styled.d.ts +1 -0
- package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +10 -0
- package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
- package/dist/types/components/ReviewableProgressCard/ReviewableProgressCard.d.ts +1 -1
- package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +19 -3
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +4 -0
- package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +2 -1
- package/dist/types/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +3 -1
- package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +11 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +22 -5
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableModulesContext.d.ts +32 -0
- package/dist/types/containers/ProjectTreeTable/context/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +13 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +30 -0
- package/dist/types/containers/ProjectTreeTable/hooks/{useOverviewTable.d.ts → useBuildProjectDataTable.d.ts} +3 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +15 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnSorting.d.ts +12 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useEntitiesMap.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useExpandedState.d.ts +11 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +37 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useGetGroupedFields.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useGetTaskGroups.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useScopedAttributeFields.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -4
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +46 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +13 -5
- package/dist/types/containers/ProjectTreeTable/utils/errorExtraction.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/localStorageKeys.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/widgets/GroupHeaderWidget.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/widgets/LoadMoreWidget.d.ts +8 -0
- package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
- package/dist/types/context/PowerpackContext.d.ts +21 -0
- package/dist/types/context/index.d.ts +1 -0
- package/dist/types/hooks/useLoadModule.d.ts +2 -1
- package/dist/types/util/getAttributeIcon.d.ts +1 -1
- package/dist/types/util/getEntityTypeIcon.d.ts +1 -0
- package/dist/types/utils/extractVersionFromFilename.d.ts +5 -0
- package/dist/util.cjs.js +1 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +2 -1
- package/package.json +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["gqlApi","projects","PubSub","projectQueries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["gqlApi","projects","PubSub","projectQueries"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ import "../../generated/users.es.js";
|
|
|
33
33
|
import "../../generated/versions.es.js";
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
|
+
import "../../generated/grouping.es.js";
|
|
36
37
|
import "../project/getProject.es.js";
|
|
37
38
|
import { projectQueries as projectApi } from "../project/updateProject.es.js";
|
|
38
39
|
import "lodash";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["gqlApi","projects","projectQueries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["gqlApi","projects","projectQueries"],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ const users = require("../../generated/users.cjs.js");
|
|
|
35
35
|
require("../../generated/versions.cjs.js");
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
|
+
require("../../generated/grouping.cjs.js");
|
|
38
39
|
require("../actions/getActions.cjs.js");
|
|
39
40
|
require("../activities/getActivities.cjs.js");
|
|
40
41
|
require("../activities/updateActivities.cjs.js");
|
|
@@ -64,6 +65,7 @@ require("../userDashboard/getUserDashboard.cjs.js");
|
|
|
64
65
|
require("./updateUsers.cjs.js");
|
|
65
66
|
require("../watchers/getWatchers.cjs.js");
|
|
66
67
|
require("../permissions/getPermissions.cjs.js");
|
|
68
|
+
require("../grouping/getGrouping.cjs.js");
|
|
67
69
|
const USER_BY_NAME_QUERY = `
|
|
68
70
|
query UserList($name:String!) {
|
|
69
71
|
users(name: $name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["usersApi","gqlApi","parseAllAttribs","users","_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["usersApi","gqlApi","parseAllAttribs","users","_a"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ import { api as injectedRtkApi } from "../../generated/users.es.js";
|
|
|
33
33
|
import "../../generated/versions.es.js";
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
|
+
import "../../generated/grouping.es.js";
|
|
36
37
|
import "../actions/getActions.es.js";
|
|
37
38
|
import "../activities/getActivities.es.js";
|
|
38
39
|
import "../activities/updateActivities.es.js";
|
|
@@ -62,6 +63,7 @@ import "../userDashboard/getUserDashboard.es.js";
|
|
|
62
63
|
import "./updateUsers.es.js";
|
|
63
64
|
import "../watchers/getWatchers.es.js";
|
|
64
65
|
import "../permissions/getPermissions.es.js";
|
|
66
|
+
import "../grouping/getGrouping.es.js";
|
|
65
67
|
const USER_BY_NAME_QUERY = `
|
|
66
68
|
query UserList($name:String!) {
|
|
67
69
|
users(name: $name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["usersApi","gqlApi","_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["usersApi","gqlApi","_a"],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ const users = require("../../generated/users.cjs.js");
|
|
|
35
35
|
require("../../generated/versions.cjs.js");
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
|
+
require("../../generated/grouping.cjs.js");
|
|
38
39
|
const updateUserApi = users.api.enhanceEndpoints({
|
|
39
40
|
endpoints: {
|
|
40
41
|
deleteUser: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateUsers.cjs.js","sources":["../../../../../../src/api/queries/users/updateUsers.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { usersApi } from '@shared/api/generated'\n\nconst updateUserApi = usersApi.enhanceEndpoints({\n endpoints: {\n deleteUser: {\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n },\n setFrontendPreferences: {\n // @ts-expect-error - disableInvalidations is not in the api\n invalidatesTags: (_result, _error, { userName, disableInvalidations }) =>\n !disableInvalidations ? [{ type: 'user', id: userName }, 'info'] : [],\n async onQueryStarted({ patchData }, { dispatch, queryFulfilled, getState }) {\n // get current preferences\n\n // optimistic update the user cache\n const patch = dispatch(\n usersApi.util.updateQueryData('getCurrentUser', undefined, (draft) => {\n if (draft?.data) {\n draft.data.frontendPreferences = { ...draft.data.frontendPreferences, ...patchData }\n }\n }),\n )\n try {\n await queryFulfilled\n } catch {\n // rollback the optimistic update if the query fails\n patch.undo()\n }\n }, // onQueryStarted\n },\n },\n})\n\nconst updateUser = updateUserApi.injectEndpoints({\n endpoints: (build) => ({\n updateUser: build.mutation({\n query: ({ name, patch }) => ({\n url: `/api/users/${name}`,\n method: 'PATCH',\n body: patch,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n { type: 'userPool', id: 'LIST' },\n { type: 'feedback', id: 'LIST' },\n 'info',\n ],\n }),\n updateUserName: build.mutation({\n query: ({ name, newName }) => ({\n url: `/api/users/${name}/rename`,\n method: 'PATCH',\n body: { newName },\n }),\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n ],\n transformErrorResponse: (res) => res.data,\n }),\n updateUserPassword: build.mutation({\n query: ({ name, password }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { password },\n }),\n invalidatesTags: () => ['user'],\n transformErrorResponse: (res) => res.data,\n }),\n addUser: build.mutation({\n query: ({ name, user }) => ({\n url: `/api/users/${name}`,\n method: 'PUT',\n body: user,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: [{ type: 'user', id: 'LIST' }],\n }),\n updateUserAPIKey: build.mutation({\n query: ({ name, apiKey }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { apiKey },\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n }),\n invalidateUserSession: build.mutation({\n query: ({ name, token }) => ({\n url: `/api/users/${name}/sessions/${token}`,\n method: 'DELETE',\n }),\n invalidatesTags: (_res, _err, { token }) => [{ type: 'session', id: token }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst updateUser2 = updateUser.injectEndpoints({\n endpoints: (build) => ({\n // update multiple users at once\n updateUsers: build.mutation<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any[],\n { name: string; patch: object }[]\n >({\n //\n queryFn: async (updates, { dispatch }) => {\n const results = await Promise.all(\n updates.map(({ name, patch }: { name: string; patch: object }) => {\n return dispatch(updateUser.endpoints.updateUser.initiate({ name, patch }))\n }),\n )\n\n // Check if any of the results have an error\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const firstError = results.find((result: any) => result.error)\n if (firstError) {\n return { error: firstError.error as FetchBaseQueryError }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return { data: results.map((result: any) => result.data) }\n },\n }),\n }),\n})\n\nexport const {\n useUpdateUserMutation,\n useUpdateUsersMutation,\n useUpdateUserNameMutation,\n useUpdateUserPasswordMutation,\n useAddUserMutation,\n useDeleteUserMutation,\n useUpdateUserAPIKeyMutation,\n useInvalidateUserSessionMutation,\n useSetFrontendPreferencesMutation,\n} = updateUser2\nexport { updateUser2 as userQueries }\n"],"names":["usersApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"updateUsers.cjs.js","sources":["../../../../../../src/api/queries/users/updateUsers.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { usersApi } from '@shared/api/generated'\n\nconst updateUserApi = usersApi.enhanceEndpoints({\n endpoints: {\n deleteUser: {\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n },\n setFrontendPreferences: {\n // @ts-expect-error - disableInvalidations is not in the api\n invalidatesTags: (_result, _error, { userName, disableInvalidations }) =>\n !disableInvalidations ? [{ type: 'user', id: userName }, 'info'] : [],\n async onQueryStarted({ patchData }, { dispatch, queryFulfilled, getState }) {\n // get current preferences\n\n // optimistic update the user cache\n const patch = dispatch(\n usersApi.util.updateQueryData('getCurrentUser', undefined, (draft) => {\n if (draft?.data) {\n draft.data.frontendPreferences = { ...draft.data.frontendPreferences, ...patchData }\n }\n }),\n )\n try {\n await queryFulfilled\n } catch {\n // rollback the optimistic update if the query fails\n patch.undo()\n }\n }, // onQueryStarted\n },\n },\n})\n\nconst updateUser = updateUserApi.injectEndpoints({\n endpoints: (build) => ({\n updateUser: build.mutation({\n query: ({ name, patch }) => ({\n url: `/api/users/${name}`,\n method: 'PATCH',\n body: patch,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n { type: 'userPool', id: 'LIST' },\n { type: 'feedback', id: 'LIST' },\n 'info',\n ],\n }),\n updateUserName: build.mutation({\n query: ({ name, newName }) => ({\n url: `/api/users/${name}/rename`,\n method: 'PATCH',\n body: { newName },\n }),\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n ],\n transformErrorResponse: (res) => res.data,\n }),\n updateUserPassword: build.mutation({\n query: ({ name, password }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { password },\n }),\n invalidatesTags: () => ['user'],\n transformErrorResponse: (res) => res.data,\n }),\n addUser: build.mutation({\n query: ({ name, user }) => ({\n url: `/api/users/${name}`,\n method: 'PUT',\n body: user,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: [{ type: 'user', id: 'LIST' }],\n }),\n updateUserAPIKey: build.mutation({\n query: ({ name, apiKey }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { apiKey },\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n }),\n invalidateUserSession: build.mutation({\n query: ({ name, token }) => ({\n url: `/api/users/${name}/sessions/${token}`,\n method: 'DELETE',\n }),\n invalidatesTags: (_res, _err, { token }) => [{ type: 'session', id: token }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst updateUser2 = updateUser.injectEndpoints({\n endpoints: (build) => ({\n // update multiple users at once\n updateUsers: build.mutation<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any[],\n { name: string; patch: object }[]\n >({\n //\n queryFn: async (updates, { dispatch }) => {\n const results = await Promise.all(\n updates.map(({ name, patch }: { name: string; patch: object }) => {\n return dispatch(updateUser.endpoints.updateUser.initiate({ name, patch }))\n }),\n )\n\n // Check if any of the results have an error\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const firstError = results.find((result: any) => result.error)\n if (firstError) {\n return { error: firstError.error as FetchBaseQueryError }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return { data: results.map((result: any) => result.data) }\n },\n }),\n }),\n})\n\nexport const {\n useUpdateUserMutation,\n useUpdateUsersMutation,\n useUpdateUserNameMutation,\n useUpdateUserPasswordMutation,\n useAddUserMutation,\n useDeleteUserMutation,\n useUpdateUserAPIKeyMutation,\n useInvalidateUserSessionMutation,\n useSetFrontendPreferencesMutation,\n} = updateUser2\nexport { updateUser2 as userQueries }\n"],"names":["usersApi"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ import { api as injectedRtkApi } from "../../generated/users.es.js";
|
|
|
33
33
|
import "../../generated/versions.es.js";
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
|
+
import "../../generated/grouping.es.js";
|
|
36
37
|
const updateUserApi = injectedRtkApi.enhanceEndpoints({
|
|
37
38
|
endpoints: {
|
|
38
39
|
deleteUser: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateUsers.es.js","sources":["../../../../../../src/api/queries/users/updateUsers.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { usersApi } from '@shared/api/generated'\n\nconst updateUserApi = usersApi.enhanceEndpoints({\n endpoints: {\n deleteUser: {\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n },\n setFrontendPreferences: {\n // @ts-expect-error - disableInvalidations is not in the api\n invalidatesTags: (_result, _error, { userName, disableInvalidations }) =>\n !disableInvalidations ? [{ type: 'user', id: userName }, 'info'] : [],\n async onQueryStarted({ patchData }, { dispatch, queryFulfilled, getState }) {\n // get current preferences\n\n // optimistic update the user cache\n const patch = dispatch(\n usersApi.util.updateQueryData('getCurrentUser', undefined, (draft) => {\n if (draft?.data) {\n draft.data.frontendPreferences = { ...draft.data.frontendPreferences, ...patchData }\n }\n }),\n )\n try {\n await queryFulfilled\n } catch {\n // rollback the optimistic update if the query fails\n patch.undo()\n }\n }, // onQueryStarted\n },\n },\n})\n\nconst updateUser = updateUserApi.injectEndpoints({\n endpoints: (build) => ({\n updateUser: build.mutation({\n query: ({ name, patch }) => ({\n url: `/api/users/${name}`,\n method: 'PATCH',\n body: patch,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n { type: 'userPool', id: 'LIST' },\n { type: 'feedback', id: 'LIST' },\n 'info',\n ],\n }),\n updateUserName: build.mutation({\n query: ({ name, newName }) => ({\n url: `/api/users/${name}/rename`,\n method: 'PATCH',\n body: { newName },\n }),\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n ],\n transformErrorResponse: (res) => res.data,\n }),\n updateUserPassword: build.mutation({\n query: ({ name, password }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { password },\n }),\n invalidatesTags: () => ['user'],\n transformErrorResponse: (res) => res.data,\n }),\n addUser: build.mutation({\n query: ({ name, user }) => ({\n url: `/api/users/${name}`,\n method: 'PUT',\n body: user,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: [{ type: 'user', id: 'LIST' }],\n }),\n updateUserAPIKey: build.mutation({\n query: ({ name, apiKey }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { apiKey },\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n }),\n invalidateUserSession: build.mutation({\n query: ({ name, token }) => ({\n url: `/api/users/${name}/sessions/${token}`,\n method: 'DELETE',\n }),\n invalidatesTags: (_res, _err, { token }) => [{ type: 'session', id: token }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst updateUser2 = updateUser.injectEndpoints({\n endpoints: (build) => ({\n // update multiple users at once\n updateUsers: build.mutation<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any[],\n { name: string; patch: object }[]\n >({\n //\n queryFn: async (updates, { dispatch }) => {\n const results = await Promise.all(\n updates.map(({ name, patch }: { name: string; patch: object }) => {\n return dispatch(updateUser.endpoints.updateUser.initiate({ name, patch }))\n }),\n )\n\n // Check if any of the results have an error\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const firstError = results.find((result: any) => result.error)\n if (firstError) {\n return { error: firstError.error as FetchBaseQueryError }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return { data: results.map((result: any) => result.data) }\n },\n }),\n }),\n})\n\nexport const {\n useUpdateUserMutation,\n useUpdateUsersMutation,\n useUpdateUserNameMutation,\n useUpdateUserPasswordMutation,\n useAddUserMutation,\n useDeleteUserMutation,\n useUpdateUserAPIKeyMutation,\n useInvalidateUserSessionMutation,\n useSetFrontendPreferencesMutation,\n} = updateUser2\nexport { updateUser2 as userQueries }\n"],"names":["usersApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"updateUsers.es.js","sources":["../../../../../../src/api/queries/users/updateUsers.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { usersApi } from '@shared/api/generated'\n\nconst updateUserApi = usersApi.enhanceEndpoints({\n endpoints: {\n deleteUser: {\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n },\n setFrontendPreferences: {\n // @ts-expect-error - disableInvalidations is not in the api\n invalidatesTags: (_result, _error, { userName, disableInvalidations }) =>\n !disableInvalidations ? [{ type: 'user', id: userName }, 'info'] : [],\n async onQueryStarted({ patchData }, { dispatch, queryFulfilled, getState }) {\n // get current preferences\n\n // optimistic update the user cache\n const patch = dispatch(\n usersApi.util.updateQueryData('getCurrentUser', undefined, (draft) => {\n if (draft?.data) {\n draft.data.frontendPreferences = { ...draft.data.frontendPreferences, ...patchData }\n }\n }),\n )\n try {\n await queryFulfilled\n } catch {\n // rollback the optimistic update if the query fails\n patch.undo()\n }\n }, // onQueryStarted\n },\n },\n})\n\nconst updateUser = updateUserApi.injectEndpoints({\n endpoints: (build) => ({\n updateUser: build.mutation({\n query: ({ name, patch }) => ({\n url: `/api/users/${name}`,\n method: 'PATCH',\n body: patch,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n { type: 'userPool', id: 'LIST' },\n { type: 'feedback', id: 'LIST' },\n 'info',\n ],\n }),\n updateUserName: build.mutation({\n query: ({ name, newName }) => ({\n url: `/api/users/${name}/rename`,\n method: 'PATCH',\n body: { newName },\n }),\n invalidatesTags: (_result, _error, { name }) => [\n { type: 'user', id: name },\n { type: 'user', id: 'LIST' },\n ],\n transformErrorResponse: (res) => res.data,\n }),\n updateUserPassword: build.mutation({\n query: ({ name, password }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { password },\n }),\n invalidatesTags: () => ['user'],\n transformErrorResponse: (res) => res.data,\n }),\n addUser: build.mutation({\n query: ({ name, user }) => ({\n url: `/api/users/${name}`,\n method: 'PUT',\n body: user,\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: [{ type: 'user', id: 'LIST' }],\n }),\n updateUserAPIKey: build.mutation({\n query: ({ name, apiKey }) => ({\n url: `/api/users/${name}/password`,\n method: 'PATCH',\n body: { apiKey },\n }),\n transformErrorResponse: (res) => res.data,\n invalidatesTags: () => [{ type: 'user', id: 'LIST' }],\n }),\n invalidateUserSession: build.mutation({\n query: ({ name, token }) => ({\n url: `/api/users/${name}/sessions/${token}`,\n method: 'DELETE',\n }),\n invalidatesTags: (_res, _err, { token }) => [{ type: 'session', id: token }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst updateUser2 = updateUser.injectEndpoints({\n endpoints: (build) => ({\n // update multiple users at once\n updateUsers: build.mutation<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any[],\n { name: string; patch: object }[]\n >({\n //\n queryFn: async (updates, { dispatch }) => {\n const results = await Promise.all(\n updates.map(({ name, patch }: { name: string; patch: object }) => {\n return dispatch(updateUser.endpoints.updateUser.initiate({ name, patch }))\n }),\n )\n\n // Check if any of the results have an error\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const firstError = results.find((result: any) => result.error)\n if (firstError) {\n return { error: firstError.error as FetchBaseQueryError }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return { data: results.map((result: any) => result.data) }\n },\n }),\n }),\n})\n\nexport const {\n useUpdateUserMutation,\n useUpdateUsersMutation,\n useUpdateUserNameMutation,\n useUpdateUserPasswordMutation,\n useAddUserMutation,\n useDeleteUserMutation,\n useUpdateUserAPIKeyMutation,\n useInvalidateUserSessionMutation,\n useSetFrontendPreferencesMutation,\n} = updateUser2\nexport { updateUser2 as userQueries }\n"],"names":["usersApi"],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ require("../../generated/users.cjs.js");
|
|
|
35
35
|
require("../../generated/versions.cjs.js");
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
|
+
require("../../generated/grouping.cjs.js");
|
|
38
39
|
const enhancedApi = activityFeed.api.enhanceEndpoints({
|
|
39
40
|
endpoints: {
|
|
40
41
|
getEntityWatchers: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWatchers.cjs.js","sources":["../../../../../../src/api/queries/watchers/getWatchers.ts"],"sourcesContent":["import { activityFeedApi, GetEntityWatchersApiArg } from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = activityFeedApi.enhanceEndpoints({\n endpoints: {\n getEntityWatchers: {},\n setEntityWatchers: {},\n },\n})\n\ntype GetEntitiesWatchersApiArg = {\n entities: GetEntityWatchersApiArg[]\n}\n\ninterface GetEntitiesWatchers extends GetEntityWatchersApiArg {\n watchers: string[]\n}\n\ntype GetEntitiesWatchersResult = GetEntitiesWatchers[]\n\ntype SetEntitiesWatchersApiArg = {\n entities: GetEntitiesWatchers[]\n}\n\n// GET WATCHERS\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getEntitiesWatchers: build.query<GetEntitiesWatchersResult, GetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n try {\n const entitiesWatchers = await Promise.all(\n entities.map(async (entity) => {\n const result = await dispatch(\n enhancedApi.endpoints.getEntityWatchers.initiate(entity, { forceRefetch: true }),\n )\n return {\n ...entity,\n watchers: result.data?.watchers || [],\n }\n }),\n )\n\n return { data: entitiesWatchers }\n } catch (error) {\n // handle errors appropriately\n console.error(error)\n throw error\n }\n },\n providesTags: (_result, _error, { entities }) =>\n entities.flatMap((entity) => [\n { type: 'watchers', id: entity.entityId },\n { type: 'watchers', id: `${entity.entityType.toUpperCase()}-LIST` },\n ]),\n }),\n }),\n})\n\n// UPDATE WATCHERS\nconst injectedApi2 = injectedApi.injectEndpoints({\n endpoints: (build) => ({\n setEntitiesWatchers: build.mutation<undefined, SetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n const promises = entities.map((entity) =>\n dispatch(\n enhancedApi.endpoints.setEntityWatchers.initiate({\n entityId: entity.entityId,\n entityType: entity.entityType,\n projectName: entity.projectName,\n watchersModel: { watchers: entity.watchers },\n }),\n ),\n )\n\n try {\n await Promise.all(promises)\n return { data: undefined }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted({ entities }, { dispatch, queryFulfilled, getState }) {\n const state = getState()\n const tags = entities.map((entity) => ({ type: 'watchers', id: entity.entityId }))\n // find all the affected query combinations by seeing which queries are invalidated by the tags\n const entries = enhancedApi.util.selectInvalidatedBy(state, tags)\n\n let patches: any[] = []\n\n try {\n // now update the cache for all affected queries\n entries.forEach((entry) => {\n const patch = dispatch(\n injectedApi.util.updateQueryData(\n 'getEntitiesWatchers',\n entry.originalArgs,\n (draft) => {\n entry.originalArgs.entities.forEach((entryEntity: GetEntityWatchersApiArg) => {\n // find the entity patch\n const entity = entities.find((e) => e.entityId === entryEntity.entityId)\n if (!entity) return\n // find the entity in the draft\n const entityDraft = draft.find((e) => e.entityId === entity.entityId)\n if (!entityDraft) throw new Error('Entity draft not found')\n const watchersPatch = entity.watchers\n\n // update draft\n entityDraft.watchers = watchersPatch\n })\n },\n ),\n )\n patches.push(patch)\n })\n\n await queryFulfilled\n } catch (error: any) {\n const message = `Error: ${error?.error?.data?.detail}` as any\n console.error(message, error)\n patches.forEach((patch) => patch?.undo())\n }\n },\n // invalidates all versions if any of the entities are tasks\n invalidatesTags: (_result, _error, { entities }) =>\n entities.some((entity) => entity.entityType === 'task')\n ? [{ type: 'watchers', id: 'VERSION-LIST' }]\n : [],\n }),\n }),\n})\n\nexport const { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } = injectedApi2\nexport { injectedApi2 as watchersQueries }\n"],"names":["activityFeedApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getWatchers.cjs.js","sources":["../../../../../../src/api/queries/watchers/getWatchers.ts"],"sourcesContent":["import { activityFeedApi, GetEntityWatchersApiArg } from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = activityFeedApi.enhanceEndpoints({\n endpoints: {\n getEntityWatchers: {},\n setEntityWatchers: {},\n },\n})\n\ntype GetEntitiesWatchersApiArg = {\n entities: GetEntityWatchersApiArg[]\n}\n\ninterface GetEntitiesWatchers extends GetEntityWatchersApiArg {\n watchers: string[]\n}\n\ntype GetEntitiesWatchersResult = GetEntitiesWatchers[]\n\ntype SetEntitiesWatchersApiArg = {\n entities: GetEntitiesWatchers[]\n}\n\n// GET WATCHERS\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getEntitiesWatchers: build.query<GetEntitiesWatchersResult, GetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n try {\n const entitiesWatchers = await Promise.all(\n entities.map(async (entity) => {\n const result = await dispatch(\n enhancedApi.endpoints.getEntityWatchers.initiate(entity, { forceRefetch: true }),\n )\n return {\n ...entity,\n watchers: result.data?.watchers || [],\n }\n }),\n )\n\n return { data: entitiesWatchers }\n } catch (error) {\n // handle errors appropriately\n console.error(error)\n throw error\n }\n },\n providesTags: (_result, _error, { entities }) =>\n entities.flatMap((entity) => [\n { type: 'watchers', id: entity.entityId },\n { type: 'watchers', id: `${entity.entityType.toUpperCase()}-LIST` },\n ]),\n }),\n }),\n})\n\n// UPDATE WATCHERS\nconst injectedApi2 = injectedApi.injectEndpoints({\n endpoints: (build) => ({\n setEntitiesWatchers: build.mutation<undefined, SetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n const promises = entities.map((entity) =>\n dispatch(\n enhancedApi.endpoints.setEntityWatchers.initiate({\n entityId: entity.entityId,\n entityType: entity.entityType,\n projectName: entity.projectName,\n watchersModel: { watchers: entity.watchers },\n }),\n ),\n )\n\n try {\n await Promise.all(promises)\n return { data: undefined }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted({ entities }, { dispatch, queryFulfilled, getState }) {\n const state = getState()\n const tags = entities.map((entity) => ({ type: 'watchers', id: entity.entityId }))\n // find all the affected query combinations by seeing which queries are invalidated by the tags\n const entries = enhancedApi.util.selectInvalidatedBy(state, tags)\n\n let patches: any[] = []\n\n try {\n // now update the cache for all affected queries\n entries.forEach((entry) => {\n const patch = dispatch(\n injectedApi.util.updateQueryData(\n 'getEntitiesWatchers',\n entry.originalArgs,\n (draft) => {\n entry.originalArgs.entities.forEach((entryEntity: GetEntityWatchersApiArg) => {\n // find the entity patch\n const entity = entities.find((e) => e.entityId === entryEntity.entityId)\n if (!entity) return\n // find the entity in the draft\n const entityDraft = draft.find((e) => e.entityId === entity.entityId)\n if (!entityDraft) throw new Error('Entity draft not found')\n const watchersPatch = entity.watchers\n\n // update draft\n entityDraft.watchers = watchersPatch\n })\n },\n ),\n )\n patches.push(patch)\n })\n\n await queryFulfilled\n } catch (error: any) {\n const message = `Error: ${error?.error?.data?.detail}` as any\n console.error(message, error)\n patches.forEach((patch) => patch?.undo())\n }\n },\n // invalidates all versions if any of the entities are tasks\n invalidatesTags: (_result, _error, { entities }) =>\n entities.some((entity) => entity.entityType === 'task')\n ? [{ type: 'watchers', id: 'VERSION-LIST' }]\n : [],\n }),\n }),\n})\n\nexport const { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } = injectedApi2\nexport { injectedApi2 as watchersQueries }\n"],"names":["activityFeedApi"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ import "../../generated/users.es.js";
|
|
|
33
33
|
import "../../generated/versions.es.js";
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
|
+
import "../../generated/grouping.es.js";
|
|
36
37
|
const enhancedApi = injectedRtkApi.enhanceEndpoints({
|
|
37
38
|
endpoints: {
|
|
38
39
|
getEntityWatchers: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWatchers.es.js","sources":["../../../../../../src/api/queries/watchers/getWatchers.ts"],"sourcesContent":["import { activityFeedApi, GetEntityWatchersApiArg } from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = activityFeedApi.enhanceEndpoints({\n endpoints: {\n getEntityWatchers: {},\n setEntityWatchers: {},\n },\n})\n\ntype GetEntitiesWatchersApiArg = {\n entities: GetEntityWatchersApiArg[]\n}\n\ninterface GetEntitiesWatchers extends GetEntityWatchersApiArg {\n watchers: string[]\n}\n\ntype GetEntitiesWatchersResult = GetEntitiesWatchers[]\n\ntype SetEntitiesWatchersApiArg = {\n entities: GetEntitiesWatchers[]\n}\n\n// GET WATCHERS\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getEntitiesWatchers: build.query<GetEntitiesWatchersResult, GetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n try {\n const entitiesWatchers = await Promise.all(\n entities.map(async (entity) => {\n const result = await dispatch(\n enhancedApi.endpoints.getEntityWatchers.initiate(entity, { forceRefetch: true }),\n )\n return {\n ...entity,\n watchers: result.data?.watchers || [],\n }\n }),\n )\n\n return { data: entitiesWatchers }\n } catch (error) {\n // handle errors appropriately\n console.error(error)\n throw error\n }\n },\n providesTags: (_result, _error, { entities }) =>\n entities.flatMap((entity) => [\n { type: 'watchers', id: entity.entityId },\n { type: 'watchers', id: `${entity.entityType.toUpperCase()}-LIST` },\n ]),\n }),\n }),\n})\n\n// UPDATE WATCHERS\nconst injectedApi2 = injectedApi.injectEndpoints({\n endpoints: (build) => ({\n setEntitiesWatchers: build.mutation<undefined, SetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n const promises = entities.map((entity) =>\n dispatch(\n enhancedApi.endpoints.setEntityWatchers.initiate({\n entityId: entity.entityId,\n entityType: entity.entityType,\n projectName: entity.projectName,\n watchersModel: { watchers: entity.watchers },\n }),\n ),\n )\n\n try {\n await Promise.all(promises)\n return { data: undefined }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted({ entities }, { dispatch, queryFulfilled, getState }) {\n const state = getState()\n const tags = entities.map((entity) => ({ type: 'watchers', id: entity.entityId }))\n // find all the affected query combinations by seeing which queries are invalidated by the tags\n const entries = enhancedApi.util.selectInvalidatedBy(state, tags)\n\n let patches: any[] = []\n\n try {\n // now update the cache for all affected queries\n entries.forEach((entry) => {\n const patch = dispatch(\n injectedApi.util.updateQueryData(\n 'getEntitiesWatchers',\n entry.originalArgs,\n (draft) => {\n entry.originalArgs.entities.forEach((entryEntity: GetEntityWatchersApiArg) => {\n // find the entity patch\n const entity = entities.find((e) => e.entityId === entryEntity.entityId)\n if (!entity) return\n // find the entity in the draft\n const entityDraft = draft.find((e) => e.entityId === entity.entityId)\n if (!entityDraft) throw new Error('Entity draft not found')\n const watchersPatch = entity.watchers\n\n // update draft\n entityDraft.watchers = watchersPatch\n })\n },\n ),\n )\n patches.push(patch)\n })\n\n await queryFulfilled\n } catch (error: any) {\n const message = `Error: ${error?.error?.data?.detail}` as any\n console.error(message, error)\n patches.forEach((patch) => patch?.undo())\n }\n },\n // invalidates all versions if any of the entities are tasks\n invalidatesTags: (_result, _error, { entities }) =>\n entities.some((entity) => entity.entityType === 'task')\n ? [{ type: 'watchers', id: 'VERSION-LIST' }]\n : [],\n }),\n }),\n})\n\nexport const { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } = injectedApi2\nexport { injectedApi2 as watchersQueries }\n"],"names":["activityFeedApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getWatchers.es.js","sources":["../../../../../../src/api/queries/watchers/getWatchers.ts"],"sourcesContent":["import { activityFeedApi, GetEntityWatchersApiArg } from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = activityFeedApi.enhanceEndpoints({\n endpoints: {\n getEntityWatchers: {},\n setEntityWatchers: {},\n },\n})\n\ntype GetEntitiesWatchersApiArg = {\n entities: GetEntityWatchersApiArg[]\n}\n\ninterface GetEntitiesWatchers extends GetEntityWatchersApiArg {\n watchers: string[]\n}\n\ntype GetEntitiesWatchersResult = GetEntitiesWatchers[]\n\ntype SetEntitiesWatchersApiArg = {\n entities: GetEntitiesWatchers[]\n}\n\n// GET WATCHERS\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getEntitiesWatchers: build.query<GetEntitiesWatchersResult, GetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n try {\n const entitiesWatchers = await Promise.all(\n entities.map(async (entity) => {\n const result = await dispatch(\n enhancedApi.endpoints.getEntityWatchers.initiate(entity, { forceRefetch: true }),\n )\n return {\n ...entity,\n watchers: result.data?.watchers || [],\n }\n }),\n )\n\n return { data: entitiesWatchers }\n } catch (error) {\n // handle errors appropriately\n console.error(error)\n throw error\n }\n },\n providesTags: (_result, _error, { entities }) =>\n entities.flatMap((entity) => [\n { type: 'watchers', id: entity.entityId },\n { type: 'watchers', id: `${entity.entityType.toUpperCase()}-LIST` },\n ]),\n }),\n }),\n})\n\n// UPDATE WATCHERS\nconst injectedApi2 = injectedApi.injectEndpoints({\n endpoints: (build) => ({\n setEntitiesWatchers: build.mutation<undefined, SetEntitiesWatchersApiArg>({\n async queryFn({ entities = [] }, { dispatch }) {\n const promises = entities.map((entity) =>\n dispatch(\n enhancedApi.endpoints.setEntityWatchers.initiate({\n entityId: entity.entityId,\n entityType: entity.entityType,\n projectName: entity.projectName,\n watchersModel: { watchers: entity.watchers },\n }),\n ),\n )\n\n try {\n await Promise.all(promises)\n return { data: undefined }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted({ entities }, { dispatch, queryFulfilled, getState }) {\n const state = getState()\n const tags = entities.map((entity) => ({ type: 'watchers', id: entity.entityId }))\n // find all the affected query combinations by seeing which queries are invalidated by the tags\n const entries = enhancedApi.util.selectInvalidatedBy(state, tags)\n\n let patches: any[] = []\n\n try {\n // now update the cache for all affected queries\n entries.forEach((entry) => {\n const patch = dispatch(\n injectedApi.util.updateQueryData(\n 'getEntitiesWatchers',\n entry.originalArgs,\n (draft) => {\n entry.originalArgs.entities.forEach((entryEntity: GetEntityWatchersApiArg) => {\n // find the entity patch\n const entity = entities.find((e) => e.entityId === entryEntity.entityId)\n if (!entity) return\n // find the entity in the draft\n const entityDraft = draft.find((e) => e.entityId === entity.entityId)\n if (!entityDraft) throw new Error('Entity draft not found')\n const watchersPatch = entity.watchers\n\n // update draft\n entityDraft.watchers = watchersPatch\n })\n },\n ),\n )\n patches.push(patch)\n })\n\n await queryFulfilled\n } catch (error: any) {\n const message = `Error: ${error?.error?.data?.detail}` as any\n console.error(message, error)\n patches.forEach((patch) => patch?.undo())\n }\n },\n // invalidates all versions if any of the entities are tasks\n invalidatesTags: (_result, _error, { entities }) =>\n entities.some((entity) => entity.entityType === 'task')\n ? [{ type: 'watchers', id: 'VERSION-LIST' }]\n : [],\n }),\n }),\n})\n\nexport const { useGetEntitiesWatchersQuery, useSetEntitiesWatchersMutation } = injectedApi2\nexport { injectedApi2 as watchersQueries }\n"],"names":["activityFeedApi"],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ const initFormData = {
|
|
|
61
61
|
description: "",
|
|
62
62
|
example: "",
|
|
63
63
|
default: void 0,
|
|
64
|
-
enum:
|
|
64
|
+
enum: void 0,
|
|
65
65
|
minLength: void 0,
|
|
66
66
|
maxLength: void 0,
|
|
67
67
|
regex: "",
|
|
@@ -195,7 +195,7 @@ const AttributeEditor = ({
|
|
|
195
195
|
{
|
|
196
196
|
values: value,
|
|
197
197
|
onChange: (val) => {
|
|
198
|
-
onChange(val);
|
|
198
|
+
onChange((val == null ? void 0 : val.length) ? val : void 0);
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
),
|