@ynput/ayon-frontend-shared 0.2.18 → 0.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +16 -6
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +17 -7
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +6 -0
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +6 -0
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/api.cjs.js +22 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +27 -5
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +22 -0
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +23 -1
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +16 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +16 -5
- package/dist/index.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +5 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +6 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +58 -41
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +57 -41
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +20 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +21 -0
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -0
- package/dist/shared/src/api/base/client.cjs.js +2 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +2 -1
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/actions.cjs.js +6 -1
- package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/actions.es.js +6 -1
- package/dist/shared/src/api/generated/actions.es.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
- package/dist/shared/src/api/generated/addons.cjs.js +2 -1
- package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/addons.es.js +2 -1
- package/dist/shared/src/api/generated/addons.es.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
- package/dist/shared/src/api/generated/authentication.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/authentication.es.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +38 -0
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +38 -0
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/links.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/links.es.js.map +1 -1
- package/dist/shared/src/api/generated/onboarding.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/onboarding.es.js.map +1 -1
- package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/operations.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js +0 -8
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js +0 -8
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/system.es.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js +53 -0
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/views.es.js +53 -0
- package/dist/shared/src/api/generated/views.es.js.map +1 -0
- package/dist/shared/src/api/queries/actions/getActions.cjs.js +10 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +10 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js +67 -0
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/cloud/cloud.es.js +67 -0
- package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +3 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +3 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +16 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +16 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +11 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +11 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +68 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +69 -1
- 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 +20 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +20 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +30 -2
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +30 -2
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -0
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +1 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +6 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +4 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.es.js +4 -1
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +72 -0
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/views/getViews.es.js +72 -0
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +33 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.es.js +33 -0
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +17 -6
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +17 -6
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +25 -14
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +25 -14
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +369 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +369 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -0
- package/dist/shared/src/components/Feedback/SupportBubble.cjs.js +48 -0
- package/dist/shared/src/components/Feedback/SupportBubble.cjs.js.map +1 -0
- package/dist/shared/src/components/Feedback/SupportBubble.es.js +48 -0
- package/dist/shared/src/components/Feedback/SupportBubble.es.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/CTAButton.cjs.js +10 -0
- package/dist/shared/src/components/Powerpack/CTAButton.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/CTAButton.es.js +10 -0
- package/dist/shared/src/components/Powerpack/CTAButton.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +229 -28
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +230 -29
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +4 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +4 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +19 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +19 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +179 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +179 -0
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +16 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +16 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +16 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +16 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +16 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +16 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +4 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +4 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +2 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +2 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +16 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +16 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +16 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +16 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +4 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +164 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +164 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +71 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +71 -0
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js +189 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js +189 -0
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +36 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +36 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js +63 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js +63 -0
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/Views.cjs.js +21 -0
- package/dist/shared/src/components/Views/Views.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/Views.es.js +21 -0
- package/dist/shared/src/components/Views/Views.es.js.map +1 -0
- package/dist/shared/src/components/Views/Views.styled.cjs.js +44 -0
- package/dist/shared/src/components/Views/Views.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/Views.styled.es.js +44 -0
- package/dist/shared/src/components/Views/Views.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js +32 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js +32 -0
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js +31 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js +31 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js +33 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js +33 -0
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +132 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +132 -0
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
- package/dist/shared/src/components/Views/context/ViewsContext.cjs.js +145 -0
- package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/context/ViewsContext.es.js +145 -0
- package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +1 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js +160 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js +160 -0
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +13 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +13 -0
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js +8 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js +8 -0
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +1 -0
- package/dist/shared/src/components/Views/utils/portalUtils.cjs.js +11 -0
- package/dist/shared/src/components/Views/utils/portalUtils.cjs.js.map +1 -0
- package/dist/shared/src/components/Views/utils/portalUtils.es.js +11 -0
- package/dist/shared/src/components/Views/utils/portalUtils.es.js.map +1 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +16 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +16 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +12 -2
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +12 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +16 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +16 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +15 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +15 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +16 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +16 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +16 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +16 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +16 -4
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +17 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +1 -31
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -31
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +2 -2
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js +1 -1
- 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 +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +4 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +4 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +4 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +57 -5
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +59 -7
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +15 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +15 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +15 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +15 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +110 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +110 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +26 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +26 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +139 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +139 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +92 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +92 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +92 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +92 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +94 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +94 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -9
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +4 -147
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -145
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +16 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +16 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +4 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +4 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +9 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +9 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +9 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +9 -0
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +4 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +4 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +4 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +4 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +4 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.cjs.js +1 -0
- package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.es.js +2 -0
- package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
- package/dist/types/SimpleTable/SimpleTable.d.ts +1 -0
- package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +1 -1
- package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +5 -1
- package/dist/types/api/generated/actions.d.ts +11 -4
- package/dist/types/api/generated/activityFeed.d.ts +3 -0
- package/dist/types/api/generated/addons.d.ts +1 -0
- package/dist/types/api/generated/anatomy.d.ts +0 -2
- package/dist/types/api/generated/authentication.d.ts +0 -1
- package/dist/types/api/generated/configuration.d.ts +6 -0
- package/dist/types/api/generated/folders.d.ts +1 -0
- package/dist/types/api/generated/graphql.d.ts +66 -5
- package/dist/types/api/generated/index.d.ts +2 -0
- package/dist/types/api/generated/links.d.ts +7 -5
- package/dist/types/api/generated/onboarding.d.ts +0 -1
- package/dist/types/api/generated/operations.d.ts +2 -0
- package/dist/types/api/generated/projects.d.ts +0 -35
- package/dist/types/api/generated/system.d.ts +2 -0
- package/dist/types/api/generated/tasks.d.ts +0 -14
- package/dist/types/api/generated/views.d.ts +122 -0
- package/dist/types/api/queries/actions/getActions.d.ts +132 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +6 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +12 -0
- package/dist/types/api/queries/cloud/cloud.d.ts +593 -0
- package/dist/types/api/queries/cloud/index.d.ts +1 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +6 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +6 -0
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +6 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +1517 -2
- package/dist/types/api/queries/entityLists/types.d.ts +30 -1
- package/dist/types/api/queries/entityLists/updateLists.d.ts +166 -3
- package/dist/types/api/queries/index.d.ts +2 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +6 -0
- package/dist/types/api/queries/project/getProject.d.ts +0 -2
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +6 -0
- package/dist/types/api/queries/users/getUsers.d.ts +6 -0
- package/dist/types/api/queries/views/getViews.d.ts +412 -0
- package/dist/types/api/queries/views/index.d.ts +2 -0
- package/dist/types/api/queries/views/updateViews.d.ts +177 -0
- package/dist/types/components/Feedback/FeedbackContext.d.ts +17 -0
- package/dist/types/components/Feedback/SupportBubble.d.ts +4 -0
- package/dist/types/components/Feedback/index.d.ts +2 -0
- package/dist/types/components/PlayableIcon/PlayableIcon.d.ts +4 -0
- package/dist/types/components/Powerpack/CTAButton.d.ts +4 -0
- package/dist/types/components/Powerpack/PowerpackDialog.d.ts +8 -0
- package/dist/types/components/Views/ViewForm/ViewForm.d.ts +14 -0
- package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +9 -0
- package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +15 -0
- package/dist/types/components/Views/ViewItem/ViewItem.d.ts +15 -0
- package/dist/types/components/Views/ViewItem/ViewItem.styled.d.ts +4 -0
- package/dist/types/components/Views/Views.d.ts +8 -0
- package/dist/types/components/Views/Views.styled.d.ts +4 -0
- package/dist/types/components/Views/ViewsButton/ViewsButton.d.ts +2 -0
- package/dist/types/components/Views/ViewsMenu/ViewsMenu.d.ts +11 -0
- package/dist/types/components/Views/ViewsMenu/ViewsMenu.styled.d.ts +4 -0
- package/dist/types/components/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +4 -0
- package/dist/types/components/Views/context/ViewsContext.d.ts +31 -0
- package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +14 -0
- package/dist/types/components/Views/index.d.ts +11 -0
- package/dist/types/components/Views/utils/generatePersonalView.d.ts +3 -0
- package/dist/types/components/Views/utils/getCustomViewsFallback.d.ts +12 -0
- package/dist/types/components/Views/utils/portalUtils.d.ts +9 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/containers/Actions/Actions.d.ts +7 -1
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +5 -3
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +6 -2
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +11 -2
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +3 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -1
- package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/getTypeDefaultValue.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +20 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -11
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -0
- package/dist/types/context/DetailsPanelContext.d.ts +1 -0
- package/dist/types/context/PowerpackContext.d.ts +5 -5
- package/dist/types/util/confirmDelete.d.ts +2 -1
- package/dist/util.cjs.js +2 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +2 -0
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { current } from '@reduxjs/toolkit'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n} = updateListsEnhancedApi\nexport { updateListsEnhancedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,yBAAyBA,gBAAe,iBAAiB;AAAA,EAC7D,WAAW;AAAA;AAAA,IAET,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IACtD;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM,eACJ,EAAE,QAAQ,qBAAA,GACV,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAEvB,cAAM,OAAO,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ;AAChD,cAAM,kBAAkBC,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,kBAAkB;AAEtD,YAAI,eAAsB,CAAC;AAC3B,mBAAW,SAAS,iBAAiB;AACnC,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,oBAAoB,MAAM,cAAc,CAAC,UAAU;AAClE,yBAAA,QAAQ,MAAM,OAAO;AACxB,sBAAA,YAAY,KAAK,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM;AACnE,oBAAI,cAAc,IAAI;AACd,wBAAA,OAAO,KAAK,MAAM,SAAS;AAE1B,yBAAA,OAAO,MAAM,oBAAoB;AACxC;AAAA,gBAAA;AAAA,cACF;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAE3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MAEL;AAAA,MACA,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AACvC,cAAM,OAAO,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ;AACzC,eAAA;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IACtD;AAAA;AAAA,IAEA,uBAAuB;AAAA,MACrB,MAAM,eACJ,EAAE,QAAQ,0BAAA,GACV,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAGvB,cAAM,OAAO,CAAC,EAAE,MAAM,kBAAkB,IAAI,QAAQ;AACpD,cAAM,kBAAkBA,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,sBAAsB;AAE1D,YAAI,eAAsB,CAAC;AAE3B,YAAI,CAAC,0BAA0B,SAAS,0BAA0B,MAAM,WAAW,GAAG;AAE9E,gBAAA;AACN;AAAA,QAAA;AAGF,mBAAW,SAAS,iBAAiB;AAE/B,cAAA,MAAM,aAAa,WAAW,OAAQ;AAE1C,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,wBAAwB,MAAM,cAAc,CAAC,UAAU;;AACjF,kBAAI,yBAAyB;AAElB,yBAAA,QAAQ,MAAM,OAAO;AACJ,gDAAA,UAAA,mBAAO,QAAQ,CAAC,cAAc;AAChD,wBAAA,YAAY,KAAK,MAAM;AAAA,oBAC3B,CAAC,SAAS,KAAK,OAAO,UAAU,MAAM,KAAK,aAAa,UAAU;AAAA,kBACpE;AAEA,sBAAI,cAAc,IAAI;AACd,0BAAA,eAAe,KAAK,MAAM,SAAS;AAEzC,0BAAM,cAAc;AAAA,sBAClB,GAAG;AAAA,sBACH,GAAG;AAAA;AAAA,sBACH,QAAQ;AAAA,wBACN,GAAG,aAAa;AAAA,wBAChB,GAAI,UAAU,UAAU,CAAA;AAAA;AAAA,sBAAC;AAAA,oBAE7B;AACA,2BAAO,OAAO,KAAK,MAAM,SAAS,GAAG,WAAW;AAE5C,wBAAA,UAAU,aAAa,QAAW;AACX,+CAAA;AAAA,oBAAA;AAAA,kBAC3B;AAAA,gBACF;AAAA,cACD;AAGH,kBAAI,wBAAwB;AAE1B,oBAAI,WAAW,MAAM,MAAM,QAAQ,CAAC,SAAS,KAAK,KAAK;AAG9C,yBAAA,KAAK,CAAC,GAAG,MAAM;AACtB,wBAAM,OAAO,OAAO,EAAE,aAAa,WAAW,EAAE,WAAW;AAC3D,wBAAM,OAAO,OAAO,EAAE,aAAa,WAAW,EAAE,WAAW;AAC3D,yBAAO,OAAO;AAAA,gBAAA,CACf;AAGD,oBAAI,mBAAmB;AACZ,2BAAA,QAAQ,MAAM,OAAO;AACxB,wBAAA,gBAAgB,KAAK,MAAM;AAEjC,uBAAK,QAAQ,SAAS,MAAM,kBAAkB,mBAAmB,aAAa;AAC1D,sCAAA;AAAA,gBAAA;AAAA,cACtB;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAG3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MAEL;AAAA,MACA,iBAAiB,CAAC,IAAI,IAAI,EAAE,QAAQ,2BAA2B,EAAE,MAAM,QAAQ;AAC7E,cAAM,OAAO;AAAA,UACX,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,UACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,UACrC,IAAI,SAAS,CAAA,GAAI;AAAA,YAAQ,CAAC,OACvB,EAAE,KAAK,CAAC,EAAE,MAAM,kBAAkB,IAAI,EAAE,IAAI,IAAI,CAAI,GAAA;AAAA,cACnD,EAAE,WAAW,CAAC,EAAE,MAAM,kBAAkB,IAAI,EAAE,SAAA,CAAU,IAAI,CAAA;AAAA,YAAC;AAAA,UAC/D;AAAA,QAEJ;AACO,eAAA;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM,eACJ,EAAE,YAAY,yBAAA,GACd,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAEvB,cAAM,OAAO,CAAC,EAAE,MAAM,kBAAkB,IAAI,YAAY;AACxD,cAAM,kBAAkBA,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,sBAAsB;AAE1D,YAAI,eAAsB,CAAC;AAC3B,mBAAW,SAAS,iBAAiB;AACnC,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,wBAAwB,MAAM,cAAc,CAAC,UAAU;AACtE,yBAAA,QAAQ,MAAM,OAAO;AACxB,sBAAA,YAAY,KAAK,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,UAAU;AACvE,oBAAI,cAAc,IAAI;AACd,wBAAA,OAAO,KAAK,MAAM,SAAS;AACjC,wBAAM,cAAc;AAAA,oBAClB,GAAG;AAAA,oBACH,QAAQ;AAAA,sBACN,GAAG,KAAK;AAAA,sBACR,GAAG,yBAAyB;AAAA,oBAAA;AAAA,kBAEhC;AAEO,yBAAA,OAAO,MAAM,WAAW;AAC/B;AAAA,gBAAA;AAAA,cACF;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAE3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MACH;AAAA,IAEJ;AAAA,IACA,sBAAsB;AAAA,MACpB,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AAAA,QACvC,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,MAAA;AAAA,IAEzC;AAAA,IACA,sBAAsB;AAAA,MACpB,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AAAA,QACvC,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,MAAA;AAAA,IACvC;AAAA,EACF;AAEJ,CAAC;AAGK,MAAA,yBAAyB,uBAAuB,gBAAgB;AAAA,EACpE,WAAW,CAAC,WAAW;AAAA,IACrB,uBAAuB,MAAM,SAG3B;AAAA,MACA,OAAO,CAAC,cAAc;AAAA,QACpB,KAAK,sBAAsB,SAAS,YAAY,IAAI,SAAS,WAAW;AAAA,QACxE,QAAQ;AAAA,QACR,MAAM,SAAS;AAAA,MAAA;AAAA,MAEjB,wBAAwB,CAAC,UAAe,MAAM,KAAK;AAAA,MACnD,iBAAiB,MAAM,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IAC3D,CAAA;AAAA,EACH;AACF,CAAC;AAEY,MAAA;AAAA;AAAA,EAEX;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AACF,IAAI;;;;;;;;;;;"}
|
|
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
|
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
36
|
import "../../generated/grouping.es.js";
|
|
37
|
+
import "../../generated/views.es.js";
|
|
37
38
|
import getListsGqlApiInjected from "./getLists.es.js";
|
|
38
39
|
const updateListsEnhancedApi = injectedRtkApi.enhanceEndpoints({
|
|
39
40
|
endpoints: {
|
|
@@ -209,6 +210,19 @@ const updateListsEnhancedApi = injectedRtkApi.enhanceEndpoints({
|
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
});
|
|
213
|
+
const updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({
|
|
214
|
+
endpoints: (build) => ({
|
|
215
|
+
createSessionFromList: build.mutation({
|
|
216
|
+
query: (queryArg) => ({
|
|
217
|
+
url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,
|
|
218
|
+
method: "POST",
|
|
219
|
+
body: queryArg.sessionFromListRequest
|
|
220
|
+
}),
|
|
221
|
+
transformErrorResponse: (error) => error.data.detail,
|
|
222
|
+
invalidatesTags: () => [{ type: "entityList", id: "LIST" }]
|
|
223
|
+
})
|
|
224
|
+
})
|
|
225
|
+
});
|
|
212
226
|
const {
|
|
213
227
|
// LIST MUTATIONS
|
|
214
228
|
useCreateEntityListMutation,
|
|
@@ -218,13 +232,16 @@ const {
|
|
|
218
232
|
useUpdateEntityListItemsMutation,
|
|
219
233
|
useUpdateEntityListItemMutation,
|
|
220
234
|
useCreateEntityListItemMutation,
|
|
221
|
-
useDeleteEntityListItemMutation
|
|
222
|
-
|
|
235
|
+
useDeleteEntityListItemMutation,
|
|
236
|
+
// REVIEW SESSION MUTATIONS
|
|
237
|
+
useCreateSessionFromListMutation
|
|
238
|
+
} = updateListsInjectedApi;
|
|
223
239
|
export {
|
|
224
240
|
getListsGqlApiInjected as entityListsQueriesGql,
|
|
225
|
-
|
|
241
|
+
updateListsInjectedApi as entityListsQueriesRest,
|
|
226
242
|
useCreateEntityListItemMutation,
|
|
227
243
|
useCreateEntityListMutation,
|
|
244
|
+
useCreateSessionFromListMutation,
|
|
228
245
|
useDeleteEntityListItemMutation,
|
|
229
246
|
useDeleteEntityListMutation,
|
|
230
247
|
useUpdateEntityListItemMutation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { current } from '@reduxjs/toolkit'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n} = updateListsEnhancedApi\nexport { updateListsEnhancedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
|
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
38
|
require("../../generated/grouping.cjs.js");
|
|
39
|
+
require("../../generated/views.cjs.js");
|
|
39
40
|
const enhancedApi = folders.api.enhanceEndpoints({
|
|
40
41
|
endpoints: {
|
|
41
42
|
getFolderHierarchy: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["foldersApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["foldersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,YAAW,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,oBAAoB;AAAA,MAClB,cAAc,CAAC,WAAW;AAAA,IAC5B;AAAA,IACA,eAAe;AAAA,MACb,cAAc,CAAC,QAAQ,IAAI,EAAE,kBAAkB;AAAA,QAC7C;AAAA,QACA,EAAE,MAAM,UAAU,IAAI,OAAO;AAAA,QAC7B,IAAI,iCAAQ,QAAQ,IAAI,CAAC,EAAE,GAAA,OAAU,EAAE,MAAM,UAAU,GAAG,QAAO,CAAC;AAAA,QAClE,EAAE,MAAM,UAAU,IAAI,YAAY;AAAA,MAAA;AAAA,IACpC;AAAA,EACF;AAEJ,CAAC;AAEY,MAAA,EAAE,4BAA4B,0BAA0B;;;;"}
|
|
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
|
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
36
|
import "../../generated/grouping.es.js";
|
|
37
|
+
import "../../generated/views.es.js";
|
|
37
38
|
const enhancedApi = injectedRtkApi.enhanceEndpoints({
|
|
38
39
|
endpoints: {
|
|
39
40
|
getFolderHierarchy: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["foldersApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["foldersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,eAAW,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,oBAAoB;AAAA,MAClB,cAAc,CAAC,WAAW;AAAA,IAC5B;AAAA,IACA,eAAe;AAAA,MACb,cAAc,CAAC,QAAQ,IAAI,EAAE,kBAAkB;AAAA,QAC7C;AAAA,QACA,EAAE,MAAM,UAAU,IAAI,OAAO;AAAA,QAC7B,IAAI,iCAAQ,QAAQ,IAAI,CAAC,EAAE,GAAA,OAAU,EAAE,MAAM,UAAU,GAAG,QAAO,CAAC;AAAA,QAClE,EAAE,MAAM,UAAU,IAAI,YAAY;AAAA,MAAA;AAAA,IACpC;AAAA,EACF;AAEJ,CAAC;AAEY,MAAA,EAAE,4BAA4B,0BAA0B;"}
|
|
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
|
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
38
|
const grouping = require("../../generated/grouping.cjs.js");
|
|
39
|
+
require("../../generated/views.cjs.js");
|
|
39
40
|
const enhancedGroupingApi = grouping.api.enhanceEndpoints({
|
|
40
41
|
endpoints: {
|
|
41
42
|
getEntityGroups: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGrouping.cjs.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["groupingApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getGrouping.cjs.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["groupingApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,sBAAsBA,aAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,iBAAiB,CAAA;AAAA,EAAC;AAEtB,CAAC;AAEY,MAAA,EAAE,4BAA4B;;;"}
|
|
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
|
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
36
|
import { api as injectedRtkApi } from "../../generated/grouping.es.js";
|
|
37
|
+
import "../../generated/views.es.js";
|
|
37
38
|
const enhancedGroupingApi = injectedRtkApi.enhanceEndpoints({
|
|
38
39
|
endpoints: {
|
|
39
40
|
getEntityGroups: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGrouping.es.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["groupingApi"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getGrouping.es.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["groupingApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,sBAAsBA,eAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,iBAAiB,CAAA;AAAA,EAAC;AAEtB,CAAC;AAEY,MAAA,EAAE,4BAA4B;"}
|
|
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
|
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
38
|
require("../../generated/grouping.cjs.js");
|
|
39
|
+
require("../../generated/views.cjs.js");
|
|
39
40
|
const parseAllAttribs = (allAttrib) => {
|
|
40
41
|
try {
|
|
41
42
|
return JSON.parse(allAttrib);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { EditorTaskNode, TableGroupBy } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async ({ projectName, groups, search, folderIds, desc, sortBy }, api) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["tasks","gqlApi","tasksApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { EditorTaskNode, TableGroupBy } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async ({ projectName, groups, search, folderIds, desc, sortBy }, api) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["tasks","gqlApi","tasksApi"],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
|
|
|
34
34
|
import "../../generated/workfiles.es.js";
|
|
35
35
|
import "../../generated/ynputCloud.es.js";
|
|
36
36
|
import "../../generated/grouping.es.js";
|
|
37
|
+
import "../../generated/views.es.js";
|
|
37
38
|
const parseAllAttribs = (allAttrib) => {
|
|
38
39
|
try {
|
|
39
40
|
return JSON.parse(allAttrib);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { EditorTaskNode, TableGroupBy } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async ({ projectName, groups, search, folderIds, desc, sortBy }, api) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["gqlApi","tasksApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { EditorTaskNode, TableGroupBy } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async ({ projectName, groups, search, folderIds, desc, sortBy }, api) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["gqlApi","tasksApi"],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
|
|
|
36
36
|
require("../../generated/workfiles.cjs.js");
|
|
37
37
|
require("../../generated/ynputCloud.cjs.js");
|
|
38
38
|
require("../../generated/grouping.cjs.js");
|
|
39
|
+
require("../../generated/views.cjs.js");
|
|
39
40
|
require("../actions/getActions.cjs.js");
|
|
40
41
|
require("../activities/getActivities.cjs.js");
|
|
41
42
|
require("../activities/updateActivities.cjs.js");
|
|
@@ -68,13 +69,22 @@ require("../permissions/getPermissions.cjs.js");
|
|
|
68
69
|
require("../grouping/getGrouping.cjs.js");
|
|
69
70
|
require("../versions/updateVersions.cjs.js");
|
|
70
71
|
require("../products/createProduct.cjs.js");
|
|
72
|
+
require("../cloud/cloud.cjs.js");
|
|
73
|
+
require("../views/getViews.cjs.js");
|
|
74
|
+
require("../views/updateViews.cjs.js");
|
|
71
75
|
const updateEntityWithOperation = (entity, operationData) => {
|
|
76
|
+
let updatedOperationData = { ...operationData };
|
|
77
|
+
if ((operationData == null ? void 0 : operationData.name) && entity.path && entity.entityType !== "task") {
|
|
78
|
+
const pathParts = entity.path.split("/");
|
|
79
|
+
pathParts[pathParts.length - 1] = operationData.name;
|
|
80
|
+
updatedOperationData.path = pathParts.join("/");
|
|
81
|
+
}
|
|
72
82
|
const newData = {
|
|
73
83
|
...entity,
|
|
74
|
-
...
|
|
84
|
+
...updatedOperationData,
|
|
75
85
|
attrib: {
|
|
76
86
|
...entity.attrib,
|
|
77
|
-
...(
|
|
87
|
+
...(updatedOperationData == null ? void 0 : updatedOperationData.attrib) || {}
|
|
78
88
|
}
|
|
79
89
|
};
|
|
80
90
|
Object.assign(entity, newData);
|
|
@@ -266,6 +276,11 @@ const patchDetailsPanelEntity = (operations2 = [], draft) => {
|
|
|
266
276
|
if (!operationData || operation.entityType === "product" || operation.entityType === "workfile")
|
|
267
277
|
return console.warn("No operation data found or entity type not supported");
|
|
268
278
|
const detailsPanelData = operationDataToDetailsData(operationData, operation.entityType);
|
|
279
|
+
if (operation.entityType === "folder" && operationData.name && draft.path) {
|
|
280
|
+
const pathParts = draft.path.split("/");
|
|
281
|
+
pathParts[pathParts.length - 1] = operationData.name;
|
|
282
|
+
detailsPanelData.path = pathParts.join("/");
|
|
283
|
+
}
|
|
269
284
|
function cleanUndefined(obj) {
|
|
270
285
|
Object.entries(obj).forEach(([key, val]) => {
|
|
271
286
|
if (val === void 0) {
|
|
@@ -472,6 +487,19 @@ const operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({
|
|
|
472
487
|
invalidateEntryPanel();
|
|
473
488
|
}
|
|
474
489
|
}
|
|
490
|
+
},
|
|
491
|
+
invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {
|
|
492
|
+
var _a;
|
|
493
|
+
const userDashboardTags = [{ type: "kanban", id: "project-" + projectName }], taskProgressTags = [];
|
|
494
|
+
(_a = operationsRequestModel.operations) == null ? void 0 : _a.forEach((op) => {
|
|
495
|
+
const { entityId } = op;
|
|
496
|
+
if (entityId) {
|
|
497
|
+
taskProgressTags.push({ type: "progress", id: entityId });
|
|
498
|
+
} else {
|
|
499
|
+
taskProgressTags.push({ type: "progress", id: "LIST" });
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
return [...userDashboardTags, ...taskProgressTags];
|
|
475
503
|
}
|
|
476
504
|
})
|
|
477
505
|
})
|