@ynput/ayon-frontend-shared 0.3.30 → 0.3.32
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 +28 -26
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +217 -201
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +23 -22
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs14.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es10.js +2 -2
- package/dist/_virtual/index.es11.js +2 -2
- package/dist/_virtual/index.es13.js +2 -2
- package/dist/_virtual/index.es14.js +5 -2
- package/dist/_virtual/index.es14.js.map +1 -1
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es9.js +2 -5
- package/dist/_virtual/index.es9.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +453 -434
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +15 -13
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +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/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/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/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.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 +21 -17
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js +2 -14
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +237 -55
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +361 -161
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.es.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +33 -21
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +74 -60
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +96 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +88 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +62 -48
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +45 -97
- 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 +89 -174
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +94 -79
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +104 -71
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/filterRefetchUtils.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/filterRefetchUtils.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 +265 -216
- 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 +233 -261
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +138 -107
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +5 -5
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +58 -106
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +332 -239
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +38 -38
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +7 -6
- package/dist/shared/src/components/ColumnHeaderMenuUI.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 +7 -6
- 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 +8 -6
- 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 +7 -6
- 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 +7 -6
- 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 +7 -6
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +7 -6
- package/dist/shared/src/components/EntityIcon/EntityIcon.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 +141 -162
- 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 +8 -6
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +7 -6
- package/dist/shared/src/components/EntityPath/SegmentProvider.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 +9 -8
- 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 +7 -6
- 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/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +7 -6
- package/dist/shared/src/components/LinksManager/LinksManager.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 +8 -6
- 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 +7 -6
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +7 -6
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.es.js +7 -6
- package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.es.js +5 -4
- package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.es.js +7 -6
- package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +7 -6
- package/dist/shared/src/components/Powerpack/PowerpackButton.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 +7 -6
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +7 -6
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +83 -81
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -8
- 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 +7 -6
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +7 -6
- 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 +8 -6
- 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 +9 -7
- 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 +8 -6
- 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 +7 -6
- 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 +8 -6
- package/dist/shared/src/components/ReviewablesSelector/Card.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 +11 -10
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +7 -6
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.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 +10 -8
- 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 +8 -6
- 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 +7 -6
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +15 -14
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.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 +49 -44
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +32 -22
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -6
- 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 +12 -10
- 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 +7 -6
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.es.js +7 -1
- package/dist/shared/src/config/powerpackFeatures.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 +8 -6
- 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 +7 -6
- 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 +8 -6
- 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 +4 -2
- 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 +8 -6
- 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 +45 -42
- 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 +8 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +8 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +8 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.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 +7 -6
- 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 +22 -20
- 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 +8 -6
- 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 +8 -6
- 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 +17 -15
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +14 -14
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.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 +17 -13
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +7 -6
- 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 +9 -8
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +32 -31
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.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 +8 -6
- 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 +12 -10
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +7 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +7 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +7 -6
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.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 +41 -48
- 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 +7 -6
- 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 +10 -9
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +14 -13
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.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 +7 -6
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +216 -208
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -6
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +8 -6
- package/dist/shared/src/containers/ListTable/ListTableHeader.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 +733 -679
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +32 -10
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +42 -18
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +21 -18
- 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 +61 -47
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +48 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +103 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -0
- 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 +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +11 -9
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.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 +219 -185
- 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 +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +7 -6
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +21 -17
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.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 -15
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +7 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +87 -85
- 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 +120 -115
- 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 +10 -7
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +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 +7 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +84 -82
- 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 +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +49 -48
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js +16 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -0
- 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 +19 -17
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js +29 -25
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.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 +16 -14
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +10 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +7 -6
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.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 +8 -6
- 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 +8 -6
- 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 +7 -6
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +24 -19
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.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 +8 -6
- 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 +8 -6
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +7 -6
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.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 +8 -6
- 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 +9 -8
- 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 +7 -6
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +7 -6
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.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 +8 -6
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -6
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.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 +16 -15
- 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 +7 -6
- 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 +7 -6
- 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 +8 -6
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +7 -6
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.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 +123 -122
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +18 -16
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +79 -51
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +19 -17
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.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 +7 -6
- 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 +10 -9
- 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 +16 -15
- 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 +7 -6
- 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 +82 -69
- 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 +9 -8
- 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 +9 -8
- 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 +9 -8
- 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 +11 -10
- 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 +9 -8
- 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 +9 -8
- 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 +9 -8
- 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 +9 -8
- 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 +10 -9
- 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 +10 -8
- 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 +7 -6
- 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 +7 -6
- 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 +7 -6
- 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 +7 -6
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +7 -6
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +9 -8
- 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 +7 -6
- 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 +7 -6
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js +86 -65
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getThumbnailUrl.cjs.js +2 -0
- package/dist/shared/src/util/getThumbnailUrl.cjs.js.map +1 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js +23 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js +2 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js +54 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js.map +1 -0
- package/dist/types/api/generated/folders.d.ts +1 -6
- package/dist/types/api/generated/graphql.d.ts +275 -6
- package/dist/types/api/generated/graphqlLinks.d.ts +7 -4
- package/dist/types/api/queries/activities/activityQueries.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +47 -0
- package/dist/types/api/queries/activities/types.d.ts +1 -1
- package/dist/types/api/queries/activities/updateActivities.d.ts +94 -0
- package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +2 -1
- package/dist/types/api/queries/columnStats/columnStats.d.ts +28 -0
- package/dist/types/api/queries/columnStats/index.d.ts +2 -0
- package/dist/types/api/queries/columnStats/metricTargets.d.ts +31 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +47 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +47 -0
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +47 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +47 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/overview/filterRefetchUtils.d.ts +1 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +733 -1
- package/dist/types/api/queries/overview/updateOverview.d.ts +1 -1
- package/dist/types/api/queries/project/getProject.d.ts +47 -0
- package/dist/types/api/queries/tasks/updateTasks.d.ts +1 -1
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +69 -0
- package/dist/types/api/queries/users/getUsers.d.ts +459 -413
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +828 -1
- package/dist/types/components/EntityPanelUploader/EntityPanelUploader.d.ts +1 -11
- package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +2 -2
- package/dist/types/components/Thumbnail/Thumbnail.d.ts +2 -2
- package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +1 -1
- package/dist/types/config/powerpackFeatures.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/containers/FeedWrapper.d.ts +1 -0
- package/dist/types/containers/DetailsPanel/helpers/getThumbnails.d.ts +2 -2
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -3
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/constants.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +17 -1
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +50 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/utils/checkColumnVisibility.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/utils/pinningUtils.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
- package/dist/types/containers/Views/hooks/useSelectedView.d.ts +2 -1
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -3
- package/dist/types/util/getThumbnailUrl.d.ts +18 -0
- package/dist/types/util/index.d.ts +2 -0
- package/dist/types/util/thumbnailWebsocket.d.ts +21 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +35 -30
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,9 +13,9 @@ import "../../generated/configuration.es.js";
|
|
|
13
13
|
import "../../generated/dataImport.es.js";
|
|
14
14
|
import "../../generated/desktop.es.js";
|
|
15
15
|
import "../../generated/entityLists.es.js";
|
|
16
|
-
import { api as
|
|
16
|
+
import { api as j } from "../../generated/events.es.js";
|
|
17
17
|
import "../../generated/files.es.js";
|
|
18
|
-
import { api as
|
|
18
|
+
import { api as x } from "../../generated/folders.es.js";
|
|
19
19
|
import "../../generated/inbox.es.js";
|
|
20
20
|
import "../../generated/links.es.js";
|
|
21
21
|
import "../../generated/market.es.js";
|
|
@@ -41,37 +41,45 @@ import "../../generated/views.es.js";
|
|
|
41
41
|
import "lodash";
|
|
42
42
|
import "react-toastify";
|
|
43
43
|
import "uuid";
|
|
44
|
-
import
|
|
45
|
-
|
|
44
|
+
import { subscribeToThumbnailUpdates as k } from "../../../util/thumbnailWebsocket.es.js";
|
|
45
|
+
import H from "../../../util/pubsub.es.js";
|
|
46
|
+
const P = x.enhanceEndpoints({
|
|
46
47
|
endpoints: {
|
|
47
48
|
getFolderHierarchy: {
|
|
48
49
|
providesTags: ["hierarchy"]
|
|
49
50
|
},
|
|
50
51
|
getFolderList: {
|
|
51
|
-
providesTags: (
|
|
52
|
+
providesTags: (l, I, { projectName: b }) => [
|
|
52
53
|
"hierarchy",
|
|
53
54
|
{ type: "folder", id: "LIST" },
|
|
54
|
-
...
|
|
55
|
-
{ type: "folder", id:
|
|
55
|
+
...l?.folders.map(({ id: p }) => ({ type: "folder", id: p })) || [],
|
|
56
|
+
{ type: "folder", id: b }
|
|
56
57
|
],
|
|
57
|
-
async onCacheEntryAdded(
|
|
58
|
-
const { projectName:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
async onCacheEntryAdded(l, { cacheDataLoaded: I, cacheEntryRemoved: b, updateCachedData: p, dispatch: w }) {
|
|
59
|
+
const { projectName: L } = l || {}, m = l?.patch, T = {
|
|
60
|
+
"entity.folder.label_changed": "label",
|
|
61
|
+
"entity.folder.renamed": "name",
|
|
62
|
+
"entity.folder.type_changed": "folderType",
|
|
63
|
+
"entity.folder.status_changed": "status",
|
|
64
|
+
"entity.folder.tags_changed": "tags",
|
|
65
|
+
"entity.folder.attrib_changed": "attrib"
|
|
66
|
+
}, N = ["entity.folder", "entity.folder.created", "entity.folder.deleted"], F = [], R = 2e3, s = /* @__PURE__ */ new Map();
|
|
67
|
+
let u = !1, f = null, A = !1;
|
|
68
|
+
const g = () => {
|
|
69
|
+
f && (clearTimeout(f), f = null);
|
|
70
|
+
}, M = () => {
|
|
71
|
+
g(), f = setTimeout(S, R);
|
|
72
|
+
}, S = async () => {
|
|
73
|
+
if (g(), !(A || !L)) {
|
|
74
|
+
A = !0;
|
|
67
75
|
try {
|
|
68
|
-
if (
|
|
69
|
-
|
|
76
|
+
if (u) {
|
|
77
|
+
u = !1;
|
|
70
78
|
try {
|
|
71
|
-
const e = await
|
|
72
|
-
|
|
79
|
+
const e = await w(
|
|
80
|
+
x.endpoints.getFolderList.initiate(
|
|
73
81
|
// @ts-expect-error realtime flag to avoid toggling global isFetching for watchers
|
|
74
|
-
{ ...
|
|
82
|
+
{ ...l, realtime: !0 },
|
|
75
83
|
{ forceRefetch: !0 }
|
|
76
84
|
)
|
|
77
85
|
).unwrap();
|
|
@@ -79,81 +87,106 @@ const j = F.enhanceEndpoints({
|
|
|
79
87
|
} catch {
|
|
80
88
|
console.warn("Failed to refetch folder list on resync");
|
|
81
89
|
} finally {
|
|
82
|
-
|
|
90
|
+
s.clear();
|
|
83
91
|
}
|
|
84
92
|
return;
|
|
85
93
|
}
|
|
86
|
-
if (
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
"entity.folder.label_changed": "label",
|
|
91
|
-
"entity.folder.renamed": "name",
|
|
92
|
-
"entity.folder.type_changed": "folderType",
|
|
93
|
-
"entity.folder.status_changed": "status",
|
|
94
|
-
"entity.folder.tags_changed": "tags",
|
|
95
|
-
"entity.folder.attrib_changed": "attrib"
|
|
96
|
-
};
|
|
94
|
+
if (s.size === 0) return;
|
|
95
|
+
const c = Array.from(s.values());
|
|
96
|
+
s.clear();
|
|
97
|
+
const i = [];
|
|
97
98
|
if (await Promise.all(
|
|
98
|
-
|
|
99
|
+
c.map(async (e) => {
|
|
99
100
|
try {
|
|
100
|
-
const t =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
const r = e.topic, t = e.summary || {}, n = t.entityId;
|
|
102
|
+
if (!n) return;
|
|
103
|
+
const a = T[r];
|
|
104
|
+
if (!a) return;
|
|
105
|
+
if (t.value !== void 0 && a !== "attrib") {
|
|
106
|
+
let o = t.value;
|
|
107
|
+
a === "tags" ? Array.isArray(o) || (o = typeof o == "string" ? o.split(",").filter(Boolean) : []) : o !== null && typeof o != "string" && (o = String(o));
|
|
108
|
+
const d = {
|
|
109
|
+
[a]: o,
|
|
110
|
+
updatedAt: e.updatedAt
|
|
111
|
+
};
|
|
112
|
+
t.parentId !== void 0 && (d.parentId = t.parentId), i.push({ folderId: n, partial: d });
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const V = e.id, y = await w(
|
|
116
|
+
j.endpoints.getEvent.initiate({ eventId: V }, { forceRefetch: !0 })
|
|
117
|
+
).unwrap(), h = y?.payload || {}, E = y?.summary || {};
|
|
118
|
+
if (a === "attrib" && h?.newValue && typeof h.newValue == "object")
|
|
119
|
+
i.push({
|
|
120
|
+
folderId: n,
|
|
121
|
+
attribMerge: h.newValue,
|
|
122
|
+
updatedAt: y.updatedAt
|
|
111
123
|
});
|
|
112
124
|
else {
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
115
|
-
const
|
|
116
|
-
|
|
125
|
+
const o = h?.newValue;
|
|
126
|
+
if (o === void 0) return;
|
|
127
|
+
const d = { updatedAt: y.updatedAt };
|
|
128
|
+
d[a] = o, E.parentId !== void 0 && (d.parentId = E.parentId), i.push({ folderId: n, partial: d });
|
|
117
129
|
}
|
|
118
130
|
} catch {
|
|
119
131
|
}
|
|
120
132
|
})
|
|
121
|
-
), !
|
|
133
|
+
), !i.length) return;
|
|
122
134
|
p((e) => {
|
|
123
|
-
!e || !Array.isArray(e.folders) ||
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
...e.folders[
|
|
127
|
-
...
|
|
128
|
-
},
|
|
135
|
+
!e || !Array.isArray(e.folders) || i.forEach((r) => {
|
|
136
|
+
const t = e.folders.findIndex((n) => n.id === r.folderId);
|
|
137
|
+
t !== -1 && (r.attribMerge && (e.folders[t].attrib = {
|
|
138
|
+
...e.folders[t].attrib || {},
|
|
139
|
+
...r.attribMerge
|
|
140
|
+
}, r.updatedAt && (e.folders[t].updatedAt = r.updatedAt)), r.partial && (e.folders[t] = { ...e.folders[t], ...r.partial }));
|
|
129
141
|
});
|
|
130
142
|
});
|
|
131
143
|
} finally {
|
|
132
|
-
|
|
144
|
+
A = !1, (s.size > 0 || u) && M();
|
|
133
145
|
}
|
|
134
146
|
}
|
|
135
147
|
};
|
|
148
|
+
let v;
|
|
136
149
|
try {
|
|
137
|
-
await
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
150
|
+
await I, v = k(
|
|
151
|
+
(i) => {
|
|
152
|
+
p((e) => {
|
|
153
|
+
!e || !Array.isArray(e.folders) || i.forEach((r) => {
|
|
154
|
+
if (r.summary.entityType === "folder" && r.summary.thumbnailHash) {
|
|
155
|
+
const t = e.folders.findIndex(
|
|
156
|
+
(n) => n.id === r.summary.entityId
|
|
157
|
+
);
|
|
158
|
+
t !== -1 && (e.folders[t].thumbnailHash = r.summary.thumbnailHash);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
},
|
|
163
|
+
["folder"]
|
|
164
|
+
);
|
|
165
|
+
const c = (i, e) => {
|
|
166
|
+
if (i.endsWith(".created") || i.endsWith(".deleted")) {
|
|
167
|
+
const t = i.endsWith(".created") ? "created" : "deleted";
|
|
168
|
+
if (m && !m.includes(t)) return;
|
|
169
|
+
u = !0;
|
|
170
|
+
} else {
|
|
171
|
+
const t = T[i];
|
|
172
|
+
if (m && (!t || !m.includes(t)))
|
|
173
|
+
return;
|
|
174
|
+
const n = e?.id;
|
|
175
|
+
n && s.set(n, e);
|
|
142
176
|
}
|
|
143
|
-
|
|
144
|
-
e && (n.add(e), v());
|
|
177
|
+
M();
|
|
145
178
|
};
|
|
146
|
-
|
|
179
|
+
N.forEach((i) => F.push(H.subscribe(i, c)));
|
|
147
180
|
} catch {
|
|
148
181
|
}
|
|
149
|
-
await
|
|
182
|
+
await b, F.forEach((c) => H.unsubscribe(c)), v && v(), g();
|
|
150
183
|
}
|
|
151
184
|
}
|
|
152
185
|
}
|
|
153
|
-
}), { useGetFolderHierarchyQuery:
|
|
186
|
+
}), { useGetFolderHierarchyQuery: He, useGetFolderListQuery: Le } = P;
|
|
154
187
|
export {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
188
|
+
P as foldersQueries,
|
|
189
|
+
He as useGetFolderHierarchyQuery,
|
|
190
|
+
Le as useGetFolderListQuery
|
|
158
191
|
};
|
|
159
192
|
//# sourceMappingURL=getFolders.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,IAAcC,EAAW,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,oBAAoB;AAAA,MAClB,cAAc,CAAC,WAAW;AAAA,IAAA;AAAA,IAE5B,eAAe;AAAA,MACb,cAAc,CAACC,GAAQC,GAAI,EAAE,aAAAC,QAAkB;AAAA,QAC7C;AAAA,QACA,EAAE,MAAM,UAAU,IAAI,OAAA;AAAA,QACtB,GAAIF,GAAQ,QAAQ,IAAI,CAAC,EAAE,IAAAG,EAAA,OAAU,EAAE,MAAM,UAAU,IAAAA,EAAA,EAAK,KAAK,CAAA;AAAA,QACjE,EAAE,MAAM,UAAU,IAAID,EAAA;AAAA,MAAY;AAAA,MAEpC,MAAM,kBACJE,GACA,EAAE,iBAAAC,GAAiB,mBAAAC,GAAmB,kBAAAC,GAAkB,UAAAC,KACxD;AACA,cAAM,EAAE,aAAAN,MAAgBE,KAAQ,CAAA,GAC1BK,IAAS,CAAC,iBAAiB,yBAAyB,uBAAuB,GAC3EC,IAAiC,CAAA,GAMjCC,IAAe,KACfC,wBAAsB,IAAA;AAC5B,YAAIC,IAAa,IACbC,IAA8C,MAC9CC,IAAa;AAEjB,cAAMC,IAAa,MAAM;AACvB,UAAIF,MACF,aAAaA,CAAK,GAClBA,IAAQ;AAAA,QAEZ,GAEMG,IAAW,MAAM;AACrB,UAAKH,MACHA,IAAQ,WAAWI,GAAKP,CAAY;AAAA,QAExC,GAGMO,IAAM,YAAY;AAEtB,cADAF,EAAA,GACI,EAAAD,KAAc,CAACb,IACnB;AAAA,YAAAa,IAAa;AACb,gBAAI;AACF,kBAAIF,GAAY;AACd,gBAAAA,IAAa;AACb,oBAAI;AAEF,wBAAMb,IAAS,MAAMQ;AAAA,oBACnBT,EAAW,UAAU,cAAc;AAAA;AAAA,sBAEjC,EAAE,GAAGK,GAAM,UAAU,GAAA;AAAA,sBACrB,EAAE,cAAc,GAAA;AAAA,oBAAK;AAAA,kBACvB,EACA,OAAA;AACF,kBAAAG,EAAiB,MAAMP,CAAM;AAAA,gBAC/B,QAAQ;AAEN,0BAAQ,KAAK,yCAAyC;AAAA,gBACxD,UAAA;AACE,kBAAAY,EAAgB,MAAA;AAAA,gBAClB;AACA;AAAA,cACF;AAEA,kBAAIA,EAAgB,SAAS,EAAG;AAChC,oBAAMO,IAAW,MAAM,KAAKP,CAAe;AAC3C,cAAAA,EAAgB,MAAA;AAOhB,oBAAMQ,IAAmB,CAAA,GACnBC,IAAwC;AAAA,gBAC5C,+BAA+B;AAAA,gBAC/B,yBAAyB;AAAA,gBACzB,8BAA8B;AAAA,gBAC9B,gCAAgC;AAAA,gBAChC,8BAA8B;AAAA,gBAC9B,gCAAgC;AAAA,cAAA;AAwClC,kBAtCA,MAAM,QAAQ;AAAA,gBACZF,EAAS,IAAI,OAAOG,MAAY;AAC9B,sBAAI;AAEF,0BAAMC,IAAQ,MAAMf;AAAA,sBAClBgB,EAAU,UAAU,SAAS,SAAS,EAAE,SAAAF,KAAW,EAAE,cAAc,GAAA,CAAM;AAAA,oBAAA,EACzE,OAAA,GACIG,IAAgBF,GAAO,SAAS,IAChCG,IAAeH,GAAO,WAAW,CAAA,GACjCI,IAAeJ,GAAO,WAAW,CAAA,GACjCK,IAA+BD,EAAQ;AAC7C,wBAAI,CAACC,EAAU;AACf,0BAAMC,IAAYR,EAAcI,CAAK;AACrC,wBAAI,CAACI,EAAW;AAChB,wBACEA,MAAc,YACdH,GAAS,YACT,OAAOA,EAAQ,YAAa;AAE5B,sBAAAN,EAAQ,KAAK;AAAA,wBACX,UAAAQ;AAAA,wBACA,aAAaF,EAAQ;AAAA,wBACrB,WAAWH,EAAM;AAAA,sBAAA,CAClB;AAAA,yBACI;AACL,4BAAMO,IAAQJ,GAAS;AACvB,0BAAII,MAAU,OAAW;AACzB,4BAAMC,IAA+B,EAAE,WAAWR,EAAM,UAAA;AACxD,sBAAAQ,EAAQF,CAAS,IAAIC,GAEjBH,EAAQ,aAAa,WAAWI,EAAQ,WAAWJ,EAAQ,WAC/DP,EAAQ,KAAK,EAAE,UAAAQ,GAAU,SAAAG,EAAA,CAAS;AAAA,oBACpC;AAAA,kBACF,QAAQ;AAAA,kBAER;AAAA,gBACF,CAAC;AAAA,cAAA,GAEC,CAACX,EAAQ,OAAQ;AACrB,cAAAb,EAAiB,CAACyB,MAAe;AAC/B,gBAAI,CAACA,KAAS,CAAC,MAAM,QAAQA,EAAM,OAAO,KAC1CZ,EAAQ,QAAQ,CAACa,MAAU;AACzB,wBAAMC,IAAMF,EAAM,QAAQ,UAAU,CAACG,MAAWA,EAAE,OAAOF,EAAM,QAAQ;AAEvE,kBAAIC,MAAQ,OAERD,EAAM,gBAERD,EAAM,QAAQE,CAAG,EAAE,SAAS;AAAA,oBAC1B,GAAIF,EAAM,QAAQE,CAAG,EAAE,UAAU,CAAA;AAAA,oBACjC,GAAGD,EAAM;AAAA,kBAAA,GAGPA,EAAM,cAAWD,EAAM,QAAQE,CAAG,EAAE,YAAYD,EAAM,aAExDA,EAAM,YAERD,EAAM,QAAQE,CAAG,IAAI,EAAE,GAAGF,EAAM,QAAQE,CAAG,GAAG,GAAGD,EAAM,QAAA;AAAA,gBAE3D,CAAC;AAAA,cACH,CAAC;AAAA,YACH,UAAA;AACE,cAAAlB,IAAa;AAAA,YACf;AAAA;AAAA,QACF;AAEA,YAAI;AACF,gBAAMV;AAEN,gBAAM+B,IAAe,CAACC,GAAgBC,MAAkB;AACtD,gBAAID,EAAO,SAAS,UAAU,KAAKA,EAAO,SAAS,UAAU,GAAG;AAC9D,cAAAxB,IAAa,IACbI,EAAA;AACA;AAAA,YACF;AACA,kBAAMK,IAAUgB,GAAU;AAC1B,YAAIhB,MACFV,EAAgB,IAAIU,CAAO,GAC3BL,EAAA;AAAA,UAEJ;AAEA,UAAAR,EAAO,QAAQ,CAAC8B,MAAM7B,EAAO,KAAK8B,EAAO,UAAUD,GAAGH,CAAY,CAAC,CAAC;AAAA,QACtE,QAAQ;AAAA,QAER;AAEA,cAAM9B,GACNI,EAAO,QAAQ,CAAC6B,MAAMC,EAAO,YAAYD,CAAC,CAAC,GAC3CvB,EAAA;AAAA,MACF;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,4BAAAyB,IAA4B,uBAAAC,OAA0B5C;"}
|
|
1
|
+
{"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const patchFields = (args as any)?.patch as string[] | undefined\n\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing debounce approach:\n // - Collect updated folder IDs for 2000ms window\n // - If a creation topic appears, perform one full list refetch (within debounce window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 2000\n const pendingMessages = new Map<string, any>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n clearTimer()\n timer = setTimeout(run, MIN_INTERVAL)\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingMessages.clear()\n }\n return\n }\n\n if (pendingMessages.size === 0) return\n const messages = Array.from(pendingMessages.values())\n pendingMessages.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n await Promise.all(\n messages.map(async (message) => {\n try {\n const topic = message.topic\n const summary = message.summary || {}\n const folderId = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n\n // OPTIMIZATION: use value from summary if available (for root level fields)\n if (summary.value !== undefined && fieldName !== 'attrib') {\n let value = summary.value\n\n // Cast value to proper type\n if (fieldName === 'tags') {\n if (!Array.isArray(value)) {\n value = typeof value === 'string' ? value.split(',').filter(Boolean) : []\n }\n } else if (value !== null && typeof value !== 'string') {\n value = String(value)\n }\n\n const partial: Record<string, any> = {\n [fieldName]: value,\n updatedAt: message.updatedAt,\n }\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n return\n }\n\n // Fallback: Fetch each event and apply incremental updates\n const eventId = message.id\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const payload: any = event?.payload || {}\n const eventSummary: any = event?.summary || {}\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (eventSummary.parentId !== undefined)\n partial.parentId = eventSummary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n // If new events came in while we were processing, schedule another run\n if (pendingMessages.size > 0 || resyncFlag) {\n schedule()\n }\n }\n }\n\n let unsubscribeThumbnails: (() => void) | undefined\n\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n messages.forEach((message) => {\n if (message.summary.entityType === 'folder' && message.summary.thumbnailHash) {\n const idx = draft.folders.findIndex(\n (f: any) => f.id === message.summary.entityId,\n )\n if (idx !== -1) {\n draft.folders[idx].thumbnailHash = message.summary.thumbnailHash\n }\n }\n })\n })\n },\n ['folder'],\n )\n\n const handlePubSub = (_topic: string, _message: any) => {\n const isMembership = _topic.endsWith('.created') || _topic.endsWith('.deleted')\n\n if (isMembership) {\n const eventType = _topic.endsWith('.created') ? 'created' : 'deleted'\n // Backward compatibility: If no patch filters are provided, always sync membership.\n // If patch filters ARE provided, only sync if 'created'/'deleted' tokens are present.\n if (patchFields && !patchFields.includes(eventType)) return\n\n resyncFlag = true\n } else {\n const fieldName = topicFieldMap[_topic]\n // Backward compatibility: If no patch filters are provided, allow all updates (that we have mapping for).\n // If patch filters ARE provided, only allow fields explicitly listed in the patch array.\n if (patchFields && (!fieldName || !patchFields.includes(fieldName))) {\n return\n }\n\n const eventId = _message?.id\n if (eventId) {\n pendingMessages.set(eventId, _message)\n }\n }\n\n schedule()\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","patchFields","topicFieldMap","topics","tokens","MIN_INTERVAL","pendingMessages","resyncFlag","timer","processing","clearTimer","schedule","run","messages","patches","message","topic","summary","folderId","fieldName","value","partial","eventId","event","eventsApi","payload","eventSummary","draft","patch","idx","f","unsubscribeThumbnails","subscribeToThumbnailUpdates","handlePubSub","_topic","_message","eventType","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterRefetchUtils.cjs.js","sources":["../../../../../../src/api/queries/overview/filterRefetchUtils.ts"],"sourcesContent":["import { OperationModel } from '@shared/api'\n\n/**\n * Extracts unique entity IDs from operations\n */\nexport const getUpdatedEntityIds = (
|
|
1
|
+
{"version":3,"file":"filterRefetchUtils.cjs.js","sources":["../../../../../../src/api/queries/overview/filterRefetchUtils.ts"],"sourcesContent":["import type { OperationModel } from '@shared/api/generated'\n\n/**\n * Extracts unique entity IDs from operations\n */\nexport const getUpdatedEntityIds = (operations: Pick<OperationModel, 'entityId'>[]): string[] => {\n return [...new Set(operations.map((op) => op.entityId).filter(Boolean))] as string[]\n}\n"],"names":["getUpdatedEntityIds","operations","op"],"mappings":"gFAKO,MAAMA,EAAuBC,GAC3B,CAAC,GAAG,IAAI,IAAIA,EAAW,IAAKC,GAAOA,EAAG,QAAQ,EAAE,OAAO,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterRefetchUtils.es.js","sources":["../../../../../../src/api/queries/overview/filterRefetchUtils.ts"],"sourcesContent":["import { OperationModel } from '@shared/api'\n\n/**\n * Extracts unique entity IDs from operations\n */\nexport const getUpdatedEntityIds = (
|
|
1
|
+
{"version":3,"file":"filterRefetchUtils.es.js","sources":["../../../../../../src/api/queries/overview/filterRefetchUtils.ts"],"sourcesContent":["import type { OperationModel } from '@shared/api/generated'\n\n/**\n * Extracts unique entity IDs from operations\n */\nexport const getUpdatedEntityIds = (operations: Pick<OperationModel, 'entityId'>[]): string[] => {\n return [...new Set(operations.map((op) => op.entityId).filter(Boolean))] as string[]\n}\n"],"names":["getUpdatedEntityIds","operations","op"],"mappings":"AAKO,MAAMA,IAAsB,CAACC,MAC3B,CAAC,GAAG,IAAI,IAAIA,EAAW,IAAI,CAACC,MAAOA,EAAG,QAAQ,EAAE,OAAO,OAAO,CAAC,CAAC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const C=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const G=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const _=require("../../../util/pubsub.cjs.js"),R=l=>{try{return JSON.parse(l)}catch{return{}}},N=l=>{if(!l.project)return[];const s=[];for(const{node:e}of l.project.tasks.edges)s.push({...e,folderId:e.folderId||"root",attrib:R(e.allAttrib),entityId:e.id,entityType:"task",links:[]});return s},F=(l=[],s,e)=>{const t=l?.map(c=>({type:"overviewTask",id:c.id}))||[],a=e?(Array.isArray(e)?e:[e]).map(c=>({type:"overviewTask",id:c})):[];return[...t,...a,{type:"overviewTask",id:s},{type:"overviewTask",id:"LIST"}]},b=C.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:N,providesTags:(l,s,{parentIds:e,projectName:t})=>F(l,t,e)},GetTasksList:{transformResponse:l=>({tasks:N(l),pageInfo:l.project.tasks.pageInfo}),providesTags:(l,s,{projectName:e})=>F(l?.tasks||[],e)}}}),x=G.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),w=100,S=b.injectEndpoints({endpoints:l=>({getOverviewTasksByFolders:l.query({async queryFn({projectName:s,parentIds:e,filter:t,folderFilter:a,search:c},{dispatch:T,forced:p}){try{const k=[];for(let n=0;n<e.length;n+=20){const I=e.slice(n,n+20),i=(await Promise.all(I.map(async r=>T(b.endpoints.GetTasksByParent.initiate({projectName:s,parentIds:[r],filter:t,folderFilter:a,search:c},{forceRefetch:p}))))).filter(r=>!!r.data).flatMap(r=>r.data);k.push(...i)}return{data:k}}catch(q){return console.error(q),{error:{status:"FETCH_ERROR",error:q.message}}}},serializeQueryArgs:({queryArgs:{parentIds:s,...e}})=>({...e}),forceRefetch({currentArg:s,previousArg:e}){return JSON.stringify(s)!==JSON.stringify(e)},providesTags:(s,e,{parentIds:t,projectName:a})=>F(s,a,t),async onCacheEntryAdded({projectName:s,parentIds:e,filter:t,search:a},{cacheDataLoaded:c,cacheEntryRemoved:T,updateCachedData:p,dispatch:q}){let k;const n=new Set,I=100,v=500;let i=!1;const r=()=>{i||(i=!0,setTimeout(y,v))},y=async()=>{if(i=!1,!n.size)return;const f=Array.from(n).slice(0,I);f.forEach(u=>n.delete(u));try{const d=(await q(b.endpoints.GetTasksList.initiate({projectName:s,taskIds:f},{forceRefetch:!0})).unwrap()).tasks||[],h=new Map(d.map(o=>[o.id,o]));p(o=>{for(const g of d){const m=o.findIndex(A=>A.id===g.id);m>-1?o[m]=g:o.push(g)}for(const g of f)if(!h.has(g)){const m=o.findIndex(A=>A.id===g);m>-1&&o.splice(m,1)}})}catch(u){console.error("Realtime overview batch update failed",u)}finally{n.size&&r()}};try{await c;const f=async(u,d)=>{const h=d?.summary?.entityId,o=d?.summary?.parentId;!h||!o||e.includes(o)&&(n.add(h),r())};k=_.subscribe("entity.task",f)}catch{}await T,k&&_.unsubscribe(k)}}),getSearchFolders:l.query({async queryFn({projectName:s,folderSearchRequest:e},{dispatch:t}){try{return{data:(await t(x.endpoints.searchFolders.initiate({projectName:s,folderSearchRequest:e}))).data?.folderIds||[]}}catch(a){return console.error(a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(s,e,{projectName:t})=>[{type:"tasksFolder",id:t}]}),getTasksListInfinite:l.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(s,e,t,a)=>{const c=s.pageInfo;if(!(!(t.desc?c.hasPreviousPage:c.hasNextPage)||!c.endCursor))return{cursor:c.endCursor,desc:t.desc}}},queryFn:async({queryArg:s,pageParam:e},t)=>{try{const{projectName:a,filter:c,folderFilter:T,search:p,folderIds:q,taskIds:k,sortBy:n,desc:I}=s,{cursor:v}=e,i={projectName:a,filter:c,folderFilter:T,search:p,folderIds:q,taskIds:k};n?(i.sortBy=n,I?(i.before=v||void 0,i.last=w):(i.after=v||void 0,i.first=w)):(i.after=v||void 0,i.first=w);const r=await t.dispatch(b.endpoints.GetTasksList.initiate(i,{forceRefetch:!0}));if(r.error)throw r.error;const y={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:r.data||y}}catch(a){return console.error("Error in getTasksListInfinite queryFn:",a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(s,e,{projectName:t})=>F(s?.pages.flatMap(a=>a.tasks)||[],t),async onCacheEntryAdded(s,{cacheDataLoaded:e,cacheEntryRemoved:t,updateCachedData:a,dispatch:c}){let T;const p=new Set,q=100,k=500;let n=!1;const I=()=>{n||(n=!0,setTimeout(v,k))},v=async()=>{if(n=!1,!p.size)return;const i=Array.from(p).slice(0,q);i.forEach(r=>p.delete(r));try{const y=(await c(b.endpoints.GetTasksList.initiate({projectName:s.projectName,taskIds:i,folderIds:s.folderIds},{forceRefetch:!0})).unwrap()).tasks||[],f=new Map(y.map(u=>[u.id,u]));a(u=>{for(const d of y){let h=!1;for(const o of u.pages){const g=o.tasks.findIndex(m=>m.id===d.id);if(g!==-1){o.tasks[g]=d,h=!0;break}}h||(u.pages.length?u.pages[0].tasks.unshift(d):u.pages.push({tasks:[d],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const d of i)if(!f.has(d))for(const h of u.pages){const o=h.tasks.findIndex(g=>g.id===d);if(o!==-1){h.tasks.splice(o,1);break}}})}catch(r){console.error("Realtime infinite tasks batch update failed",r)}finally{p.size&&I()}};try{await e;const i=async(r,y)=>{const f=y?.summary?.entityId;f&&(p.add(f),I())};T=_.subscribe("entity.task",i)}catch{}await t,T&&_.unsubscribe(T)}}),getGroupedTasksList:l.query({queryFn:async({projectName:s,groups:e,search:t,folderFilter:a,folderIds:c,desc:T,sortBy:p,groupCount:q},k)=>{try{let n=[];const I=new Set(["folderType"]);for(const r of e){const y=q||r.count||500;let f=r.filter,u=a;if(r.filter)try{const o=JSON.parse(r.filter),g=o.conditions||[],m=g.filter(P=>!I.has(P.key)),A=g.filter(P=>I.has(P.key));if(A.length>0){f=m.length?JSON.stringify({...o,conditions:m}):void 0;const P=a?JSON.parse(a):null,E=[...P&&Array.isArray(P.conditions)?P.conditions:[],...A];u=JSON.stringify(P?{...P,conditions:E}:{conditions:E})}}catch{}const d={projectName:s,filter:f,folderFilter:u,search:t,folderIds:c,sortBy:p,group:r.value};T?d.last=y:d.first=y;const h=k.dispatch(b.endpoints.GetTasksList.initiate(d,{forceRefetch:!0}));n.push(h)}const v=await Promise.all(n),i=[];for(const r of v){if(r.error)throw r.error;const y=r.originalArgs?.group,f=r.data?.pageInfo?.hasNextPage||r.data?.pageInfo?.hasPreviousPage||!1,u=r.data?.tasks.map((d,h,o)=>({...d,groups:[{value:y,hasNextPage:h===o.length-1&&f?y:void 0}]}))||[];i.push(...u)}return{data:{tasks:i}}}catch(n){return console.error("Error in getGroupedTasksList queryFn:",n),{error:{status:"FETCH_ERROR",error:n.message}}}},providesTags:(s,e,{projectName:t})=>F(s?.tasks,t)})})}),{useGetOverviewTasksByFoldersQuery:L,useGetSearchFoldersQuery:O,useGetTasksListQuery:Q,useGetTasksListInfiniteInfiniteQuery:B,useLazyGetTasksByParentQuery:M,useGetGroupedTasksListQuery:j}=S;exports.TASKS_INFINITE_QUERY_COUNT=w;exports.default=S;exports.parseAllAttribs=R;exports.useGetGroupedTasksListQuery=j;exports.useGetOverviewTasksByFoldersQuery=L;exports.useGetSearchFoldersQuery=O;exports.useGetTasksListInfiniteInfiniteQuery=B;exports.useGetTasksListQuery=Q;exports.useLazyGetTasksByParentQuery=M;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const Q=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const L=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const C=require("../../../util/thumbnailWebsocket.cjs.js"),A=require("../../../util/pubsub.cjs.js"),P=require("../columnStats/columnStats.cjs.js"),E=require("../columnStats/metricTargets.cjs.js"),G=r=>{try{return JSON.parse(r)}catch{return{}}},N=r=>{if(!r.project)return[];const e=[];for(const{node:s}of r.project.tasks.edges)e.push({...s,folderId:s.folderId||"root",attrib:G(s.allAttrib),entityId:s.id,entityType:"task",links:[]});return e},_=(r=[],e,s)=>{const a=r?.map(p=>({type:"overviewTask",id:p.id}))||[],i=s?(Array.isArray(s)?s:[s]).map(p=>({type:"overviewTask",id:p})):[];return[...a,...i,{type:"overviewTask",id:e},{type:"overviewTask",id:"LIST"}]},F=Q.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:N,providesTags:(r,e,{parentIds:s,projectName:a})=>_(r,a,s)},GetTasksList:{transformResponse:r=>({tasks:N(r),pageInfo:r.project.tasks.pageInfo}),providesTags:(r,e,{projectName:s})=>_(r?.tasks||[],s)},GetFolderColumnStats:{transformResponse:r=>P.normalizeFieldStats(r?.project?.folders?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:r,...e}})=>e,merge:(r,e)=>P.mergeFieldStats(e,r),forceRefetch:({currentArg:r,previousArg:e})=>E.hasNewTargetFields(r,e),providesTags:(r,e,{projectName:s})=>[{type:"folderColumnStats",id:s}]},GetTaskColumnStats:{transformResponse:r=>P.normalizeFieldStats(r?.project?.tasks?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:r,...e}})=>e,merge:(r,e)=>P.mergeFieldStats(e,r),forceRefetch:({currentArg:r,previousArg:e})=>E.hasNewTargetFields(r,e),providesTags:(r,e,{projectName:s})=>[{type:"taskColumnStats",id:s}]}}}),O=L.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),R=100,x=F.injectEndpoints({endpoints:r=>({getOverviewTasksByFolders:r.query({async queryFn({projectName:e,parentIds:s,filter:a,folderFilter:i,search:p},{dispatch:q,forced:g}){try{const T=[];for(let o=0;o<s.length;o+=20){const b=s.slice(o,o+20),l=(await Promise.all(b.map(async t=>q(F.endpoints.GetTasksByParent.initiate({projectName:e,parentIds:[t],filter:a,folderFilter:i,search:p},{forceRefetch:g}))))).filter(t=>!!t.data).flatMap(t=>t.data);T.push(...l)}return{data:T}}catch(I){return console.error(I),{error:{status:"FETCH_ERROR",error:I.message}}}},serializeQueryArgs:({queryArgs:{parentIds:e,...s}})=>({...s}),forceRefetch({currentArg:e,previousArg:s}){return JSON.stringify(e)!==JSON.stringify(s)},providesTags:(e,s,{parentIds:a,projectName:i})=>_(e,i,a),async onCacheEntryAdded({projectName:e,parentIds:s,filter:a,search:i},{cacheDataLoaded:p,cacheEntryRemoved:q,updateCachedData:g,dispatch:I}){let T;const o=new Set,b=100,v=500;let l=!1;const t=()=>{l||(l=!0,setTimeout(y,v))},y=async()=>{if(l=!1,!o.size)return;const f=Array.from(o).slice(0,b);f.forEach(n=>o.delete(n));try{const u=(await I(F.endpoints.GetTasksList.initiate({projectName:e,taskIds:f},{forceRefetch:!0})).unwrap()).tasks||[],d=new Map(u.map(c=>[c.id,c]));g(c=>{for(const h of u){const S=c.findIndex(m=>m.id===h.id);S>-1?c[S]=h:c.push(h)}for(const h of f)if(!d.has(h)){const S=c.findIndex(m=>m.id===h);S>-1&&c.splice(S,1)}})}catch(n){console.error("Realtime overview batch update failed",n)}finally{o.size&&t()}};let k;try{await p,k=C.subscribeToThumbnailUpdates(n=>{g(u=>{n.forEach(d=>{if(d.summary.entityType==="task"&&d.summary.thumbnailHash){const c=u.findIndex(h=>h.id===d.summary.entityId);c>-1&&(u[c].thumbnailHash=d.summary.thumbnailHash)}})})},["task"]);const f=async(n,u)=>{const d=u?.summary?.entityId,c=u?.summary?.parentId;!d||!c||s.includes(c)&&(o.add(d),t())};T=A.subscribe("entity.task",f)}catch{}await q,T&&A.unsubscribe(T),k&&k()}}),getSearchFolders:r.query({async queryFn({projectName:e,folderSearchRequest:s},{dispatch:a}){try{return{data:(await a(O.endpoints.searchFolders.initiate({projectName:e,folderSearchRequest:s}))).data?.folderIds||[]}}catch(i){return console.error(i),{error:{status:"FETCH_ERROR",error:i.message}}}},providesTags:(e,s,{projectName:a})=>[{type:"tasksFolder",id:a}]}),getTasksListInfinite:r.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,s,a,i)=>{const p=e.pageInfo;if(!(!(a.desc?p.hasPreviousPage:p.hasNextPage)||!p.endCursor))return{cursor:p.endCursor,desc:a.desc}}},queryFn:async({queryArg:e,pageParam:s},a)=>{try{const{projectName:i,filter:p,folderFilter:q,search:g,folderIds:I,taskIds:T,sortBy:o,desc:b}=e,{cursor:v}=s,l={projectName:i,filter:p,folderFilter:q,search:g,folderIds:I,taskIds:T};o?(l.sortBy=o,b?(l.before=v||void 0,l.last=R):(l.after=v||void 0,l.first=R)):(l.after=v||void 0,l.first=R);const t=await a.dispatch(F.endpoints.GetTasksList.initiate(l,{forceRefetch:!0}));if(t.error)throw t.error;const y={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:t.data||y}}catch(i){return console.error("Error in getTasksListInfinite queryFn:",i),{error:{status:"FETCH_ERROR",error:i.message}}}},providesTags:(e,s,{projectName:a})=>_(e?.pages.flatMap(i=>i.tasks)||[],a),async onCacheEntryAdded(e,{cacheDataLoaded:s,cacheEntryRemoved:a,updateCachedData:i,dispatch:p}){let q;const g=new Set,I=100,T=500;let o=!1;const b=()=>{o||(o=!0,setTimeout(v,T))},v=async()=>{if(o=!1,!g.size)return;const t=Array.from(g).slice(0,I);t.forEach(y=>g.delete(y));try{const k=(await p(F.endpoints.GetTasksList.initiate({projectName:e.projectName,taskIds:t,folderIds:e.folderIds},{forceRefetch:!0})).unwrap()).tasks||[],f=new Map(k.map(n=>[n.id,n]));i(n=>{for(const u of k){let d=!1;for(const c of n.pages){const h=c.tasks.findIndex(S=>S.id===u.id);if(h!==-1){c.tasks[h]=u,d=!0;break}}d||(n.pages.length?n.pages[0].tasks.unshift(u):n.pages.push({tasks:[u],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const u of t)if(!f.has(u))for(const d of n.pages){const c=d.tasks.findIndex(h=>h.id===u);if(c!==-1){d.tasks.splice(c,1);break}}})}catch(y){console.error("Realtime infinite tasks batch update failed",y)}finally{g.size&&b()}};let l;try{await s,l=C.subscribeToThumbnailUpdates(y=>{i(k=>{y.forEach(f=>{if(f.summary.entityType==="task"&&f.summary.thumbnailHash)for(const n of k.pages){const u=n.tasks.findIndex(d=>d.id===f.summary.entityId);if(u>-1){n.tasks[u].thumbnailHash=f.summary.thumbnailHash;break}}})})},["task"]);const t=async(y,k)=>{const f=k?.summary?.entityId;f&&(g.add(f),b())};q=A.subscribe("entity.task",t)}catch{}await a,q&&A.unsubscribe(q),l&&l()}}),getGroupedTasksList:r.query({queryFn:async({projectName:e,groups:s,search:a,folderFilter:i,folderIds:p,desc:q,sortBy:g,groupCount:I},T)=>{try{let o=[];const b=new Set(["folderType"]);for(const t of s){const y=I||t.count||500;let k=t.filter,f=i;if(t.filter)try{const d=JSON.parse(t.filter),c=d.conditions||[],h=c.filter(m=>!b.has(m.key)),S=c.filter(m=>b.has(m.key));if(S.length>0){k=h.length?JSON.stringify({...d,conditions:h}):void 0;const m=i?JSON.parse(i):null,w=[...m&&Array.isArray(m.conditions)?m.conditions:[],...S];f=JSON.stringify(m?{...m,conditions:w}:{conditions:w})}}catch{}const n={projectName:e,filter:k,folderFilter:f,search:a,folderIds:p,sortBy:g,group:t.value};q?n.last=y:n.first=y;const u=T.dispatch(F.endpoints.GetTasksList.initiate(n,{forceRefetch:!0}));o.push(u)}const v=await Promise.all(o),l=[];for(const t of v){if(t.error)throw t.error;const y=t.originalArgs?.group,k=t.data?.pageInfo?.hasNextPage||t.data?.pageInfo?.hasPreviousPage||!1,f=t.data?.tasks.map((n,u,d)=>({...n,groups:[{value:y,hasNextPage:u===d.length-1&&k?y:void 0}]}))||[];l.push(...f)}return{data:{tasks:l}}}catch(o){return console.error("Error in getGroupedTasksList queryFn:",o),{error:{status:"FETCH_ERROR",error:o.message}}}},providesTags:(e,s,{projectName:a})=>_(e?.tasks,a)})})}),{useGetOverviewTasksByFoldersQuery:B,useGetSearchFoldersQuery:H,useGetTasksListQuery:j,useGetTasksListInfiniteInfiniteQuery:z,useLazyGetTasksByParentQuery:M,useGetGroupedTasksListQuery:J,useGetFolderColumnStatsQuery:U,useGetTaskColumnStatsQuery:K}=x;exports.TASKS_INFINITE_QUERY_COUNT=R;exports.default=x;exports.parseAllAttribs=G;exports.useGetFolderColumnStatsQuery=U;exports.useGetGroupedTasksListQuery=J;exports.useGetOverviewTasksByFoldersQuery=B;exports.useGetSearchFoldersQuery=H;exports.useGetTaskColumnStatsQuery=K;exports.useGetTasksListInfiniteInfiniteQuery=z;exports.useGetTasksListQuery=j;exports.useLazyGetTasksByParentQuery=M;
|
|
2
2
|
//# sourceMappingURL=getOverview.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n 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","i","batchParentIds","batchTasks","parentId","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","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery"],"mappings":"m6DAkBaA,EAAmBC,GAAsB,CACpD,GAAI,CACF,OAAO,KAAK,MAAMA,CAAS,CAC7B,MAAY,CACV,MAAO,CAAA,CACT,CACF,EAEMC,EAAqCC,GAAsD,CAC/F,GAAI,CAACA,EAAS,QACZ,MAAO,CAAA,EAGT,MAAMC,EAA0B,CAAA,EAChC,SAAW,CAAE,KAAMC,CAAA,IAAcF,EAAS,QAAQ,MAAM,MACtDC,EAAM,KAAK,CACT,GAAGC,EACH,SAAUA,EAAS,UAAY,OAC/B,OAAQL,EAAgBK,EAAS,SAAS,EAC1C,SAAUA,EAAS,GACnB,WAAY,OACZ,MAAO,CAAA,CAAC,CACT,EAGH,OAAOD,CACT,EAEME,EAAsB,CAC1BC,EAAuC,GACvCC,EACAC,IACG,CACH,MAAMC,EAAWH,GAAQ,IAAKI,IAAU,CAAE,KAAM,eAAgB,GAAIA,EAAK,EAAA,EAAK,GAAK,CAAA,EAE7EC,EAAaH,GACd,MAAM,QAAQA,CAAS,EAAIA,EAAY,CAACA,CAAS,GAAG,IAAKI,IAAQ,CAChE,KAAM,eACN,GAAAA,CAAA,EACA,EACF,CAAA,EAEJ,MAAO,CACL,GAAGH,EACH,GAAGE,EACH,CAAE,KAAM,eAAgB,GAAIJ,CAAA,EAC5B,CAAE,KAAM,eAAgB,GAAI,MAAA,CAAO,CAEvC,EA+CMM,EAAcC,EAAAA,IAAO,iBAA+C,CACxE,UAAW,CAIT,iBAAkB,CAChB,kBAAmBb,EACnB,aAAc,CAACK,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,CAAA,EAEtD,aAAc,CACZ,kBAAoBF,IAA+B,CACjD,MAAOL,EAAkCK,CAAM,EAC/C,SAAUA,EAAO,QAAQ,MAAM,QAAA,GAEjC,aAAc,CAACA,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,OAAS,CAAA,EAAIC,CAAW,CAAA,CACxD,CAEJ,CAAC,EAGKS,EAAqBC,EAAAA,IAAW,iBAAiB,CACrD,UAAW,CACT,cAAe,CAAA,CAAC,CAEpB,CAAC,EAEYC,EAA6B,IAEpCC,EAAcN,EAAY,gBAAgB,CAC9C,UAAYO,IAAW,CAMrB,0BAA2BA,EAAM,MAS/B,CACA,MAAM,QACJ,CAAE,YAAAb,EAAa,UAAAC,EAAW,OAAAa,EAAQ,aAAAC,EAAc,OAAAC,GAChD,CAAE,SAAAC,EAAU,OAAAC,GACZ,CACA,GAAI,CAGF,MAAMC,EAA6B,CAAA,EAGnC,QAASC,EAAI,EAAGA,EAAInB,EAAU,OAAQmB,GAAK,GAAY,CACrD,MAAMC,EAAiBpB,EAAU,MAAMmB,EAAGA,EAAI,EAAU,EAqBlDE,GAlBe,MAAM,QAAQ,IACjCD,EAAe,IAAI,MAAOE,GACxBN,EACEX,EAAY,UAAU,iBAAiB,SACrC,CACE,YAAAN,EACA,UAAW,CAACuB,CAAQ,EACpB,OAAAT,EACA,aAAAC,EACA,OAAAC,CAAA,EAEF,CAAE,aAAcE,CAAA,CAAO,CACzB,CACF,CACF,GAKC,OAAQ,GAAM,CAAC,CAAC,EAAE,IAAI,EACtB,QAASnB,GAAWA,EAAO,IAAwB,EAEtDoB,EAAS,KAAK,GAAGG,CAAU,CAC7B,CAEA,MAAO,CAAE,KAAMH,CAAA,CACjB,OAASK,EAAQ,CAEf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,EAEA,mBAAoB,CAAC,CAAE,UAAW,CAAE,UAAAvB,EAAW,GAAGwB,CAAA,MAAc,CAC9D,GAAGA,CAAA,GAGL,aAAa,CAAE,WAAAC,EAAY,YAAAC,GAAe,CACxC,OAAO,KAAK,UAAUD,CAAU,IAAM,KAAK,UAAUC,CAAW,CAClE,EACA,aAAc,CAAC5B,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,EACpD,MAAM,kBACJ,CAAE,YAAAD,EAAa,UAAAC,EAAW,OAAAa,EAAQ,OAAAE,GAClC,CAAE,gBAAAY,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAb,GACxD,CACA,IAAIc,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAASjC,GAAO2B,EAAe,OAAO3B,CAAE,CAAC,EAClD,GAAI,CAUF,MAAMkC,GATM,MAAMtB,EAChBX,EAAY,UAAU,aAAa,SACjC,CACE,YAAAN,EACA,QAASsC,CAAA,EAEX,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GACmB,OAAS,CAAA,EACxBE,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA4B,CAE5C,UAAWvC,KAAQoC,EAAU,CAC3B,MAAMI,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAOtC,EAAK,EAAE,EAC/CwC,EAAM,GAAID,EAAMC,CAAG,EAAIxC,EACtBuC,EAAM,KAAKvC,CAAI,CACtB,CAEA,UAAWE,KAAMiC,EACf,GAAI,CAACE,EAAY,IAAInC,CAAE,EAAG,CACxB,MAAMsC,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAOpC,CAAE,EAC1CsC,EAAM,IAAID,EAAM,OAAOC,EAAK,CAAC,CACnC,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,wCAAyCA,CAAG,CAC5D,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,GAAI,CACF,MAAMR,EAEN,MAAMiB,EAAe,MAAOC,EAAgBC,IAAiB,CAC3D,MAAMC,EAASD,GAAS,SAAS,SAC3BxB,EAAWwB,GAAS,SAAS,SAC/B,CAACC,GAAU,CAACzB,GAEXtB,EAAU,SAASsB,CAAQ,IAChCS,EAAe,IAAIgB,CAAM,EACzBZ,EAAA,EACF,EAKAL,EAAQkB,EAAO,UAAU,cAAeJ,CAAY,CACtD,MAAY,CAEZ,CAEA,MAAMhB,EACFE,GAAOkB,EAAO,YAAYlB,CAAK,CACrC,CAAA,CACD,EAGD,iBAAkBlB,EAAM,MAAqC,CAC3D,MAAM,QAAQ,CAAE,YAAAb,EAAa,oBAAAkD,GAAuB,CAAE,SAAAjC,GAAY,CAChE,GAAI,CAUF,MAAO,CAAE,MATM,MAAMA,EACnBR,EAAmB,UAAU,cAAc,SAAS,CAClD,YAAAT,EACA,oBAAAkD,CAAA,CACD,CAAA,GAGiB,MAAM,WAAa,CAAA,CAE9B,CACX,OAAS1B,EAAQ,CACf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,EACA,aAAc,CAAC2B,EAAI3C,EAAI,CAAE,YAAAR,CAAA,IAAkB,CAAC,CAAE,KAAM,cAAe,GAAIA,EAAa,CAAA,CACrF,EAED,qBAAsBa,EAAM,cAI1B,CACA,qBAAsB,CACpB,iBAAkB,CAAE,OAAQ,GAAI,KAAM,EAAA,EAEtC,iBAAkB,CAACuC,EAAUC,EAAWC,EAAeC,IAAmB,CAExE,MAAMC,EAAWJ,EAAS,SAI1B,GAAI,IAHSE,EAAc,KACAE,EAAS,gBAAkBA,EAAS,cAE3C,CAACA,EAAS,WAE9B,MAAO,CACL,OAAQA,EAAS,UACjB,KAAMF,EAAc,IAAA,CAExB,CAAA,EAEF,QAAS,MAAO,CAAE,SAAAG,EAAU,UAAAC,CAAA,EAAaC,IAAQ,CAC/C,GAAI,CACF,KAAM,CAAE,YAAA3D,EAAa,OAAAc,EAAQ,aAAAC,EAAc,OAAAC,EAAQ,UAAA4C,EAAW,QAAAC,EAAS,OAAAC,EAAQ,KAAAC,CAAA,EAASN,EAClF,CAAE,OAAAO,GAAWN,EAGbO,EAAmB,CACvB,YAAAjE,EACA,OAAAc,EACA,aAAAC,EACA,OAAAC,EACA,UAAA4C,EACA,QAAAC,CAAA,EAIEC,GACFG,EAAY,OAASH,EACjBC,GACFE,EAAY,OAASD,GAAU,OAC/BC,EAAY,KAAOtD,IAEnBsD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQtD,KAGtBsD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQtD,GAItB,MAAMZ,EAAS,MAAM4D,EAAI,SACvBrD,EAAY,UAAU,aAAa,SAAS2D,EAAa,CAAE,aAAc,GAAM,CAAA,EAGjF,GAAIlE,EAAO,MAAO,MAAMA,EAAO,MAC/B,MAAMmE,EAAW,CACf,MAAO,CAAA,EACP,SAAU,CACR,YAAa,GACb,UAAW,KACX,YAAa,KACb,gBAAiB,EAAA,CACnB,EAIF,MAAO,CACL,KAAMnE,EAAO,MAAQmE,CAAA,CAEzB,OAAS1C,EAAQ,CACf,eAAQ,MAAM,yCAA0CA,CAAC,EAClD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAE,QAAQ,CAC5D,CACF,EACA,aAAc,CAACzB,EAAQS,EAAI,CAAE,YAAAR,CAAA,IAC3BF,EAAoBC,GAAQ,MAAM,QAASoE,GAAMA,EAAE,KAAK,GAAK,CAAA,EAAInE,CAAW,EAC9E,MAAM,kBACJoE,EACA,CAAE,gBAAAxC,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAb,GACxD,CACA,IAAIc,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAASjC,GAAO2B,EAAe,OAAO3B,CAAE,CAAC,EAClD,GAAI,CAYF,MAAMkC,GAXM,MAAMtB,EAChBX,EAAY,UAAU,aAAa,SACjC,CACE,YAAa8D,EAAI,YACjB,QAAS9B,EACT,UAAW8B,EAAI,SAAA,EAEjB,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GAEmB,OAAS,CAAA,EACxB5B,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA8D,CAE9E,UAAWvC,KAAQoC,EAAU,CAC3B,IAAI8B,EAAU,GACd,UAAWC,KAAQ5B,EAAM,MAAO,CAC9B,MAAMC,EAAM2B,EAAK,MAAM,UAAW7B,GAAMA,EAAE,KAAOtC,EAAK,EAAE,EACxD,GAAIwC,IAAQ,GAAI,CACd2B,EAAK,MAAM3B,CAAG,EAAIxC,EAClBkE,EAAU,GACV,KACF,CACF,CACKA,IACC3B,EAAM,MAAM,OAAQA,EAAM,MAAM,CAAC,EAAE,MAAM,QAAQvC,CAAI,EAEvDuC,EAAM,MAAM,KAAK,CACf,MAAO,CAACvC,CAAI,EACZ,SAAU,CACR,YAAa,KACb,UAAW,KACX,YAAa,GACb,gBAAiB,EAAA,CACnB,CACD,EAEP,CAEA,UAAWE,KAAMiC,EACf,GAAI,CAAAE,EAAY,IAAInC,CAAE,EACtB,UAAWiE,KAAQ5B,EAAM,MAAO,CAC9B,MAAMC,EAAM2B,EAAK,MAAM,UAAW7B,GAAMA,EAAE,KAAOpC,CAAE,EACnD,GAAIsC,IAAQ,GAAI,CACd2B,EAAK,MAAM,OAAO3B,EAAK,CAAC,EACxB,KACF,CACF,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,8CAA+CA,CAAG,CAClE,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,GAAI,CACF,MAAMR,EAEN,MAAMiB,EAAe,MAAOC,EAAgBC,IAAiB,CAC3D,MAAMC,EAASD,GAAS,SAAS,SAC5BC,IACLhB,EAAe,IAAIgB,CAAM,EACzBZ,EAAA,EACF,EAEAL,EAAQkB,EAAO,UAAU,cAAeJ,CAAY,CACtD,MAAY,CAEZ,CACA,MAAMhB,EACFE,GAAOkB,EAAO,YAAYlB,CAAK,CACrC,CAAA,CACD,EACD,oBAAqBlB,EAAM,MAA0D,CACnF,QAAS,MACP,CAAE,YAAAb,EAAa,OAAAuE,EAAQ,OAAAvD,EAAQ,aAAAD,EAAc,UAAA6C,EAAW,KAAAG,EAAM,OAAAD,EAAQ,WAAAU,CAAA,EACtEb,IACG,CACH,GAAI,CACF,IAAIc,EAAW,CAAA,EAEf,MAAMC,EAAmB,IAAI,IAAI,CAAC,YAAY,CAAC,EAE/C,UAAWC,KAASJ,EAAQ,CAE1B,MAAMK,EAAQJ,GAAcG,EAAM,OAAS,IAG3C,IAAIE,EAAaF,EAAM,OACnBG,EAAqB/D,EACzB,GAAI4D,EAAM,OACR,GAAI,CACF,MAAMI,EAAS,KAAK,MAAMJ,EAAM,MAAM,EAChCK,EAAaD,EAAO,YAAc,CAAA,EAClCE,EAAiBD,EAAW,OAC/BE,GAAW,CAACR,EAAiB,IAAIQ,EAAE,GAAG,CAAA,EAEnCC,EAAmBH,EAAW,OAAQE,GAC1CR,EAAiB,IAAIQ,EAAE,GAAG,CAAA,EAG5B,GAAIC,EAAiB,OAAS,EAAG,CAC/BN,EAAaI,EAAe,OACxB,KAAK,UAAU,CAAE,GAAGF,EAAQ,WAAYE,CAAA,CAAgB,EACxD,OAEJ,MAAMG,EAAuBrE,EAAe,KAAK,MAAMA,CAAY,EAAI,KAKjEsE,EAAsB,CAAC,GAH3BD,GAAwB,MAAM,QAAQA,EAAqB,UAAU,EACjEA,EAAqB,WACrB,CAAA,EAC8C,GAAGD,CAAgB,EACvEL,EAAqB,KAAK,UACxBM,EACI,CAAE,GAAGA,EAAsB,WAAYC,CAAA,EACvC,CAAE,WAAYA,CAAA,CAAoB,CAE1C,CACF,MAAQ,CAER,CAGF,MAAMpB,EAA0C,CAC9C,YAAAjE,EACA,OAAQ6E,EACR,aAAcC,EACd,OAAA9D,EACA,UAAA4C,EACA,OAAAE,EAEA,MAAOa,EAAM,KAAA,EAEXZ,EACFE,EAAY,KAAOW,EAEnBX,EAAY,MAAQW,EAGtB,MAAMU,EAAU3B,EAAI,SAClBrD,EAAY,UAAU,aAAa,SAAS2D,EAAa,CAAE,aAAc,GAAM,CAAA,EAEjFQ,EAAS,KAAKa,CAAO,CACvB,CAEA,MAAMvF,EAAS,MAAM,QAAQ,IAAI0E,CAAQ,EACnC7E,EAA0B,CAAA,EAChC,UAAW2F,KAAOxF,EAAQ,CACxB,GAAIwF,EAAI,MAAO,MAAMA,EAAI,MAGzB,MAAMC,EAAaD,EAAI,cAAc,MAE/BE,EACJF,EAAI,MAAM,UAAU,aAAeA,EAAI,MAAM,UAAU,iBAAmB,GACtEG,EACJH,EAAI,MAAM,MAAM,IAAI,CAACpF,EAAMiB,EAAGuE,KAAO,CACnC,GAAGxF,EACH,OAAQ,CACN,CACE,MAAOqF,EACP,YAAapE,IAAMuE,EAAE,OAAS,GAAKF,EAAcD,EAAa,MAAA,CAChE,CACF,EACA,GAAK,CAAA,EAET5F,EAAM,KAAK,GAAG8F,CAAU,CAC1B,CAGA,MAAO,CACL,KAAM,CACJ,MAAA9F,CAAA,CACF,CAEJ,OAASgG,EAAY,CACnB,eAAQ,MAAM,wCAAyCA,CAAK,EACrD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAM,QAAQ,CAChE,CACF,EACA,aAAc,CAAC7F,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,MAAOC,CAAW,CAAA,CACjD,CAAA,EAEL,CAAC,EAEY,CACX,kCAAA6F,EACA,yBAAAC,EACA,qBAAAC,EACA,qCAAAC,EACA,6BAAAC,EACA,4BAAAC,CACF,EAAItF"}
|
|
1
|
+
{"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n GetFolderColumnStatsQuery,\n GetTaskColumnStatsQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport type { FieldStats } from '../columnStats'\nimport { normalizeFieldStats, mergeFieldStats, hasNewTargetFields } from '../columnStats'\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 GetFolderColumnStats: OverrideResultType<Definitions['GetFolderColumnStats'], FieldStats[]>\n GetTaskColumnStats: OverrideResultType<Definitions['GetTaskColumnStats'], FieldStats[]>\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 // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetFolderColumnStats: {\n transformResponse: (res: GetFolderColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.folders?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'folderColumnStats', id: projectName }],\n },\n GetTaskColumnStats: {\n transformResponse: (res: GetTaskColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.tasks?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'taskColumnStats', id: 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 let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: EditorTaskNode[]) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n const idx = draft.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n draft[idx].thumbnailHash = message.summary.thumbnailHash\n }\n }\n })\n })\n },\n ['task'],\n )\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 if (unsubscribeThumbnails) unsubscribeThumbnails()\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 } =\n 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 let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n page.tasks[idx].thumbnailHash = message.summary.thumbnailHash\n break\n }\n }\n }\n })\n })\n },\n ['task'],\n )\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 if (unsubscribeThumbnails) unsubscribeThumbnails()\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((c: any) => !folderFilterKeys.has(c.key))\n const folderConditions = conditions.filter((c: any) => folderFilterKeys.has(c.key))\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 useGetFolderColumnStatsQuery,\n useGetTaskColumnStatsQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","res","normalizeFieldStats","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","dispatch","forced","allTasks","i","batchParentIds","batchTasks","parentId","r","e","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","message","handlePubSub","_topic","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","groupValue","hasNextPage","groupTasks","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery","useGetFolderColumnStatsQuery","useGetTaskColumnStatsQuery"],"mappings":"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"}
|