@ynput/ayon-frontend-shared 0.3.40 → 0.3.42
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 +29 -27
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +225 -223
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +25 -16
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs15.js +1 -1
- package/dist/_virtual/index.cjs19.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es15.js +2 -2
- package/dist/_virtual/index.es16.js +2 -2
- package/dist/_virtual/index.es17.js +2 -2
- package/dist/_virtual/index.es18.js +2 -2
- package/dist/_virtual/index.es19.js +2 -2
- package/dist/_virtual/index.es4.js +5 -2
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +227 -227
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +16 -14
- 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/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/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/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
- package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +55 -79
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +278 -154
- 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 +70 -19
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +40 -43
- package/dist/shared/src/api/queries/activities/updateActivities.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 +149 -55
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +105 -51
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +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.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 +178 -130
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +94 -40
- package/dist/shared/src/api/queries/entityLists/listFolders.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 +109 -55
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +117 -63
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.es.js +108 -54
- package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +220 -167
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
- package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +133 -80
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +127 -75
- package/dist/shared/src/api/queries/review/getReview.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 +142 -90
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/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 +537 -331
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +124 -29
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +140 -45
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.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 +9 -7
- 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.es.js +4 -4
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -18
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +108 -13
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.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.es.js +3 -3
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +119 -24
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +97 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.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 +9 -7
- 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 +9 -7
- 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.es.js +5 -5
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +9 -9
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -7
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -4
- package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
- package/dist/shared/src/components/Menu/Menu.es.js +7 -7
- 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 +23 -21
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +57 -55
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.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 +19 -16
- 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 +10 -8
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/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 +9 -7
- 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 +10 -8
- 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 +9 -7
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.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 +9 -7
- 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 +340 -354
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +11 -9
- 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 +9 -7
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.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 +122 -27
- 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 +117 -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 +9 -7
- 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 +13 -11
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.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 +9 -7
- 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 +42 -42
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.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 +9 -7
- 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 +119 -124
- 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 +9 -7
- 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 +9 -7
- 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 +139 -128
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
- 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 +13 -11
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +115 -20
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.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 +9 -7
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.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 +23 -21
- 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 +9 -7
- 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 +9 -7
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.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 +105 -10
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.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.es.js +2 -2
- 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 +31 -29
- 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 +9 -7
- 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 +9 -7
- 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 +9 -7
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +106 -11
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +122 -27
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.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 +9 -7
- 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 +91 -80
- 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 +9 -7
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +119 -24
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +29 -29
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- 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 +9 -7
- 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 +13 -11
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +104 -9
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +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 +9 -7
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
- package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +185 -87
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +105 -10
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +108 -13
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.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 +22 -20
- 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 +9 -7
- 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 +9 -7
- 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 +622 -616
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +72 -70
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +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 +9 -7
- 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 +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.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 +23 -21
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.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 +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +178 -83
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.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 +31 -29
- 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 +24 -22
- 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 +9 -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 +9 -7
- 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 +26 -24
- 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 +9 -7
- 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 +72 -72
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +26 -24
- 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 +25 -23
- 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 +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +10 -8
- 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 +24 -22
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +13 -16
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.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 +48 -42
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +38 -36
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- 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 +9 -7
- 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 +10 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +9 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.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 +11 -9
- 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.es.js +4 -4
- 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 +25 -23
- 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 +9 -7
- 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.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +175 -80
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +107 -12
- 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 +42 -40
- 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 +9 -7
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
- package/dist/shared/src/containers/Slicer/components/Slicer.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 +9 -7
- 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 +273 -124
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
- 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 +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +156 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +187 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +143 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
- 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 +47 -43
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +8 -13
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +8 -0
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +124 -29
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.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.es.js +2 -2
- 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/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 +113 -18
- 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 +158 -84
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.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.es.js +2 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.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 +64 -63
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +2 -2
- 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 +83 -66
- 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.es.js +2 -2
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.es.js +2 -2
- 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 +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 +18 -16
- package/dist/shared/src/context/WebsocketContext.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 +2 -2
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +115 -20
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
- package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
- package/dist/shared/src/util/getBundleMode.es.js +118 -0
- package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
- package/dist/types/api/generated/graphql.d.ts +640 -887
- package/dist/types/api/generated/graphqlLinks.d.ts +190 -284
- package/dist/types/api/queries/activities/getActivities.d.ts +144 -137
- package/dist/types/api/queries/activities/updateActivities.d.ts +288 -274
- package/dist/types/api/queries/columnStats/columnStats.d.ts +3 -21
- package/dist/types/api/queries/entities/getEntity.d.ts +144 -137
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +144 -137
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
- package/dist/types/api/queries/entities/updateEntity.d.ts +144 -137
- package/dist/types/api/queries/entityLists/getLists.d.ts +1406 -1712
- package/dist/types/api/queries/entityLists/types.d.ts +1 -0
- package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +66 -66
- package/dist/types/api/queries/overview/getOverview.d.ts +630 -623
- package/dist/types/api/queries/products/createProduct.d.ts +2 -2
- package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
- package/dist/types/api/queries/products/getProduct.d.ts +259 -0
- package/dist/types/api/queries/project/getProject.d.ts +264 -257
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +192 -185
- package/dist/types/api/queries/users/getUsers.d.ts +177 -170
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +784 -770
- package/dist/types/api/queries/versions/updateVersions.d.ts +106 -143
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
- package/dist/types/containers/Actions/Actions.d.ts +3 -2
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
- package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
- package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -19
- package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
- package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
- package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
- package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
- package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +20 -0
- package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
- package/dist/types/containers/Slicer/types.d.ts +7 -0
- package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +5 -3
- package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
- package/dist/types/containers/Slicer/util/index.d.ts +1 -0
- package/dist/types/context/DetailsPanelContext.d.ts +2 -1
- package/dist/types/context/ProjectContext.d.ts +2 -1
- package/dist/types/util/getBundleMode.d.ts +4 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +33 -30
- package/dist/util.es.js.map +1 -1
- package/package.json +3 -3
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
- package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import "lodash";
|
|
2
2
|
import "react-toastify";
|
|
3
3
|
import "uuid";
|
|
4
|
-
import y from "../../../util/pubsub.es.js";
|
|
5
4
|
import "../../base/client.es.js";
|
|
6
5
|
import "../../generated/graphql.es.js";
|
|
7
6
|
import "../../generated/graphqlLinks.es.js";
|
|
@@ -29,7 +28,7 @@ import "../../generated/products.es.js";
|
|
|
29
28
|
import "../../generated/projectDashboard.es.js";
|
|
30
29
|
import "../../generated/projects.es.js";
|
|
31
30
|
import "../../generated/projectFolders.es.js";
|
|
32
|
-
import { api as
|
|
31
|
+
import { api as f } from "../../generated/reviewables.es.js";
|
|
33
32
|
import "../../generated/services.es.js";
|
|
34
33
|
import "../../generated/system.es.js";
|
|
35
34
|
import "../../generated/tasks.es.js";
|
|
@@ -42,29 +41,82 @@ import "../../generated/workfiles.es.js";
|
|
|
42
41
|
import "../../generated/ynputCloud.es.js";
|
|
43
42
|
import "../../generated/grouping.es.js";
|
|
44
43
|
import "../../generated/views.es.js";
|
|
44
|
+
import "../actions/getActions.es.js";
|
|
45
|
+
import "../activities/getActivities.es.js";
|
|
46
|
+
import "../activities/updateActivities.es.js";
|
|
47
|
+
import "../activities/updateReaction.es.js";
|
|
48
|
+
import "../activities/getMentions.es.js";
|
|
49
|
+
import "../activities/getCategories.es.js";
|
|
45
50
|
import "../addons/getAddons.es.js";
|
|
46
51
|
import { addonsQueries as g } from "../addons/updateAddons.es.js";
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
import "../attributes/getAttributes.es.js";
|
|
53
|
+
import "../attributes/updateAttributes.es.js";
|
|
54
|
+
import "../authentication/getAuthentication.es.js";
|
|
55
|
+
import "../cloud/cloud.es.js";
|
|
56
|
+
import "../columnStats/metricTargets.es.js";
|
|
57
|
+
import "../config/getConfig.es.js";
|
|
58
|
+
import "../config/updateConfig.es.js";
|
|
59
|
+
import "../entities/getEntity.es.js";
|
|
60
|
+
import "../entities/getEntityPanel.es.js";
|
|
61
|
+
import "../overview/getOverview.es.js";
|
|
62
|
+
import "../overview/updateOverview.es.js";
|
|
63
|
+
import "../versions/getVersionsProducts.es.js";
|
|
64
|
+
import "../links/getEntityLinks.es.js";
|
|
65
|
+
import "../entities/updateEntity.es.js";
|
|
66
|
+
import "../entityLists/getLists.es.js";
|
|
67
|
+
import "../entityLists/updateLists.es.js";
|
|
68
|
+
import "../entityLists/getListsAttributes.es.js";
|
|
69
|
+
import "../entityLists/listItemsColumnStats.es.js";
|
|
70
|
+
import "../entityLists/updateListsAttributes.es.js";
|
|
71
|
+
import "../entityLists/listFolders.es.js";
|
|
72
|
+
import "../folders/getFolders.es.js";
|
|
73
|
+
import "../folders/getFolderDeleteInfo.es.js";
|
|
74
|
+
import "../grouping/getGrouping.es.js";
|
|
75
|
+
import "../links/updateLinks.es.js";
|
|
76
|
+
import "../links/getLinks.es.js";
|
|
77
|
+
import "../permissions/getPermissions.es.js";
|
|
78
|
+
import "../products/createProduct.es.js";
|
|
79
|
+
import "../products/getFolderProducts.es.js";
|
|
80
|
+
import "../project/getProject.es.js";
|
|
81
|
+
import "../project/updateProject.es.js";
|
|
82
|
+
import "../projectFolders/projectFolders.es.js";
|
|
83
|
+
import "./updateReview.es.js";
|
|
84
|
+
import "../share/share.es.js";
|
|
85
|
+
import "../system/getSystem.es.js";
|
|
86
|
+
import "../tasks/getTasks.es.js";
|
|
87
|
+
import "../tasks/updateTasks.es.js";
|
|
88
|
+
import "../teams/getTeams.es.js";
|
|
89
|
+
import "../userDashboard/getUserDashboard.es.js";
|
|
90
|
+
import "../users/getUsers.es.js";
|
|
91
|
+
import "../users/updateUsers.es.js";
|
|
92
|
+
import "../users/guests.es.js";
|
|
93
|
+
import "../versions/updateVersions.es.js";
|
|
94
|
+
import "../views/getViews.es.js";
|
|
95
|
+
import "../views/updateViews.es.js";
|
|
96
|
+
import "../watchers/getWatchers.es.js";
|
|
97
|
+
import "../uris/getUris.es.js";
|
|
98
|
+
import y from "../../../util/pubsub.es.js";
|
|
99
|
+
const h = (n, {
|
|
100
|
+
productId: p,
|
|
101
|
+
taskId: o,
|
|
50
102
|
folderId: r,
|
|
51
|
-
versionId:
|
|
52
|
-
},
|
|
103
|
+
versionId: s
|
|
104
|
+
}, a) => {
|
|
53
105
|
const e = [];
|
|
54
|
-
if (
|
|
55
|
-
[...new Set(
|
|
56
|
-
e.find((t) => t.id === i && t.type === "review") || e.push({ type: "review", id: i }),
|
|
106
|
+
if (p && e.push({ type: "review", id: p }), o && e.push({ type: "review", id: o }), r && e.push({ type: "review", id: r }), a && (p && e.push({ type: "viewer", id: p }), o && e.push({ type: "viewer", id: o }), r && e.push({ type: "viewer", id: r }), s && e.push({ type: "viewer", id: s }), e.push({ type: "viewer", id: "LIST" })), s && e.push({ type: "review", id: s }), n) {
|
|
107
|
+
[...new Set(n.flatMap((i) => i?.productId || []))].forEach((i) => {
|
|
108
|
+
e.find((t) => t.id === i && t.type === "review") || e.push({ type: "review", id: i }), a && !e.find((t) => t.id === i && t.type === "viewer") && e.push({ type: "viewer", id: i });
|
|
57
109
|
});
|
|
58
|
-
const
|
|
110
|
+
const m = n.flatMap(
|
|
59
111
|
(i) => i ? {
|
|
60
112
|
type: "review",
|
|
61
113
|
id: i.id
|
|
62
114
|
} : []
|
|
63
115
|
);
|
|
64
|
-
e.push(...
|
|
116
|
+
e.push(...m), a && m.forEach((i) => {
|
|
65
117
|
e.find((t) => t.id === i.id && t.type === "viewer") || e.push({ type: "viewer", id: i.id });
|
|
66
118
|
});
|
|
67
|
-
const
|
|
119
|
+
const u = n.flatMap(
|
|
68
120
|
(i) => i ? i.reviewables?.flatMap((t) => [
|
|
69
121
|
{
|
|
70
122
|
type: "review",
|
|
@@ -76,37 +128,37 @@ const h = (a, {
|
|
|
76
128
|
}
|
|
77
129
|
]) : []
|
|
78
130
|
);
|
|
79
|
-
e.push(...
|
|
131
|
+
e.push(...u);
|
|
80
132
|
}
|
|
81
133
|
return e;
|
|
82
|
-
}, R =
|
|
134
|
+
}, R = f.enhanceEndpoints({
|
|
83
135
|
endpoints: {
|
|
84
136
|
getReviewablesForVersion: {
|
|
85
137
|
keepUnusedDataFor: 1,
|
|
86
|
-
providesTags: (
|
|
87
|
-
async onCacheEntryAdded({ versionId:
|
|
138
|
+
providesTags: (n, p, { versionId: o }) => h([n], { versionId: o, productId: n?.productId }),
|
|
139
|
+
async onCacheEntryAdded({ versionId: n }, { updateCachedData: p, cacheDataLoaded: o, cacheEntryRemoved: r, dispatch: s, getCacheEntry: a }) {
|
|
88
140
|
let e;
|
|
89
141
|
try {
|
|
90
|
-
await
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
93
|
-
const i =
|
|
94
|
-
if (i.versionId !==
|
|
95
|
-
const t =
|
|
142
|
+
await o;
|
|
143
|
+
const c = (m, u) => {
|
|
144
|
+
if (m !== "reviewable.process") return;
|
|
145
|
+
const i = u?.summary || {};
|
|
146
|
+
if (i.versionId !== n) return;
|
|
147
|
+
const t = a(), l = t.data?.reviewables?.findIndex(
|
|
96
148
|
(w) => w?.fileId === i.sourceFileId
|
|
97
149
|
);
|
|
98
|
-
if (
|
|
99
|
-
const w =
|
|
100
|
-
|
|
101
|
-
const v =
|
|
150
|
+
if (l && l !== -1 && u.status !== "finished") {
|
|
151
|
+
const w = u?.progress || 0;
|
|
152
|
+
p((d) => {
|
|
153
|
+
const v = d.reviewables;
|
|
102
154
|
if (!v) return;
|
|
103
|
-
const b = v[
|
|
104
|
-
v[
|
|
105
|
-
...v[
|
|
155
|
+
const b = v[l].processing;
|
|
156
|
+
v[l] = {
|
|
157
|
+
...v[l],
|
|
106
158
|
processing: {
|
|
107
159
|
...b,
|
|
108
160
|
progress: w,
|
|
109
|
-
eventId:
|
|
161
|
+
eventId: u.id
|
|
110
162
|
}
|
|
111
163
|
};
|
|
112
164
|
});
|
|
@@ -115,15 +167,15 @@ const h = (a, {
|
|
|
115
167
|
"Reviewable not found in cache, refreshing to get data:",
|
|
116
168
|
i.sourceFileId,
|
|
117
169
|
i.versionId
|
|
118
|
-
),
|
|
119
|
-
|
|
120
|
-
),
|
|
121
|
-
|
|
170
|
+
), s(
|
|
171
|
+
f.util.invalidateTags([{ type: "review", id: i.versionId }])
|
|
172
|
+
), u.status === "finished" && t.data?.productId && s(
|
|
173
|
+
f.util.invalidateTags([
|
|
122
174
|
{ type: "viewer", id: t.data?.productId }
|
|
123
175
|
])
|
|
124
176
|
);
|
|
125
177
|
};
|
|
126
|
-
e = y.subscribe("reviewable.process",
|
|
178
|
+
e = y.subscribe("reviewable.process", c);
|
|
127
179
|
} catch {
|
|
128
180
|
}
|
|
129
181
|
await r, y.unsubscribe(e);
|
|
@@ -131,78 +183,78 @@ const h = (a, {
|
|
|
131
183
|
}
|
|
132
184
|
}
|
|
133
185
|
}), T = R.injectEndpoints({
|
|
134
|
-
endpoints: (
|
|
186
|
+
endpoints: (n) => ({
|
|
135
187
|
// custom endpoint to get reviewables from product/task/folder
|
|
136
188
|
// utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder
|
|
137
|
-
getViewerReviewables:
|
|
138
|
-
queryFn: async ({ productId:
|
|
189
|
+
getViewerReviewables: n.query({
|
|
190
|
+
queryFn: async ({ productId: p, taskId: o, folderId: r, projectName: s }, { dispatch: a }) => {
|
|
139
191
|
let e;
|
|
140
|
-
if (
|
|
192
|
+
if (p ? e = f.endpoints.getReviewablesForProduct.initiate(
|
|
141
193
|
{
|
|
142
|
-
productId:
|
|
143
|
-
projectName:
|
|
194
|
+
productId: p,
|
|
195
|
+
projectName: s
|
|
144
196
|
},
|
|
145
197
|
{ forceRefetch: !0 }
|
|
146
|
-
) :
|
|
147
|
-
{ taskId:
|
|
198
|
+
) : o ? e = f.endpoints.getReviewablesForTask.initiate(
|
|
199
|
+
{ taskId: o, projectName: s },
|
|
148
200
|
{ forceRefetch: !0 }
|
|
149
|
-
) : r && (e =
|
|
201
|
+
) : r && (e = f.endpoints.getReviewablesForFolder.initiate(
|
|
150
202
|
{
|
|
151
203
|
folderId: r,
|
|
152
|
-
projectName:
|
|
204
|
+
projectName: s
|
|
153
205
|
},
|
|
154
206
|
{ forceRefetch: !0 }
|
|
155
|
-
), (await
|
|
156
|
-
|
|
157
|
-
{ folderId: r, projectName:
|
|
207
|
+
), (await a(
|
|
208
|
+
f.endpoints.getReviewablesForFolder.initiate(
|
|
209
|
+
{ folderId: r, projectName: s },
|
|
158
210
|
{ forceRefetch: !0 }
|
|
159
211
|
)
|
|
160
212
|
)).error), !e)
|
|
161
213
|
return {
|
|
162
214
|
error: { status: "CUSTOM_ERROR", error: "No query found" }
|
|
163
215
|
};
|
|
164
|
-
const
|
|
165
|
-
if (
|
|
166
|
-
const
|
|
167
|
-
return console.error(
|
|
216
|
+
const c = await a(e);
|
|
217
|
+
if (c.error) {
|
|
218
|
+
const m = c.error;
|
|
219
|
+
return console.error(m), { error: m };
|
|
168
220
|
} else
|
|
169
|
-
return { data:
|
|
221
|
+
return { data: c.data };
|
|
170
222
|
},
|
|
171
|
-
providesTags: (
|
|
172
|
-
async onCacheEntryAdded({ productId:
|
|
173
|
-
let
|
|
223
|
+
providesTags: (p, o, r) => h(p, r, !0),
|
|
224
|
+
async onCacheEntryAdded({ productId: p, taskId: o, folderId: r }, { cacheDataLoaded: s, cacheEntryRemoved: a, dispatch: e, getCacheEntry: c }) {
|
|
225
|
+
let m;
|
|
174
226
|
try {
|
|
175
|
-
await
|
|
176
|
-
const
|
|
227
|
+
await s;
|
|
228
|
+
const u = (i, t) => {
|
|
177
229
|
if (i !== "reviewable.process") return;
|
|
178
|
-
const
|
|
179
|
-
if (new Set(
|
|
180
|
-
let
|
|
181
|
-
|
|
230
|
+
const l = t?.summary || {};
|
|
231
|
+
if (new Set(c().data?.map((d) => d.id) || [])?.has(l.versionId || "") && t.status === "finished") {
|
|
232
|
+
let d;
|
|
233
|
+
p ? d = p : o ? d = o : r && (d = r), console.log("Reviewable finished, refreshing to get data:", { id: d }), d && e(f.util.invalidateTags([{ type: "review", id: d }]));
|
|
182
234
|
}
|
|
183
235
|
};
|
|
184
|
-
|
|
236
|
+
m = y.subscribe("reviewable.process", u);
|
|
185
237
|
} catch {
|
|
186
238
|
}
|
|
187
|
-
await
|
|
239
|
+
await a, y.unsubscribe(m);
|
|
188
240
|
}
|
|
189
241
|
}),
|
|
190
|
-
hasTranscoder:
|
|
191
|
-
queryFn: async (
|
|
192
|
-
const r = await
|
|
193
|
-
return r.data ? { data: r.data.addons.some((
|
|
242
|
+
hasTranscoder: n.query({
|
|
243
|
+
queryFn: async (p, { dispatch: o }) => {
|
|
244
|
+
const r = await o(g.endpoints.listAddons.initiate({ details: !1 }));
|
|
245
|
+
return r.data ? { data: r.data.addons.some((a) => a.name === "transcoder") } : r.error ? (console.error(r.error), { data: !1 }) : { data: !1 };
|
|
194
246
|
}
|
|
195
247
|
})
|
|
196
248
|
})
|
|
197
249
|
}), {
|
|
198
|
-
useGetViewerReviewablesQuery:
|
|
199
|
-
useGetReviewablesForVersionQuery:
|
|
200
|
-
useHasTranscoderQuery:
|
|
250
|
+
useGetViewerReviewablesQuery: fi,
|
|
251
|
+
useGetReviewablesForVersionQuery: li,
|
|
252
|
+
useHasTranscoderQuery: wi
|
|
201
253
|
} = T;
|
|
202
254
|
export {
|
|
203
255
|
T as default,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
256
|
+
li as useGetReviewablesForVersionQuery,
|
|
257
|
+
fi as useGetViewerReviewablesQuery,
|
|
258
|
+
wi as useHasTranscoderQuery
|
|
207
259
|
};
|
|
208
260
|
//# sourceMappingURL=getReview.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getReview.es.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["getViewerReviewablesTags","result","productId","taskId","folderId","versionId","viewer","tags","version","tag","versionTags","reviewableTags","reviewable","enhancedApi","reviewablesApi","_error","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","token","handlePubSub","topic","message","summary","cache","index","r","progress","data","reviewables","processing","PubSub","getReviewApi","build","projectName","query","error","args","id","_arg","res","addonsQueries","addon","useGetViewerReviewablesQuery","useGetReviewablesForVersionQuery","useHasTranscoderQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getReview.es.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["getViewerReviewablesTags","result","productId","taskId","folderId","versionId","viewer","tags","version","tag","versionTags","reviewableTags","reviewable","enhancedApi","reviewablesApi","_error","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","token","handlePubSub","topic","message","summary","cache","index","r","progress","data","reviewables","processing","PubSub","getReviewApi","build","projectName","query","error","args","id","_arg","res","addonsQueries","addon","useGetViewerReviewablesQuery","useGetReviewablesForVersionQuery","useHasTranscoderQuery"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,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");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const A=require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("lodash");require("react-toastify");require("uuid");const x=require("../../../util/thumbnailWebsocket.cjs.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,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");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const A=require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("lodash");require("react-toastify");require("uuid");const x=require("../../../util/thumbnailWebsocket.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.cjs.js");require("../activities/updateActivities.cjs.js");require("../activities/updateReaction.cjs.js");require("../activities/getMentions.cjs.js");require("../activities/getCategories.cjs.js");require("../addons/getAddons.cjs.js");require("../addons/updateAddons.cjs.js");require("../attributes/getAttributes.cjs.js");require("../attributes/updateAttributes.cjs.js");require("../authentication/getAuthentication.cjs.js");require("../cloud/cloud.cjs.js");require("../columnStats/metricTargets.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.cjs.js");require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../links/getEntityLinks.cjs.js");require("../entities/updateEntity.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/listItemsColumnStats.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../folders/getFolderDeleteInfo.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../products/getFolderProducts.cjs.js");require("../projectFolders/projectFolders.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");require("../tasks/getTasks.cjs.js");require("../tasks/updateTasks.cjs.js");require("../teams/getTeams.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const I=require("../../../util/pubsub.cjs.js"),U=require("./convertAccessGroupsData.cjs.js"),E=require("./getUserProjectsAccess.cjs.js"),G=t=>t.kanban.edges.map(({node:i})=>i).sort((i,o)=>{const r=i.label||i.name,n=o.label||o.name;return r.localeCompare(n)}),S=(t,i,o)=>t?.length?[{type:"kanBanTask",id:"LIST"},...t.flatMap(({id:r,projectName:n,assignees:m})=>[{type:"task",id:r},{type:"kanban",id:"project-"+n},...m.map(c=>({type:"kanban",id:"user-"+c})),...m.map(c=>({type:"kanban",id:"user-"+c+"-project-"+n})),{type:"kanban",id:JSON.stringify(o)}])]:[{type:"kanBanTask",id:"LIST"}],K=async({projects:t=[],taskIds:i=[]},o)=>{try{const r=await o(v.endpoints.GetKanbanTasks.initiate({projects:t,taskIds:i},{forceRefetch:!0}));if(r.status==="rejected"||!r.data)throw console.error("No tasks found",i),new Error(`No tasks found ${i.join(", ")}`);return r.status!=="fulfilled"?[]:r.data}catch(r){return console.error(r),[]}},v=Q.api.enhanceEndpoints({endpoints:{GetKanban:{transformResponse:G,providesTags:S,async onCacheEntryAdded({assignees:t=[],projects:i=[]}={},{updateCachedData:o,cacheDataLoaded:r,cacheEntryRemoved:n,dispatch:m,getCacheEntry:c}){let h,y,j=[],f=null;try{await r,y=x.subscribeToThumbnailUpdates(b=>{const q=c().data??[];if(!q.length)return;const l=b.filter(u=>q.some(a=>a.id===u.summary.entityId&&a.projectName===u.project));l.length!==0&&o(u=>{l.forEach(a=>{const d=u.findIndex(e=>e.id===a.summary.entityId);d!==-1&&u[d]&&a.summary.thumbnailHash&&(u[d].thumbnailHash=a.summary.thumbnailHash)})})},["task"]);const g=async()=>{const b=[...j];j=[],f=null;const q=Array.from(new Set(b.flatMap(e=>e.taskIds))),l=Array.from(new Set(b.flatMap(e=>e.projects)));if(q.length===0)return;const u=await K({projects:l,taskIds:q},m),a=u.filter(e=>e.assignees.some(s=>t?.includes(s))),d=u.filter(e=>!e.assignees.some(s=>t?.includes(s)));o(e=>{a.forEach(s=>{const p=e.findIndex(T=>T.id===s.id);p===-1?e.push(s):e[p]=s}),d.forEach(s=>{const p=e.findIndex(T=>T.id===s.id);p!==-1&&e.splice(p,1)})})},w=({projects:b=[],taskIds:q=[],payload:l})=>{let u=!1;if(l?o(a=>{q.forEach(d=>{const e=a.findIndex(s=>s.id===d);e!==-1?(Object.assign(a[e],l),l.assignees&&(!t?.length||l.assignees.some(p=>t?.includes(p))||a.splice(e,1))):l.assignees?.some(s=>t?.includes(s))&&(u=!0)})}):u=!0,!!u&&(j.push({projects:b,taskIds:q}),!f)){const a=Math.random()*5e3;f=setTimeout(g,a)}},M=async(b,q)=>{const l=q.project;if(!i?.includes(l))return console.log("project not selected");const u=q.summary.entityId;if(!u)return console.log("no entity id found");const a=c().data??[],d=q.topic.split(".")[2].split("_changed")[0];if(!["status","assignees"].includes(d))return;const e=q.summary.value;let s=e;d==="status"?s=String(e):d==="assignees"&&(s=Array.isArray(e)?e:[]);const p=a.some(k=>k.id===u),T=d==="assignees"&&s.some(k=>t?.includes(k));!p&&!T||w({taskIds:[u],projects:[l],payload:{[d]:s}})};h=I.subscribe("entity.task",M)}catch(g){console.error(g)}await n,I.unsubscribe(h),y&&y(),f&&clearTimeout(f)}},GetKanbanTasks:{transformResponse:G,providesTags:S},GetKanbanProjectUsers:{transformResponse:(t,i,{projects:o}={})=>t.users.edges.map(({node:r})=>{const n=U(r.accessGroups);let c=!r.isManager&&!r.isAdmin?E(n):o;(typeof c=="string"||!c)&&(c=[]);const h=`/api/users/${r.name}/avatar`;return{...r,accessGroups:n,projects:c,avatarUrl:h}}),providesTags:t=>t?.length?[{type:"user",id:"LIST"},...t.map(({name:i})=>({type:"user",id:i}))]:[{type:"user",id:"LIST"}]}}}),{useGetKanbanQuery:L,useGetKanbanProjectUsersQuery:R}=v,P=v.injectEndpoints({endpoints:t=>({getProjectsInfo:t.query({async queryFn({projects:i=[],anatomy:o=!0},{dispatch:r}){try{const n={};for(const m of i){const c=m,h=[r(A.default.endpoints.getProject.initiate({projectName:c})).unwrap(),...o?[r(A.default.endpoints.getProjectAnatomy.initiate({projectName:c})).unwrap()]:[]],y=await Promise.allSettled(h),j=y[0],f=j.status==="fulfilled"?j.value:void 0,g=o&&y[1]?.status==="fulfilled"?y[1].value:void 0;f&&(n[c]={...f,anatomy:g})}return{data:n,meta:void 0,error:void 0}}catch(n){return console.error(n),{error:n,meta:void 0,data:void 0}}},providesTags:(i,o,{projects:r})=>r.map(n=>({type:"project",id:n}))})})}),{useGetProjectsInfoQuery:_}=P;exports.dashboardQueries=P;exports.getKanbanTasks=K;exports.useGetKanbanProjectUsersQuery=R;exports.useGetKanbanQuery=L;exports.useGetProjectsInfoQuery=_;
|
|
2
2
|
//# sourceMappingURL=getUserDashboard.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
|