@webiny/app-headless-cms-workflows 0.0.0-unstable.0156a4c312
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/Components/CmsEntriesList/CmsReviewMoveEntryAction.d.ts +2 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js +43 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.d.ts +1 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js +118 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.d.ts +2 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js +22 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.d.ts +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js +98 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.js +32 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.js +128 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js +46 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js +222 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.js +32 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js +94 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js +56 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js +186 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js +26 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js +78 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js.map +1 -0
- package/Components/ContentEntryForm/getModelFieldLabels.d.ts +3 -0
- package/Components/ContentEntryForm/getModelFieldLabels.js +8 -0
- package/Components/ContentEntryForm/getModelFieldLabels.js.map +1 -0
- package/Components/ContentEntryForm/index.d.ts +5 -0
- package/Components/ContentEntryForm/index.js +5 -0
- package/Components/ContentReviews/CmsContentReviews.d.ts +2 -0
- package/Components/ContentReviews/CmsContentReviews.js +11 -0
- package/Components/ContentReviews/CmsContentReviews.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviews.test.d.ts +1 -0
- package/Components/ContentReviews/CmsContentReviews.test.js +214 -0
- package/Components/ContentReviews/CmsContentReviews.test.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsMount.d.ts +4 -0
- package/Components/ContentReviews/CmsContentReviewsMount.js +44 -0
- package/Components/ContentReviews/CmsContentReviewsMount.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.d.ts +2 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.js +20 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.d.ts +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js +83 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js.map +1 -0
- package/Components/ModelDelete/ModelBoundToWorkflowErrorData.d.ts +8 -0
- package/Components/ModelDelete/ModelBoundToWorkflowErrorData.js +0 -0
- package/Components/ModelDelete/ModelDeleteWorkflowCopy.d.ts +10 -0
- package/Components/ModelDelete/ModelDeleteWorkflowCopy.js +0 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.d.ts +2 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.js +34 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.js.map +1 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.d.ts +1 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.js +73 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.js.map +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.d.ts +3 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.js +17 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.js.map +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.d.ts +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js +28 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js.map +1 -0
- package/Components/ignoreAction.d.ts +1 -0
- package/Components/ignoreAction.js +4 -0
- package/Components/ignoreAction.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/Routes/CmsWorkflowEditor.d.ts +2 -0
- package/Routes/CmsWorkflowEditor.js +23 -0
- package/Routes/CmsWorkflowEditor.js.map +1 -0
- package/Routes/CmsWorkflowEditor.test.d.ts +1 -0
- package/Routes/CmsWorkflowEditor.test.js +141 -0
- package/Routes/CmsWorkflowEditor.test.js.map +1 -0
- package/Routes/index.d.ts +1 -0
- package/Routes/index.js +1 -0
- package/features/cache/CmsReviewCacheSyncHandler.d.ts +8 -0
- package/features/cache/CmsReviewCacheSyncHandler.js +14 -0
- package/features/cache/CmsReviewCacheSyncHandler.js.map +1 -0
- package/features/cache/CmsReviewCacheWriter.d.ts +14 -0
- package/features/cache/CmsReviewCacheWriter.js +39 -0
- package/features/cache/CmsReviewCacheWriter.js.map +1 -0
- package/features/cache/CmsReviewCacheWriter.test.d.ts +1 -0
- package/features/cache/CmsReviewCacheWriter.test.js +207 -0
- package/features/cache/CmsReviewCacheWriter.test.js.map +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.d.ts +12 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.js +17 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.js.map +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.d.ts +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js +129 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js.map +1 -0
- package/features/cache/ReviewPreservingEntriesCache.d.ts +18 -0
- package/features/cache/ReviewPreservingEntriesCache.js +54 -0
- package/features/cache/ReviewPreservingEntriesCache.js.map +1 -0
- package/features/cache/abstractions.d.ts +5 -0
- package/features/cache/abstractions.js +5 -0
- package/features/cache/abstractions.js.map +1 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.d.ts +26 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js +104 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js.map +1 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.d.ts +1 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js +589 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js.map +1 -0
- package/features/editorGateway/feature.d.ts +1 -0
- package/features/editorGateway/feature.js +11 -0
- package/features/editorGateway/feature.js.map +1 -0
- package/features/editorGateway/feature.test.d.ts +1 -0
- package/features/editorGateway/feature.test.js +272 -0
- package/features/editorGateway/feature.test.js.map +1 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.d.ts +1 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.js +16 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.js.map +1 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.d.ts +1 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.js +19 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.js.map +1 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.d.ts +1 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js +29 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js.map +1 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.js.map +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.d.ts +25 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.js +51 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.js.map +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.d.ts +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js +185 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js.map +1 -0
- package/features/editorMounting/abstractions.d.ts +5 -0
- package/features/editorMounting/abstractions.js +5 -0
- package/features/editorMounting/abstractions.js.map +1 -0
- package/features/editorMounting/feature.d.ts +3 -0
- package/features/editorMounting/feature.js +19 -0
- package/features/editorMounting/feature.js.map +1 -0
- package/features/editorMounting/feature.test.d.ts +1 -0
- package/features/editorMounting/feature.test.js +100 -0
- package/features/editorMounting/feature.test.js.map +1 -0
- package/features/editorReview/CmsEntryReview.d.ts +8 -0
- package/features/editorReview/CmsEntryReview.js +14 -0
- package/features/editorReview/CmsEntryReview.js.map +1 -0
- package/features/editorReview/abstractions.d.ts +5 -0
- package/features/editorReview/abstractions.js +5 -0
- package/features/editorReview/abstractions.js.map +1 -0
- package/features/editorReview/feature.d.ts +3 -0
- package/features/editorReview/feature.js +17 -0
- package/features/editorReview/feature.js.map +1 -0
- package/features/editorReview/feature.test.d.ts +1 -0
- package/features/editorReview/feature.test.js +46 -0
- package/features/editorReview/feature.test.js.map +1 -0
- package/features/editorReview/useCmsEntryReview.d.ts +2 -0
- package/features/editorReview/useCmsEntryReview.js +8 -0
- package/features/editorReview/useCmsEntryReview.js.map +1 -0
- package/features/feature.d.ts +1 -0
- package/features/feature.js +15 -0
- package/features/feature.js.map +1 -0
- package/features/gateway/CmsReviewChangeMessageHandler.d.ts +8 -0
- package/features/gateway/CmsReviewChangeMessageHandler.js +16 -0
- package/features/gateway/CmsReviewChangeMessageHandler.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.d.ts +16 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js +39 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.d.ts +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js +83 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.d.ts +5 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.js +5 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.js.map +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.d.ts +52 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.js +221 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.js.map +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.d.ts +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js +689 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js.map +1 -0
- package/features/gateway/CmsReviewNotificationHandler.d.ts +8 -0
- package/features/gateway/CmsReviewNotificationHandler.js +16 -0
- package/features/gateway/CmsReviewNotificationHandler.js.map +1 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.d.ts +8 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js +14 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js.map +1 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.d.ts +5 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.js +5 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.js.map +1 -0
- package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
- package/features/gateway/contentReviewsBindings.test.js +125 -0
- package/features/gateway/contentReviewsBindings.test.js.map +1 -0
- package/features/gateway/feature.d.ts +4 -0
- package/features/gateway/feature.js +27 -0
- package/features/gateway/feature.js.map +1 -0
- package/features/gateway/feature.test.d.ts +1 -0
- package/features/gateway/feature.test.js +79 -0
- package/features/gateway/feature.test.js.map +1 -0
- package/features/gateway/graphql/CmsOperationResponse.d.ts +3 -0
- package/features/gateway/graphql/CmsOperationResponse.js +0 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/cancelCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/cancelCmsEntryReview.js +18 -0
- package/features/gateway/graphql/cancelCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.d.ts +1 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js +28 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryReview.js +18 -0
- package/features/gateway/graphql/getCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.js +18 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.js +18 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.js +18 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js +18 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryReviews.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryReviews.js +34 -0
- package/features/gateway/graphql/listCmsEntryReviews.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.js +28 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.js +18 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.js.map +1 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/requestCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/requestCmsEntryReview.js +28 -0
- package/features/gateway/graphql/requestCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.js +22 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +20 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js +81 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js +693 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js +123 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js +139 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js +23 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js +122 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/feature.d.ts +1 -0
- package/features/trash/feature.js +17 -0
- package/features/trash/feature.js.map +1 -0
- package/features/trash/feature.test.d.ts +1 -0
- package/features/trash/feature.test.js +213 -0
- package/features/trash/feature.test.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.editor.test.d.ts +1 -0
- package/index.editor.test.js +149 -0
- package/index.editor.test.js.map +1 -0
- package/index.js +41 -0
- package/index.js.map +1 -0
- package/index.lists.test.d.ts +1 -0
- package/index.lists.test.js +172 -0
- package/index.lists.test.js.map +1 -0
- package/index.mount.test.d.ts +1 -0
- package/index.mount.test.js +49 -0
- package/index.mount.test.js.map +1 -0
- package/index.test.d.ts +1 -0
- package/index.test.js +414 -0
- package/index.test.js.map +1 -0
- package/package.json +54 -0
- package/presentation/CmsEntryContentReloader.d.ts +8 -0
- package/presentation/CmsEntryContentReloader.js +20 -0
- package/presentation/CmsEntryContentReloader.js.map +1 -0
- package/presentation/CmsEntryContentReloader.test.d.ts +1 -0
- package/presentation/CmsEntryContentReloader.test.js +118 -0
- package/presentation/CmsEntryContentReloader.test.js.map +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.d.ts +27 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.js +167 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.js.map +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.d.ts +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.js +601 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.js.map +1 -0
- package/presentation/CmsEntryUnsavedChanges.d.ts +7 -0
- package/presentation/CmsEntryUnsavedChanges.js +12 -0
- package/presentation/CmsEntryUnsavedChanges.js.map +1 -0
- package/presentation/CmsEntryUnsavedChanges.test.d.ts +1 -0
- package/presentation/CmsEntryUnsavedChanges.test.js +23 -0
- package/presentation/CmsEntryUnsavedChanges.test.js.map +1 -0
- package/presentation/CmsReviewFieldSelections.test.d.ts +1 -0
- package/presentation/CmsReviewFieldSelections.test.js +27 -0
- package/presentation/CmsReviewFieldSelections.test.js.map +1 -0
- package/presentation/CmsReviewGetEntryFieldSelection.d.ts +8 -0
- package/presentation/CmsReviewGetEntryFieldSelection.js +16 -0
- package/presentation/CmsReviewGetEntryFieldSelection.js.map +1 -0
- package/presentation/CmsReviewListEntriesFieldSelection.d.ts +8 -0
- package/presentation/CmsReviewListEntriesFieldSelection.js +16 -0
- package/presentation/CmsReviewListEntriesFieldSelection.js.map +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.d.ts +11 -0
- package/presentation/CmsReviewTableRowMapperDecorator.js +24 -0
- package/presentation/CmsReviewTableRowMapperDecorator.js.map +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.d.ts +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.js +120 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.js.map +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.d.ts +24 -0
- package/presentation/CmsRevisionsListPresenterDecorator.js +66 -0
- package/presentation/CmsRevisionsListPresenterDecorator.js.map +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.d.ts +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.js +174 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.js.map +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.d.ts +28 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.js +103 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.js.map +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.d.ts +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.js +238 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.js.map +1 -0
- package/presentation/contentReviews/abstractions.d.ts +31 -0
- package/presentation/contentReviews/abstractions.js +5 -0
- package/presentation/contentReviews/abstractions.js.map +1 -0
- package/presentation/contentReviews/feature.d.ts +3 -0
- package/presentation/contentReviews/feature.js +17 -0
- package/presentation/contentReviews/feature.js.map +1 -0
- package/presentation/contentReviews/toContentTypes.d.ts +3 -0
- package/presentation/contentReviews/toContentTypes.js +14 -0
- package/presentation/contentReviews/toContentTypes.js.map +1 -0
- package/presentation/contentReviews/toContentTypes.test.d.ts +1 -0
- package/presentation/contentReviews/toContentTypes.test.js +20 -0
- package/presentation/contentReviews/toContentTypes.test.js.map +1 -0
- package/presentation/feature.d.ts +1 -0
- package/presentation/feature.js +19 -0
- package/presentation/feature.js.map +1 -0
- package/presentation/getCmsEntryReviewContext.d.ts +4 -0
- package/presentation/getCmsEntryReviewContext.js +12 -0
- package/presentation/getCmsEntryReviewContext.js.map +1 -0
- package/presentation/getCmsEntryReviewInitParams.d.ts +13 -0
- package/presentation/getCmsEntryReviewInitParams.js +18 -0
- package/presentation/getCmsEntryReviewInitParams.js.map +1 -0
- package/presentation/getCmsEntryReviewInitParams.test.d.ts +1 -0
- package/presentation/getCmsEntryReviewInitParams.test.js +69 -0
- package/presentation/getCmsEntryReviewInitParams.test.js.map +1 -0
- package/routes.d.ts +11 -0
- package/routes.js +21 -0
- package/routes.js.map +1 -0
- package/testing/createEntry.d.ts +3 -0
- package/testing/createEntry.js +22 -0
- package/testing/createEntry.js.map +1 -0
- package/testing/createEntrySession.d.ts +9 -0
- package/testing/createEntrySession.js +29 -0
- package/testing/createEntrySession.js.map +1 -0
- package/testing/createFolder.d.ts +2 -0
- package/testing/createFolder.js +13 -0
- package/testing/createFolder.js.map +1 -0
- package/testing/createFormVm.d.ts +2 -0
- package/testing/createFormVm.js +22 -0
- package/testing/createFormVm.js.map +1 -0
- package/testing/models.d.ts +4 -0
- package/testing/models.js +23 -0
- package/testing/models.js.map +1 -0
- package/testing/renderEditorTree.d.ts +17 -0
- package/testing/renderEditorTree.js +93 -0
- package/testing/renderEditorTree.js.map +1 -0
- package/testing/reviewStates.d.ts +17 -0
- package/testing/reviewStates.js +65 -0
- package/testing/reviewStates.js.map +1 -0
- package/types.d.ts +10 -0
- package/types.js +0 -0
- package/utils/appName.d.ts +4 -0
- package/utils/appName.js +13 -0
- package/utils/appName.js.map +1 -0
- package/utils/isReviewableModel.d.ts +2 -0
- package/utils/isReviewableModel.js +7 -0
- package/utils/isReviewableModel.js.map +1 -0
- package/utils/renderModelIcon.d.ts +3 -0
- package/utils/renderModelIcon.js +19 -0
- package/utils/renderModelIcon.js.map +1 -0
- package/utils/renderModelIconOrFallback.d.ts +3 -0
- package/utils/renderModelIconOrFallback.js +17 -0
- package/utils/renderModelIconOrFallback.js.map +1 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createEntry } from "../testing/createEntry.js";
|
|
3
|
+
import { createFormVm } from "../testing/createFormVm.js";
|
|
4
|
+
import { CmsEntryContentReloader } from "./CmsEntryContentReloader.js";
|
|
5
|
+
const SAVED_LATER = "2026-10-17T11:00:00.000Z";
|
|
6
|
+
const MODIFIED_LATER = "2026-10-17T11:05:00.000Z";
|
|
7
|
+
describe("CmsEntryContentReloader", ()=>{
|
|
8
|
+
let state;
|
|
9
|
+
let loadRevision;
|
|
10
|
+
let reloader;
|
|
11
|
+
beforeEach(()=>{
|
|
12
|
+
state = {
|
|
13
|
+
vm: createFormVm({
|
|
14
|
+
entry: createEntry(),
|
|
15
|
+
isDirty: false
|
|
16
|
+
})
|
|
17
|
+
};
|
|
18
|
+
loadRevision = vi.fn(async (_id)=>void 0);
|
|
19
|
+
const form = {
|
|
20
|
+
get vm () {
|
|
21
|
+
return state.vm;
|
|
22
|
+
},
|
|
23
|
+
loadRevision
|
|
24
|
+
};
|
|
25
|
+
reloader = new CmsEntryContentReloader(form, "entry-1#0001");
|
|
26
|
+
});
|
|
27
|
+
it("reads the revision again and returns true when revisionSavedOn changed", async ()=>{
|
|
28
|
+
loadRevision.mockImplementation(async ()=>{
|
|
29
|
+
state.vm = createFormVm({
|
|
30
|
+
entry: createEntry({}, {
|
|
31
|
+
revisionSavedOn: SAVED_LATER
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
const changed = await reloader.reload();
|
|
36
|
+
expect(changed).toBe(true);
|
|
37
|
+
expect(loadRevision).toHaveBeenCalledTimes(1);
|
|
38
|
+
expect(loadRevision).toHaveBeenCalledWith("entry-1#0001");
|
|
39
|
+
});
|
|
40
|
+
it("returns true when only revisionModifiedOn changed", async ()=>{
|
|
41
|
+
loadRevision.mockImplementation(async ()=>{
|
|
42
|
+
state.vm = createFormVm({
|
|
43
|
+
entry: createEntry({}, {
|
|
44
|
+
revisionModifiedOn: MODIFIED_LATER
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
const changed = await reloader.reload();
|
|
49
|
+
expect(changed).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
it("returns false when both timestamps are the same after the read", async ()=>{
|
|
52
|
+
loadRevision.mockImplementation(async ()=>{
|
|
53
|
+
state.vm = createFormVm({
|
|
54
|
+
entry: createEntry()
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
const changed = await reloader.reload();
|
|
58
|
+
expect(changed).toBe(false);
|
|
59
|
+
expect(loadRevision).toHaveBeenCalledTimes(1);
|
|
60
|
+
});
|
|
61
|
+
it("does not read while the form is dirty", async ()=>{
|
|
62
|
+
state.vm = createFormVm({
|
|
63
|
+
entry: createEntry(),
|
|
64
|
+
isDirty: true
|
|
65
|
+
});
|
|
66
|
+
const changed = await reloader.reload();
|
|
67
|
+
expect(changed).toBe(false);
|
|
68
|
+
expect(loadRevision).not.toHaveBeenCalled();
|
|
69
|
+
});
|
|
70
|
+
it("does not read when no entry is loaded", async ()=>{
|
|
71
|
+
state.vm = createFormVm({
|
|
72
|
+
entry: null
|
|
73
|
+
});
|
|
74
|
+
const changed = await reloader.reload();
|
|
75
|
+
expect(changed).toBe(false);
|
|
76
|
+
expect(loadRevision).not.toHaveBeenCalled();
|
|
77
|
+
});
|
|
78
|
+
it("does not read when the editor moved to another revision", async ()=>{
|
|
79
|
+
state.vm = createFormVm({
|
|
80
|
+
entry: createEntry({}, {
|
|
81
|
+
id: "entry-1#0002"
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
const changed = await reloader.reload();
|
|
85
|
+
expect(changed).toBe(false);
|
|
86
|
+
expect(loadRevision).not.toHaveBeenCalled();
|
|
87
|
+
});
|
|
88
|
+
it("returns false when the read left no entry", async ()=>{
|
|
89
|
+
loadRevision.mockImplementation(async ()=>{
|
|
90
|
+
state.vm = createFormVm({
|
|
91
|
+
entry: null
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
const changed = await reloader.reload();
|
|
95
|
+
expect(changed).toBe(false);
|
|
96
|
+
});
|
|
97
|
+
it("returns false when the read left another revision loaded", async ()=>{
|
|
98
|
+
loadRevision.mockImplementation(async ()=>{
|
|
99
|
+
state.vm = createFormVm({
|
|
100
|
+
entry: createEntry({}, {
|
|
101
|
+
id: "entry-1#0002",
|
|
102
|
+
revisionSavedOn: SAVED_LATER
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
const changed = await reloader.reload();
|
|
107
|
+
expect(changed).toBe(false);
|
|
108
|
+
expect(loadRevision).toHaveBeenCalledTimes(1);
|
|
109
|
+
});
|
|
110
|
+
it("lets a failed read reject so the presenter can ignore it", async ()=>{
|
|
111
|
+
const failure = new Error("Network down");
|
|
112
|
+
loadRevision.mockRejectedValue(failure);
|
|
113
|
+
const error = await reloader.reload().catch((e)=>e);
|
|
114
|
+
expect(error).toBe(failure);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=CmsEntryContentReloader.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/CmsEntryContentReloader.test.js","sources":["../../src/presentation/CmsEntryContentReloader.test.ts"],"sourcesContent":["import { beforeEach } from \"vitest\";\nimport type { Mock } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport type { ContentEntryFormPresenter } from \"@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js\";\nimport { createEntry } from \"~/testing/createEntry.js\";\nimport { createFormVm } from \"~/testing/createFormVm.js\";\nimport { CmsEntryContentReloader } from \"./CmsEntryContentReloader.js\";\n\nconst SAVED_LATER = \"2026-10-17T11:00:00.000Z\";\nconst MODIFIED_LATER = \"2026-10-17T11:05:00.000Z\";\n\ninterface FormState {\n vm: ContentEntryFormPresenter.ViewModel;\n}\n\ndescribe(\"CmsEntryContentReloader\", () => {\n let state: FormState;\n let loadRevision: Mock;\n let reloader: CmsEntryContentReloader;\n\n beforeEach(() => {\n state = { vm: createFormVm({ entry: createEntry(), isDirty: false }) };\n loadRevision = vi.fn(async (_id: string) => undefined);\n const form = {\n get vm() {\n return state.vm;\n },\n loadRevision\n } as unknown as ContentEntryFormPresenter.Interface;\n reloader = new CmsEntryContentReloader(form, \"entry-1#0001\");\n });\n\n it(\"reads the revision again and returns true when revisionSavedOn changed\", async () => {\n loadRevision.mockImplementation(async () => {\n state.vm = createFormVm({\n entry: createEntry({}, { revisionSavedOn: SAVED_LATER })\n });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(true);\n expect(loadRevision).toHaveBeenCalledTimes(1);\n expect(loadRevision).toHaveBeenCalledWith(\"entry-1#0001\");\n });\n\n it(\"returns true when only revisionModifiedOn changed\", async () => {\n loadRevision.mockImplementation(async () => {\n state.vm = createFormVm({\n entry: createEntry({}, { revisionModifiedOn: MODIFIED_LATER })\n });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(true);\n });\n\n it(\"returns false when both timestamps are the same after the read\", async () => {\n loadRevision.mockImplementation(async () => {\n state.vm = createFormVm({ entry: createEntry() });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(loadRevision).toHaveBeenCalledTimes(1);\n });\n\n it(\"does not read while the form is dirty\", async () => {\n state.vm = createFormVm({ entry: createEntry(), isDirty: true });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(loadRevision).not.toHaveBeenCalled();\n });\n\n it(\"does not read when no entry is loaded\", async () => {\n state.vm = createFormVm({ entry: null });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(loadRevision).not.toHaveBeenCalled();\n });\n\n it(\"does not read when the editor moved to another revision\", async () => {\n state.vm = createFormVm({ entry: createEntry({}, { id: \"entry-1#0002\" }) });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(loadRevision).not.toHaveBeenCalled();\n });\n\n it(\"returns false when the read left no entry\", async () => {\n loadRevision.mockImplementation(async () => {\n state.vm = createFormVm({ entry: null });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n });\n\n it(\"returns false when the read left another revision loaded\", async () => {\n loadRevision.mockImplementation(async () => {\n state.vm = createFormVm({\n entry: createEntry({}, { id: \"entry-1#0002\", revisionSavedOn: SAVED_LATER })\n });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(loadRevision).toHaveBeenCalledTimes(1);\n });\n\n it(\"lets a failed read reject so the presenter can ignore it\", async () => {\n const failure = new Error(\"Network down\");\n loadRevision.mockRejectedValue(failure);\n\n const error = await reloader.reload().catch(e => e);\n\n expect(error).toBe(failure);\n });\n});\n"],"names":["SAVED_LATER","MODIFIED_LATER","describe","state","loadRevision","reloader","beforeEach","createFormVm","createEntry","vi","_id","undefined","form","CmsEntryContentReloader","it","changed","expect","failure","Error","error","e"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ContentEntryFormPresenter } from "@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js";
|
|
2
|
+
import { CmsEntryReview } from "../features/editorReview/abstractions.js";
|
|
3
|
+
interface SaveRevisionOptions {
|
|
4
|
+
skipValidation?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare class CmsEntryFormPresenterWithReview implements ContentEntryFormPresenter.Interface {
|
|
7
|
+
private readonly session;
|
|
8
|
+
private readonly original;
|
|
9
|
+
private phase;
|
|
10
|
+
private revisionId;
|
|
11
|
+
constructor(session: CmsEntryReview.Interface, original: ContentEntryFormPresenter.Interface);
|
|
12
|
+
get vm(): ContentEntryFormPresenter.ViewModel;
|
|
13
|
+
loadRevision(id: string): Promise<void>;
|
|
14
|
+
saveRevision(options?: SaveRevisionOptions): Promise<boolean>;
|
|
15
|
+
publishRevision(): Promise<boolean>;
|
|
16
|
+
unpublishRevision(): Promise<boolean>;
|
|
17
|
+
deleteEntry(): Promise<boolean>;
|
|
18
|
+
setFolderId(folderId: string | null): void;
|
|
19
|
+
newEntry(initialValues?: Record<string, unknown>): void;
|
|
20
|
+
patchEntryMeta(meta: Parameters<ContentEntryFormPresenter.Interface["patchEntryMeta"]>[0]): void;
|
|
21
|
+
reset(): void;
|
|
22
|
+
private setPhase;
|
|
23
|
+
}
|
|
24
|
+
export declare const CmsEntryFormPresenterReviewDecorator: typeof CmsEntryFormPresenterWithReview & {
|
|
25
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js").IContentEntryFormPresenter>;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { computed, makeAutoObservable } from "mobx";
|
|
2
|
+
import { ContentEntryFormPresenter } from "@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js";
|
|
3
|
+
import { CmsEntryReview } from "../features/editorReview/abstractions.js";
|
|
4
|
+
import { getCmsEntryReviewContext } from "./getCmsEntryReviewContext.js";
|
|
5
|
+
import { CmsEntryContentReloader } from "./CmsEntryContentReloader.js";
|
|
6
|
+
import { CmsEntryUnsavedChanges } from "./CmsEntryUnsavedChanges.js";
|
|
7
|
+
import { getCmsEntryReviewInitParams } from "./getCmsEntryReviewInitParams.js";
|
|
8
|
+
import { isReviewableModel } from "../utils/isReviewableModel.js";
|
|
9
|
+
class CmsEntryFormPresenterWithReview {
|
|
10
|
+
constructor(session, original){
|
|
11
|
+
this.session = session;
|
|
12
|
+
this.original = original;
|
|
13
|
+
this.phase = "idle";
|
|
14
|
+
this.revisionId = null;
|
|
15
|
+
makeAutoObservable(this, {
|
|
16
|
+
session: false,
|
|
17
|
+
original: false,
|
|
18
|
+
vm: computed
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
get vm() {
|
|
22
|
+
const base = this.original.vm;
|
|
23
|
+
if ("idle" === this.phase) return base;
|
|
24
|
+
if ("loading" === this.phase) return {
|
|
25
|
+
...base,
|
|
26
|
+
canSave: false,
|
|
27
|
+
canCreateNewRevision: false,
|
|
28
|
+
canPublish: false
|
|
29
|
+
};
|
|
30
|
+
const review = this.session.presenter.vm;
|
|
31
|
+
return {
|
|
32
|
+
...base,
|
|
33
|
+
canSave: base.canSave && review.allowsEditing,
|
|
34
|
+
canCreateNewRevision: base.canCreateNewRevision && review.allowsEditing,
|
|
35
|
+
canPublish: base.canPublish && review.allowsPublishing
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async loadRevision(id) {
|
|
39
|
+
const model = this.original.vm.model;
|
|
40
|
+
if (!isReviewableModel(model)) {
|
|
41
|
+
this.setPhase("idle", null);
|
|
42
|
+
await this.original.loadRevision(id);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.setPhase("loading", id);
|
|
46
|
+
try {
|
|
47
|
+
await this.original.loadRevision(id);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
this.setPhase("idle", null);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
if ("loading" !== this.phase || this.revisionId !== id) return;
|
|
53
|
+
const entry = this.original.vm.entry;
|
|
54
|
+
if (!entry) return void this.setPhase("idle", null);
|
|
55
|
+
this.setPhase("tracking", entry.id);
|
|
56
|
+
const contentReloader = new CmsEntryContentReloader(this.original, entry.id);
|
|
57
|
+
const unsavedChanges = new CmsEntryUnsavedChanges(this.original);
|
|
58
|
+
const params = getCmsEntryReviewInitParams({
|
|
59
|
+
model,
|
|
60
|
+
entry,
|
|
61
|
+
canRequest: this.original.vm.canSave,
|
|
62
|
+
contentReloader,
|
|
63
|
+
unsavedChanges
|
|
64
|
+
});
|
|
65
|
+
await this.session.presenter.init(params);
|
|
66
|
+
}
|
|
67
|
+
async saveRevision(options) {
|
|
68
|
+
if ("idle" === this.phase) {
|
|
69
|
+
const saved = await this.original.saveRevision(options);
|
|
70
|
+
const entry = this.original.vm.entry;
|
|
71
|
+
const model = this.original.vm.model;
|
|
72
|
+
if (!saved || !entry || !isReviewableModel(model)) return saved;
|
|
73
|
+
this.setPhase("tracking", entry.id);
|
|
74
|
+
const contentReloader = new CmsEntryContentReloader(this.original, entry.id);
|
|
75
|
+
const unsavedChanges = new CmsEntryUnsavedChanges(this.original);
|
|
76
|
+
const params = getCmsEntryReviewInitParams({
|
|
77
|
+
model,
|
|
78
|
+
entry,
|
|
79
|
+
canRequest: this.original.vm.canSave,
|
|
80
|
+
contentReloader,
|
|
81
|
+
unsavedChanges
|
|
82
|
+
});
|
|
83
|
+
await this.session.presenter.init(params);
|
|
84
|
+
return saved;
|
|
85
|
+
}
|
|
86
|
+
if ("loading" === this.phase) return false;
|
|
87
|
+
const review = this.session.presenter.vm;
|
|
88
|
+
if (!review.allowsEditing) {
|
|
89
|
+
const entry = this.original.vm.entry;
|
|
90
|
+
const isCleanDraft = null !== entry && !entry.meta.locked && !this.original.vm.isDirty;
|
|
91
|
+
return review.allowsPublishing && isCleanDraft;
|
|
92
|
+
}
|
|
93
|
+
const saved = await this.original.saveRevision(options);
|
|
94
|
+
const entry = this.original.vm.entry;
|
|
95
|
+
if (!saved || !entry) return saved;
|
|
96
|
+
const model = this.original.vm.model;
|
|
97
|
+
const canRequest = this.original.vm.canSave;
|
|
98
|
+
if (entry.id === this.revisionId) {
|
|
99
|
+
const context = getCmsEntryReviewContext(model, entry, canRequest);
|
|
100
|
+
this.session.presenter.setContext(context);
|
|
101
|
+
return saved;
|
|
102
|
+
}
|
|
103
|
+
this.setPhase("tracking", entry.id);
|
|
104
|
+
const contentReloader = new CmsEntryContentReloader(this.original, entry.id);
|
|
105
|
+
const unsavedChanges = new CmsEntryUnsavedChanges(this.original);
|
|
106
|
+
const params = getCmsEntryReviewInitParams({
|
|
107
|
+
model,
|
|
108
|
+
entry,
|
|
109
|
+
canRequest,
|
|
110
|
+
contentReloader,
|
|
111
|
+
unsavedChanges
|
|
112
|
+
});
|
|
113
|
+
await this.session.presenter.init(params);
|
|
114
|
+
return saved;
|
|
115
|
+
}
|
|
116
|
+
async publishRevision() {
|
|
117
|
+
if ("idle" === this.phase) return this.original.publishRevision();
|
|
118
|
+
if ("loading" === this.phase || !this.session.presenter.vm.allowsPublishing) return false;
|
|
119
|
+
const published = await this.original.publishRevision();
|
|
120
|
+
const entry = this.original.vm.entry;
|
|
121
|
+
if (published && entry) {
|
|
122
|
+
const context = getCmsEntryReviewContext(this.original.vm.model, entry, this.original.vm.canSave);
|
|
123
|
+
this.session.presenter.setContext(context);
|
|
124
|
+
}
|
|
125
|
+
return published;
|
|
126
|
+
}
|
|
127
|
+
async unpublishRevision() {
|
|
128
|
+
const unpublished = await this.original.unpublishRevision();
|
|
129
|
+
const entry = this.original.vm.entry;
|
|
130
|
+
if (unpublished && entry && "tracking" === this.phase) {
|
|
131
|
+
const context = getCmsEntryReviewContext(this.original.vm.model, entry, this.original.vm.canSave);
|
|
132
|
+
this.session.presenter.setContext(context);
|
|
133
|
+
}
|
|
134
|
+
return unpublished;
|
|
135
|
+
}
|
|
136
|
+
deleteEntry() {
|
|
137
|
+
return this.original.deleteEntry();
|
|
138
|
+
}
|
|
139
|
+
setFolderId(folderId) {
|
|
140
|
+
this.original.setFolderId(folderId);
|
|
141
|
+
}
|
|
142
|
+
newEntry(initialValues) {
|
|
143
|
+
this.setPhase("idle", null);
|
|
144
|
+
this.original.newEntry(initialValues);
|
|
145
|
+
}
|
|
146
|
+
patchEntryMeta(meta) {
|
|
147
|
+
this.original.patchEntryMeta(meta);
|
|
148
|
+
}
|
|
149
|
+
reset() {
|
|
150
|
+
this.original.reset();
|
|
151
|
+
this.session.presenter.dispose();
|
|
152
|
+
this.setPhase("idle", null);
|
|
153
|
+
}
|
|
154
|
+
setPhase(phase, revisionId) {
|
|
155
|
+
this.phase = phase;
|
|
156
|
+
this.revisionId = revisionId;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const CmsEntryFormPresenterReviewDecorator = ContentEntryFormPresenter.createDecorator({
|
|
160
|
+
decorator: CmsEntryFormPresenterWithReview,
|
|
161
|
+
dependencies: [
|
|
162
|
+
CmsEntryReview
|
|
163
|
+
]
|
|
164
|
+
});
|
|
165
|
+
export { CmsEntryFormPresenterReviewDecorator };
|
|
166
|
+
|
|
167
|
+
//# sourceMappingURL=CmsEntryFormPresenterReviewDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/CmsEntryFormPresenterReviewDecorator.js","sources":["../../src/presentation/CmsEntryFormPresenterReviewDecorator.ts"],"sourcesContent":["import { computed } from \"mobx\";\nimport { makeAutoObservable } from \"mobx\";\nimport { ContentEntryFormPresenter } from \"@webiny/app-headless-cms/presentation/contentEntries/form/abstractions.js\";\nimport { CmsEntryReview } from \"~/features/editorReview/abstractions.js\";\nimport { getCmsEntryReviewContext } from \"~/presentation/getCmsEntryReviewContext.js\";\nimport { CmsEntryContentReloader } from \"~/presentation/CmsEntryContentReloader.js\";\nimport { CmsEntryUnsavedChanges } from \"~/presentation/CmsEntryUnsavedChanges.js\";\nimport { getCmsEntryReviewInitParams } from \"~/presentation/getCmsEntryReviewInitParams.js\";\nimport { isReviewableModel } from \"~/utils/isReviewableModel.js\";\n\n/*\n * idle: the form is not tied to a review (new entry before its first save, singleton model,\n * nothing loaded).\n * loading: a revision is being loaded, the review status is not asked yet.\n * tracking: the shared presenter was initialised for the loaded revision.\n */\ntype ReviewPhase = \"idle\" | \"loading\" | \"tracking\";\n\ninterface SaveRevisionOptions {\n skipValidation?: boolean;\n}\n\nclass CmsEntryFormPresenterWithReview implements ContentEntryFormPresenter.Interface {\n private phase: ReviewPhase = \"idle\";\n private revisionId: string | null = null;\n\n constructor(\n private readonly session: CmsEntryReview.Interface,\n private readonly original: ContentEntryFormPresenter.Interface\n ) {\n makeAutoObservable<CmsEntryFormPresenterWithReview, \"session\" | \"original\">(this, {\n session: false,\n original: false,\n vm: computed\n });\n }\n\n get vm(): ContentEntryFormPresenter.ViewModel {\n const base = this.original.vm;\n\n if (this.phase === \"idle\") {\n return base;\n }\n\n if (this.phase === \"loading\") {\n return { ...base, canSave: false, canCreateNewRevision: false, canPublish: false };\n }\n\n const review = this.session.presenter.vm;\n\n return {\n ...base,\n canSave: base.canSave && review.allowsEditing,\n // The base \"New Revision\" button reads only this flag and saves through `saveRevision`.\n canCreateNewRevision: base.canCreateNewRevision && review.allowsEditing,\n canPublish: base.canPublish && review.allowsPublishing\n };\n }\n\n async loadRevision(id: string): Promise<void> {\n const model = this.original.vm.model;\n\n if (!isReviewableModel(model)) {\n this.setPhase(\"idle\", null);\n await this.original.loadRevision(id);\n return;\n }\n\n this.setPhase(\"loading\", id);\n\n try {\n await this.original.loadRevision(id);\n } catch (error) {\n this.setPhase(\"idle\", null);\n throw error;\n }\n\n // The editor was reset or moved to another revision while this one was loading.\n if (this.phase !== \"loading\" || this.revisionId !== id) {\n return;\n }\n\n const entry = this.original.vm.entry;\n\n if (!entry) {\n this.setPhase(\"idle\", null);\n return;\n }\n\n this.setPhase(\"tracking\", entry.id);\n\n const contentReloader = new CmsEntryContentReloader(this.original, entry.id);\n const unsavedChanges = new CmsEntryUnsavedChanges(this.original);\n const params = getCmsEntryReviewInitParams({\n model,\n entry,\n canRequest: this.original.vm.canSave,\n contentReloader,\n unsavedChanges\n });\n\n await this.session.presenter.init(params);\n }\n\n async saveRevision(options?: SaveRevisionOptions): Promise<boolean> {\n if (this.phase === \"idle\") {\n const saved = await this.original.saveRevision(options);\n const entry = this.original.vm.entry;\n const model = this.original.vm.model;\n\n // The first save of a new entry creates it without a revision load: the review is\n // tracked from here, so the new draft gets its review bar and \"Save & Publish\" asks\n // the review status before publishing.\n if (!saved || !entry || !isReviewableModel(model)) {\n return saved;\n }\n\n this.setPhase(\"tracking\", entry.id);\n\n const contentReloader = new CmsEntryContentReloader(this.original, entry.id);\n const unsavedChanges = new CmsEntryUnsavedChanges(this.original);\n const params = getCmsEntryReviewInitParams({\n model,\n entry,\n canRequest: this.original.vm.canSave,\n contentReloader,\n unsavedChanges\n });\n\n await this.session.presenter.init(params);\n\n return saved;\n }\n\n if (this.phase === \"loading\") {\n return false;\n }\n\n const review = this.session.presenter.vm;\n\n if (!review.allowsEditing) {\n // Nothing can be saved while the status is unknown or a review locks the content.\n // A clean, unlocked approved draft still reports success, so that \"Save & Publish\"\n // goes on to publish. A locked entry never does: saving it would create a new\n // revision.\n const entry = this.original.vm.entry;\n const isCleanDraft = entry !== null && !entry.meta.locked && !this.original.vm.isDirty;\n\n return review.allowsPublishing && isCleanDraft;\n }\n\n const saved = await this.original.saveRevision(options);\n const entry = this.original.vm.entry;\n\n if (!saved || !entry) {\n return saved;\n }\n\n const model = this.original.vm.model;\n const canRequest = this.original.vm.canSave;\n\n if (entry.id === this.revisionId) {\n const context = getCmsEntryReviewContext(model, entry, canRequest);\n this.session.presenter.setContext(context);\n return saved;\n }\n\n // Saving a locked revision creates a new revision, which has no review yet.\n this.setPhase(\"tracking\", entry.id);\n\n const contentReloader = new CmsEntryContentReloader(this.original, entry.id);\n const unsavedChanges = new CmsEntryUnsavedChanges(this.original);\n const params = getCmsEntryReviewInitParams({\n model,\n entry,\n canRequest,\n contentReloader,\n unsavedChanges\n });\n\n await this.session.presenter.init(params);\n\n return saved;\n }\n\n async publishRevision(): Promise<boolean> {\n if (this.phase === \"idle\") {\n return this.original.publishRevision();\n }\n\n if (this.phase === \"loading\" || !this.session.presenter.vm.allowsPublishing) {\n return false;\n }\n\n const published = await this.original.publishRevision();\n const entry = this.original.vm.entry;\n\n if (published && entry) {\n const context = getCmsEntryReviewContext(\n this.original.vm.model,\n entry,\n this.original.vm.canSave\n );\n this.session.presenter.setContext(context);\n }\n\n return published;\n }\n\n async unpublishRevision(): Promise<boolean> {\n const unpublished = await this.original.unpublishRevision();\n const entry = this.original.vm.entry;\n\n if (unpublished && entry && this.phase === \"tracking\") {\n const context = getCmsEntryReviewContext(\n this.original.vm.model,\n entry,\n this.original.vm.canSave\n );\n this.session.presenter.setContext(context);\n }\n\n return unpublished;\n }\n\n deleteEntry(): Promise<boolean> {\n return this.original.deleteEntry();\n }\n\n setFolderId(folderId: string | null): void {\n this.original.setFolderId(folderId);\n }\n\n newEntry(initialValues?: Record<string, unknown>): void {\n this.setPhase(\"idle\", null);\n this.original.newEntry(initialValues);\n }\n\n patchEntryMeta(\n meta: Parameters<ContentEntryFormPresenter.Interface[\"patchEntryMeta\"]>[0]\n ): void {\n this.original.patchEntryMeta(meta);\n }\n\n reset(): void {\n this.original.reset();\n this.session.presenter.dispose();\n this.setPhase(\"idle\", null);\n }\n\n private setPhase(phase: ReviewPhase, revisionId: string | null): void {\n this.phase = phase;\n this.revisionId = revisionId;\n }\n}\n\nexport const CmsEntryFormPresenterReviewDecorator = ContentEntryFormPresenter.createDecorator({\n decorator: CmsEntryFormPresenterWithReview,\n dependencies: [CmsEntryReview]\n});\n"],"names":["CmsEntryFormPresenterWithReview","session","original","makeAutoObservable","computed","base","review","id","model","isReviewableModel","error","entry","contentReloader","CmsEntryContentReloader","unsavedChanges","CmsEntryUnsavedChanges","params","getCmsEntryReviewInitParams","options","saved","isCleanDraft","canRequest","context","getCmsEntryReviewContext","published","unpublished","folderId","initialValues","meta","phase","revisionId","CmsEntryFormPresenterReviewDecorator","ContentEntryFormPresenter","CmsEntryReview"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|