@ynput/ayon-frontend-shared 0.3.27 → 0.3.29
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 +25 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +404 -190
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +19 -18
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +406 -402
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +34 -33
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +15 -13
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +12 -10
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +1 -0
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +58 -36
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +125 -99
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js +69 -9
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js +95 -35
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projectFolders.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 +20 -19
- 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 +4 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js +2 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js +64 -0
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -0
- 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 +27 -26
- package/dist/shared/src/api/queries/links/getLinks.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 +104 -103
- package/dist/shared/src/api/queries/overview/getOverview.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 +118 -111
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.es.js +43 -19
- package/dist/shared/src/api/queries/project/updateProject.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 +22 -21
- package/dist/shared/src/api/queries/users/getUsers.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 +24 -20
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js.map +1 -1
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js +89 -88
- package/dist/shared/src/components/DateRangePicker/DateRangePicker.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 +3 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -2
- 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 +3 -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 +3 -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 +5 -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 +162 -138
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +5 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.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 +5 -4
- 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 +3 -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 +3 -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 +9 -7
- 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 +3 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.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 +5 -3
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PricingLink.es.js +5 -5
- package/dist/shared/src/components/Powerpack/PricingLink.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 +46 -43
- 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 +5 -3
- 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 +5 -3
- 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 +9 -7
- 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 +9 -7
- 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 +3 -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 +5 -3
- 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 +6 -4
- 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 +5 -3
- 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 +3 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +5 -2
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +69 -79
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.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 +192 -141
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +7 -5
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -3
- 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 +3 -2
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +41 -44
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -4
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -3
- 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 +103 -100
- 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 +3 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- 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 +5 -3
- 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 +5 -2
- package/dist/shared/src/containers/Actions/Actions.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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +3 -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 +20 -18
- 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 +5 -3
- 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 +5 -3
- 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 +5 -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 +5 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +67 -64
- 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 +26 -24
- 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 +5 -3
- 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 +5 -3
- 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 +5 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +6 -5
- package/dist/shared/src/containers/Feed/Feed.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 +5 -3
- 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 +5 -3
- 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 +5 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.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 +5 -3
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +9 -7
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.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 +5 -3
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.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 +6 -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 +3 -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 +565 -563
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.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 +61 -50
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +104 -102
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js +10 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js +25 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js.map +1 -0
- 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 +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.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 +114 -112
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +5 -4
- 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 +8 -8
- 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 +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.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 +21 -19
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- 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 +113 -111
- 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 +109 -107
- 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 +106 -105
- 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 +107 -105
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- 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 +101 -99
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +337 -40
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.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 +123 -119
- 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 +100 -98
- 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 +125 -120
- 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 +103 -101
- 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 +9 -7
- 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 +9 -7
- 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 +112 -110
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +100 -98
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.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 +110 -108
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +89 -356
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.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 +41 -39
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +29 -28
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +31 -32
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.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 +7 -5
- 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 +98 -96
- 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 +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.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 +5 -3
- 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 +5 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.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 +5 -3
- 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 +53 -49
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +9 -7
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +21 -149
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.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 +54 -53
- 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 +3 -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 +5 -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 +10 -8
- 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 +23 -20
- 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 +3 -2
- 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 +8 -5
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.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 +3 -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 +3 -2
- 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 +3 -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 +5 -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 +7 -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 +5 -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 +9 -6
- 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 +5 -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 +7 -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 +5 -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 +7 -4
- 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 +6 -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 +7 -5
- 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 +3 -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 +3 -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 +3 -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 +5 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +2 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +31 -0
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -0
- 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 +5 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
- package/dist/shared/src/hooks/useScopedTypes.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 +3 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js +43 -44
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
- package/dist/shared/src/util/formatUTCDate.cjs.js +2 -0
- package/dist/shared/src/util/formatUTCDate.cjs.js.map +1 -0
- package/dist/shared/src/util/formatUTCDate.es.js +9 -0
- package/dist/shared/src/util/formatUTCDate.es.js.map +1 -0
- package/dist/shared/src/util/getProjectDisplayName.cjs.js +2 -0
- package/dist/shared/src/util/getProjectDisplayName.cjs.js.map +1 -0
- package/dist/shared/src/util/getProjectDisplayName.es.js +5 -0
- package/dist/shared/src/util/getProjectDisplayName.es.js.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +38 -0
- package/dist/types/api/generated/graphqlLinks.d.ts +10 -4
- package/dist/types/api/generated/projectFolders.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +7 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +14 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +7 -0
- package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +566 -0
- package/dist/types/api/queries/folders/index.d.ts +1 -0
- package/dist/types/api/queries/links/getLinks.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +7 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
- package/dist/types/api/queries/users/getUsers.d.ts +7 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +14 -0
- package/dist/types/components/Powerpack/PricingLink.d.ts +1 -1
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -0
- package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +7 -2
- package/dist/types/components/ReviewablesSelector/index.d.ts +1 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +2 -1
- package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +1 -0
- package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/components/DeleteConfirmContent.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/utils/expandRelativeDates.d.ts +1 -1
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
- package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +3 -7
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useReviewablesKeyboardNavigation.d.ts +13 -0
- package/dist/types/util/buildHierarchicalTableRows.d.ts +2 -0
- package/dist/types/util/confirmDelete.d.ts +1 -1
- package/dist/types/util/formatUTCDate.d.ts +1 -0
- package/dist/types/util/getProjectDisplayName.d.ts +6 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +23 -21
- package/dist/util.es.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../base/client.es.js";
|
|
2
|
-
import { api as
|
|
2
|
+
import { api as C } from "../../generated/graphql.es.js";
|
|
3
3
|
import "../../generated/graphqlLinks.es.js";
|
|
4
4
|
import "../../generated/access.es.js";
|
|
5
5
|
import "../../generated/actions.es.js";
|
|
@@ -42,17 +42,17 @@ import "lodash";
|
|
|
42
42
|
import "react-toastify";
|
|
43
43
|
import "uuid";
|
|
44
44
|
import E from "../../../util/pubsub.es.js";
|
|
45
|
-
const S = (
|
|
45
|
+
const S = (l) => {
|
|
46
46
|
try {
|
|
47
|
-
return JSON.parse(
|
|
47
|
+
return JSON.parse(l);
|
|
48
48
|
} catch {
|
|
49
49
|
return {};
|
|
50
50
|
}
|
|
51
|
-
},
|
|
52
|
-
if (!
|
|
51
|
+
}, _ = (l) => {
|
|
52
|
+
if (!l.project)
|
|
53
53
|
return [];
|
|
54
54
|
const t = [];
|
|
55
|
-
for (const { node: e } of
|
|
55
|
+
for (const { node: e } of l.project.tasks.edges)
|
|
56
56
|
t.push({
|
|
57
57
|
...e,
|
|
58
58
|
folderId: e.folderId || "root",
|
|
@@ -62,32 +62,32 @@ const S = (u) => {
|
|
|
62
62
|
links: []
|
|
63
63
|
});
|
|
64
64
|
return t;
|
|
65
|
-
}, b = (
|
|
66
|
-
const
|
|
65
|
+
}, b = (l = [], t, e) => {
|
|
66
|
+
const r = l?.map((c) => ({ type: "overviewTask", id: c.id })) || [], o = e ? (Array.isArray(e) ? e : [e]).map((c) => ({
|
|
67
67
|
type: "overviewTask",
|
|
68
68
|
id: c
|
|
69
69
|
})) : [];
|
|
70
70
|
return [
|
|
71
|
-
...a,
|
|
72
71
|
...r,
|
|
72
|
+
...o,
|
|
73
73
|
{ type: "overviewTask", id: t },
|
|
74
74
|
{ type: "overviewTask", id: "LIST" }
|
|
75
75
|
];
|
|
76
|
-
}, w =
|
|
76
|
+
}, w = C.enhanceEndpoints({
|
|
77
77
|
endpoints: {
|
|
78
78
|
// This gets tasks for all parent folders provided
|
|
79
79
|
// But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query
|
|
80
80
|
// It is only used by getOverviewTasksByFolders in this file
|
|
81
81
|
GetTasksByParent: {
|
|
82
|
-
transformResponse:
|
|
83
|
-
providesTags: (
|
|
82
|
+
transformResponse: _,
|
|
83
|
+
providesTags: (l, t, { parentIds: e, projectName: r }) => b(l, r, e)
|
|
84
84
|
},
|
|
85
85
|
GetTasksList: {
|
|
86
|
-
transformResponse: (
|
|
87
|
-
tasks:
|
|
88
|
-
pageInfo:
|
|
86
|
+
transformResponse: (l) => ({
|
|
87
|
+
tasks: _(l),
|
|
88
|
+
pageInfo: l.project.tasks.pageInfo
|
|
89
89
|
}),
|
|
90
|
-
providesTags: (
|
|
90
|
+
providesTags: (l, t, { projectName: e }) => b(l?.tasks || [], e)
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
}), G = x.enhanceEndpoints({
|
|
@@ -95,26 +95,26 @@ const S = (u) => {
|
|
|
95
95
|
searchFolders: {}
|
|
96
96
|
}
|
|
97
97
|
}), F = 100, L = w.injectEndpoints({
|
|
98
|
-
endpoints: (
|
|
98
|
+
endpoints: (l) => ({
|
|
99
99
|
// Each project has one cache for all the tasks of the expanded folders
|
|
100
100
|
// Changing the expanded folders will trigger a refetch but not a new cache
|
|
101
101
|
// Each expanded folder has it's own query that is looped over here
|
|
102
102
|
// When new folders are expanded, the new tasks are fetched and we use the cache for the rest
|
|
103
103
|
// This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits
|
|
104
|
-
getOverviewTasksByFolders:
|
|
105
|
-
async queryFn({ projectName: t, parentIds: e, filter:
|
|
104
|
+
getOverviewTasksByFolders: l.query({
|
|
105
|
+
async queryFn({ projectName: t, parentIds: e, filter: r, folderFilter: o, search: c }, { dispatch: k, forced: f }) {
|
|
106
106
|
try {
|
|
107
107
|
const g = [];
|
|
108
108
|
for (let i = 0; i < e.length; i += 20) {
|
|
109
|
-
const I = e.slice(i, i + 20),
|
|
109
|
+
const I = e.slice(i, i + 20), a = (await Promise.all(
|
|
110
110
|
I.map(
|
|
111
111
|
async (s) => k(
|
|
112
112
|
w.endpoints.GetTasksByParent.initiate(
|
|
113
113
|
{
|
|
114
114
|
projectName: t,
|
|
115
115
|
parentIds: [s],
|
|
116
|
-
filter:
|
|
117
|
-
folderFilter:
|
|
116
|
+
filter: r,
|
|
117
|
+
folderFilter: o,
|
|
118
118
|
search: c
|
|
119
119
|
},
|
|
120
120
|
{ forceRefetch: f }
|
|
@@ -122,7 +122,7 @@ const S = (u) => {
|
|
|
122
122
|
)
|
|
123
123
|
)
|
|
124
124
|
)).filter((s) => !!s.data).flatMap((s) => s.data);
|
|
125
|
-
g.push(...
|
|
125
|
+
g.push(...a);
|
|
126
126
|
}
|
|
127
127
|
return { data: g };
|
|
128
128
|
} catch (T) {
|
|
@@ -137,34 +137,34 @@ const S = (u) => {
|
|
|
137
137
|
forceRefetch({ currentArg: t, previousArg: e }) {
|
|
138
138
|
return JSON.stringify(t) !== JSON.stringify(e);
|
|
139
139
|
},
|
|
140
|
-
providesTags: (t, e, { parentIds:
|
|
141
|
-
async onCacheEntryAdded({ projectName: t, parentIds: e, filter:
|
|
140
|
+
providesTags: (t, e, { parentIds: r, projectName: o }) => b(t, o, r),
|
|
141
|
+
async onCacheEntryAdded({ projectName: t, parentIds: e, filter: r, search: o }, { cacheDataLoaded: c, cacheEntryRemoved: k, updateCachedData: f, dispatch: T }) {
|
|
142
142
|
let g;
|
|
143
143
|
const i = /* @__PURE__ */ new Set(), I = 100, v = 500;
|
|
144
|
-
let
|
|
144
|
+
let a = !1;
|
|
145
145
|
const s = () => {
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
if (
|
|
149
|
-
const
|
|
150
|
-
|
|
146
|
+
a || (a = !0, setTimeout(y, v));
|
|
147
|
+
}, y = async () => {
|
|
148
|
+
if (a = !1, !i.size) return;
|
|
149
|
+
const u = Array.from(i).slice(0, I);
|
|
150
|
+
u.forEach((d) => i.delete(d));
|
|
151
151
|
try {
|
|
152
152
|
const p = (await T(
|
|
153
153
|
w.endpoints.GetTasksList.initiate(
|
|
154
154
|
{
|
|
155
155
|
projectName: t,
|
|
156
|
-
taskIds:
|
|
156
|
+
taskIds: u
|
|
157
157
|
},
|
|
158
158
|
{ forceRefetch: !0 }
|
|
159
159
|
)
|
|
160
|
-
).unwrap()).tasks || [],
|
|
160
|
+
).unwrap()).tasks || [], m = new Map(p.map((n) => [n.id, n]));
|
|
161
161
|
f((n) => {
|
|
162
162
|
for (const h of p) {
|
|
163
163
|
const P = n.findIndex((R) => R.id === h.id);
|
|
164
164
|
P > -1 ? n[P] = h : n.push(h);
|
|
165
165
|
}
|
|
166
|
-
for (const h of
|
|
167
|
-
if (!
|
|
166
|
+
for (const h of u)
|
|
167
|
+
if (!m.has(h)) {
|
|
168
168
|
const P = n.findIndex((R) => R.id === h);
|
|
169
169
|
P > -1 && n.splice(P, 1);
|
|
170
170
|
}
|
|
@@ -177,11 +177,11 @@ const S = (u) => {
|
|
|
177
177
|
};
|
|
178
178
|
try {
|
|
179
179
|
await c;
|
|
180
|
-
const
|
|
181
|
-
const
|
|
182
|
-
!
|
|
180
|
+
const u = async (d, p) => {
|
|
181
|
+
const m = p?.summary?.entityId, n = p?.summary?.parentId;
|
|
182
|
+
!m || !n || e.includes(n) && (i.add(m), s());
|
|
183
183
|
};
|
|
184
|
-
g = E.subscribe("entity.task",
|
|
184
|
+
g = E.subscribe("entity.task", u);
|
|
185
185
|
} catch {
|
|
186
186
|
}
|
|
187
187
|
await k, g && E.unsubscribe(g);
|
|
@@ -189,50 +189,51 @@ const S = (u) => {
|
|
|
189
189
|
}),
|
|
190
190
|
// searchFolders is a post so it's a bit annoying to consume
|
|
191
191
|
// we wrap it in a queryFn to make it easier to consume as a query hook
|
|
192
|
-
getSearchFolders:
|
|
193
|
-
async queryFn({ projectName: t, folderSearchRequest: e }, { dispatch:
|
|
192
|
+
getSearchFolders: l.query({
|
|
193
|
+
async queryFn({ projectName: t, folderSearchRequest: e }, { dispatch: r }) {
|
|
194
194
|
try {
|
|
195
|
-
return { data: (await
|
|
195
|
+
return { data: (await r(
|
|
196
196
|
G.endpoints.searchFolders.initiate({
|
|
197
197
|
projectName: t,
|
|
198
198
|
folderSearchRequest: e
|
|
199
199
|
})
|
|
200
200
|
)).data?.folderIds || [] };
|
|
201
|
-
} catch (
|
|
202
|
-
return console.error(
|
|
201
|
+
} catch (o) {
|
|
202
|
+
return console.error(o), { error: { status: "FETCH_ERROR", error: o.message } };
|
|
203
203
|
}
|
|
204
|
-
}
|
|
204
|
+
},
|
|
205
|
+
providesTags: (t, e, { projectName: r }) => [{ type: "tasksFolder", id: r }]
|
|
205
206
|
}),
|
|
206
207
|
// Add new infinite query endpoint for tasks list
|
|
207
|
-
getTasksListInfinite:
|
|
208
|
+
getTasksListInfinite: l.infiniteQuery({
|
|
208
209
|
infiniteQueryOptions: {
|
|
209
210
|
initialPageParam: { cursor: "", desc: !1 },
|
|
210
211
|
// Calculate the next page param based on current page response and params
|
|
211
|
-
getNextPageParam: (t, e,
|
|
212
|
+
getNextPageParam: (t, e, r, o) => {
|
|
212
213
|
const c = t.pageInfo;
|
|
213
|
-
if (!(!(
|
|
214
|
+
if (!(!(r.desc ? c.hasPreviousPage : c.hasNextPage) || !c.endCursor))
|
|
214
215
|
return {
|
|
215
216
|
cursor: c.endCursor,
|
|
216
|
-
desc:
|
|
217
|
+
desc: r.desc
|
|
217
218
|
};
|
|
218
219
|
}
|
|
219
220
|
},
|
|
220
|
-
queryFn: async ({ queryArg: t, pageParam: e },
|
|
221
|
+
queryFn: async ({ queryArg: t, pageParam: e }, r) => {
|
|
221
222
|
try {
|
|
222
|
-
const { projectName:
|
|
223
|
-
projectName:
|
|
223
|
+
const { projectName: o, filter: c, folderFilter: k, search: f, folderIds: T, taskIds: g, sortBy: i, desc: I } = t, { cursor: v } = e, a = {
|
|
224
|
+
projectName: o,
|
|
224
225
|
filter: c,
|
|
225
226
|
folderFilter: k,
|
|
226
227
|
search: f,
|
|
227
228
|
folderIds: T,
|
|
228
229
|
taskIds: g
|
|
229
230
|
};
|
|
230
|
-
i ? (
|
|
231
|
-
const s = await
|
|
232
|
-
w.endpoints.GetTasksList.initiate(
|
|
231
|
+
i ? (a.sortBy = i, I ? (a.before = v || void 0, a.last = F) : (a.after = v || void 0, a.first = F)) : (a.after = v || void 0, a.first = F);
|
|
232
|
+
const s = await r.dispatch(
|
|
233
|
+
w.endpoints.GetTasksList.initiate(a, { forceRefetch: !0 })
|
|
233
234
|
);
|
|
234
235
|
if (s.error) throw s.error;
|
|
235
|
-
const
|
|
236
|
+
const y = {
|
|
236
237
|
tasks: [],
|
|
237
238
|
pageInfo: {
|
|
238
239
|
hasNextPage: !1,
|
|
@@ -242,14 +243,14 @@ const S = (u) => {
|
|
|
242
243
|
}
|
|
243
244
|
};
|
|
244
245
|
return {
|
|
245
|
-
data: s.data ||
|
|
246
|
+
data: s.data || y
|
|
246
247
|
};
|
|
247
|
-
} catch (
|
|
248
|
-
return console.error("Error in getTasksListInfinite queryFn:",
|
|
248
|
+
} catch (o) {
|
|
249
|
+
return console.error("Error in getTasksListInfinite queryFn:", o), { error: { status: "FETCH_ERROR", error: o.message } };
|
|
249
250
|
}
|
|
250
251
|
},
|
|
251
|
-
providesTags: (t, e, { projectName:
|
|
252
|
-
async onCacheEntryAdded(t, { cacheDataLoaded: e, cacheEntryRemoved:
|
|
252
|
+
providesTags: (t, e, { projectName: r }) => b(t?.pages.flatMap((o) => o.tasks) || [], r),
|
|
253
|
+
async onCacheEntryAdded(t, { cacheDataLoaded: e, cacheEntryRemoved: r, updateCachedData: o, dispatch: c }) {
|
|
253
254
|
let k;
|
|
254
255
|
const f = /* @__PURE__ */ new Set(), T = 100, g = 500;
|
|
255
256
|
let i = !1;
|
|
@@ -257,30 +258,30 @@ const S = (u) => {
|
|
|
257
258
|
i || (i = !0, setTimeout(v, g));
|
|
258
259
|
}, v = async () => {
|
|
259
260
|
if (i = !1, !f.size) return;
|
|
260
|
-
const
|
|
261
|
-
|
|
261
|
+
const a = Array.from(f).slice(0, T);
|
|
262
|
+
a.forEach((s) => f.delete(s));
|
|
262
263
|
try {
|
|
263
|
-
const
|
|
264
|
+
const y = (await c(
|
|
264
265
|
w.endpoints.GetTasksList.initiate(
|
|
265
266
|
{
|
|
266
267
|
projectName: t.projectName,
|
|
267
|
-
taskIds:
|
|
268
|
+
taskIds: a,
|
|
268
269
|
folderIds: t.folderIds
|
|
269
270
|
},
|
|
270
271
|
{ forceRefetch: !0 }
|
|
271
272
|
)
|
|
272
|
-
).unwrap()).tasks || [],
|
|
273
|
-
|
|
274
|
-
for (const p of
|
|
275
|
-
let
|
|
273
|
+
).unwrap()).tasks || [], u = new Map(y.map((d) => [d.id, d]));
|
|
274
|
+
o((d) => {
|
|
275
|
+
for (const p of y) {
|
|
276
|
+
let m = !1;
|
|
276
277
|
for (const n of d.pages) {
|
|
277
278
|
const h = n.tasks.findIndex((P) => P.id === p.id);
|
|
278
279
|
if (h !== -1) {
|
|
279
|
-
n.tasks[h] = p,
|
|
280
|
+
n.tasks[h] = p, m = !0;
|
|
280
281
|
break;
|
|
281
282
|
}
|
|
282
283
|
}
|
|
283
|
-
|
|
284
|
+
m || (d.pages.length ? d.pages[0].tasks.unshift(p) : d.pages.push({
|
|
284
285
|
tasks: [p],
|
|
285
286
|
pageInfo: {
|
|
286
287
|
startCursor: null,
|
|
@@ -290,12 +291,12 @@ const S = (u) => {
|
|
|
290
291
|
}
|
|
291
292
|
}));
|
|
292
293
|
}
|
|
293
|
-
for (const p of
|
|
294
|
-
if (!
|
|
295
|
-
for (const
|
|
296
|
-
const n =
|
|
294
|
+
for (const p of a)
|
|
295
|
+
if (!u.has(p))
|
|
296
|
+
for (const m of d.pages) {
|
|
297
|
+
const n = m.tasks.findIndex((h) => h.id === p);
|
|
297
298
|
if (n !== -1) {
|
|
298
|
-
|
|
299
|
+
m.tasks.splice(n, 1);
|
|
299
300
|
break;
|
|
300
301
|
}
|
|
301
302
|
}
|
|
@@ -308,24 +309,24 @@ const S = (u) => {
|
|
|
308
309
|
};
|
|
309
310
|
try {
|
|
310
311
|
await e;
|
|
311
|
-
const
|
|
312
|
-
const
|
|
313
|
-
|
|
312
|
+
const a = async (s, y) => {
|
|
313
|
+
const u = y?.summary?.entityId;
|
|
314
|
+
u && (f.add(u), I());
|
|
314
315
|
};
|
|
315
|
-
k = E.subscribe("entity.task",
|
|
316
|
+
k = E.subscribe("entity.task", a);
|
|
316
317
|
} catch {
|
|
317
318
|
}
|
|
318
|
-
await
|
|
319
|
+
await r, k && E.unsubscribe(k);
|
|
319
320
|
}
|
|
320
321
|
}),
|
|
321
|
-
getGroupedTasksList:
|
|
322
|
-
queryFn: async ({ projectName: t, groups: e, search:
|
|
322
|
+
getGroupedTasksList: l.query({
|
|
323
|
+
queryFn: async ({ projectName: t, groups: e, search: r, folderFilter: o, folderIds: c, desc: k, sortBy: f, groupCount: T }, g) => {
|
|
323
324
|
try {
|
|
324
325
|
let i = [];
|
|
325
326
|
const I = /* @__PURE__ */ new Set(["folderType"]);
|
|
326
327
|
for (const s of e) {
|
|
327
|
-
const
|
|
328
|
-
let
|
|
328
|
+
const y = T || s.count || 500;
|
|
329
|
+
let u = s.filter, d = o;
|
|
329
330
|
if (s.filter)
|
|
330
331
|
try {
|
|
331
332
|
const n = JSON.parse(s.filter), h = n.conditions || [], P = h.filter(
|
|
@@ -334,8 +335,8 @@ const S = (u) => {
|
|
|
334
335
|
(A) => I.has(A.key)
|
|
335
336
|
);
|
|
336
337
|
if (R.length > 0) {
|
|
337
|
-
|
|
338
|
-
const A =
|
|
338
|
+
u = P.length ? JSON.stringify({ ...n, conditions: P }) : void 0;
|
|
339
|
+
const A = o ? JSON.parse(o) : null, N = [...A && Array.isArray(A.conditions) ? A.conditions : [], ...R];
|
|
339
340
|
d = JSON.stringify(
|
|
340
341
|
A ? { ...A, conditions: N } : { conditions: N }
|
|
341
342
|
);
|
|
@@ -344,53 +345,53 @@ const S = (u) => {
|
|
|
344
345
|
}
|
|
345
346
|
const p = {
|
|
346
347
|
projectName: t,
|
|
347
|
-
filter:
|
|
348
|
+
filter: u,
|
|
348
349
|
folderFilter: d,
|
|
349
|
-
search:
|
|
350
|
+
search: r,
|
|
350
351
|
folderIds: c,
|
|
351
352
|
sortBy: f,
|
|
352
353
|
// @ts-expect-error - we know group does not exist on query variables but we need it for later
|
|
353
354
|
group: s.value
|
|
354
355
|
};
|
|
355
|
-
k ? p.last =
|
|
356
|
-
const
|
|
356
|
+
k ? p.last = y : p.first = y;
|
|
357
|
+
const m = g.dispatch(
|
|
357
358
|
w.endpoints.GetTasksList.initiate(p, { forceRefetch: !0 })
|
|
358
359
|
);
|
|
359
|
-
i.push(
|
|
360
|
+
i.push(m);
|
|
360
361
|
}
|
|
361
|
-
const v = await Promise.all(i),
|
|
362
|
+
const v = await Promise.all(i), a = [];
|
|
362
363
|
for (const s of v) {
|
|
363
364
|
if (s.error) throw s.error;
|
|
364
|
-
const
|
|
365
|
+
const y = s.originalArgs?.group, u = s.data?.pageInfo?.hasNextPage || s.data?.pageInfo?.hasPreviousPage || !1, d = s.data?.tasks.map((p, m, n) => ({
|
|
365
366
|
...p,
|
|
366
367
|
groups: [
|
|
367
368
|
{
|
|
368
|
-
value:
|
|
369
|
-
hasNextPage:
|
|
369
|
+
value: y,
|
|
370
|
+
hasNextPage: m === n.length - 1 && u ? y : void 0
|
|
370
371
|
// Only add hasNextPage to the last task in the group
|
|
371
372
|
}
|
|
372
373
|
]
|
|
373
374
|
})) || [];
|
|
374
|
-
|
|
375
|
+
a.push(...d);
|
|
375
376
|
}
|
|
376
377
|
return {
|
|
377
378
|
data: {
|
|
378
|
-
tasks:
|
|
379
|
+
tasks: a
|
|
379
380
|
}
|
|
380
381
|
};
|
|
381
382
|
} catch (i) {
|
|
382
383
|
return console.error("Error in getGroupedTasksList queryFn:", i), { error: { status: "FETCH_ERROR", error: i.message } };
|
|
383
384
|
}
|
|
384
385
|
},
|
|
385
|
-
providesTags: (t, e, { projectName:
|
|
386
|
+
providesTags: (t, e, { projectName: r }) => b(t?.tasks, r)
|
|
386
387
|
})
|
|
387
388
|
})
|
|
388
389
|
}), {
|
|
389
390
|
useGetOverviewTasksByFoldersQuery: Ee,
|
|
390
391
|
useGetSearchFoldersQuery: Fe,
|
|
391
392
|
useGetTasksListQuery: Ne,
|
|
392
|
-
useGetTasksListInfiniteInfiniteQuery:
|
|
393
|
-
useLazyGetTasksByParentQuery:
|
|
393
|
+
useGetTasksListInfiniteInfiniteQuery: _e,
|
|
394
|
+
useLazyGetTasksByParentQuery: Ce,
|
|
394
395
|
useGetGroupedTasksListQuery: xe
|
|
395
396
|
} = L;
|
|
396
397
|
export {
|
|
@@ -400,8 +401,8 @@ export {
|
|
|
400
401
|
xe as useGetGroupedTasksListQuery,
|
|
401
402
|
Ee as useGetOverviewTasksByFoldersQuery,
|
|
402
403
|
Fe as useGetSearchFoldersQuery,
|
|
403
|
-
|
|
404
|
+
_e as useGetTasksListInfiniteInfiniteQuery,
|
|
404
405
|
Ne as useGetTasksListQuery,
|
|
405
|
-
|
|
406
|
+
Ce as useLazyGetTasksByParentQuery
|
|
406
407
|
};
|
|
407
408
|
//# sourceMappingURL=getOverview.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n taskIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n groupCount?: number // optional override for all groups\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, folderFilter, search, folderIds, taskIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n { projectName, groups, search, folderFilter, folderIds, desc, sortBy, groupCount },\n api,\n ) => {\n try {\n let promises = []\n // Folder-level filter keys that must go in folderFilter, not task filter\n const folderFilterKeys = new Set(['folderType'])\n\n for (const group of groups) {\n // Determine count for this group - use argument override, else group count, else default\n const count = groupCount || group.count || 500\n\n // Separate folder-level conditions from task-level conditions in the group filter\n let taskFilter = group.filter\n let mergedFolderFilter = folderFilter\n if (group.filter) {\n try {\n const parsed = JSON.parse(group.filter)\n const conditions = parsed.conditions || []\n const taskConditions = conditions.filter(\n (c: any) => !folderFilterKeys.has(c.key),\n )\n const folderConditions = conditions.filter((c: any) =>\n folderFilterKeys.has(c.key),\n )\n\n if (folderConditions.length > 0) {\n taskFilter = taskConditions.length\n ? JSON.stringify({ ...parsed, conditions: taskConditions })\n : undefined\n // Merge folder conditions with existing folderFilter, preserving metadata\n const existingFolderFilter = folderFilter ? JSON.parse(folderFilter) : null\n const existingConditions =\n existingFolderFilter && Array.isArray(existingFolderFilter.conditions)\n ? existingFolderFilter.conditions\n : []\n const allFolderConditions = [...existingConditions, ...folderConditions]\n mergedFolderFilter = JSON.stringify(\n existingFolderFilter\n ? { ...existingFolderFilter, conditions: allFolderConditions }\n : { conditions: allFolderConditions },\n )\n }\n } catch {\n // If parsing fails, use the original filter as-is\n }\n }\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: taskFilter,\n folderFilter: mergedFolderFilter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","dispatch","forced","allTasks","batchParentIds","batchTasks","parentId","r","e","rest","currentArg","previousArg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","handlePubSub","_topic","message","taskId","PubSub","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","taskIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","res","groupValue","hasNextPage","groupTasks","i","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n taskIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n groupCount?: number // optional override for all groups\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n providesTags: (_r, _e, { projectName }) => [{ type: 'tasksFolder', id: projectName }],\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, folderFilter, search, folderIds, taskIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n { projectName, groups, search, folderFilter, folderIds, desc, sortBy, groupCount },\n api,\n ) => {\n try {\n let promises = []\n // Folder-level filter keys that must go in folderFilter, not task filter\n const folderFilterKeys = new Set(['folderType'])\n\n for (const group of groups) {\n // Determine count for this group - use argument override, else group count, else default\n const count = groupCount || group.count || 500\n\n // Separate folder-level conditions from task-level conditions in the group filter\n let taskFilter = group.filter\n let mergedFolderFilter = folderFilter\n if (group.filter) {\n try {\n const parsed = JSON.parse(group.filter)\n const conditions = parsed.conditions || []\n const taskConditions = conditions.filter(\n (c: any) => !folderFilterKeys.has(c.key),\n )\n const folderConditions = conditions.filter((c: any) =>\n folderFilterKeys.has(c.key),\n )\n\n if (folderConditions.length > 0) {\n taskFilter = taskConditions.length\n ? JSON.stringify({ ...parsed, conditions: taskConditions })\n : undefined\n // Merge folder conditions with existing folderFilter, preserving metadata\n const existingFolderFilter = folderFilter ? JSON.parse(folderFilter) : null\n const existingConditions =\n existingFolderFilter && Array.isArray(existingFolderFilter.conditions)\n ? existingFolderFilter.conditions\n : []\n const allFolderConditions = [...existingConditions, ...folderConditions]\n mergedFolderFilter = JSON.stringify(\n existingFolderFilter\n ? { ...existingFolderFilter, conditions: allFolderConditions }\n : { conditions: allFolderConditions },\n )\n }\n } catch {\n // If parsing fails, use the original filter as-is\n }\n }\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: taskFilter,\n folderFilter: mergedFolderFilter,\n search,\n folderIds,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","dispatch","forced","allTasks","batchParentIds","batchTasks","parentId","r","e","rest","currentArg","previousArg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","handlePubSub","_topic","message","taskId","PubSub","folderSearchRequest","_r","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","taskIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","res","groupValue","hasNextPage","groupTasks","i","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery"],"mappings":"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"}
|