@ynput/ayon-frontend-shared 0.2.17 → 0.2.19
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 +12 -9
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +13 -10
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +6 -0
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +6 -0
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +4 -4
- package/dist/_virtual/index.cjs5.js +3 -5
- package/dist/_virtual/index.cjs5.js.map +1 -1
- package/dist/_virtual/index.cjs6.js +5 -3
- package/dist/_virtual/index.cjs6.js.map +1 -1
- package/dist/_virtual/index.cjs8.js +4 -4
- package/dist/_virtual/index.cjs9.js +4 -4
- package/dist/_virtual/index.es10.js +4 -4
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +4 -4
- package/dist/api.cjs.js +13 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +17 -4
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +9 -4
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +10 -5
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +12 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +12 -8
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.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/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +64 -23
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +64 -23
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js +9 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +9 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +5 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +5 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +24 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +24 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +67 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +19 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +19 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +15 -0
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +15 -0
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +82 -0
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/versions/updateVersions.es.js +82 -0
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +7 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +7 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
- package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +374 -114
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
- package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +374 -114
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +17 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +17 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +12 -8
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -8
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +35 -107
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +35 -107
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +12 -8
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -8
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +12 -8
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -8
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +402 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +402 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +12 -8
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -8
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +10 -2
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +10 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +12 -8
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -8
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +14 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +16 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +17 -10
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +0 -30
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +0 -30
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +51 -5
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +53 -7
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +11 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +22 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +22 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +28 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +28 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +135 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +135 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +90 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +90 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -9
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +4 -147
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -145
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +12 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +7 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +7 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +2 -0
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +2 -0
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
- package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.cjs.js +1 -0
- package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.es.js +2 -0
- package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
- package/dist/shared/src/util/productTypes.cjs.js +1 -0
- package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
- package/dist/shared/src/util/productTypes.es.js +1 -0
- package/dist/shared/src/util/productTypes.es.js.map +1 -1
- package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
- package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
- package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
- package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
- package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
- package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
- package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
- package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
- package/dist/types/SimpleTable/SimpleTable.d.ts +1 -0
- package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +1 -1
- package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +5 -1
- package/dist/types/api/generated/folders.d.ts +1 -0
- package/dist/types/api/generated/graphql.d.ts +113 -41
- package/dist/types/api/queries/actions/getActions.d.ts +132 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +10 -4
- package/dist/types/api/queries/activities/updateActivities.d.ts +20 -8
- package/dist/types/api/queries/entities/getEntity.d.ts +10 -4
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +10 -4
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +10 -4
- package/dist/types/api/queries/entityLists/getLists.d.ts +1521 -6
- package/dist/types/api/queries/entityLists/types.d.ts +30 -1
- package/dist/types/api/queries/entityLists/updateLists.d.ts +166 -3
- package/dist/types/api/queries/index.d.ts +2 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +10 -4
- package/dist/types/api/queries/products/createProduct.d.ts +161 -0
- package/dist/types/api/queries/products/index.d.ts +1 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +10 -4
- package/dist/types/api/queries/users/getUsers.d.ts +10 -4
- package/dist/types/api/queries/versions/index.d.ts +1 -0
- package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
- package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
- package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
- package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
- package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
- package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
- package/dist/types/components/PlayableIcon/PlayableIcon.d.ts +4 -0
- package/dist/types/components/ReviewablesList/index.d.ts +1 -0
- package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
- package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
- package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
- package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
- package/dist/types/components/VersionUploader/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/containers/Actions/Actions.d.ts +7 -1
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +5 -3
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +6 -2
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +12 -2
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +3 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +3 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -1
- package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/utils/getTypeDefaultValue.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +20 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -11
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -0
- package/dist/types/context/DetailsPanelContext.d.ts +1 -0
- package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
- package/dist/types/util/confirmDelete.d.ts +2 -1
- package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
- package/dist/util.cjs.js +2 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +2 -0
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
- package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
- package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
- package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
- package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
- package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLists.es.js","sources":["../../../../../../src/api/queries/entityLists/getLists.ts"],"sourcesContent":["import { gqlApi } from '@shared/api/generated'\nimport {\n FetchBaseQueryError,\n DefinitionsFromApi,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type {\n GetListItemsQuery,\n GetListItemsQueryVariables,\n GetListsQuery,\n GetListsQueryVariables,\n} from '@shared/api'\nimport { parseAllAttribs } from '../overview'\nimport { PubSub } from '@shared/util'\nimport {\n GetListItemsResult,\n GetListsResult,\n ListItemMessage,\n ListItemsPageParam,\n ListsPageParam,\n} from './types'\n\n// GRAPHQL API (getLists and getListItems)\n// Define the LISTS_PER_PAGE constant for pagination\nexport const LISTS_PER_PAGE = 500\nexport const LIST_ITEMS_PER_PAGE = 100\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLists' | 'GetListItems'> & {\n GetLists: OverrideResultType<Definitions['GetLists'], GetListsResult>\n GetListItems: OverrideResultType<Definitions['GetListItems'], GetListItemsResult>\n}\n\nconst getListsGqlApiEnhanced = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLists: {\n transformResponse: (response: GetListsQuery): GetListsResult => {\n return {\n // @ts-expect-error - entityType is string\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n GetListItems: {\n transformResponse: (response: GetListItemsQuery): GetListItemsResult => {\n return {\n items: response.project.entityLists.edges.flatMap((listEdge) =>\n listEdge.node.items.edges.map(({ node, ...edge }) => {\n return {\n ...node,\n ...edge,\n attrib: parseAllAttribs(edge.allAttrib),\n } as GetListItemsResult['items'][number]\n }),\n ),\n pageInfo: response.project.entityLists.edges[0].node.items.pageInfo,\n }\n },\n },\n },\n})\n\nconst getListsGqlApiInjected = getListsGqlApiEnhanced.injectEndpoints({\n endpoints: (build) => ({\n getListsInfinite: build.infiniteQuery<\n GetListsResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetLists.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ],\n async onCacheEntryAdded(\n _args,\n { cacheDataLoaded, cacheEntryRemoved, dispatch, updateCachedData },\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: ListItemMessage) => {\n if (topic !== 'entity_list.changed') return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n\n // We have all the data we need to update the cache\n updateCachedData((draft) => {\n const list = draft.pages.flatMap((page) => page.lists).find((l) => l.id === id)\n if (!list) return\n const newList = {\n ...list,\n label: summary.label,\n entityType: summary.entity_type,\n entityListType: summary.entity_list_type,\n count: summary.count,\n }\n\n Object.assign(list, newList)\n })\n // NOTE: We have to invalidate here as we don't know if other fields are updated not included in the updateCachedData\n // invalidates lists list cache\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityList', id: `LIST` }]))\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity_list.changed', 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 getListItemsInfinite: build.infiniteQuery<\n GetListItemsResult,\n Omit<GetListItemsQueryVariables, 'first' | 'after' | 'before' | 'last'> & { desc?: boolean },\n ListItemsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams: GetListItemsQueryVariables = {\n ...rest,\n first: LIST_ITEMS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Add cursor-based pagination\n queryParams.after = cursor || undefined\n queryParams.first = LIST_ITEMS_PER_PAGE\n\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.after = undefined\n queryParams.last = LIST_ITEMS_PER_PAGE\n queryParams.first = undefined\n }\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListItems.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n items: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { listId, projectName }) => [\n { type: 'entityListItem', id: 'LIST' },\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: projectName },\n ...(result?.pages.flatMap((page) => page.items) || [])\n .filter((i) => !!i)\n .flatMap((item) => [\n {\n type: 'entityListItem',\n id: item.id,\n },\n {\n type: 'entityListItem',\n id: item.entityId,\n },\n ]),\n ],\n async onCacheEntryAdded(_args, { cacheDataLoaded, cacheEntryRemoved, dispatch }) {\n let token, token2\n try {\n // wait for the initial query to resolve before proceeding\n const cache = await cacheDataLoaded\n const pages = cache.data.pages\n const items = pages.flatMap((page) => page.items)\n // get entityType of first item\n const entityType = items[0]?.entityType\n\n const listTopic = `entity_list.changed`\n const entityTypeTopic = `entity.${entityType}`\n\n const invalidateListItems = (id: string) => {\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityListItem', id: id }]))\n }\n\n const handleListMessage = (topic: string, message: ListItemMessage) => {\n if (topic !== listTopic) return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n invalidateListItems(id)\n }\n\n const handleEntityMessage = (topic: string, message: ListItemMessage) => {\n if (!topic.startsWith(entityTypeTopic)) return\n const summary = message.summary\n const id = summary.entityId\n // check for id\n if (!id) return\n invalidateListItems(id)\n }\n\n // sub to websocket topic\n token = PubSub.subscribe(listTopic, handleListMessage)\n if (entityType) token2 = PubSub.subscribe(entityTypeTopic, handleEntityMessage)\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 PubSub.unsubscribe(token2)\n },\n }),\n }),\n})\n\nexport default getListsGqlApiInjected\n\nexport const {\n useGetListsInfiniteInfiniteQuery,\n useGetListItemsInfiniteInfiniteQuery,\n useLazyGetListItemsQuery,\n} = getListsGqlApiInjected\n"],"names":["gqlApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getLists.es.js","sources":["../../../../../../src/api/queries/entityLists/getLists.ts"],"sourcesContent":["import { gqlApi } from '@shared/api/generated'\nimport {\n FetchBaseQueryError,\n DefinitionsFromApi,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type {\n GetListItemsQuery,\n GetListItemsQueryVariables,\n GetListsItemsForReviewSessionQuery,\n GetListsItemsForReviewSessionResult,\n GetListsQuery,\n GetListsQueryVariables,\n} from '@shared/api'\nimport { parseAllAttribs } from '../overview'\nimport { PubSub } from '@shared/util'\nimport {\n GetListItemsResult,\n GetListsResult,\n ListItemMessage,\n ListItemsPageParam,\n ListsPageParam,\n} from './types'\n\n// GRAPHQL API (getLists and getListItems)\n// Define the LISTS_PER_PAGE constant for pagination\nexport const LISTS_PER_PAGE = 500\nexport const LIST_ITEMS_PER_PAGE = 100\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLists' | 'GetListItems'> & {\n GetLists: OverrideResultType<Definitions['GetLists'], GetListsResult>\n GetListItems: OverrideResultType<Definitions['GetListItems'], GetListItemsResult>\n GetListsItemsForReviewSession: OverrideResultType<\n Definitions['GetListsItemsForReviewSession'],\n GetListsItemsForReviewSessionResult\n >\n}\n\nconst getListsGqlApiEnhanced = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLists: {\n transformResponse: (response: GetListsQuery): GetListsResult => {\n return {\n // @ts-expect-error - entityType is string\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n GetListItems: {\n transformResponse: (response: GetListItemsQuery): GetListItemsResult => {\n return {\n items: response.project.entityLists.edges.flatMap((listEdge) =>\n listEdge.node.items.edges.map(({ node, ...edge }) => {\n return {\n ...node,\n ...edge,\n attrib: parseAllAttribs(edge.allAttrib),\n } as GetListItemsResult['items'][number]\n }),\n ),\n pageInfo: response.project.entityLists.edges[0].node.items.pageInfo,\n }\n },\n },\n GetListsItemsForReviewSession: {\n transformResponse: (\n response: GetListsItemsForReviewSessionQuery,\n ): GetListsItemsForReviewSessionResult => {\n return {\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n },\n})\n\nconst getListsGqlApiInjected = getListsGqlApiEnhanced.injectEndpoints({\n endpoints: (build) => ({\n getListsInfinite: build.infiniteQuery<\n GetListsResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetLists.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.entityListType,\n })),\n ],\n async onCacheEntryAdded(\n _args,\n { cacheDataLoaded, cacheEntryRemoved, dispatch, updateCachedData },\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: ListItemMessage) => {\n if (topic !== 'entity_list.changed') return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n\n // We have all the data we need to update the cache\n updateCachedData((draft) => {\n const list = draft.pages.flatMap((page) => page.lists).find((l) => l.id === id)\n if (!list) return\n const newList = {\n ...list,\n label: summary.label,\n entityType: summary.entity_type,\n entityListType: summary.entity_list_type,\n count: summary.count,\n }\n\n Object.assign(list, newList)\n })\n // NOTE: We have to invalidate here as we don't know if other fields are updated not included in the updateCachedData\n // invalidates lists list cache\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityList', id: `LIST` }]))\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity_list.changed', 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 getListItemsInfinite: build.infiniteQuery<\n GetListItemsResult,\n Omit<GetListItemsQueryVariables, 'first' | 'after' | 'before' | 'last'> & { desc?: boolean },\n ListItemsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams: GetListItemsQueryVariables = {\n ...rest,\n first: LIST_ITEMS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Add cursor-based pagination\n queryParams.after = cursor || undefined\n queryParams.first = LIST_ITEMS_PER_PAGE\n\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.after = undefined\n queryParams.last = LIST_ITEMS_PER_PAGE\n queryParams.first = undefined\n }\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListItems.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n items: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { listId, projectName }) => [\n { type: 'entityListItem', id: 'LIST' },\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: projectName },\n ...(result?.pages.flatMap((page) => page.items) || [])\n .filter((i) => !!i)\n .flatMap((item) => [\n {\n type: 'entityListItem',\n id: item.id,\n },\n {\n type: 'entityListItem',\n id: item.entityId,\n },\n ]),\n ],\n async onCacheEntryAdded(_args, { cacheDataLoaded, cacheEntryRemoved, dispatch }) {\n let token, token2\n try {\n // wait for the initial query to resolve before proceeding\n const cache = await cacheDataLoaded\n const pages = cache.data.pages\n const items = pages.flatMap((page) => page.items)\n // get entityType of first item\n const entityType = items[0]?.entityType\n\n const listTopic = `entity_list.changed`\n const entityTypeTopic = `entity.${entityType}`\n\n const invalidateListItems = (id: string) => {\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityListItem', id: id }]))\n }\n\n const handleListMessage = (topic: string, message: ListItemMessage) => {\n if (topic !== listTopic) return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n invalidateListItems(id)\n }\n\n const handleEntityMessage = (topic: string, message: ListItemMessage) => {\n if (!topic.startsWith(entityTypeTopic)) return\n const summary = message.summary\n const id = summary.entityId\n // check for id\n if (!id) return\n invalidateListItems(id)\n }\n\n // sub to websocket topic\n token = PubSub.subscribe(listTopic, handleListMessage)\n if (entityType) token2 = PubSub.subscribe(entityTypeTopic, handleEntityMessage)\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 PubSub.unsubscribe(token2)\n },\n }),\n getListsItemsForReviewSession: build.infiniteQuery<\n GetListsItemsForReviewSessionResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before' | 'filter'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListsItemsForReviewSession.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ],\n }),\n }),\n})\n\nexport default getListsGqlApiInjected\n\nexport const {\n useGetListsInfiniteInfiniteQuery,\n useGetListItemsInfiniteInfiniteQuery,\n useGetListsItemsForReviewSessionInfiniteQuery,\n useLazyGetListsQuery,\n useLazyGetListsItemsForReviewSessionQuery,\n useLazyGetListItemsQuery,\n} = getListsGqlApiInjected\n"],"names":["gqlApi"],"mappings":"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"}
|
|
@@ -211,6 +211,19 @@ const updateListsEnhancedApi = entityLists.api.enhanceEndpoints({
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
});
|
|
214
|
+
const updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({
|
|
215
|
+
endpoints: (build) => ({
|
|
216
|
+
createSessionFromList: build.mutation({
|
|
217
|
+
query: (queryArg) => ({
|
|
218
|
+
url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,
|
|
219
|
+
method: "POST",
|
|
220
|
+
body: queryArg.sessionFromListRequest
|
|
221
|
+
}),
|
|
222
|
+
transformErrorResponse: (error) => error.data.detail,
|
|
223
|
+
invalidatesTags: () => [{ type: "entityList", id: "LIST" }]
|
|
224
|
+
})
|
|
225
|
+
})
|
|
226
|
+
});
|
|
214
227
|
const {
|
|
215
228
|
// LIST MUTATIONS
|
|
216
229
|
useCreateEntityListMutation,
|
|
@@ -220,12 +233,15 @@ const {
|
|
|
220
233
|
useUpdateEntityListItemsMutation,
|
|
221
234
|
useUpdateEntityListItemMutation,
|
|
222
235
|
useCreateEntityListItemMutation,
|
|
223
|
-
useDeleteEntityListItemMutation
|
|
224
|
-
|
|
236
|
+
useDeleteEntityListItemMutation,
|
|
237
|
+
// REVIEW SESSION MUTATIONS
|
|
238
|
+
useCreateSessionFromListMutation
|
|
239
|
+
} = updateListsInjectedApi;
|
|
225
240
|
exports.entityListsQueriesGql = getLists.default;
|
|
226
|
-
exports.entityListsQueriesRest =
|
|
241
|
+
exports.entityListsQueriesRest = updateListsInjectedApi;
|
|
227
242
|
exports.useCreateEntityListItemMutation = useCreateEntityListItemMutation;
|
|
228
243
|
exports.useCreateEntityListMutation = useCreateEntityListMutation;
|
|
244
|
+
exports.useCreateSessionFromListMutation = useCreateSessionFromListMutation;
|
|
229
245
|
exports.useDeleteEntityListItemMutation = useDeleteEntityListItemMutation;
|
|
230
246
|
exports.useDeleteEntityListMutation = useDeleteEntityListMutation;
|
|
231
247
|
exports.useUpdateEntityListItemMutation = useUpdateEntityListItemMutation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { current } from '@reduxjs/toolkit'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n} = updateListsEnhancedApi\nexport { updateListsEnhancedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,yBAAyBA,gBAAe,iBAAiB;AAAA,EAC7D,WAAW;AAAA;AAAA,IAET,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IACtD;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM,eACJ,EAAE,QAAQ,qBAAA,GACV,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAEvB,cAAM,OAAO,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ;AAChD,cAAM,kBAAkBC,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,kBAAkB;AAEtD,YAAI,eAAsB,CAAC;AAC3B,mBAAW,SAAS,iBAAiB;AACnC,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,oBAAoB,MAAM,cAAc,CAAC,UAAU;AAClE,yBAAA,QAAQ,MAAM,OAAO;AACxB,sBAAA,YAAY,KAAK,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM;AACnE,oBAAI,cAAc,IAAI;AACd,wBAAA,OAAO,KAAK,MAAM,SAAS;AAE1B,yBAAA,OAAO,MAAM,oBAAoB;AACxC;AAAA,gBAAA;AAAA,cACF;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAE3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MAEL;AAAA,MACA,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AACvC,cAAM,OAAO,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ;AACzC,eAAA;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IACtD;AAAA;AAAA,IAEA,uBAAuB;AAAA,MACrB,MAAM,eACJ,EAAE,QAAQ,0BAAA,GACV,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAGvB,cAAM,OAAO,CAAC,EAAE,MAAM,kBAAkB,IAAI,QAAQ;AACpD,cAAM,kBAAkBA,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,sBAAsB;AAE1D,YAAI,eAAsB,CAAC;AAE3B,YAAI,CAAC,0BAA0B,SAAS,0BAA0B,MAAM,WAAW,GAAG;AAE9E,gBAAA;AACN;AAAA,QAAA;AAGF,mBAAW,SAAS,iBAAiB;AAE/B,cAAA,MAAM,aAAa,WAAW,OAAQ;AAE1C,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,wBAAwB,MAAM,cAAc,CAAC,UAAU;;AACjF,kBAAI,yBAAyB;AAElB,yBAAA,QAAQ,MAAM,OAAO;AACJ,gDAAA,UAAA,mBAAO,QAAQ,CAAC,cAAc;AAChD,wBAAA,YAAY,KAAK,MAAM;AAAA,oBAC3B,CAAC,SAAS,KAAK,OAAO,UAAU,MAAM,KAAK,aAAa,UAAU;AAAA,kBACpE;AAEA,sBAAI,cAAc,IAAI;AACd,0BAAA,eAAe,KAAK,MAAM,SAAS;AAEzC,0BAAM,cAAc;AAAA,sBAClB,GAAG;AAAA,sBACH,GAAG;AAAA;AAAA,sBACH,QAAQ;AAAA,wBACN,GAAG,aAAa;AAAA,wBAChB,GAAI,UAAU,UAAU,CAAA;AAAA;AAAA,sBAAC;AAAA,oBAE7B;AACA,2BAAO,OAAO,KAAK,MAAM,SAAS,GAAG,WAAW;AAE5C,wBAAA,UAAU,aAAa,QAAW;AACX,+CAAA;AAAA,oBAAA;AAAA,kBAC3B;AAAA,gBACF;AAAA,cACD;AAGH,kBAAI,wBAAwB;AAE1B,oBAAI,WAAW,MAAM,MAAM,QAAQ,CAAC,SAAS,KAAK,KAAK;AAG9C,yBAAA,KAAK,CAAC,GAAG,MAAM;AACtB,wBAAM,OAAO,OAAO,EAAE,aAAa,WAAW,EAAE,WAAW;AAC3D,wBAAM,OAAO,OAAO,EAAE,aAAa,WAAW,EAAE,WAAW;AAC3D,yBAAO,OAAO;AAAA,gBAAA,CACf;AAGD,oBAAI,mBAAmB;AACZ,2BAAA,QAAQ,MAAM,OAAO;AACxB,wBAAA,gBAAgB,KAAK,MAAM;AAEjC,uBAAK,QAAQ,SAAS,MAAM,kBAAkB,mBAAmB,aAAa;AAC1D,sCAAA;AAAA,gBAAA;AAAA,cACtB;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAG3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MAEL;AAAA,MACA,iBAAiB,CAAC,IAAI,IAAI,EAAE,QAAQ,2BAA2B,EAAE,MAAM,QAAQ;AAC7E,cAAM,OAAO;AAAA,UACX,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,UACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,UACrC,IAAI,SAAS,CAAA,GAAI;AAAA,YAAQ,CAAC,OACvB,EAAE,KAAK,CAAC,EAAE,MAAM,kBAAkB,IAAI,EAAE,IAAI,IAAI,CAAI,GAAA;AAAA,cACnD,EAAE,WAAW,CAAC,EAAE,MAAM,kBAAkB,IAAI,EAAE,SAAA,CAAU,IAAI,CAAA;AAAA,YAAC;AAAA,UAC/D;AAAA,QAEJ;AACO,eAAA;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM,eACJ,EAAE,YAAY,yBAAA,GACd,EAAE,UAAU,gBAAgB,YAC5B;AACA,cAAM,QAAQ,SAAS;AAEvB,cAAM,OAAO,CAAC,EAAE,MAAM,kBAAkB,IAAI,YAAY;AACxD,cAAM,kBAAkBA,SAAA,QAAO,KAC5B,oBAAoB,OAAO,IAAI,EAC/B,OAAO,CAAC,MAAM,EAAE,iBAAiB,sBAAsB;AAE1D,YAAI,eAAsB,CAAC;AAC3B,mBAAW,SAAS,iBAAiB;AACnC,gBAAM,cAAc;AAAA,YAClBA,iBAAO,KAAK,gBAAgB,wBAAwB,MAAM,cAAc,CAAC,UAAU;AACtE,yBAAA,QAAQ,MAAM,OAAO;AACxB,sBAAA,YAAY,KAAK,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,UAAU;AACvE,oBAAI,cAAc,IAAI;AACd,wBAAA,OAAO,KAAK,MAAM,SAAS;AACjC,wBAAM,cAAc;AAAA,oBAClB,GAAG;AAAA,oBACH,QAAQ;AAAA,sBACN,GAAG,KAAK;AAAA,sBACR,GAAG,yBAAyB;AAAA,oBAAA;AAAA,kBAEhC;AAEO,yBAAA,OAAO,MAAM,WAAW;AAC/B;AAAA,gBAAA;AAAA,cACF;AAAA,YAEH,CAAA;AAAA,UACH;AAEA,uBAAa,KAAK,WAAW;AAAA,QAAA;AAE3B,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACO,uBAAA,QAAQ,CAAC,gBAAgB;AAEpC,wBAAY,KAAK;AAAA,UAAA,CAClB;AAAA,QAAA;AAAA,MACH;AAAA,IAEJ;AAAA,IACA,sBAAsB;AAAA,MACpB,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AAAA,QACvC,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,MAAA;AAAA,IAEzC;AAAA,IACA,sBAAsB;AAAA,MACpB,iBAAiB,CAAC,IAAI,IAAI,EAAE,aAAa;AAAA,QACvC,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,MAAA;AAAA,IACvC;AAAA,EACF;AAEJ,CAAC;AAGK,MAAA,yBAAyB,uBAAuB,gBAAgB;AAAA,EACpE,WAAW,CAAC,WAAW;AAAA,IACrB,uBAAuB,MAAM,SAG3B;AAAA,MACA,OAAO,CAAC,cAAc;AAAA,QACpB,KAAK,sBAAsB,SAAS,YAAY,IAAI,SAAS,WAAW;AAAA,QACxE,QAAQ;AAAA,QACR,MAAM,SAAS;AAAA,MAAA;AAAA,MAEjB,wBAAwB,CAAC,UAAe,MAAM,KAAK;AAAA,MACnD,iBAAiB,MAAM,CAAC,EAAE,MAAM,cAAc,IAAI,OAAQ,CAAA;AAAA,IAC3D,CAAA;AAAA,EACH;AACF,CAAC;AAEY,MAAA;AAAA;AAAA,EAEX;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AACF,IAAI;;;;;;;;;;;"}
|
|
@@ -209,6 +209,19 @@ const updateListsEnhancedApi = injectedRtkApi.enhanceEndpoints({
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
});
|
|
212
|
+
const updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({
|
|
213
|
+
endpoints: (build) => ({
|
|
214
|
+
createSessionFromList: build.mutation({
|
|
215
|
+
query: (queryArg) => ({
|
|
216
|
+
url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,
|
|
217
|
+
method: "POST",
|
|
218
|
+
body: queryArg.sessionFromListRequest
|
|
219
|
+
}),
|
|
220
|
+
transformErrorResponse: (error) => error.data.detail,
|
|
221
|
+
invalidatesTags: () => [{ type: "entityList", id: "LIST" }]
|
|
222
|
+
})
|
|
223
|
+
})
|
|
224
|
+
});
|
|
212
225
|
const {
|
|
213
226
|
// LIST MUTATIONS
|
|
214
227
|
useCreateEntityListMutation,
|
|
@@ -218,13 +231,16 @@ const {
|
|
|
218
231
|
useUpdateEntityListItemsMutation,
|
|
219
232
|
useUpdateEntityListItemMutation,
|
|
220
233
|
useCreateEntityListItemMutation,
|
|
221
|
-
useDeleteEntityListItemMutation
|
|
222
|
-
|
|
234
|
+
useDeleteEntityListItemMutation,
|
|
235
|
+
// REVIEW SESSION MUTATIONS
|
|
236
|
+
useCreateSessionFromListMutation
|
|
237
|
+
} = updateListsInjectedApi;
|
|
223
238
|
export {
|
|
224
239
|
getListsGqlApiInjected as entityListsQueriesGql,
|
|
225
|
-
|
|
240
|
+
updateListsInjectedApi as entityListsQueriesRest,
|
|
226
241
|
useCreateEntityListItemMutation,
|
|
227
242
|
useCreateEntityListMutation,
|
|
243
|
+
useCreateSessionFromListMutation,
|
|
228
244
|
useDeleteEntityListItemMutation,
|
|
229
245
|
useDeleteEntityListMutation,
|
|
230
246
|
useUpdateEntityListItemMutation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { current } from '@reduxjs/toolkit'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n} = updateListsEnhancedApi\nexport { updateListsEnhancedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["entityListsApi","gqlApi"],"mappings":"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"}
|
|
@@ -66,6 +66,8 @@ require("../users/updateUsers.cjs.js");
|
|
|
66
66
|
require("../watchers/getWatchers.cjs.js");
|
|
67
67
|
require("../permissions/getPermissions.cjs.js");
|
|
68
68
|
require("../grouping/getGrouping.cjs.js");
|
|
69
|
+
require("../versions/updateVersions.cjs.js");
|
|
70
|
+
require("../products/createProduct.cjs.js");
|
|
69
71
|
const updateEntityWithOperation = (entity, operationData) => {
|
|
70
72
|
const newData = {
|
|
71
73
|
...entity,
|
|
@@ -470,6 +472,19 @@ const operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({
|
|
|
470
472
|
invalidateEntryPanel();
|
|
471
473
|
}
|
|
472
474
|
}
|
|
475
|
+
},
|
|
476
|
+
invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {
|
|
477
|
+
var _a;
|
|
478
|
+
const userDashboardTags = [{ type: "kanban", id: "project-" + projectName }], taskProgressTags = [];
|
|
479
|
+
(_a = operationsRequestModel.operations) == null ? void 0 : _a.forEach((op) => {
|
|
480
|
+
const { entityId } = op;
|
|
481
|
+
if (entityId) {
|
|
482
|
+
taskProgressTags.push({ type: "progress", id: entityId });
|
|
483
|
+
} else {
|
|
484
|
+
taskProgressTags.push({ type: "progress", id: "LIST" });
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
return [...userDashboardTags, ...taskProgressTags];
|
|
473
488
|
}
|
|
474
489
|
})
|
|
475
490
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import {\n foldersQueries,\n detailsPanelQueries,\n operationsApi,\n entityListsQueriesGql,\n} from '@shared/api'\nimport type { OperationsResponseModel, OperationModel, OperationsApiArg } from '@shared/api'\nimport getOverviewApi from './getOverview'\nimport { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api/queries/entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n const newData = {\n ...entity,\n ...operationData,\n attrib: {\n ...entity.attrib,\n ...(operationData?.attrib || {}),\n },\n }\n\n // patch data onto the entity\n Object.assign(entity, newData)\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksByParent' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds.includes(taskOperation.data.folderId)\n ) {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n } else {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\nconst invalidateOverviewTasks = (\n tasks: PatchOperation[],\n {\n dispatch,\n }: {\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n) => {\n if (!tasks.length) return\n dispatch(getOverviewApi.util.invalidateTags(getOverviewTaskTags(tasks)))\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nconst operationDataToDetailsData = (\n data: Record<string, any>,\n entityType: DetailsPanelEntityType,\n): DeepPartial<DetailsPanelEntityData> => {\n const sharedData: DeepPartial<DetailsPanelEntityData> = {\n name: data.name,\n attrib: data.attrib,\n status: data.status,\n tags: data.tags,\n label: data.label,\n updatedAt: data.updatedAt,\n createdAt: data.createdAt,\n hasReviewables: data.hasReviewables,\n thumbnailId: data.thumbnailId,\n }\n\n switch (entityType) {\n case 'task':\n return {\n ...sharedData,\n task: {\n assignees: data.assignees,\n label: data.label,\n name: data.name,\n taskType: data.taskType,\n },\n }\n case 'folder':\n return {\n ...sharedData,\n folder: {\n id: data.id,\n name: data.name,\n label: data.label,\n folderType: data.folderType,\n },\n }\n case 'version':\n return {\n ...sharedData,\n version: {\n id: data.id,\n name: data.name,\n },\n }\n case 'representation':\n return {\n ...sharedData,\n }\n }\n}\n\nexport const patchDetailsPanelEntity = (\n operations: PatchOperation[] = [],\n draft: DetailsPanelEntityData,\n) => {\n // find the entity we are updating from the draft\n const operation = operations.find((op) => op.entityId === draft.id)\n const operationData = operation?.data\n\n if (!operationData || operation.entityType === 'product' || operation.entityType === 'workfile')\n return console.warn('No operation data found or entity type not supported')\n\n // transform the data to match the details panel entity data\n const detailsPanelData = operationDataToDetailsData(operationData, operation.entityType)\n\n // helper to deep‐clean undefined values\n function cleanUndefined(obj: any): void {\n Object.entries(obj).forEach(([key, val]) => {\n if (val === undefined) {\n delete obj[key]\n } else if (val !== null && typeof val === 'object') {\n cleanUndefined(val)\n }\n })\n }\n\n // remove all undefineds at root and nested levels\n cleanUndefined(detailsPanelData as Record<string, any>)\n\n const newData: DeepPartial<DetailsPanelEntityData> = {\n ...draft,\n ...detailsPanelData,\n attrib: {\n ...(draft?.attrib || {}),\n ...detailsPanelData.attrib,\n },\n folder: {\n ...(draft?.folder || {}),\n ...detailsPanelData.folder,\n },\n task: {\n ...(draft?.task || {}),\n ...detailsPanelData.task,\n },\n version: {\n ...(draft?.version || {}),\n ...detailsPanelData.version,\n },\n }\n\n // patch data onto the entity\n Object.assign(draft, newData)\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [] },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks\n patchOverviewTasks(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for tasks being created and deleted\n invalidateOverviewTasks([...deleteOps], {\n dispatch,\n })\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders\n patchOverviewFolders(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for folders being created and deleted\n if (deleteOps.length) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\nexport { operationsApiEnhancedInjected as overviewQueries }\n"],"names":["getOverviewApi","task","foldersQueries","operations","entityListsQueriesGql","item","operationsApi","detailsPanelQueries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import {\n foldersQueries,\n detailsPanelQueries,\n operationsApi,\n entityListsQueriesGql,\n} from '@shared/api'\nimport type { OperationsResponseModel, OperationModel, OperationsApiArg } from '@shared/api'\nimport getOverviewApi from './getOverview'\nimport { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api/queries/entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n const newData = {\n ...entity,\n ...operationData,\n attrib: {\n ...entity.attrib,\n ...(operationData?.attrib || {}),\n },\n }\n\n // patch data onto the entity\n Object.assign(entity, newData)\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksByParent' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds.includes(taskOperation.data.folderId)\n ) {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n } else {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\nconst invalidateOverviewTasks = (\n tasks: PatchOperation[],\n {\n dispatch,\n }: {\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n) => {\n if (!tasks.length) return\n dispatch(getOverviewApi.util.invalidateTags(getOverviewTaskTags(tasks)))\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nconst operationDataToDetailsData = (\n data: Record<string, any>,\n entityType: DetailsPanelEntityType,\n): DeepPartial<DetailsPanelEntityData> => {\n const sharedData: DeepPartial<DetailsPanelEntityData> = {\n name: data.name,\n attrib: data.attrib,\n status: data.status,\n tags: data.tags,\n label: data.label,\n updatedAt: data.updatedAt,\n createdAt: data.createdAt,\n hasReviewables: data.hasReviewables,\n thumbnailId: data.thumbnailId,\n }\n\n switch (entityType) {\n case 'task':\n return {\n ...sharedData,\n task: {\n assignees: data.assignees,\n label: data.label,\n name: data.name,\n taskType: data.taskType,\n },\n }\n case 'folder':\n return {\n ...sharedData,\n folder: {\n id: data.id,\n name: data.name,\n label: data.label,\n folderType: data.folderType,\n },\n }\n case 'version':\n return {\n ...sharedData,\n version: {\n id: data.id,\n name: data.name,\n },\n }\n case 'representation':\n return {\n ...sharedData,\n }\n }\n}\n\nexport const patchDetailsPanelEntity = (\n operations: PatchOperation[] = [],\n draft: DetailsPanelEntityData,\n) => {\n // find the entity we are updating from the draft\n const operation = operations.find((op) => op.entityId === draft.id)\n const operationData = operation?.data\n\n if (!operationData || operation.entityType === 'product' || operation.entityType === 'workfile')\n return console.warn('No operation data found or entity type not supported')\n\n // transform the data to match the details panel entity data\n const detailsPanelData = operationDataToDetailsData(operationData, operation.entityType)\n\n // helper to deep‐clean undefined values\n function cleanUndefined(obj: any): void {\n Object.entries(obj).forEach(([key, val]) => {\n if (val === undefined) {\n delete obj[key]\n } else if (val !== null && typeof val === 'object') {\n cleanUndefined(val)\n }\n })\n }\n\n // remove all undefineds at root and nested levels\n cleanUndefined(detailsPanelData as Record<string, any>)\n\n const newData: DeepPartial<DetailsPanelEntityData> = {\n ...draft,\n ...detailsPanelData,\n attrib: {\n ...(draft?.attrib || {}),\n ...detailsPanelData.attrib,\n },\n folder: {\n ...(draft?.folder || {}),\n ...detailsPanelData.folder,\n },\n task: {\n ...(draft?.task || {}),\n ...detailsPanelData.task,\n },\n version: {\n ...(draft?.version || {}),\n ...detailsPanelData.version,\n },\n }\n\n // patch data onto the entity\n Object.assign(draft, newData)\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [] },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks\n patchOverviewTasks(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for tasks being created and deleted\n invalidateOverviewTasks([...deleteOps], {\n dispatch,\n })\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders\n patchOverviewFolders(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for folders being created and deleted\n if (deleteOps.length) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {\n type Tags = { id: string; type: string }[]\n const userDashboardTags: Tags = [{ type: 'kanban', id: 'project-' + projectName }],\n taskProgressTags: Tags = []\n\n operationsRequestModel.operations?.forEach((op) => {\n const { entityId } = op\n if (entityId) {\n taskProgressTags.push({ type: 'progress', id: entityId })\n } else {\n // new entity created, so we should invalidate everything\n taskProgressTags.push({ type: 'progress', id: 'LIST' })\n }\n })\n\n return [...userDashboardTags, ...taskProgressTags]\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\nexport { operationsApiEnhancedInjected as overviewQueries }\n"],"names":["getOverviewApi","task","foldersQueries","operations","entityListsQueriesGql","item","operationsApi","detailsPanelQueries"],"mappings":"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"}
|
|
@@ -64,6 +64,8 @@ import "../users/updateUsers.es.js";
|
|
|
64
64
|
import "../watchers/getWatchers.es.js";
|
|
65
65
|
import "../permissions/getPermissions.es.js";
|
|
66
66
|
import "../grouping/getGrouping.es.js";
|
|
67
|
+
import "../versions/updateVersions.es.js";
|
|
68
|
+
import "../products/createProduct.es.js";
|
|
67
69
|
const updateEntityWithOperation = (entity, operationData) => {
|
|
68
70
|
const newData = {
|
|
69
71
|
...entity,
|
|
@@ -468,6 +470,19 @@ const operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({
|
|
|
468
470
|
invalidateEntryPanel();
|
|
469
471
|
}
|
|
470
472
|
}
|
|
473
|
+
},
|
|
474
|
+
invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {
|
|
475
|
+
var _a;
|
|
476
|
+
const userDashboardTags = [{ type: "kanban", id: "project-" + projectName }], taskProgressTags = [];
|
|
477
|
+
(_a = operationsRequestModel.operations) == null ? void 0 : _a.forEach((op) => {
|
|
478
|
+
const { entityId } = op;
|
|
479
|
+
if (entityId) {
|
|
480
|
+
taskProgressTags.push({ type: "progress", id: entityId });
|
|
481
|
+
} else {
|
|
482
|
+
taskProgressTags.push({ type: "progress", id: "LIST" });
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
return [...userDashboardTags, ...taskProgressTags];
|
|
471
486
|
}
|
|
472
487
|
})
|
|
473
488
|
})
|