@ynput/ayon-frontend-shared 0.3.8 → 0.3.10
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 +1 -1
- package/dist/DetailsPanel.es.js +24 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +182 -171
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +13 -11
- package/dist/Slicer.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +340 -331
- package/dist/api.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +39 -36
- package/dist/context.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- package/dist/index.es.js.map +1 -1
- package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/actions.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/projectFolders.cjs.js +2 -0
- package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/projectFolders.es.js +44 -0
- package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -0
- package/dist/shared/src/api/generated/projects.cjs.js +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js +20 -0
- 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/queries/actions/getActions.cjs.js +1 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +11 -10
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +11 -10
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.es.js +3 -2
- package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.es.js +3 -2
- package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js +4 -3
- package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.es.js +7 -6
- package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js +4 -3
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +4 -3
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/cloud/cloud.es.js +9 -8
- package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
- package/dist/shared/src/api/queries/config/getConfig.cjs.js +1 -1
- package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/config/getConfig.es.js +9 -8
- package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +13 -12
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -3
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +4 -2
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +15 -14
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +3 -2
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +22 -20
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +17 -16
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +4 -3
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +22 -6
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +3 -2
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.es.js +14 -13
- package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.es.js +17 -16
- package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +37 -36
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/patchVersions.es.js +88 -53
- package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +8 -6
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js +4 -3
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +3 -2
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +9 -8
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +2 -0
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +178 -0
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +15 -14
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +7 -6
- package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.es.js +3 -2
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +5 -4
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js +1 -1
- package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/tasks/updateTasks.es.js +6 -6
- package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
- package/dist/shared/src/api/queries/uris/getUris.cjs.js +1 -1
- package/dist/shared/src/api/queries/uris/getUris.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/uris/getUris.es.js +3 -2
- package/dist/shared/src/api/queries/uris/getUris.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +6 -5
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +20 -18
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/guests.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/guests.es.js +5 -4
- package/dist/shared/src/api/queries/users/guests.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +21 -20
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +348 -136
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js +57 -59
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.es.js +6 -5
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +11 -10
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js +4 -3
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +3 -3
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +13 -13
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +24 -22
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +16 -14
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.styled.cjs.js +0 -1
- package/dist/shared/src/components/Menu/Menu.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.styled.es.js +0 -1
- package/dist/shared/src/components/Menu/Menu.styled.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.es.js +21 -21
- package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +58 -38
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -107
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +32 -30
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +31 -0
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +107 -0
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +33 -28
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +12 -11
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/config/plannerFeatures.cjs.js +2 -0
- package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -0
- package/dist/shared/src/config/plannerFeatures.es.js +50 -0
- package/dist/shared/src/config/plannerFeatures.es.js.map +1 -0
- package/dist/shared/src/config/powerpackFeatures.cjs.js +2 -0
- package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -0
- package/dist/shared/src/config/powerpackFeatures.es.js +74 -0
- package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -0
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +18 -15
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +33 -32
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +73 -68
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js +8 -8
- package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +18 -18
- package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +686 -616
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +26 -11
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +40 -25
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +381 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +13 -9
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +147 -119
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +487 -262
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +149 -145
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
- 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 +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +118 -109
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +30 -30
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +94 -91
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js +5 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js +67 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +33 -31
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +30 -28
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js +56 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +57 -40
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +30 -28
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +303 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -0
- 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 +175 -156
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +21 -19
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +21 -18
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -29
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +7 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +90 -85
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +9 -5
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +11 -7
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +6 -4
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +14 -12
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +40 -38
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +10 -8
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +5 -3
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +12 -10
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +6 -4
- package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +46 -94
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +6 -4
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.es.js +21 -14
- package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +7 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +6 -4
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +2 -0
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -0
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js +69 -0
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -0
- package/dist/shared/src/util/errorHandling.cjs.js +2 -0
- package/dist/shared/src/util/errorHandling.cjs.js.map +1 -0
- package/dist/shared/src/util/errorHandling.es.js +9 -0
- package/dist/shared/src/util/errorHandling.es.js.map +1 -0
- package/dist/shared/src/util/folderHierarchy.cjs.js +2 -0
- package/dist/shared/src/util/folderHierarchy.cjs.js.map +1 -0
- package/dist/shared/src/util/folderHierarchy.es.js +14 -0
- package/dist/shared/src/util/folderHierarchy.es.js.map +1 -0
- package/dist/shared/src/util/folderOperations.cjs.js +2 -0
- package/dist/shared/src/util/folderOperations.cjs.js.map +1 -0
- package/dist/shared/src/util/folderOperations.es.js +27 -0
- package/dist/shared/src/util/folderOperations.es.js.map +1 -0
- package/dist/shared/src/util/keyboardShortcuts.cjs.js +2 -0
- package/dist/shared/src/util/keyboardShortcuts.cjs.js.map +1 -0
- package/dist/shared/src/util/keyboardShortcuts.es.js +8 -0
- package/dist/shared/src/util/keyboardShortcuts.es.js.map +1 -0
- package/dist/types/api/generated/actions.d.ts +2 -1
- package/dist/types/api/generated/folders.d.ts +3 -3
- package/dist/types/api/generated/index.d.ts +2 -0
- package/dist/types/api/generated/projectFolders.d.ts +79 -0
- package/dist/types/api/generated/projects.d.ts +55 -1
- package/dist/types/api/generated/system.d.ts +2 -1
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/project/getProject.d.ts +4 -0
- package/dist/types/api/queries/projectFolders/index.d.ts +1 -0
- package/dist/types/api/queries/projectFolders/projectFolders.d.ts +985 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1 -1
- package/dist/types/components/FolderForm/FolderForm.d.ts +24 -0
- package/dist/types/components/FolderForm/index.d.ts +3 -0
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -1
- package/dist/types/components/SimpleFormDialog/FormFile.d.ts +16 -0
- package/dist/types/components/SimpleFormDialog/SimpleFormDialog.d.ts +2 -1
- package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +3 -2
- package/dist/types/config/index.d.ts +2 -0
- package/dist/types/config/plannerFeatures.d.ts +13 -0
- package/dist/types/config/powerpackFeatures.d.ts +6 -0
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +2 -1
- package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/components/ColumnDndProvider.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/components/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +6 -1
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.d.ts +26 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnDragRestriction.d.ts +19 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +4 -0
- package/dist/types/containers/SimpleTable/SimpleTable.d.ts +2 -1
- package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +2 -2
- package/dist/types/context/PowerpackContext.d.ts +17 -6
- package/dist/types/util/buildHierarchicalTableRows.d.ts +43 -0
- package/dist/types/util/errorHandling.d.ts +7 -0
- package/dist/types/util/folderHierarchy.d.ts +37 -0
- package/dist/types/util/folderOperations.d.ts +34 -0
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/keyboardShortcuts.d.ts +6 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +51 -41
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const q=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const g=require("./getLists.cjs.js"),b=q.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:t,entityListPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityList",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getListsInfinite");let c=[];for(const a of L){const l=i(g.default.util.updateQueryData("getListsInfinite",a.originalArgs,p=>{for(const d of p.pages){const s=d.lists.findIndex(n=>n.id===t);if(s!==-1){const n=d.lists[s];Object.assign(n,e);break}}}));c.push(l)}const r=q.api.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getEntityList"&&a.originalArgs.listId===t);for(const a of r){const l=i(q.api.util.updateQueryData("getEntityList",a.originalArgs,p=>{Object.assign(p,{...p,...e})}));c.push(l)}try{await u}catch{c.forEach(a=>{a.undo()})}},transformErrorResponse:t=>t.data.detail,invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i}]},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:t,entityListMultiPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];if(!e.items||e.items.length===0){await u;return}for(const r of L){if(r.originalArgs.listId!==t)continue;const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{let p=!1;for(const d of l.pages)e.items?.forEach(s=>{const n=d.items.findIndex(y=>y.id===s.id||y.entityId===s.entityId);if(n!==-1){const y=d.items[n],I={...y,...s,attrib:{...y.attrib,...s.attrib||{}}};Object.assign(d.items[n],I),s.position!==void 0&&(p=!0)}});if(p){let d=l.pages.flatMap(n=>n.items);d.sort((n,y)=>{const I=typeof n.position=="number"?n.position:1/0,v=typeof y.position=="number"?y.position:1/0;return I-v});let s=0;for(const n of l.pages){const y=n.items.length;n.items=d.slice(s,s+y),s+=y}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,entityListMultiPatchModel:{items:u}})=>u?.every(o=>Object.keys(o).every(L=>L==="id"||L==="position"))?[]:[{type:"entityList",id:i},{type:"entityListItem",id:i},...(u||[]).flatMap(o=>(o.id?[{type:"entityListItem",id:o.id}]:[]).concat(o.entityId?[{type:"entityListItem",id:o.entityId}]:[]))],transformErrorResponse:t=>t.data.detail},updateEntityListItem:{async onQueryStarted({listItemId:t,entityListItemPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];for(const r of L){const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{for(const p of l.pages){const d=p.items.findIndex(s=>s.id===t);if(d!==-1){const s=p.items[d],n={...s,attrib:{...s.attrib,...e.attrib}};Object.assign(s,n);break}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,listItemId:u})=>[{type:"entityListItem",id:i},{type:"entityListItem",id:u}]},createEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]},deleteEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]}}}),E=b.injectEndpoints({endpoints:t=>({createSessionFromList:t.mutation({query:e=>({url:`/api/addons/review/${e.addonVersion}/${e.projectName}/sessions/fromList`,method:"POST",body:e.sessionFromListRequest}),transformErrorResponse:e=>e.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:h,useUpdateEntityListMutation:M,useDeleteEntityListMutation:R,useUpdateEntityListItemsMutation:T,useUpdateEntityListItemMutation:S,useCreateEntityListItemMutation:_,useDeleteEntityListItemMutation:j,useCreateSessionFromListMutation:O}=E;exports.entityListsQueriesGql=g.default;exports.entityListsQueriesRest=E;exports.useCreateEntityListItemMutation=_;exports.useCreateEntityListMutation=h;exports.useCreateSessionFromListMutation=O;exports.useDeleteEntityListItemMutation=j;exports.useDeleteEntityListMutation=R;exports.useUpdateEntityListItemMutation=S;exports.useUpdateEntityListItemsMutation=T;exports.useUpdateEntityListMutation=M;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const q=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const g=require("./getLists.cjs.js"),b=q.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:t,entityListPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityList",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getListsInfinite");let c=[];for(const a of L){const l=i(g.default.util.updateQueryData("getListsInfinite",a.originalArgs,p=>{for(const d of p.pages){const s=d.lists.findIndex(n=>n.id===t);if(s!==-1){const n=d.lists[s];Object.assign(n,e);break}}}));c.push(l)}const r=q.api.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getEntityList"&&a.originalArgs.listId===t);for(const a of r){const l=i(q.api.util.updateQueryData("getEntityList",a.originalArgs,p=>{Object.assign(p,{...p,...e})}));c.push(l)}try{await u}catch{c.forEach(a=>{a.undo()})}},transformErrorResponse:t=>t.data.detail,invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i}]},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:t,entityListMultiPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];if(!e.items||e.items.length===0){await u;return}for(const r of L){if(r.originalArgs.listId!==t)continue;const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{let p=!1;for(const d of l.pages)e.items?.forEach(s=>{const n=d.items.findIndex(y=>y.id===s.id||y.entityId===s.entityId);if(n!==-1){const y=d.items[n],I={...y,...s,attrib:{...y.attrib,...s.attrib||{}}};Object.assign(d.items[n],I),s.position!==void 0&&(p=!0)}});if(p){let d=l.pages.flatMap(n=>n.items);d.sort((n,y)=>{const I=typeof n.position=="number"?n.position:1/0,v=typeof y.position=="number"?y.position:1/0;return I-v});let s=0;for(const n of l.pages){const y=n.items.length;n.items=d.slice(s,s+y),s+=y}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,entityListMultiPatchModel:{items:u}})=>u?.every(o=>Object.keys(o).every(L=>L==="id"||L==="position"))?[]:[{type:"entityList",id:i},{type:"entityListItem",id:i},...(u||[]).flatMap(o=>(o.id?[{type:"entityListItem",id:o.id}]:[]).concat(o.entityId?[{type:"entityListItem",id:o.entityId}]:[]))],transformErrorResponse:t=>t.data.detail},updateEntityListItem:{async onQueryStarted({listItemId:t,entityListItemPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];for(const r of L){const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{for(const p of l.pages){const d=p.items.findIndex(s=>s.id===t);if(d!==-1){const s=p.items[d],n={...s,attrib:{...s.attrib,...e.attrib}};Object.assign(s,n);break}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,listItemId:u})=>[{type:"entityListItem",id:i},{type:"entityListItem",id:u}]},createEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]},deleteEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]}}}),E=b.injectEndpoints({endpoints:t=>({createSessionFromList:t.mutation({query:e=>({url:`/api/addons/review/${e.addonVersion}/${e.projectName}/sessions/fromList`,method:"POST",body:e.sessionFromListRequest}),transformErrorResponse:e=>e.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:h,useUpdateEntityListMutation:M,useDeleteEntityListMutation:R,useUpdateEntityListItemsMutation:T,useUpdateEntityListItemMutation:S,useCreateEntityListItemMutation:_,useDeleteEntityListItemMutation:j,useCreateSessionFromListMutation:O}=E;exports.entityListsQueriesGql=g.default;exports.entityListsQueriesRest=E;exports.useCreateEntityListItemMutation=_;exports.useCreateEntityListMutation=h;exports.useCreateSessionFromListMutation=O;exports.useDeleteEntityListItemMutation=j;exports.useDeleteEntityListMutation=R;exports.useUpdateEntityListItemMutation=S;exports.useUpdateEntityListItemsMutation=T;exports.useUpdateEntityListMutation=M;
|
|
2
2
|
//# sourceMappingURL=updateLists.cjs.js.map
|
|
@@ -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 { 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\n // Update getListsInfinite cache (GraphQL)\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\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\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 transformErrorResponse: (error: any) => error.data.detail,\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, using updated positions from the map\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 // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\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 transformErrorResponse: (error: any) => error.data.detail,\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 invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\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":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"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\n // Update getListsInfinite cache (GraphQL)\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\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\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 transformErrorResponse: (error: any) => error.data.detail,\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, using updated positions from the map\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 // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\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 transformErrorResponse: (error: any) => error.data.detail,\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 invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\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":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
|
|
|
23
23
|
import "../../generated/products.es.js";
|
|
24
24
|
import "../../generated/projectDashboard.es.js";
|
|
25
25
|
import "../../generated/projects.es.js";
|
|
26
|
+
import "../../generated/projectFolders.es.js";
|
|
26
27
|
import "../../generated/reviewables.es.js";
|
|
27
28
|
import "../../generated/services.es.js";
|
|
28
29
|
import "../../generated/system.es.js";
|
|
@@ -223,27 +224,27 @@ const v = E.enhanceEndpoints({
|
|
|
223
224
|
})
|
|
224
225
|
}), {
|
|
225
226
|
// LIST MUTATIONS
|
|
226
|
-
useCreateEntityListMutation:
|
|
227
|
-
useUpdateEntityListMutation:
|
|
228
|
-
useDeleteEntityListMutation:
|
|
227
|
+
useCreateEntityListMutation: dt,
|
|
228
|
+
useUpdateEntityListMutation: mt,
|
|
229
|
+
useDeleteEntityListMutation: yt,
|
|
229
230
|
// LIST ITEM MUTATIONS
|
|
230
|
-
useUpdateEntityListItemsMutation:
|
|
231
|
-
useUpdateEntityListItemMutation:
|
|
232
|
-
useCreateEntityListItemMutation:
|
|
233
|
-
useDeleteEntityListItemMutation:
|
|
231
|
+
useUpdateEntityListItemsMutation: ct,
|
|
232
|
+
useUpdateEntityListItemMutation: ut,
|
|
233
|
+
useCreateEntityListItemMutation: lt,
|
|
234
|
+
useDeleteEntityListItemMutation: gt,
|
|
234
235
|
// REVIEW SESSION MUTATIONS
|
|
235
|
-
useCreateSessionFromListMutation:
|
|
236
|
+
useCreateSessionFromListMutation: ft
|
|
236
237
|
} = b;
|
|
237
238
|
export {
|
|
238
239
|
L as entityListsQueriesGql,
|
|
239
240
|
b as entityListsQueriesRest,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
241
|
+
lt as useCreateEntityListItemMutation,
|
|
242
|
+
dt as useCreateEntityListMutation,
|
|
243
|
+
ft as useCreateSessionFromListMutation,
|
|
244
|
+
gt as useDeleteEntityListItemMutation,
|
|
245
|
+
yt as useDeleteEntityListMutation,
|
|
246
|
+
ut as useUpdateEntityListItemMutation,
|
|
247
|
+
ct as useUpdateEntityListItemsMutation,
|
|
248
|
+
mt as useUpdateEntityListMutation
|
|
248
249
|
};
|
|
249
250
|
//# sourceMappingURL=updateLists.es.js.map
|
|
@@ -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 { 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\n // Update getListsInfinite cache (GraphQL)\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\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\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 transformErrorResponse: (error: any) => error.data.detail,\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, using updated positions from the map\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 // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\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 transformErrorResponse: (error: any) => error.data.detail,\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 invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\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":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"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\n // Update getListsInfinite cache (GraphQL)\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\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\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 transformErrorResponse: (error: any) => error.data.detail,\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, using updated positions from the map\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 // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\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 transformErrorResponse: (error: any) => error.data.detail,\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 invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\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":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");const S=require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const T=require("../../../util/pubsub.cjs.js"),E=F.api.enhanceEndpoints({endpoints:{getFolderHierarchy:{providesTags:["hierarchy"]},getFolderList:{providesTags:(a,g,{projectName:l})=>["hierarchy",{type:"folder",id:"LIST"},...a?.folders.map(({id:d})=>({type:"folder",id:d}))||[],{type:"folder",id:l}],async onCacheEntryAdded(a,{cacheDataLoaded:g,cacheEntryRemoved:l,updateCachedData:d,dispatch:m}){const{projectName:L}=a||{},M=["entity.folder","entity.folder.created","entity.folder.deleted"],w=[],_=1e3,u=new Set;let c=!1,s=null,f=!1;const A=()=>{s&&(clearTimeout(s),s=null)},I=()=>{s||(s=setTimeout(Q,_))},Q=async()=>{if(A(),!(f||!L)){f=!0;try{if(c){c=!1;try{const e=await m(F.api.endpoints.getFolderList.initiate({...a,realtime:!0},{forceRefetch:!0})).unwrap();d(()=>e)}catch{console.warn("Failed to refetch folder list on resync")}finally{u.clear()}return}if(u.size===0)return;const o=Array.from(u);u.clear();const t=[],y={"entity.folder.label_changed":"label","entity.folder.renamed":"name","entity.folder.type_changed":"folderType","entity.folder.status_changed":"status","entity.folder.tags_changed":"tags","entity.folder.attrib_changed":"attrib"};if(await Promise.all(o.map(async e=>{try{const r=await m(S.api.endpoints.getEvent.initiate({eventId:e},{forceRefetch:!0})).unwrap(),i=r?.topic||"",n=r?.payload||{},q=r?.summary||{},p=q.entityId;if(!p)return;const h=y[i];if(!h)return;if(h==="attrib"&&n?.newValue&&typeof n.newValue=="object")t.push({folderId:p,attribMerge:n.newValue,updatedAt:r.updatedAt});else{const v=n?.newValue;if(v===void 0)return;const b={updatedAt:r.updatedAt};b[h]=v,q.parentId!==void 0&&(b.parentId=q.parentId),t.push({folderId:p,partial:b})}}catch{}})),!t.length)return;d(e=>{!e||!Array.isArray(e.folders)||t.forEach(r=>{const i=e.folders.findIndex(n=>n.id===r.folderId);i!==-1&&(r.attribMerge&&(e.folders[i].attrib={...e.folders[i].attrib||{},...r.attribMerge},r.updatedAt&&(e.folders[i].updatedAt=r.updatedAt)),r.partial&&(e.folders[i]={...e.folders[i],...r.partial}))})})}finally{f=!1}}};try{await g;const o=(t,y)=>{if(t.endsWith(".created")||t.endsWith(".deleted")){c=!0,I();return}const e=y?.id;e&&(u.add(e),I())};M.forEach(t=>w.push(T.subscribe(t,o)))}catch{}await l,w.forEach(o=>T.unsubscribe(o)),A()}}}}),{useGetFolderHierarchyQuery:V,useGetFolderListQuery:G}=E;exports.foldersQueries=E;exports.useGetFolderHierarchyQuery=V;exports.useGetFolderListQuery=G;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");const S=require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const T=require("../../../util/pubsub.cjs.js"),E=F.api.enhanceEndpoints({endpoints:{getFolderHierarchy:{providesTags:["hierarchy"]},getFolderList:{providesTags:(a,g,{projectName:l})=>["hierarchy",{type:"folder",id:"LIST"},...a?.folders.map(({id:d})=>({type:"folder",id:d}))||[],{type:"folder",id:l}],async onCacheEntryAdded(a,{cacheDataLoaded:g,cacheEntryRemoved:l,updateCachedData:d,dispatch:m}){const{projectName:L}=a||{},M=["entity.folder","entity.folder.created","entity.folder.deleted"],w=[],_=1e3,u=new Set;let c=!1,s=null,f=!1;const A=()=>{s&&(clearTimeout(s),s=null)},I=()=>{s||(s=setTimeout(Q,_))},Q=async()=>{if(A(),!(f||!L)){f=!0;try{if(c){c=!1;try{const e=await m(F.api.endpoints.getFolderList.initiate({...a,realtime:!0},{forceRefetch:!0})).unwrap();d(()=>e)}catch{console.warn("Failed to refetch folder list on resync")}finally{u.clear()}return}if(u.size===0)return;const o=Array.from(u);u.clear();const t=[],y={"entity.folder.label_changed":"label","entity.folder.renamed":"name","entity.folder.type_changed":"folderType","entity.folder.status_changed":"status","entity.folder.tags_changed":"tags","entity.folder.attrib_changed":"attrib"};if(await Promise.all(o.map(async e=>{try{const r=await m(S.api.endpoints.getEvent.initiate({eventId:e},{forceRefetch:!0})).unwrap(),i=r?.topic||"",n=r?.payload||{},q=r?.summary||{},p=q.entityId;if(!p)return;const h=y[i];if(!h)return;if(h==="attrib"&&n?.newValue&&typeof n.newValue=="object")t.push({folderId:p,attribMerge:n.newValue,updatedAt:r.updatedAt});else{const v=n?.newValue;if(v===void 0)return;const b={updatedAt:r.updatedAt};b[h]=v,q.parentId!==void 0&&(b.parentId=q.parentId),t.push({folderId:p,partial:b})}}catch{}})),!t.length)return;d(e=>{!e||!Array.isArray(e.folders)||t.forEach(r=>{const i=e.folders.findIndex(n=>n.id===r.folderId);i!==-1&&(r.attribMerge&&(e.folders[i].attrib={...e.folders[i].attrib||{},...r.attribMerge},r.updatedAt&&(e.folders[i].updatedAt=r.updatedAt)),r.partial&&(e.folders[i]={...e.folders[i],...r.partial}))})})}finally{f=!1}}};try{await g;const o=(t,y)=>{if(t.endsWith(".created")||t.endsWith(".deleted")){c=!0,I();return}const e=y?.id;e&&(u.add(e),I())};M.forEach(t=>w.push(T.subscribe(t,o)))}catch{}await l,w.forEach(o=>T.unsubscribe(o)),A()}}}}),{useGetFolderHierarchyQuery:V,useGetFolderListQuery:G}=E;exports.foldersQueries=E;exports.useGetFolderHierarchyQuery=V;exports.useGetFolderListQuery=G;
|
|
2
2
|
//# sourceMappingURL=getFolders.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\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 async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","PubSub","t","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\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 async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","PubSub","t","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
|
|
|
23
23
|
import "../../generated/products.es.js";
|
|
24
24
|
import "../../generated/projectDashboard.es.js";
|
|
25
25
|
import "../../generated/projects.es.js";
|
|
26
|
+
import "../../generated/projectFolders.es.js";
|
|
26
27
|
import "../../generated/reviewables.es.js";
|
|
27
28
|
import "../../generated/services.es.js";
|
|
28
29
|
import "../../generated/system.es.js";
|
|
@@ -148,10 +149,10 @@ const j = F.enhanceEndpoints({
|
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
|
-
}), { useGetFolderHierarchyQuery:
|
|
152
|
+
}), { useGetFolderHierarchyQuery: Ie, useGetFolderListQuery: ve } = j;
|
|
152
153
|
export {
|
|
153
154
|
j as foldersQueries,
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
Ie as useGetFolderHierarchyQuery,
|
|
156
|
+
ve as useGetFolderListQuery
|
|
156
157
|
};
|
|
157
158
|
//# sourceMappingURL=getFolders.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\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 async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\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 async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");const o=require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const i=require("../../../util/pubsub.cjs.js"),e=o.api.enhanceEndpoints({endpoints:{getEntityGroups:{onCacheEntryAdded:async(r,{cacheDataLoaded:u,cacheEntryRemoved:t,dispatch:q})=>{await u;const n=`entity.${r.entityType.replace(/s$/,"")}`,s=i.subscribe(n,()=>{q(e.endpoints.getEntityGroups.initiate(r,{forceRefetch:!0}))});await t,i.unsubscribe(s)}}}}),{useGetEntityGroupsQuery:c}=e;exports.groupingQueries=e;exports.useGetEntityGroupsQuery=c;
|
|
2
2
|
//# sourceMappingURL=getGrouping.cjs.js.map
|
|
@@ -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 }
|
|
1
|
+
{"version":3,"file":"getGrouping.cjs.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {\n // Subscribe to entity changes to refresh group counts\n onCacheEntryAdded: async (arg, { cacheDataLoaded, cacheEntryRemoved, dispatch }) => {\n await cacheDataLoaded\n\n // Map entityType to PubSub topic (handle plural forms)\n const entityType = arg.entityType.replace(/s$/, '') // 'versions' -> 'version'\n const topic = `entity.${entityType}`\n\n const token = PubSub.subscribe(topic, () => {\n // Refetch groups when any entity of this type changes\n dispatch(\n enhancedGroupingApi.endpoints.getEntityGroups.initiate(arg, { forceRefetch: true }),\n )\n })\n\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }"],"names":["enhancedGroupingApi","groupingApi","arg","cacheDataLoaded","cacheEntryRemoved","dispatch","topic","token","PubSub","useGetEntityGroupsQuery"],"mappings":"k1DAGMA,EAAsBC,EAAAA,IAAY,iBAAiB,CACvD,UAAW,CACT,gBAAiB,CAEf,kBAAmB,MAAOC,EAAK,CAAE,gBAAAC,EAAiB,kBAAAC,EAAmB,SAAAC,KAAe,CAClF,MAAMF,EAIN,MAAMG,EAAQ,UADKJ,EAAI,WAAW,QAAQ,KAAM,EAAE,CAChB,GAE5BK,EAAQC,EAAO,UAAUF,EAAO,IAAM,CAE1CD,EACEL,EAAoB,UAAU,gBAAgB,SAASE,EAAK,CAAE,aAAc,GAAM,CAAA,CAEtF,CAAC,EAED,MAAME,EACNI,EAAO,YAAYD,CAAK,CAC1B,CAAA,CACF,CAEJ,CAAC,EAEY,CAAE,wBAAAE,GAA4BT"}
|
|
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
|
|
|
23
23
|
import "../../generated/products.es.js";
|
|
24
24
|
import "../../generated/projectDashboard.es.js";
|
|
25
25
|
import "../../generated/projects.es.js";
|
|
26
|
+
import "../../generated/projectFolders.es.js";
|
|
26
27
|
import "../../generated/reviewables.es.js";
|
|
27
28
|
import "../../generated/services.es.js";
|
|
28
29
|
import "../../generated/system.es.js";
|
|
@@ -34,15 +35,30 @@ import "../../generated/users.es.js";
|
|
|
34
35
|
import "../../generated/versions.es.js";
|
|
35
36
|
import "../../generated/workfiles.es.js";
|
|
36
37
|
import "../../generated/ynputCloud.es.js";
|
|
37
|
-
import { api as
|
|
38
|
+
import { api as s } from "../../generated/grouping.es.js";
|
|
38
39
|
import "../../generated/views.es.js";
|
|
39
|
-
|
|
40
|
+
import "lodash";
|
|
41
|
+
import "react-toastify";
|
|
42
|
+
import "uuid";
|
|
43
|
+
import i from "../../../util/pubsub.es.js";
|
|
44
|
+
const o = s.enhanceEndpoints({
|
|
40
45
|
endpoints: {
|
|
41
|
-
getEntityGroups: {
|
|
46
|
+
getEntityGroups: {
|
|
47
|
+
// Subscribe to entity changes to refresh group counts
|
|
48
|
+
onCacheEntryAdded: async (t, { cacheDataLoaded: p, cacheEntryRemoved: r, dispatch: m }) => {
|
|
49
|
+
await p;
|
|
50
|
+
const e = `entity.${t.entityType.replace(/s$/, "")}`, n = i.subscribe(e, () => {
|
|
51
|
+
m(
|
|
52
|
+
o.endpoints.getEntityGroups.initiate(t, { forceRefetch: !0 })
|
|
53
|
+
);
|
|
54
|
+
});
|
|
55
|
+
await r, i.unsubscribe(n);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
42
58
|
}
|
|
43
|
-
}), { useGetEntityGroupsQuery:
|
|
59
|
+
}), { useGetEntityGroupsQuery: _ } = o;
|
|
44
60
|
export {
|
|
45
|
-
|
|
46
|
-
|
|
61
|
+
o as groupingQueries,
|
|
62
|
+
_ as useGetEntityGroupsQuery
|
|
47
63
|
};
|
|
48
64
|
//# sourceMappingURL=getGrouping.es.js.map
|
|
@@ -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 }
|
|
1
|
+
{"version":3,"file":"getGrouping.es.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {\n // Subscribe to entity changes to refresh group counts\n onCacheEntryAdded: async (arg, { cacheDataLoaded, cacheEntryRemoved, dispatch }) => {\n await cacheDataLoaded\n\n // Map entityType to PubSub topic (handle plural forms)\n const entityType = arg.entityType.replace(/s$/, '') // 'versions' -> 'version'\n const topic = `entity.${entityType}`\n\n const token = PubSub.subscribe(topic, () => {\n // Refetch groups when any entity of this type changes\n dispatch(\n enhancedGroupingApi.endpoints.getEntityGroups.initiate(arg, { forceRefetch: true }),\n )\n })\n\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }"],"names":["enhancedGroupingApi","groupingApi","arg","cacheDataLoaded","cacheEntryRemoved","dispatch","topic","token","PubSub","useGetEntityGroupsQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAMA,IAAsBC,EAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,iBAAiB;AAAA;AAAA,MAEf,mBAAmB,OAAOC,GAAK,EAAE,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAC,QAAe;AAClF,cAAMF;AAIN,cAAMG,IAAQ,UADKJ,EAAI,WAAW,QAAQ,MAAM,EAAE,CAChB,IAE5BK,IAAQC,EAAO,UAAUF,GAAO,MAAM;AAE1C,UAAAD;AAAA,YACEL,EAAoB,UAAU,gBAAgB,SAASE,GAAK,EAAE,cAAc,IAAM;AAAA,UAAA;AAAA,QAEtF,CAAC;AAED,cAAME,GACNI,EAAO,YAAYD,CAAK;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,yBAAAE,MAA4BT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const L=require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const G=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const w=require("./utils/formatEntityLinks.cjs.js"),N=require("react-toastify");require("lodash");require("uuid");const R=require("../../../util/pubsub.cjs.js"),E={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},S={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},$=G.api.injectEndpoints({endpoints:j=>({getEntityLinks:j.query({queryFn:async({projectName:t,entityIds:o,entityType:r},{getState:i,dispatch:u,queryCacheKey:m,forced:b})=>{try{const c=i(),p=JSON.stringify({projectName:t,entityType:r}),h=c.restApi?.queries?.[m||`getEntityLinks(${p})`]?.data||[],y=new Set(h.map(n=>n.id)),q=o.filter(n=>!y?.has(n)||b);if(q.length===0)return{data:h};const k=E[r],l=S[r];return{data:(await u(L.api.endpoints[k].initiate({projectName:t,entityIds:q},{forceRefetch:!0})).unwrap()).project?.[l]?.edges?.map(({node:n})=>{const d=n.links.edges?.filter(e=>!e?.node)||[];return d.length>0&&console.log(`[RESTRICTED LINKS] Entity ${n.id} (${n.name}) has ${d.length} restricted link(s):`,d.map(e=>({linkId:e?.id,linkType:e?.linkType,direction:e?.direction,entityType:e?.entityType,nodeIsNull:!e?.node}))),{id:n.id,links:n.links.edges?.map(e=>e?.node?{...e,node:{id:e.node.id,name:e.node.name,label:w.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0},isRestricted:!1}:{...e,node:null,isRestricted:!0})||[]}})||[]}}catch(c){return console.error(`Error in getEntityLinks queryFn for ${r}:`,c),N.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:c.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:o})=>{if(!t||!o)return!0;const r=new Set(t.entityIds),i=new Set(o.entityIds);if(r.size!==i.size)return!0;for(const u of r)if(!i.has(u))return!0;return!1},merge:(t,o)=>{if(!t)return o;const r=new Map(t.map(i=>[i.id,i]));for(const i of o)r.set(i.id,i);t.length=0,t.push(...r.values())},providesTags:(t,o,r)=>t?[...t.flatMap(i=>i.links.filter(u=>u.node!==null).map(u=>({type:"link",id:u.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:o,entityType:r},{cacheDataLoaded:i,cacheEntryRemoved:u,updateCachedData:m,dispatch:b}){let c;const p=new Set,I=100,h=500;let y=!1;const q=()=>{y||(y=!0,setTimeout(k,h))},k=async()=>{if(y=!1,!p.size)return;const l=Array.from(p).slice(0,I);l.forEach(a=>p.delete(a));try{const a=E[r],f=S[r],d=(await b(L.api.endpoints[a].initiate({projectName:t,entityIds:l},{forceRefetch:!0})).unwrap()).project?.[f]?.edges?.map(({node:e})=>({id:e.id,links:e.links.edges?.map(s=>s?.node?{...s,node:{id:s.node.id,name:s.node.name,label:w.formatEntityLabel(s.node),parents:s.node.parents||[],subType:"subType"in s.node?s.node.subType:void 0},isRestricted:!1}:{...s,node:null,isRestricted:!0})||[]}))||[];m(e=>{for(const s of d){const T=e.findIndex(v=>v.id===s.id);T>-1?e[T]=s:e.push(s)}})}catch(a){console.error("Realtime link batch update failed",a)}finally{p.size&&q()}};try{await i;const l=async(a,f)=>{if(!a.startsWith("link.created")&&!a.startsWith("link.deleted")||f?.project!==t)return;const n=f?.summary?.inputId,d=f?.summary?.outputId;!n&&!d||(n&&p.add(n),d&&p.add(d),q())};c=R.subscribe("link",l)}catch{}await u,c&&R.unsubscribe(c)}})})}),{useGetEntityLinksQuery:P}=$;exports.entityLinksApi=$;exports.useGetEntityLinksQuery=P;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const L=require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const G=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const w=require("./utils/formatEntityLinks.cjs.js"),N=require("react-toastify");require("lodash");require("uuid");const R=require("../../../util/pubsub.cjs.js"),E={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},S={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},$=G.api.injectEndpoints({endpoints:j=>({getEntityLinks:j.query({queryFn:async({projectName:t,entityIds:o,entityType:r},{getState:i,dispatch:u,queryCacheKey:m,forced:b})=>{try{const c=i(),p=JSON.stringify({projectName:t,entityType:r}),h=c.restApi?.queries?.[m||`getEntityLinks(${p})`]?.data||[],y=new Set(h.map(n=>n.id)),q=o.filter(n=>!y?.has(n)||b);if(q.length===0)return{data:h};const k=E[r],l=S[r];return{data:(await u(L.api.endpoints[k].initiate({projectName:t,entityIds:q},{forceRefetch:!0})).unwrap()).project?.[l]?.edges?.map(({node:n})=>{const d=n.links.edges?.filter(e=>!e?.node)||[];return d.length>0&&console.log(`[RESTRICTED LINKS] Entity ${n.id} (${n.name}) has ${d.length} restricted link(s):`,d.map(e=>({linkId:e?.id,linkType:e?.linkType,direction:e?.direction,entityType:e?.entityType,nodeIsNull:!e?.node}))),{id:n.id,links:n.links.edges?.map(e=>e?.node?{...e,node:{id:e.node.id,name:e.node.name,label:w.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0},isRestricted:!1}:{...e,node:null,isRestricted:!0})||[]}})||[]}}catch(c){return console.error(`Error in getEntityLinks queryFn for ${r}:`,c),N.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:c.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:o})=>{if(!t||!o)return!0;const r=new Set(t.entityIds),i=new Set(o.entityIds);if(r.size!==i.size)return!0;for(const u of r)if(!i.has(u))return!0;return!1},merge:(t,o)=>{if(!t)return o;const r=new Map(t.map(i=>[i.id,i]));for(const i of o)r.set(i.id,i);t.length=0,t.push(...r.values())},providesTags:(t,o,r)=>t?[...t.flatMap(i=>i.links.filter(u=>u.node!==null).map(u=>({type:"link",id:u.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:o,entityType:r},{cacheDataLoaded:i,cacheEntryRemoved:u,updateCachedData:m,dispatch:b}){let c;const p=new Set,I=100,h=500;let y=!1;const q=()=>{y||(y=!0,setTimeout(k,h))},k=async()=>{if(y=!1,!p.size)return;const l=Array.from(p).slice(0,I);l.forEach(a=>p.delete(a));try{const a=E[r],f=S[r],d=(await b(L.api.endpoints[a].initiate({projectName:t,entityIds:l},{forceRefetch:!0})).unwrap()).project?.[f]?.edges?.map(({node:e})=>({id:e.id,links:e.links.edges?.map(s=>s?.node?{...s,node:{id:s.node.id,name:s.node.name,label:w.formatEntityLabel(s.node),parents:s.node.parents||[],subType:"subType"in s.node?s.node.subType:void 0},isRestricted:!1}:{...s,node:null,isRestricted:!0})||[]}))||[];m(e=>{for(const s of d){const T=e.findIndex(v=>v.id===s.id);T>-1?e[T]=s:e.push(s)}})}catch(a){console.error("Realtime link batch update failed",a)}finally{p.size&&q()}};try{await i;const l=async(a,f)=>{if(!a.startsWith("link.created")&&!a.startsWith("link.deleted")||f?.project!==t)return;const n=f?.summary?.inputId,d=f?.summary?.outputId;!n&&!d||(n&&p.add(n),d&&p.add(d),q())};c=R.subscribe("link",l)}catch{}await u,c&&R.unsubscribe(c)}})})}),{useGetEntityLinksQuery:P}=$;exports.entityLinksApi=$;exports.useGetEntityLinksQuery=P;
|
|
2
2
|
//# sourceMappingURL=getEntityLinks.cjs.js.map
|